case we can't parse it and it's not empty, add page with list of
countries (to be able to refer people to it), add ISO codes as country
aliases - the country alias code is now more intelligent with respect
to case so it's easier to keep these aliases explicitly
- Legacy-Id: 12862
to the draft parser (incorporating patch from trunk), store the
extracted country instead of trying to turn it into an ISO country
code, add country and continent name models and add initial data for
those, add helper function for cleaning the countries, add author
country and continent charts, move the affiliation models to
stats/models.py, fix a bunch of bugs.
- Legacy-Id: 12846
in order to autogenerate dotted path url pattern names. Updated a number
of url reverses to use dotted path, and removed explicit url pattern names
as needed.
Changed some imports to prevent import of ietf.urls before django
initialization was complete.
Changed 3 cases of form classes being curried to functions; django 1.10
didn't accept that.
Started converting old-style middleware classes to new-style middleware
functions (incomplete).
Tweaked a nomcom decorator to preserve function names and attributes, like
a good decorator should.
Replaced the removed django templatetag 'removetags' with our own version
which uses bleach, and does sanitizing in addition to removing explicitly
mentionied html tags.
Rewrote the filename argument handling in a management command which had
broken with the upgrade.
- Legacy-Id: 12818
DocumentAuthor, rename author field to email and make it optional (for
modeling old email-less submissions), remove the authors many to many
referencing field from Document as it is not really pointing the right
place.
Update the Secretariat tools to show affiliation and country.
Add migration for getting rid of the fake email addresses that the
migration script created some years ago (just set the author email
field to null).
- Legacy-Id: 12739
Improves who to copy when sending submission confirmation mail when authors change.
- Legacy-Id: 12044
Note: SVN reference [12014] has been migrated to Git commit 4f01de1b94
Added in support for displaying results from selected submission checks as symbols on draft pages and in draft lists. For now, that means that drafts with yang modules will show either a green or orange yang symbol, depending on the result of the submission yang validation check.
- Legacy-Id: 10996
page. Each WG/RG now gets a list with an initial set of rules to
populate the list.
Refine the community list management interface a bit to support the
group lists better - group lists aren't connected to the usual track
icons so need to be able to add/remove individual drafts.
Change the "name contains" rule to support regular expressions to
enable each group to have a default replacement for the previously
implemented "related documents" search. Maintain a materialized view
of the regexp-matched drafts with a call in the submit code to avoid
having to scan all drafts/~1000 group rules all the time.
- Legacy-Id: 10963
Stop making active unknown-email- objects. Mark existing such objects as inactive. Tweak exception handling in submit/utils to make it obvious that the utilities will not change the person an existing Email record is pointing to.
- Legacy-Id: 10787
Note: SVN reference [10780] has been migrated to Git commit c8c45e2213
Simplified the edit nominee form.
Replaced the merge nominee form with a request to the secretariat to merge Person records. Fixes#1847.
Added merging nominees to the secretariat's person merging script.
Restructured the person merging script to make it testable.
Updated some tests to match changes to the mailtriggers that hadn't made it to the fixtures.
- Legacy-Id: 10625
Provide information about who has suggested document replaced-by information in the notification email.
This commit fixes bug 1817,
- Legacy-Id: 10440
Note: SVN reference [10425] has been migrated to Git commit ba39077180
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
Allow Secretariat to submit drafts during blackout period. Fixes#1755.
- Legacy-Id: 9826
Note: SVN reference [9821] has been migrated to Git commit 007d7d22b4
Don't allow submission for drafts that have been replaced. Fixed#1619.
- Legacy-Id: 9815
Note: SVN reference [9796] has been migrated to Git commit 5b96bbc162
Copy the RFC Editor on new version messages for drafts in any stream if the RFC Editor is already working on the draft. Fixes bug #1700.
- Legacy-Id: 9623
Note: SVN reference [9619] has been migrated to Git commit 8218a59e6f
Anyone with a role in a group could preapprove drafts. Changed that to an explicit subset of roles. Fixes ticket 998.
- Legacy-Id: 7609
Note: SVN reference [7587] has been migrated to Git commit 5ba0a274933e61e242ebcbf72b2f37e27d1da60d
posts a draft without an access token from the email confirmation step
- Legacy-Id: 7600
Note: SVN reference [7421] has been migrated to Git commit c0e34dbcad
- Rename IdSubmissionDetail to Submission
- Rename various submission fields to correspond to the conventions in
the new schema
- Use a name model for the states instead of IdSubmissionStatus
- Drop the TempIdAuthor model which is based on splitting up author
names
- Add a simple textual SubmissionEvent for tracking events in the
lifetime of a submission
- Delete a bunch of obsolete fields
- Make sure all submission have an access key so we can depend on it
- Add state for when approval is needed from previous authors
A couple of migrations take care of transforming the
IdSubmissionDetail and moving data over/cleaning it up.
Also revamp the submit view code:
- Make form code do validation/cleaning only so there's a clear
separation of concerns
- Reduce uses of inheritance that made the code hard to follow -
forms now don't inherit from each other, views don't call each other
but instead reuse common utilities, templates share CSS/utilities
instead of relying on inheritance
- Move email rendering/sending to separate file
- Drop the in-grown terminology use (auto post vs. manual posts)
- Make the status page explain who is emailed for what purpose
- Add history table with recorded events
- Make the status page handle its post actions by itself instead of
duplicating most of the setup logic in a number of simple views
- Fix a couple of minor bugs and handle some edge cases better
- Expand tests with a couple of more cases
Possibly the submit tool could still use more help text added to
explain the process, ideally what's explained in the tool instructions
page should be inlined or self-evident.
- Legacy-Id: 6714
Include confirmation addresses in ID-Submission success notice.
Fixes issue #1097.
- Legacy-Id: 6653
Note: SVN reference [6638] has been migrated to Git commit 72885f4524
Populates RelatedDocument with relations for references for each type draft Document.
Replaces these reference relationships with updated copies on draft submission.
Note to deployer: This migration takes around 10 minutes to complete on a fast development laptop.
- Legacy-Id: 6572
(-r5194:5465 from branch/iola/shimfree). Copying relevant
commit messages here:
- Removed .related many to many relationship, it's not really useful
since we always have to restrict on the relationship type anyway,
instead add two helpers for doing the necessary queries (in both
directions)
- Added migration for transforming the .desc on the new_revision events
into something more akin to what is actually shown in the history page
- Added migration for blanking IESG notes that just consist of "RFC
XXXX", these have been superfluous for some time
- Grant stream chairs access to changing the stream on a draft
- Hacked the format_history_text filter to be less weird, using the same
formatting for snippets and full text, also link up legacy ballot set
events
- Moved the decoraters + utilities to new ietfauth/utils.py file
- Added simple helper to Email to identify invalid email addresses (from
legacy author entries)
- Used new new_revision .desc format for when drafts are submitted
- Improved the looks of the button class by adding extra contrast and a
linear gradient. Currently the gradient is only visible in fairly
recent browsers.
- Rewrote draft and RFC tabs in terms of the new schema, porting
write-up and history tabs as well
- Fixed two bugs in RFC Editor syncing: make sure documents we don't know
beforehand get a "draft" type and make sure individually submitted
drafts get the type="individ" group instead of NULL
- Made the CSS-styled button feel a bit nicer to use by flattening the
active state, also introduce some temporary styles until browsers
catch up with the standard syntax
- Added migrations for fixing 1) a dummy RFC entry, 2) three stand-alone
RFCs that didn't get their doc.type set, 3) a big bunch of historic
stand-alone RFCs that have doc.group=None - set these to the
individual submission "none" group for the time being so the view code
doesn't have to deal with a special case.
In some cases this is wrong since there actually was a WG associated
but unfortunately fixing them properly requires detective work
(probably parsing the RFCs) and in at least some cases recreating
historic WGs. In case someone ends up doing this, the documents to
check can still be found with
Document.objects.filter(name__startswith="rfc", group__type="individ")
since there are almost no new RFCs that didn't went through the I-D
process.
- Merged the I-D and RFC views by showing I-D information on RFCs too.
I-Ds that have been published as RFCs redirect to the RFC URL. Also
support alias URLs so e.g. /doc/bcpXXXX redirects to /doc/rfcXXXX.
- Fixed revision augmentation so events after RFC publication gets a "RFC"
designation
- Fixed a bug with tabs not using provided name but rather doc.name
- Displaying draft-iesg state rather than doc.friendly_state as IESG state,
also show a notice that the IESG state refers to post-RFC processing
if it does, like the old separate RFC page did
- Fixed the RFC number doc.note migration to catch combined "RFC XXX; BCP
XXX" notes too, use the opportunity to remove inserted HTML tags from
notes and rely on linebreaksbr filter instead (the other thing was a
left-over from the Perl days), update the various uses of the note to
reflect that
- Refactored slightly to make views_doc.py independent of other idrfc code
- Moveed idrfc/views_doc.py to doc/ with associated templates, replace the
somewhat fragile simple URL tests for views_doc.py with ordinary unit
tests. The new tests are still fairly basic but at least test more
than the URL tests did.
- Made sure RFC's (and BCP/STD/FYI) are stored as RFC123 instead of
RFC0123 in the alias table with a new migration and a change to the
RFC Editor sync, this in turn makes /doc/std1/ do the right thing
- Now /doc/std1/ works, we can actually do a local link in
urlize_ietf_docs rather than linking to the tools.ietf.org server
- Fixed history text formatter: sanitize HTML before adding linebreaks and
non-breaking spaces, this cuts the time to render a history page with
long comments in half
- Added a test crawler that walks through the crawlable part of the site,
reporting errors and slow pages
- Got rid of initial "No record" positions when showing old positions,
it's just noise
- Added a .select_related() to the document main tab to reduce the number
of DB queries, unfortunately it seems it doesn't really help with
Django 1.2.x due to a bug (Document inherits from DocumentInfo which
makes things a bit more complicated)
- Introduced a simple cache in doc.get_state so repeated reads don't
cause a DB query
- Cleaned up the search code in preparation for removal of the shim-layer;
use a static button and don't send extraneous GET parameters
- Removed dead code in several places
- Legacy-Id: 5830
Correct test of final shepherd update flag.
- Legacy-Id: 5014
Note: SVN reference [4999] has been migrated to Git commit aba18e8f38364ad17d451d0ed7e33aa01dfbeb52
of assigning them to individual submission, this is not a complete
overhaul but at least basic support so submission works and doesn't
say WG when it means RG.
- Legacy-Id: 4910
Added functions to BallotDocEvents to faciliate access to BallotPositionDocEvents, both for all positions, and current AD postions.
Updated the moderator package to use the Documents from _agenda_data.
Added a filter to assist with rendering the moderator package.
Fixed a bug where different functions in idrfc/views_ballot were using log_state_changed expecting different implementations (a cleanup task should reconcile the _three_ implementations in the codebase of that function).
- Legacy-Id: 4768
* Adds a new document type for conflict reviews, with a ballot for the IESG 5742 response to a review request
* Integrated the new document type into the iESG agenda views (including RSS feeds)* Removed the Edit and Add buttons from the document main view.
* Replaced Add with actions appropriate for the document type, such as "Begin IESG Processing" or "Begin IETF Conflict Review", and made most data directly editable on the document's main page, depending on access permissions.
* Removed a manual editing step that the secretariat had to perform when sending conflict review messages. The view now composes the message correctly given the stream.
* Added a pencil icon motif to differentiate fields that are editable.
* Generalized several views and helper functions to use Document instead of (e.g.) IdWrapper
* Generalized reading documents from the repository
* Added a way to get from IdWrapper to the underlying Document to facilitate migrating way from the Wrapper classes* Added many helpers to Document to assist with migrating off IdWrapper
* Minor fixes and other changes
* Fixes to document main view to avoid (silent) template failures.
* Began removing some of the code that is no longer reachable post-migration * Corrected the behavior of the undefer code and added test cases for it
* Improved initial population of notification lists and added the ability to regenerate the initial list
* Made the test code that scans for template coverage more robust
* Deployment notes:
* new setting: CONFLICT_REVIEW_PATH. The associated directory will need to be created
This branch fixes bugs #805, #744 and #812
- Legacy-Id: 4652
Note: SVN reference [4600] has been migrated to Git commit 798e7a50e7
New features (keep in mind that utils/draft.py can be run standalone
to do extraction of draft author data, too):
* The handling of author info formatted in columns causes problems
in the face of an author named for instance A. Author with the
company 'Al Author and Associates', causing breakage of email
addresses longer than 'Al Author and'. Tweaked the recognition
of column data to require multiple (not only one) space around
'and'.
* Added support for extraction of author affiliation.
* Tweaked the meaning of -t, --timestamp and added --notimestamp; and
made the default be to emit leading timestamps based ont the draft
file time.
* Added support for running author extraction on RFCs, by not bailing
out on not finding a draft name when RFC information is available.
* Added support for additional date formats and author name formats.
* Improved creation date extraction -- previously, the first supported
date format which was recognized on the first page of the draft would
be used, rather than the first date in a supported format. This could
cause errors if the Status of Memo section or Abstract contained a
date occurring at the start of a line.
* Tweaked the honorific regex to make things work better for the case
when the full name in the author's address section includes a first
name which isn't part of the first-page abbreviated name. Fixes
problems with draft-chiappa-lisp-introduction and similar.
* Added a special case for people who provide their email address as
'foo&cisco.com' instead of 'foo@cisco.com'. Bah.
* Added an alternative, more human-readable key-value-pair attribute
output mode with a '-a' switch.
* Tweaded the first-name regex to capture cases where the first name
is indicated with an alternate first letter: 'Y(J) Stein'. Fixes
problems with draft-anavi-tdmoip and similar.
- Legacy-Id: 4612
subpages for adding and canceling pre-approvals and a set of
migrations for replacing the old IdApprovedDetail with a slightly less
confusing Preapproval model.
- Legacy-Id: 4411
accidentally submitting a post twice (with Javascript) and modifying the
move-old-files-to-archive code to not move the files away if they
belong to the same submission as the one we're accepting (this
mitigates a concurrent post to at least not end up with a non-existing
draft).
- Legacy-Id: 4112
in the AD edit form, change search to define area = doc.group or
doc.group.parent (so don't take AD into account), plus a bunch of
small tweaks to make a document with an area set as group behave like
an individually submitted document, at least for the time being (they
are presented as "Individual in xyz area" on their document page)
- Legacy-Id: 3968
tables from legacy to new through Django (with minimal cleaning to
have the import go through) and removing migrations from submit and
liaisons as they interfere with the clean slate of the new database,
adjusting IPR model to add null=True on fields with nulls in the
database
- Legacy-Id: 3778