* Clarify "Replace" in I-D submission form
Update help text In the "Replacement Information" section of
the "Status" tab
* refactor: update node, eslint, neostandard + fix esm (#8083)
* chore: update dependencies
* fix: eslint + neostandard
* fix: add corepack prompt env var to init script
* docs: Update README.md
---------
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* ci: update base image target version to 20241114T1703
* ci: fix tests.yml workflow
* fix: clarify "Replace" in I-D submission form #8205
update quote syntax issue on previous update help text In the "Replacement Information" section of the "Status" tab to fix#8059
* Revert "refactor: update node, eslint, neostandard + fix esm (#8083)"
This reverts commit 649879efd745470f6e0cc6768d889f45640e1505.
* Revert "ci: update base image target version to 20241114T1703"
This reverts commit f11144017ed788bc7a38a1d028127434f0d50eb4.
* Revert "ci: fix tests.yml workflow"
This reverts commit 39231321c49291565a39608b98740e098c74dda7.
* Update forms.py
---------
Co-authored-by: Nicolas Giard <github@ngpixel.com>
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
Co-authored-by: NGPixel <NGPixel@users.noreply.github.com>
* fix: test file existance using metadata
* fix: use Path more
* fix: don't read the file to see if it exists
* fix: more conservative error handling
* chore: remove unused import
* feat: django-rest-framework + Person/Email API (#8233)
* chore: djangorestframework -> requirements.txt
* chore: auth/perm/schema classes for drf
* chore: settings for drf and friends
* chore: comment that api/serializer.py is not DRF
* feat: URL router for DRF
* feat: simple api/v3/person/{id} endpoint
* fix: actually working demo endpoint
* chore: no auth for PersonViewSet
* ci: params in ci-run-tests.yml
* Revert "ci: params in ci-run-tests.yml"
This reverts commit 03808ddf94afe42b7382ddd3730959987389612b.
* feat: email addresses for person API
* feat: email update api (WIP)
* fix: working Email API endpoint
* chore: annotate address format in api schema
* chore: api adjustments
* feat: expose SpectacularAPIView
At least for now...
* chore: better schema_path_prefix
* feat: permissions for DRF API
* refactor: use permissions classes
* refactor: extract NewEmailForm validation for reuse
* refactor: ietfauth.validators module
* refactor: send new email conf req via helper
* feat: API call to issue new address request
* chore: move datatracker DRF api to /api/core/
* fix: unused import
* fix: lint
* test: drf URL names + API tests (#8248)
* refactor: better drf URL naming
* test: test person-detail view
* test: permissions
* test: add_email tests + stubs
* test: test email update
* test: test 404 vs 403
* fix: fix permissions
* test: test email partial update
* test: assert we have a nonexistent PK
* chore: disable DRF api for now
* chore: fix git inanity
* fix: lint
* test: disable tests of disabled code
* test: more lint
* feat: Expose important library versions
Update `/api/version` to include
```
"other": {
"xml2rfc": "<version>",
"weasyprint": "<version>"
},
```
Fixes#3415
* fix: Use importlib
* chore: Reomve additional newline
* fix: Expose libraries that are important for document submission
* fix: Rename IMPORTANT_LIBRARIES as ADVERTISE_VERSIONS
* 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