* wip: identify whats needed to obviate ghostlinkd
* fix: hardlink new charter files to ftp directory
* fix: hardlink new charter files to ftp directory (continued)
* chore: bring settings comment up to date
* chore: add archive and ftp dirs to setup of various environments
* fix: test charter submits write to ftp dir
* chore: remove debug
* fix: test charter approval writes to ftp dir
* fix: link review revisions into ftp dir
* fix: link to all archive and ftp on submission post
* chore: clean comments, move action to github issue
* fix: link idindex files to all archive and ftp
* chore: deflake
* chore: remove TODO comment
* fix: use settings
* chore: rename new setting
* fix: Enforce naming of charter docs in submit()
* style: Reformat submit() with Black
* refactor: Remove redundant check of charter name
* style: Reformat charter_with_milestones_txt with Black
* refactor: Drop canonical_name, use Path in charter_with_milestones_txt
* style: Reformat review_announcement_text() with Black
* style: Reformat action_announcement_text() with Black
* refactor: Change uses of charter.canonical_name() to charter.name
* refactor: Skip docialias when retrieving charter
* refactor: Change canonical_name() to name in utils_charter.py
* refactor: Use Path in read_charter_text()
* refactor: Drop canonical_name, minor refactor of tests_charter.py
* refactor: charter.name instead of canonical_name in milestones.py
* refactor: charter.name instead of canonical_name in tests_info.py
* refactor: Remove unused functions in ietf/secr/utils/groups.py
* refactor: charter.canonical_name -> charter.name in templates
* refactor: Remove charter handling from canonical_name
Temporarily raise an exception for testing
* refactor: Refactor get_charter_text() without canonical_name
* refactor: Remove raise when canonical_name called on a charter
* fix: Add back missing ".txt" extension
* test: Test rejection of invalid charter names
* 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
- Legacy-Id: 19273
Note: SVN reference [19254] has been migrated to Git commit c01fea3920
Note: SVN reference [19256] has been migrated to Git commit 7ede0942d0
Note: SVN reference [19258] has been migrated to Git commit 359889c1f7
Note: SVN reference [19259] has been migrated to Git commit a29480703f
This provides support for IRSG ballots, similar to the IESG ballots support which has been in use for quite some time. The IRSG ballots differ from IESG ballots in a number of ways, described in detail in the RFP and SoW for this work and implemented here.
- Legacy-Id: 17164
Close any previous ballots when a charter goes to Internal Review or Extrernal Review. Fixes#2421.
- Legacy-Id: 14470
Note: SVN reference [14467] has been migrated to Git commit de6121c6c1
Put WG summary information on the rechartering page. Fixes#2000.
- Legacy-Id: 11881
Note: SVN reference [11859] has been migrated to Git commit b6978debb6
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