* feat: add Group Leadership list
* fix: only offer export to staff
* fix: fix export button conditional
* fix: improve tests. black format
---------
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* refactor: doc search via POST (WIP)
Changes the search view to use a POST instead of a GET. Refactors cache key computation to use cleaned data.
Still todo:
* refactor frontpage view to match
* refactor menubar search (?)
* refactor stats view that uses SearchForm
* revive or drop the "backwards compatibility" branch
* feat: convert GET search to POST
Still todo:
* refactor frontpage view to match
* refactor menubar search (?)
* refactor stats view that uses SearchForm
* fix: revert frontpage changes, search works
Still todo:
* refactor stats view that uses SearchForm
* fix: define vars in all branches
* refactor: update stats use of SearchForm
* chore: improve message
* fix: remove lint
* chore: comments re: QuerySetAny
* test: test query string search params
* style: Black
* test: refactor test_search()
* test: refactor test_search_became_rfc()
* test: use scroll_and_click helper
* feat: show existing recordings on materials page
* chore: notes and recordings tests WIP
* chore: test session recordings
* feat: label all session recording urls as meetecho
* fix: prefer PDF in materials_document(); refactor
* style: Black
* refactor: split urls entry into simpler pair
It seems Django cannot reverse a URL pattern that uses "|" to
combine options when one inclues a named variable and the other
does not.
* test: test extension choice
* fix: fix test failures
* refactor: get rid of io.open()
* refactor: reunite url patterns
Adds option for a trailing "/" when using an extension,
which was not previously supported but should be somewhere
between harmless and a feature.
* 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
* feat: style admin site in dev mode
* refactor: eliminate base_site.html
* fix: remove debug
* fix: commit missing __init__.py
* refactor: make method static; fix tests
* refactor: move api init to AppConfig.ready()
Avoids interacting with the app registry before
it's ready.
* test: Update tests to check for Updated field in agenda.txt
* fix: Hide Updated in agenda.txt if too old
* test: Remove confusing tests on CSV agenda
* refactor: Make updated() return None when no valid timestamp found
* refactor: Remove walrus operator
* fix: use BOF states in concluded_groups()
* fix: handle events for older BOFs
These could be cleaned up in the database, but I think this
change does the right thing for the existing data.
* style: Black
* 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>
* fix: Explicitly set `executable_path` for Selenium
So it finds `geckodriver` again.
* Minimize diff
* fix: use existing executable_name
Co-authored-by: Lars Eggert <lars@eggert.org>
---------
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>