* feat: DraftAliasGenerator class
Encapsulates logic from generate_draft_aliases.py
* refactor: Avoid circular imports
* feat: Add draft_aliases API endpoint
* feat: Add @requires_api_token decorator
Stolen from feat/rpc-api
* feat: Add token auth to draft_aliases endpoint
* feat: draft-aliases-from-json.py script
Parses output from the draft_aliases API call
* chore: Remove unused cruft
* refactor: Avoid shadowing "draft" name
* fix: Suppress empty lists from DraftAliasGenerator
* refactor: Use a GET instead of POST
* feat: GroupAliasGenerator class
* feat: group aliases API view
* fix: Handle domains array correctly
* fix: Suppress empty group aliases
* refactor: Generalize aliases-from-json.py script
* refactor: Same output fmt for draft and group alias apis
* feat: Sort addresses for stability
* fix: Add "anything" virtual alias
* test: Test requires_api_token decorator
* feat: Harden is_valid_token against misconfig
* test: Test is_valid_token
* test: Test draft_aliases view
* test: Test group_aliases view
* test: Test DraftAliasGenerator
* fix: ise group is type "ise" in test data
* test: Fix logic in testManagementCommand
The test was incorrect - and fails when fixed. :-(
* test: Test GroupAliasGenerator
Test currently fails
* fix: Suppress empty -ads alias
* test: Fix group acronym copy/paste error
I *think* this must be what had been intended. The
code does not look like it ever dealt with GroupHistory,
so I'm pretty sure it wasn't meant to have the same
acronym used by two different Groups at different
times.
* test: Check draft .notify alias generation
* test: Cover get_draft_notify_emails()
* feat: enable editorial stream adoption and balloting
* fix: bring tests into line with refactor
* feat: force intended_std_level to Informational when adopting into a non-ietf stream.
* fix: improve blocking position labels and email content
* fix: simplify pointer to group on doc main page for rswg docs
* fix: recover from merge typos
* fix: correct defer and clear ballot behavior
* fix: improve publication request access logic
* fix: clean up broken editorial state
* fix: adjust test to match migrations
* chore: Use codespell to fix typos in code.
Second part of replacement of #4651
@rjsparks, I probably need to revert some things here, and I also
still need to add that new migration - how do I do that?
* Revert migrations
* Migrate "Whitelisted" to "Allowlisted"
* TEST_COVERAGE_MASTER_FILE -> TEST_COVERAGE_MAIN_FILE
* Fix permissions
* Add suggestions from @jennifer-richards
* refactor: replace datetime.now with timezone.now
* refactor: migrate model fields to use timezone.now as default
* refactor: replace datetime.today with timezone.now
datetime.datetime.today() is equivalent to datetime.datetime.now(); both
return a naive datetime with the current local time.
* refactor: rephrase datetime.now(tz) as timezone.now().astimezone(tz)
This is effectively the same, but is less likely to encourage accidental
use of naive datetimes.
* refactor: revert datetime.today() change to old migrations
* refactor: change a missed datetime.now to timezone.now
* chore: renumber timezone_now migration
* chore: renumber migrations
* feat: restructure rfcedtype groups. add rpc, rswg, rsab.
* feat: show rfc editor groups on menu
* feat: add the editorial stream
* fix: repair broken html and extent dest coverage.
* chore: address Lars review comment
* chore: update copyright notices.
in a database table:
- Added a GroupFeatures model to the group models, and removed the old
features.py
- Added a agenda type for future use in showing different group types on
different agendas.
- Renamed the group feature has_materials to has_nonsession_materials.
- Added API resources and admin support for the new tables.
- Added a Directorate (with reviews) group type as complement to
Directorate, to distinguish between directorates with and without reviews.
- Adjusted tests as needed.
- Updated the fixtures, and fixed the generate_fixtures script to include
the new AgendaTypeName objects.
There still exists about 70 instances of code comparing the group type
with a list of types; most of these should probably be replaced with new
features, instead, to make it possible to add new group types through the
database table, rather than having to edit the code. That was the purpose
of this refactoring from the start, but the presence of this large number
of comparisons of group type against lists of types defeats the goal until
we add appropriate features and replace the group type list comparisons.
- Legacy-Id: 15316
Modified UserFactory to use a new locale for each new user, instead of the
same locale for a whole test run. This (almost) ensures the exercise of
code to deal with non-ascii names, something which would not happen if a
locale with ascii names was chosen at the start of a run.
Modified name.initials() to not use non-word characters as initials.
Modified unidecode_name() to do more normalization, to conform to the
conventions used in internet-drafts.
Added saving of the factory-boy random state in order to be able to re-run
a test suite with the same pseudo-random sequence as in a previous failed
run.
Fixed an issue with email formatting in test_api_submit_ok().
Modified the draft author extraction code to deal better with names with
embedded apostrophes.
- Legacy-Id: 14141
When changing a TelechatDate in the admin interface, retain all document associations. Fixes#1349.
- Legacy-Id: 13577
Note: SVN reference [13559] has been migrated to Git commit 77f4bf21ff
This completes a good chunk of the downref registry work requested in ticket
#2069. The registry has been imported to the database and can be shown, and
entries can be added to the registry. Addresses issue #2069.
- Legacy-Id: 13190
Note: SVN reference [13181] has been migrated to Git commit f0125634f8