* feat: capture xml2rfc output on exception
* fix: chain exception properly
* feat: log xml2rfc stderr/stdout
May want to pass these back to the submitter, but
let's watch them to see what sorts of sanitizing we
should do first.
* Revert "feat: log xml2rfc stderr/stdout"
This reverts commit 959c54d30733a4a3df7ed0250fef347ed6f03a08.
* feat: log xml2rfc stderr/stdout
This time without reformatting all the imports
* feat: path sanitization for submission errors
* fix: parentheses in regex
* test: test SubmissionError sanitization
* style: consolidate imports
* fix: apply sanitization to all args
---------
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* fix: 404 on CommunityList name collision
* fix: 404 on ambiuous person for photo() view
* test: update tests
---------
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
Browsers treat an overflow: auto directive as a request to make an
element scrollable, even if the element does not need it.
This results in scrolling being confined to that element sometimes,
such as when a document is scrolled using a mouse wheel
if the document scrolls the pointer into that element.
The result is that scrolling can be "trapped" on an element that
doesn't really need to scroll.
This disables vertical scrolling for those pre elements that might
trap scrolling in this way.
* style: Black
* chore: type hints
* refactor: % to f-string
* refactor: helper to decode header values
* fix: decode header fields for pop-up msg
* test: add tests
* fix: use truthiness check
We want to suppress empty strings, too...
* refactor: use f-string for time formatting
* test: clarify side_effect intention
* fix: turn off automatic escaping in session request templates
* test: ensure no unwanted escaping in session request emails
* test: use PersonFactory to create test users
* test: minor refactoring
* test: fill in milestone descriptions
If "Next" or "Last" appear in the descriptions, the
selectors used by the tests get confused.
* test: avoid fragile selectors
* fix: fix wg anchor tags in areas page
* fix: fix wg anchor tags in IESG agenda page
* test: ensure wg anchor tags to be all uppercase
* test: improve tests
* feat: remove "AD is watching" state
* chore: update names.json
* refactor: use idexists state, not dead
* fix: remove guidance to use watching state
* chore: remove references to 'watching' state
* feat: remove create_in_state from edit_info view
* test: update test
* style: Black + move class closer to use
* refactor: remove lint
* fix: restore missing admonition
---------
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* refactor: avoid shadowing type()
* style: Black
* feat: is_blanket_disclosure field
* feat: add field to form
* feat: js to mark field required/not required
* feat: blanket disclosure = royalty-free license
* feat: manage licensing radio buttons
* fix: adjust wording/format of disclosure page
* fix: point at RFC 8179 in checkbox label
* test: test blanket disclosure licensing restrictions
* fix: conditionally render is_blanket_disclosure
* test: refactor test case
* test: patent details optional for blanket ipr
* chore: Prevent test suite artifact creation in work directory
Also remove a few other stale test assets while I'm here.
* Try and fix CI
* Change IDSUBMIT_REPOSITORY_PATH
* Make the dir
* test: clean up media/nomcom directories
* test: de-dup settings_temp_path_overrides
* chore: remove debug
* refactor: avoid premature import of test_utils
* refactor: drop useless lambda wrapper
---------
Co-authored-by: Jennifer Richards <jennifer@staff.ietf.org>
* fix: optimize can_manage_some_groups
* fix: improve cache key
* refactor: extra_role_qs to kwargs and bugfix to cache key
* fix: restrict groupman_role matches to active states
* chore: styling, decommenting, black
* fix: Use email or name when building community list view
instead of email
* test: add test case
* chore: remove debug
* fix: use name in community list menu when no active email is found
---------
Co-authored-by: Jennifer Richards <jennifer@staff.ietf.org>
* fix: Include missing related drafts in IPR searches
* refactor: extract drafts, sort docs
* chore: indent loop and conditionals to improve readability
* test: handle whitespaces added to IPR search result page
---------
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* feat: Total ids on IESG dashboard
* IESG I-D code comments
* Using Robert's query forIESG dashboard total_ids
* Hiding columns in later IESG Dashboard tables
* Changing IESG dashboard var name to match column table
* Updating IESG pre_pubreqquery
* IESG dashboard prepub req safeParser and graphs
* IESG dashboard fixing Playwright API usage
* IESG dashboard fixing Playwright API usage (2)
* Updating .gitignore for /geckodriver.log
* IESG ad test title
* feat: pages left to ballot on [WIP]
* Adding geckodriver.log to gitignore
* [WIP] pages left to ballot on
* integrating pages left to ballot on WIP
* Tests for ad pages remaining
* Setting states to test ballot items
* refactor ad_pages_left_to_ballot_on count logic
* WIP tests for pages left to ballot on
* chore: remove whitespace change
* fix: look into the BallotPositionDocEventObject
* chore: remove prints
* fix: restructure test
* style: fix js code styling
* fix: only show graph for ADs/Secretariat
---------
Co-authored-by: Matthew Holloway <Matthew Holloway>
Co-authored-by: holloway <matthew@holloway.co.nz>
Co-authored-by: Nicolas Giard <github@ngpixel.com>
Co-authored-by: Matthew Holloway <matthew@staff.ietf.org>
* chore: nginx log is s, not ms
* chore: log seconds from gunicorn too
* chore: drop X-Real-IP header / log
* style: Black
* style: single -> double quotes
* feat: add is-authenticated header
* feat: log is-authenticated header
* chore: update nginx-auth.conf to match
* 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
* chore: increase nginx proxy_read_timeout
* refactor: speed up bluesheet_data
The affiliation helper was extremely slow. Using
queryset annotation speeds it up by almost an order
of magnitude.
* chore: delint
* test: fix DraftFormTest setup
Tests were failing when the doc factories started
producing pks >= 10 because of an incorrect test
data structure.
* chore: improve comments
* fix: guard against missing "revisions"
* test: add tests for DraftForm
Only testing the part relevant to this issue.
* test: clarify intentions
* chore: "document" -> "draft" in comments
* 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
* Status WIP
* feat: Status
* fix: Status tests
* feat: status redirect
* chore: Status tests
* chore: Status tests
* feat: Status tests
* chore: Status playwright tests
* fix: PR feedback, mostly Vue and copyright dates
* fix: Status model migration tidy up
* chore: Status - one migration
* feat: status on doc/html pages
* chore: Resetting Status migration
* chore: removing unused FieldError
* fix: Update Status test to remove 'by'
* chore: fixing API test to exclude 'status'
* chore: fixing status_page test
* feat: Site Status PR feedback. URL coverage debugging
* Adding ietf.status to Tastypie omitted apps
* feat: Site Status PR feedback
* chore: correct copyright year on newly created files
* chore: repair merge damage
* chore: repair more merge damage
* fix: reconcile the api init refactor with ignoring apps
---------
Co-authored-by: Matthew Holloway <Matthew Holloway>
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* fix: Send create user email for password resets where we have an email and person, but no user account
This fixes https://github.com/ietf-tools/datatracker/issues/6458
* fix: create User straight away and use nomral password reset
---------
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* 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: don't assume file has open method
The open method is specific to Django's uploaded
file classes, where it just calls seek(0)
* refactor: better upload/enter agenda abstraction