* 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: generate group aliases on the fly
* chore: remove group alias file check
* chore: drop group alias settings, fix lint
* refactor: rename var to hint it's ignored
* test: update tests
* refactor: move utility to utils
* test: add test
---------
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* feat: API to list role-holder addresses
* test: Test new API endpoint
* fix: role_holder_addresses gets own API token
* refactor: Move role_holder_addresses to ietf.api.views
* test: test for group.utils.role_holder_emails
* test: Clean up test_role_holder_addresses
* fix: Missed a change in urls.py
* refactor: Remove old view
* chore: Remove unused import
* chore: Remove unused import
* chore: Remove generate_draft_aliases.py
Also remove test and update some now-stale help strings.
These are not very helpful, but will not exist for long
in their updated incarnation.
* chore: Remove generate_group_aliases.py
... and its test.
* chore: Remove unused import
* chore: Remove unused import
* 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()
* fix: connect the menu item for the editoral stream to the rswg documents page.
* chore: repair merge damage
* fix: address review by shortcircuiting redirects
* feat: Add group stats sunburst plots to active WG page
* Cleanups
* Sort/color areas consistently
* Move graphs to area page
* Move sunbursts
* Add test
* Move most sunbursts to modals
* Remove parametrization from URLs
* Fix test
* Make `only_active` a bool
* Reformat
* Reformat more
* 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: Use d3 for doc dependencies
* Interim commit
* Progress
* Progress
* Auto pan and zoom
* Arrows
* Remove graphviz and the code that uses it
* More graphviz-related changes
* Interim commit
* Move things into place
* Add test
* Final touches
* Make SVG work in Chrome
* Get the docs more similarly to how the group doc page does it
* Reindent
* Add ability to download the SVG, and use bs fonts.
* Follow @rjsparks' advice on how to compute the reference list
* Interim commit
* Add legend
* Speed up simulation
* Fix tooltips
* fix: escape a period in a new url regex
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
Simplify the dependency graph generation, by relying on dot to generate PDF (and
now also SVG) directly. Default to showing SVG from the link on a group's page.
- Legacy-Id: 10650
Note: SVN reference [10623] has been migrated to Git commit f1dcfcafb6
The new API requires at least one event and will automatically save a
snapshot of the document and related state. Document.save() will now
throw an exception if called directly, as the new API is intended to
ensure that documents are saved with both an appropriate snapsnot and
relevant history log, both of which are easily defeated by just
calling .save() directly.
To simplify things, the snapshot is generated after the changes to a
document have been made (in anticipation of coming changes), instead
of before as was usual.
While revising the existing code to work with this API, a couple of
missing events was discovered:
- In draft expiry, a "Document has expired" event was only generated
in case an IESG process had started on the document - now it's
always generated, as the document changes its state in any case
- Synchronization updates like title and abstract amendmends from the
RFC Editor were silently (except for RFC publication) applied and
not accompanied by a descriptive event - they now are
- do_replace in the Secretariat tools now adds an event
- Proceedings post_process in the Secretariat tools now adds an event
- do_withdraw in the Secretariat tools now adds an event
A migration is needed for snapshotting all documents, takes a while to
run. It turns out that a single document had a bad foreign key so the
migration fixes that too.
- Legacy-Id: 10101
Adds navigation to those views to the base menus.
Unifies URL patterns shared between group/urls and group/urls_info,
exposing the same view at, e.g., /group/stir and /wg/stir/.
Improves testing, primarily of group/info.py
Commit ready for merge.
- Legacy-Id: 9924
Test fetching of wg and rg document dependency graphs.
Also added conditional running of these tests, as they depend on the
availability of the dot, unflatten and ps2pdf binaries, which may not
be available on all developers' systems.
- Legacy-Id: 9322
Note: SVN reference [9316] has been migrated to Git commit 5980a35e6c