* fix: return to ballotpopup
* fix: ballot position return to in modals
* fix: ballot return to test
* fix: ballot return to additional allow handlers
* fix: ballot return to handler syntax error in test
* fix: #7287 ballot return params
* fix: Moving Ballot edit position ballot_edit_return_point from session to query param
* fix: tests for return_to_path param
* chore: removing Playwright tests until we can figure out a plan
* feat: return_to path utility refactoring
* fix: throw HTTP 400 in view rather than bubbling up a 500
* fix: return http400 rather than raising
* fix: Show recordings for interims
Add methods uses_notes(), has_recordings(), and uses_chat_logs() to the
meeting object (with semantically correct tests) and use them consistently
throughout. List the recordings if the "meeting numnber" starts with
"interim"
Fixes: #6543
* style: Use "is not" and "is" for None comparisons
* None comparison and non-IETF meetings
style: Use "is not None" instead of "!="
For non-IETF meetings assume chat logs exist
* fix: Restore useNotes for JS fields
* fix: uses_notes->useNotes (in JavaScript)
Also add comment about meeting number field in tests
* Missed a uses_notes->useNotes edit
* fix: useNotes->usesNotes
---------
Co-authored-by: Jennifer Richards <jennifer@staff.ietf.org>
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* fix: Remove redundant "stream stream" output
fix: Change "Legacy stream" to "Legacy"
chore: Add "stream" to stream.desc as needed
Fixes: #6902
* chore: Remove unused stream_desc parameter
The stream_desc key isn't used in template/doc/docuemnt_draft.html to
don't pass it in nor compute it
Fixes: #6902
* fix: migrate the legacy StreamName
---------
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* refactor: compute draft aliases on demand
n.b., very slow for full set of aliases
* refactor: simplify and cache email_aliases
The name != "" case is, as far as I can see, unused.
* chore: remove draft alias checks
* chore: remove draft alias/virtual settings
* chore: remove lint
* test: update tests
* test: better mocking
* refactor: move utility to utils
* test: add tests
* feat: Show bluesheets using Attended tables (#7094)
* feat: Show bluesheets using Attended tables (#6898)
* feat: Allow users to add themselves to session attendance (#6454)
* chore: Correct copyright year
* fix: Address review comments
* fix: Don't try to generate empty bluesheets
* refactor: Complete rewrite of bluesheet.html
* refactor: Fill in a few gaps, close a few holes
- Rename the live "bluesheet" to "attendance", add some explanatory text.
- Add attendance links in materials view and pre-finalized proceedings view.
- Don't allow users to add themselves after the corrections cutoff date.
* fix: Report file-save errors to caller
* fix: Address review comments
* fix: typo
* refactor: if instead of except; refactor gently
* refactor: Rearrange logic a little, add comment
* style: Black
* refactor: auto_now_add->default to allow override
* refactor: jsonschema to validate API payload
* feat: Handle new API data format
Not yet tested except that it falls back when the old
format is used.
* test: Split test into deprecated/new version
Have not yet touched the new version
* style: Black
* test: Test new add_session_attendees API
* fix: Fix bug uncovered by test
* refactor: Refactor affiliation lookup a bit
* fix: Order bluesheet by Attended.time
* refactor: Move helpers from views.py to utils.py
* test: Test that finalize calls generate_bluesheets
* test: test_bluesheet_data()
* fix: Clean up merge
* fix: Remove debug statement
* chore: comments
* refactor: Renumber migrations
---------
Co-authored-by: Paul Selkirk <paul@painless-security.com>
* chore: Remove unused import
* style: Black
* feat: Stub session update notify API
* feat: Add order & rev to slides JSON
* style: Black
* feat: Stub actual Meetecho slide deck mgmt API
* refactor: Limit reordering to type="slides"
* chore: Remove repository from meetecho API
(API changed on their end)
* feat: update Meetecho on slide reorder
* refactor: drop pytz from meetecho.py
* chore: Remove more repository refs
* refactor: Eliminate more pytz
* test: Test add_slide_deck api
* fix: Allow 202 status code / absent Content-Type
* test: Test delete_slide_deck api
* test: Test update_slide_decks api
* refactor: sessionpresentation_set -> presentations
* test: Test send_update()
* fix: Debug send_update()
* test: ajax_reorder_slides calls Meetecho API
* test: Test SldesManager.add()
* feat: Implement SlidesManager.add()
* test: Test that ajax_add_slides... calls API
* feat: Call Meetecho API when slides added to session
* test: Test SlidesManager.delete()
* feat: Implement SlidesManager.delete()
* test: ajax_remove_slides... calls Meetecho API
* feat: Call Meetecho API when slides removed
* chore: Update docstring
* feat: rudimentary debug mode for Meetecho API
* test: remove_sessionpresentation() calls Meetecho API
* feat: Call Meetecho API from remove_sessionpresentation()
* test: upload_slides() calls Meetecho API
* style: Black
* fix: Refactor/debug upload_session_slides
Avoids double-save of a SessionPresentation for the session
being updated and updates other sessions when apply_to_all
is set (previously it only created ones that did not exist,
so rev would never be updated).
* test: Fix test bug
* feat: Call Meetecho API when uploading session slides
* fix: Only replace slides actually linked to session
* fix: Delint
Removed some type checking rather than debugging it
* fix: Send get_versionless_href() as url for slides
* test: TZ-aware timestamps, please
* chore: Add comments
* feat: Call Meetecho API in edit_sessionpresentation
* feat: Call Meetecho API in remove_sessionpresentation
* feat: Call Meetecho API from add_sessionpresentation
* fix: Set order in add_sessionpresentation
* fix: Restrict API calls to "slides" docs
* feat: Call Meetecho API on title changes
* test: Check meetecho API calls in test_revise()
* fix: better Meetecho API "order" management
* fix: no PUT if there are no slides after DELETE
* feat: Catch exceptions from SlidesManager
Don't let errors in the MeetEcho slides API interfere with
the ability to modify slides for a session.
* feat: Limit which sessions we send notifications for
* fix: handle absence of request_timeout in api config
* test: always send slide notifications in tests
* fix: save slides before sending notification (#7172)
* fix: save slides before sending notification
* style: fix indentation
It's not a bug, it's a flourish!
---------
Co-authored-by: Jennifer Richards <jennifer@staff.ietf.org>
Co-authored-by: Paul Selkirk <paul@painless-security.com>
* refactor: Remove Google from document history search
"Search lists" dropdown menu devolves into a single button
(two buttons for ADs).
* refactor: Remove unused ARO search
---------
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* fix: Revert "Email authors" link for RFCs to the draft that it came from (#6856)
* refactor: Move mailto_name calculation to the view
* fix: Fully revert document_draft.html
* chore: remove unused setting
* feat: initial import of iesg minutes
* fix: let the meetings view show older iesg meetings
* feat: iesg narrative minutes
* feat: import bof coordination call minutes
* wip: import commands for iesg appeals and statements
* feat: import iesg statements.
* feat: import iesg artifacts
* feat: many fewer n+1 queries for the group meetings view
* fix: restore chain of elifs in views_doc
* fix: use self.stdout.write vs print in mgmt commands
* fix: use replace instead of astimezone when appropriate
* chore: refactor new migrations into one
* fix: transcode some old files into utf8
* fix: repair overzealous replace
* chore: black
* fix: address minro review comments
* fix: actually capture transcoding work
* fix: handle multiple iesg statements on the same day
* fix: better titles
* feat: pill badge replaced statements
* fix: consolodate source repos to one
* feat: liberal markdown for secretariat controlled content
* fix: handle (and clean) html narrative minutes
* feat: scrub harder
* fix: simplify and improve a scrubber
* chore: reorder migrations
* refactor: change references from User to Person (#5821)
* refactor: Change CommunityList reference from User to Person
* refactor: Convert more user references to person
* refactor: Change augment_docs_and_user_with_user_info to person
* refactor: Change Nomination and Feedback references from User to Person
* refactor: Change a few test case function signatures to be more pythonic
* refactor: Harmonize how profile and photo views look up email_or_name
* refactor: Rework community views to operate on Person instead of User (#5859)
* test: Update tests to try all of the person's emails and aliases
* fix: Recode a test case to avoid an exception if there's Unicode in the URL
This only happens using the form-filling and submission feature of
WebTest, which is only used in this one test case, so just it rip out.
* test: Add duplicate-person tests
* fix: If there are multiple matching users, prefer the logged-in one.
* chore: We no longer use WebTest, so don't include it.
* fix: Address review comments
* fix: case-insensitive person name or email matching (#6096)
* chore: Renumber migrations
* fix: Update merged code so tests pass (#6887)
* fix: Use refactored method
* fix: Don't assume user has person
* fix: Use new view param name
* chore: Drop community lists w/o person; cleanup (#6896)
* fix: Don't assume user has person
* fix: user->person in update_community_list_index.py
* feat: Remove CommunityLists without Person
* refactor: Speed up nomcom migrations
---------
Co-authored-by: Paul Selkirk <paul@painless-security.com>
Co-authored-by: Jennifer Richards <jennifer@staff.ietf.org>
* fix: Wrap weasyprint to catch exceptions (#6324)
* test: Restore socket function after test
* test: Use mock instead of monkeying with sockets
* refactor: Log the error
* fix: Don't catch non-Exception interruptions
---------
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* fix: clean up shadowed name in document_referenced_by.html
* fix: include refs to rfc's came_from_draft()
* fix: include refs to draft's became_rfc()
* fix: Count indirect refs by RFCs
* refactor: break indirect ref_by counting to its own fn
* fix: only count refs to pre-rfc draft, not post-draft rfc
(and rename a method)
* test: test referenced_by_rfcs methods
The test_referenced_by_rfcs_as_rfc_or_draft() test
fails because there's a bug!
* test: actually, do double-count refs to rfc/draft
Let's do include refs to an rfc and its precursor draft
as separate refs. This almost surely indicates a data
error because it would mean an rfc referenced both an
rfc and the draft that it came from. That should never
be allowed, so at least let some light fall on it if
it happens.
* chore: Add docstring to document_referenced_by view
* feat: basic models for appeals
* fix: modify appeal model to point to group
* fix: explicit date on Appeal objects
* feat: appeals importing management command
* feat: display appeals
* feat: admin for appeals
* fix: limit admin contentype choices
* feat: tastypie resources
* feat: factories and tests
* chore: update group migration
* fix: remove charset from pdf content type
* test: unittest download_name
* fix: admin for new name
* chore: Remove unused "rendertest" stuff (#6015)
* fix: restore ability to create status change documents (#5963)
* fix: restore ability to create status change documents
Fixes#5962
* chore: address review comment
* fix: Provide human-friendly status in submission status API response (#6011)
Co-authored-by: nectostr <bastinda96@gmail.com>
* fix: Make name/email lookups case-insensitive (#5972) (#6007)
* fix: Make name/email lookups case-insensitive (#5972)
Use icontains so that looking up name or email is case insensitive
Added a test
Fixes: 5972
* fix: Use __iexact not __icontains
* fix: Clarify no-action-needed (#5918) (#6020)
When a draft is submitted for manual processing, clarify that
no action is needed; the Secretariat has the next steps.
Fixes: #5918
* fix: Fix menu hover issue (#6019)
* fix: Fix menu hover issue
Fixes#5702
* Fix leftmenu hover issue
* fix: Server error from api_get_session_materials() (#6025)
Fixes#5877
* fix: Clarify Questionnaire label (#4688) (#6017)
When filtering nominees, `Questionnaire` implies `Accepted == yes`
so fix the dropdown test tosay that.
Fixes: #4688
* chore: Merge from @martinthomson's rfc-txt-html (#6023)
* fix:no history entry when changing RFC Editor note for doc (#6021)
* fix:no history entry when changing RFC Editor note for doc
* fix:no history entry when changing RFC Editor note for doc
---------
Co-authored-by: Priyanka Narkar <priyankanarkar@dhcp-91f8.meeting.ietf.org>
* fix: avoid deprecation warning on view_list() for objs without CommunityList
Fixes#5942
* fix: return 404 for non-existing revisions (#6014)
* fix: return 404 for non-existing revisions
Links to non-existing revisions to docs should return 404
* fix: change rfc/rev and search behaviour
* refactor: fix tab level
* fix: return 404 for rfc revision for bibtex
* fix: provide date for revisions in bibtex output (#6029)
* fix: provide date for revisions in bibtex output
* refactor: change walrus to if's
* fix: specify particular revision for events
* fix: review refactoring issue
fixes#5447
* fix: Remove automatically suggested document for document that is already has review request (fixes#3211) (#5425)
* Added check that if there is already review request for the document
in question, ignore the automatic suggestion for that document.
Fixes#3211.
* fix: dont block on open requests for a previous version. Add tests
---------
Co-authored-by: Nicolas Giard <github@ngpixel.com>
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* feat: IAB statements (#5940)
* feat: support iab and iesg statements. Import iab statements. (#5895)
* feat: infrastructure for statements doctype
* chore: basic test framework
* feat: basic statement document view
* feat: show replaced statements
* chore: black
* fix: state help for statements
* fix: cleanout non-relevant email expansions
* feat: import iab statements, provide group statements tab
* fix: guard against running import twice
* feat: build redirect csv for iab statements
* fix: set document state on import
* feat: show published date on main doc view
* feat: handle pdf statements
* feat: create new and update statements
* chore: copyright block updates
* chore: remove flakes
* chore: black
* feat: add edit/new buttons for the secretariat
* fix: address PR #5895 review comments
* fix: pin pydantic until inflect catches up (#5901) (#5902)
* chore: re-un-pin pydantic
* feat: include submitter in email about submitted slides (#6033)
* feat: include submitter in email about submitted slides
fixes#6031
* chore: remove unintended whitespace change
* chore(dev): update .vscode/settings.json with new taskExplorer settings
* fix: Add editorial stream to proceedings (#6027)
* fix: Add editorial stream to proceedings
Fixes#5717
* fix: Move editorial stream after the irtf in proceedings
* fix: Add editorial stream to meeting materials (#6047)
Fixes#6042
* fix: Shows requested reviews for doc fixes (#6022)
* Fix: Shows requested reviews for doc
* Changed template includes to only give required variables to them.
* feat: allow openId to choose an unactive email if there are none active (#6041)
* feat: allow openId to choose an unactive email if there are no active ones
* chore: correct typo
* chore: rename unactive to inactive
* fix: Make review table more responsive (#6053)
* fix: Improve layout of review table
* Progress
* Progress
* Final changes
* Fix tests
* Remove fluff
* Undo commits
* ci: add --validate-html-harder to tests
* ci: add --validate-html-harder to build.yml workflow
* fix: Set colspan to actual number of columns (#6069)
* fix: Clean up view_feedback_pending (#6070)
- Remove "Unclassified" column header, which caused misalignment in the table body.
- Show the message author - previously displayed as `(None)`.
* docs: Update LICENSE year
* fix: Remove IESG state edit button when state is 'dead' (#6051) (#6065)
* fix: Correctly order "last call requested" column in the IESG dashboard (#6079)
* ci: update dev sandbox init script to start memcached
* feat: Reclassify nomcom feedback (#6002)
* fix: Clean up view_feedback_pending
- Remove "Unclassified" column header, which caused misalignment in the table body.
- Show the message author - previously displayed as `(None)`.
* feat: Reclassify nomcom feedback (#4669)
- There's a new `Chair/Advisor Tasks` menu item `Reclassify feedback`.
- I overloaded `view_feedback*` URLs with a `?reclassify` parameter.
- This adds a checkbox to each feedback message, and a `Reclassify` button
at the bottom of each feedback page.
- "Reclassifying" basically de-classifies the feedback, and punts it back
to the "Pending emails" view for reclassification.
- If a feedback has been applied to multiple nominees, declassifying it
from one nominee removes it from all.
* fix: Remove unused local variables
* fix: Fix some missing and mis-nested html
* test: Add tests for reclassifying feedback
* refactor: Substantial redesign of feedback reclassification
- Break out reclassify_feedback* as their own URLs and views,
and revert changes to view_feedback*.html.
- Replace checkboxes with a Reclassify button on each message.
* fix: Remember to clear the feedback associations when reclassifying
* feat: Add an 'Overcome by events' feedback type
* refactor: When invoking reclassification from a view-feedback page, load the corresponding reclassify-feedback page
* fix: De-conflict migration with 0004_statements
Also change the coding style to match, and add a reverse migration.
* fix: Fix a test case to account for new feedback type
* fix: 842e730 broke the Back button
* refactor: Reclassify feedback directly instead of putting it back in the work queue
* fix: Adjust tests to new workflow
* refactor: Further refine reclassification to avoid redirects
* refactor: Impose a FeedbackTypeName ordering
Also add FeedbackTypeName.legend field, rather than synthesizing it every
time we classify or reclassify feedback.
In the reclassification forms, only show the relevant feedback types.
* refactor: Merge reclassify_feedback_* back into view_feedback_*
This means the "Reclassify" button is always present, but eliminates some
complexity.
* refactor: Add filter(used=True) on FeedbackTypeName querysets
* refactor: Add the new FeedbackTypeName to the reclassification success message
* fix: Secure reclassification against rogue nomcom members
* fix: Print decoded key and fully clean up test nomcom (#6094)
* fix: Delete Person records when deleting a test nomcom
* fix: Decode test nomcom private key before printing
* test: Use correct time zone for test_statement_doc_view (#6064)
* chore(deps): update all npm dependencies for playwright (#6061)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
* chore(deps): update all npm dependencies for dev/diff (#6062)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
* chore(deps): update all npm dependencies for dev/coverage-action (#6063)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
* fix: Hash cache key for default memcached cache (#6089)
* feat: Show docs that an AD hasn't balloted on that need ballots to progress (#6075)
* fix(doc): Unify help texts for document states (#6060)
* Fix IESG State help text link (only)
* Intermediate checkpoint
* Correct URL filtering of state descriptions
* Unify help texts for document states
* Remove redundant load static from template
---------
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* ci: fix sandbox start.sh memcached user
* fix: refactor how settings handles cache definitions (#6099)
* fix: refactor how settings handles cache definitions
* chore: more english-speaker readable expression
* fix: Cast cache key to str before calling encode (#6100)
---------
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
Co-authored-by: Liubov Kurafeeva <liubov.kurafeeva@gmail.com>
Co-authored-by: nectostr <bastinda96@gmail.com>
Co-authored-by: Rich Salz <rsalz@akamai.com>
Co-authored-by: PriyankaN <priyanka@amsl.com>
Co-authored-by: Priyanka Narkar <priyankanarkar@dhcp-91f8.meeting.ietf.org>
Co-authored-by: Ali <alireza83@gmail.com>
Co-authored-by: Roman Beltiukov <maybe.hello.world@gmail.com>
Co-authored-by: Tero Kivinen <kivinen@iki.fi>
Co-authored-by: Nicolas Giard <github@ngpixel.com>
Co-authored-by: Kesara Rathnayake <kesara@fq.nz>
Co-authored-by: Jennifer Richards <jennifer@staff.ietf.org>
Co-authored-by: Paul Selkirk <paul@painless-security.com>
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
Co-authored-by: Jim Fenton <fenton@bluepopcorn.net>
* feat: support iab and iesg statements. Import iab statements. (#5895)
* feat: infrastructure for statements doctype
* chore: basic test framework
* feat: basic statement document view
* feat: show replaced statements
* chore: black
* fix: state help for statements
* fix: cleanout non-relevant email expansions
* feat: import iab statements, provide group statements tab
* fix: guard against running import twice
* feat: build redirect csv for iab statements
* fix: set document state on import
* feat: show published date on main doc view
* feat: handle pdf statements
* feat: create new and update statements
* chore: copyright block updates
* chore: remove flakes
* chore: black
* feat: add edit/new buttons for the secretariat
* fix: address PR #5895 review comments
* fix: pin pydantic until inflect catches up (#5901) (#5902)
* chore: re-un-pin pydantic