From 969af8eabf2c45f9d9ead4737f88ffb9bc8511a7 Mon Sep 17 00:00:00 2001 From: Robert Sparks Date: Sun, 5 Sep 2021 14:40:01 +0000 Subject: [PATCH] prepare changelog for next release - Legacy-Id: 19341 --- changelog | 6981 +++++++++++++++++++++++++++-------------------------- 1 file changed, 3527 insertions(+), 3454 deletions(-) diff --git a/changelog b/changelog index dc02a6e66..089433ee8 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,76 @@ +ietfdb (7.37.0) ietf; urgency=medium + + **Standalone proceedings, new group types, scheduler enhancements** + + This release simplifies the secretariat's management of meeting + proceedings, reducing the dependence of the proceedings on other + websites. It also adds IAB Administrative Support Groups, and the + IETF LLC Administration Groups. + + * Merged in [19295] [19296] from jennifer@painless-security.com: + Disable modification of past timeslots on official schedules. + Update create_dummy_meeting to set start date / time zone. + Fixes #3166. + + * Merged in [19297] from jennifer@painless-security.com: + Allow generated schedules to inherit from a base schedule. + Fixes #3170. + + * Merged in [19298] from rjsparks@nostrum.com: + Remove outdated mechanic for adding additional email addresses to crash + reports from several apps. + + * Merged in [19299] from rjsparks@nostrum.com: + Change the caching model for the nonwg list page. + + * Merged in [19300] from jennifer@painless-security.com: + Handle num=None case in proceedings() and specify meeting number in + test_proceedings_no_agenda. Fixes #3385. + + * Merged in [19301] [19303] [19304] from rjsparks@nostrum.com: + Include new conflict types in the session request notification email. + Fixes #3381. + + * Merged in [19305] from rjsparks@nostrum.com: + Show the constraint names on the meeting session requests page. + Fixes #3082. + + * Merged in [19306] from jennifer@painless-security.com: + Improve proceedings display with new title block, configurable host + logos, and additional PDF or URL materials. Fixes #3147. + + * Merged in [19307] from rjsparks@nostrum.com: + Add IAB Administrative Support Group group type. Add IAB groups to the + group menu. Clearly delineate group types in the group menu. + Fixes #3295 and #3296. + + * Merged in [19308] from jennifer@painless-security.com: + Include doc name in ballot popup anchors. Fixes #3351. + + * Merged in [19310] from rjsparks@nostrum.com: + Add IETF Administrative LLC groups. Fixes #3302. + + * Merged in [19311] from rjsparks@nostrum.com: + Adjust tests and forms to match changes to permissions made in through + the admin. These need to use the data rather than the code. See #3393. + + * Merged in [19312] from jennifer@painless-security.com: + Handle missing 'to' field in process_response_email. Relates to #3357. + + * Merged in [19313] from rjsparks@nostrum.com: + Show new group types on active groups page, but see #3393. + + * Merged in [19315] from rjsparks@nostrum.com: + Restore ADs ability to charter new groups. Fixes #3397. + + * Merged in [19316] from rjsparks@nostrum.com: + Adjust groupfeatures has_session_materials to match modern usage. + Adjusted proceedings and materials templates to show fewer unnecessary + duplicates. Fixes #2981 and #3387. + + -- Robert Sparks 04 Sep 2021 15:37:50 +0000 + + ietfdb (7.36.0) ietf; urgency=medium ** Bugfixes and minor enhancements ** @@ -11,43 +84,43 @@ ietfdb (7.36.0) ietf; urgency=medium to use GroupFeatures.groupman_authroles. * Merged in [19255] from rjsparks@nostrum.com: - Correct calculation of bofreq_responsible mailtrigger.Recipient to - return no addresses for documents that are not of type bofreq. Fixes - #3358. + Correct calculation of bofreq_responsible mailtrigger.Recipient to + return no addresses for documents that are not of type bofreq. Fixes + #3358. * Merged in [19260] from jennifer@painless-security.com: - Remove Meetecho icon from agenda items and change 'Meetecho video - stream' to 'Meetecho session' for remaining link. Fixes #3135, #3223. + Remove Meetecho icon from agenda items and change 'Meetecho video + stream' to 'Meetecho session' for remaining link. Fixes #3135, #3223. * Merged in [19262] [19263] [19264] [19265] from rjsparks@nostrum.com: Provide replacements for idnits2's internal use of tools.ietf.org: - - representation of obsoleted RFCs + - representation of obsoleted RFCs - rfc-status blob - - minimal per-document .status files + - minimal per-document .status files * Merged in [19266] from jennifer@painless-security.com: - Allow configuration of group conflict types used for each meeting Fixes - #2770. + Allow configuration of group conflict types used for each meeting Fixes + #2770. * Merged in [19267] from rjsparks@nostrum.com: - Improve the idnits2 state file. + Improve the idnits2 state file. * Merged in [19269] from rjsparks@nostrum.com: - Allow submit and expire_drafts to succeed when there is no 'next' IETF - meeting in the database. Fixes #3370. + Allow submit and expire_drafts to succeed when there is no 'next' IETF + meeting in the database. Fixes #3370. * Merged in [19270] from rjsparks@nostrum.com: - Bring the factory-boy and Faker dependencies forward through some minor - breaking changes. Stop using the deprecated fr_QC locale in Faker. + Bring the factory-boy and Faker dependencies forward through some minor + breaking changes. Stop using the deprecated fr_QC locale in Faker. * Merged in [19271] from rjsparks@nostrum.com: - Improve tests that look person names in responses. + Improve tests that look person names in responses. * Merged in [19272] from rjsparks@nostrum.com: - Improve the BOF request upload form validation. + Improve the BOF request upload form validation. * Merged in [19277] from rjsparks@nostrum.com: - Restrict group creation to the secretariat. + Restrict group creation to the secretariat. * Convert IETF111 Constraint objects to use new names @@ -59,46 +132,46 @@ ietfdb (7.35.0) ietf; urgency=medium ** BOF Request handling, process xml submissions with v3, markdown rendering ** * Merged in [19193] from rjsparks@nostrum.com: - Don't provide links to person pages that we know will 404. + Don't provide links to person pages that we know will 404. * Merged in [19194] from housley@vigilsec.com: - Properly sort the management items on the IETG telechat agenda. - Fixes #1374. + Properly sort the management items on the IETG telechat agenda. + Fixes #1374. * Merged in [19200] from housley@vigilsec.com: - Better explain ballot positions from former area dirctors. Fixes #3228. + Better explain ballot positions from former area dirctors. Fixes #3228. * Merged in [19208] from housley@vigilsec.com: - Provide previous ballot positions for both current and former ADs; add - test to cover this situation. + Provide previous ballot positions for both current and former ADs; add + test to cover this situation. * Merged in [19210] and [19211] from rjsparks@nostrum.com: - Move items from PLAN into Trac or to the notes directory. + Move items from PLAN into Trac or to the notes directory. * Merged in [19214] from rjsparks@nostrum.com: - Remove oic patch - 1.3.0 contains the fix. + Remove oic patch - 1.3.0 contains the fix. * Merged in [19215] and [19217] from rjsparks@nostrum.com: - quote a test parameter that should have been quoted all along. + quote a test parameter that should have been quoted all along. * Merged in [19224] from rjsparks@nostrum.com: - Guard a sort that gets a mix of integers and None. + Guard a sort that gets a mix of integers and None. * Merged in [19228] from rjsparks@nostrum.com: - Add BOF Requests to the datatracker. + Add BOF Requests to the datatracker. * Merged in [19238] from jennifer@painless-security.com: - Find AD conflicts using AD person pk instead of role pk. Fixes #3354. + Find AD conflicts using AD person pk instead of role pk. Fixes #3354. * Merged in [19240] from rjsparks@nostrum.com: - Remove tools-style agenda link. + Remove tools-style agenda link. * Merged in [19242] from jennifer@painless-security.com: - Run v2v3 converter internally when v2 XML is submitted. Fixes #3305. + Run v2v3 converter internally when v2 XML is submitted. Fixes #3305. * Merged in [19243] from rjsparks@nostrum.com: - Render markdown on the document main page for document materials. Fixes - #2927. + Render markdown on the document main page for document materials. Fixes + #2927. -- Robert Sparks 21 Jul 2021 17:45:00 +0000 @@ -112,30 +185,30 @@ ietfdb (7.34.0) ietf; urgency=medium 'ietf@ietf.org' and make field required. * Merged in [19164] from jennifer@painless-security.com: - Fix broken meeting materials button on upcoming meetings page. - Fixes #3278. + Fix broken meeting materials button on upcoming meetings page. + Fixes #3278. * Merged in [19166] from krathnayake@ietf.org: - Use INTERNET_ALL_DRAFTS_ARCHIVE_DIR serve all IDs. - Fixes #3308 and #3309. + Use INTERNET_ALL_DRAFTS_ARCHIVE_DIR serve all IDs. + Fixes #3308 and #3309. * Merged in [19168] from rjsparks@nostrum.com: - Revert the removal of the decoration of session with order_number made - in r19074. The attribute is used in the templated URLs associated with - Rooms (such as for the Meetecho session URL). + Revert the removal of the decoration of session with order_number made + in r19074. The attribute is used in the templated URLs associated with + Rooms (such as for the Meetecho session URL). * Merged in [19176] and [19177] from rjsparks@nostrum.com: - Use a cdn for the oidc profile photo url. + Use a cdn for the oidc profile photo url. * Merged in [19180] from rcross@amsl.com: - Fix Telechat app bug, draft with no ballot. + Fix Telechat app bug, draft with no ballot. * Merged in [19182] from rjsparks@nostrum.com: - Stop showing generated proceedings for older meetings that already had - official proceedings. Fixes #3322. + Stop showing generated proceedings for older meetings that already had + official proceedings. Fixes #3322. * Merged in [19183] from jennifer@painless-security.com: - Add 'Select Sessions' tab to agenda pages. + Add 'Select Sessions' tab to agenda pages. -- Robert Sparks 02 Jul 2021 14:28:34 +0000 @@ -213,17 +286,17 @@ ietfdb (7.32.0) ietf; urgency=high ** Allow volunteering for NomCom within the datatracker ** * Merged in [19095] from rjsparks@nostrum.com: - Handle bare numbers and rfc names with a space for the /doc/html view. - Fixes #1999. + Handle bare numbers and rfc names with a space for the /doc/html view. + Fixes #1999. * Merged in [19100] from rjsparks@nostrum.com: - Update bin/daily to adjust for the change in exposing the iana mirror. + Update bin/daily to adjust for the change in exposing the iana mirror. * Merged in [19101] from rcross@amsl.com: - Fix /api/v2/person/person to work with Robot apikey. + Fix /api/v2/person/person to work with Robot apikey. * Merged in [19104] from rjsparks@nostrum.com: - Allow people to volunteer for NomCom via the datatracker. + Allow people to volunteer for NomCom via the datatracker. -- Robert Sparks 11 Jun 2021 13:12:26 +0000 @@ -233,85 +306,85 @@ ietfdb (7.31.0) ietf; urgency=medium ** Codesprint 110.1, bugfixes ** * Merged in [18993] from housley@vigilsec.com: - Add aliases for RGs in irtf.org and IAB programs in iab.org. Fixes - #3271 + Add aliases for RGs in irtf.org and IAB programs in iab.org. Fixes + #3271 * Merged in [19022] from housley@vigilsec.com: - Add test for creation of RG Chairs in the irtg.org domain. + Add test for creation of RG Chairs in the irtg.org domain. * Many adjustments to point to the new svn/trac repository locations. * Merged in [19035] from rcross@amsl.com: - Change PERSON_API_KEY_VALUE for mail archive lookups. - Change /api/v2/person/person to ROBOT to prepare for switching from - personal api key to robot, mail-archive api key. Once in place, + Change PERSON_API_KEY_VALUE for mail archive lookups. + Change /api/v2/person/person to ROBOT to prepare for switching from + personal api key to robot, mail-archive api key. Once in place, generate new key for this endpoint and install. - * Tweaked results of r19035/r19059 to allow for a better transition + * Tweaked results of r19035/r19059 to allow for a better transition post release. * Merged in [19028] from jennifer@painless-security.com: - Accept 'None' when updating DocumentAuthor affiliation / country. + Accept 'None' when updating DocumentAuthor affiliation / country. * Merged in [19030] from mark@painless-security.com: First swipe at making past sessions unchangable for official schedules - This change locks down the schedule of any meeting that is fully in the - past. It leaves open sessions that have finished for meetings that have + This change locks down the schedule of any meeting that is fully in the + past. It leaves open sessions that have finished for meetings that have not yet finished. Addresses (partially) issue #3166. * Merged in [19033] from rjsparks@nostrum.com: - Add PersonalApiKeyEvent purge to bin/daily. + Add PersonalApiKeyEvent purge to bin/daily. * Merged in [19048] from housley@vigilsec.com: - Remove generate-wg-aliases and generate-draft-aliases scripts. They - were replaced with management commands. + Remove generate-wg-aliases and generate-draft-aliases scripts. They + were replaced with management commands. * Merged in [19052] from housley@vigilsec.com: - Allow IAB Programs to be listed in meeting request conflicts. Fixes - #3270. + Allow IAB Programs to be listed in meeting request conflicts. Fixes + #3270. * Merged in [19054] from rcross@amsl.com: - Fix error on Telechat doc detail page when conflict review doc has no - ballot. Fixes #3245. + Fix error on Telechat doc detail page when conflict review doc has no + ballot. Fixes #3245. * Merged in [19055] from rjsparks@nostrum.com: - Redirect to materials page for attempts to see proceedings for meetings - that do not yet have schedules. Fixes #3294. + Redirect to materials page for attempts to see proceedings for meetings + that do not yet have schedules. Fixes #3294. - * Merged in [19056], [19057], and [19058] from rjsparks@nostrum.com:\n + * Merged in [19056], [19057], and [19058] from rjsparks@nostrum.com:\n Captured the svn hooks used after moving the repository. Fixes #3297. * Merged in [19071] from mark@painless-security.com: - Update the mkdevbranch script for new Trac location, don't clobber + Update the mkdevbranch script for new Trac location, don't clobber existing paths - The script has been cleaned up, adjusted to avoid clobbering an SVN path - that already exists when running it for a single sprinter login, and run + The script has been cleaned up, adjusted to avoid clobbering an SVN path + that already exists when running it for a single sprinter login, and run with the new locations for the Trac system. - This is a decently huge rewrite of the script. It's pulled a lot of logic - into functions, excised the python code into its own file, etc. + This is a decently huge rewrite of the script. It's pulled a lot of logic + into functions, excised the python code into its own file, etc. * Merged in [19073] from jennifer@painless-security.com: - Handle groups without area when sorting unscheduled sessions in - schedule editor. Fixes #3173. + Handle groups without area when sorting unscheduled sessions in + schedule editor. Fixes #3173. * Merged in [19075] from jennifer@painless-security.com: - Clean up handling of non-WG groups on the group edit page; restrict - parent/child group relationships by type. Fixes #3253. + Clean up handling of non-WG groups on the group edit page; restrict + parent/child group relationships by type. Fixes #3253. * Merged in [19074] from kivinen@iki.fi: - Adds new filtering tags for sessions which have multiple sessions. - I.e., in addition to wg,area,type there is wg-sessa, wg-sessb or wg-sessc - etc on the tags, so now you can filter either all wg sessions or only - specific sessions. Also removes the unused session.order_number, but not - yet the session.order_in_meeting() function (which I think is unused too). + Adds new filtering tags for sessions which have multiple sessions. + I.e., in addition to wg,area,type there is wg-sessa, wg-sessb or wg-sessc + etc on the tags, so now you can filter either all wg sessions or only + specific sessions. Also removes the unused session.order_number, but not + yet the session.order_in_meeting() function (which I think is unused too). * Merged in [19081] from fenton@bluepopcorn.net: - Added IESG document state to review request information. Fixes #3235. + Added IESG document state to review request information. Fixes #3235. * Merged in [19083] from jennifer@painless-security.com: - Fix renamed field in group migrations 0043 and 0044. Fixes error in - r19075. + Fix renamed field in group migrations 0043 and 0044. Fixes error in + r19075. -- Robert Sparks 06 Jun 2021 14:56:59 +0000 @@ -348,23 +421,23 @@ ietfdb (7.29.0) ietf; urgency=medium ** RFC8989 eligibility rules, improved timezone support for upcoming meetings ** * Merged in [18958] from jennifer@painless-security.com: - Fix occasional failure in test_agenda_view_team_group_filter_toggle. + Fix occasional failure in test_agenda_view_team_group_filter_toggle. * Merged in [18960] from jennifer@painless-security.com: - Allow external resources to be set/suggested during submission process. - Fixes #3068. + Allow external resources to be set/suggested during submission process. + Fixes #3068. * Merged in [18969] from rjsparks@nostrum.com: - Correct javascript that toggles visibility of byme/forme discusses. - Fixes #3263. + Correct javascript that toggles visibility of byme/forme discusses. + Fixes #3263. * Merged in [18970] from jennifer@painless-security.com: - Add timezone selector to upcoming meetings page. Separate general - timezone handling from parts only relevant to main agenda page. Speed up - agenda timezone javascript tests. Fixes #3184. + Add timezone selector to upcoming meetings page. Separate general + timezone handling from parts only relevant to main agenda page. Speed up + agenda timezone javascript tests. Fixes #3184. * Merged in [18975] from rjsparks@nostrum.com: - Add RFC 8989 nomcom eligibility calculations. + Add RFC 8989 nomcom eligibility calculations. -- Robert Sparks 11 May 2021 16:27:43 +0000 @@ -450,7 +523,7 @@ ietfdb (7.28.0) ietf; urgency=medium -- Robert Sparks 15 Apr 2021 14:53:12 +0000 ietfdb (7.27.0) ietf; urgency=medium - + ** 110 Codesprint ** * Adjust several searchable fields to match a changed interface in @@ -494,31 +567,31 @@ ietfdb (7.26.0) ietf; urgency=medium **IESG 'Who has the action', bugfixes** - * Bump the required setuptools to at least the 51 releases to avoid + * Bump the required setuptools to at least the 51 releases to avoid issues with some python3.6 -mvenv installed setuptools. - * Enable two tests that were not running because of typos in the test + * Enable two tests that were not running because of typos in the test name. Thanks to Jennifer for spotting the typos. * Merged in [18821] from rjsparks@nostrum.com: - Add proper folding for static content in the DESCRIPTION in the - important-dates ics feed. Remove important-dates from the upcoming meetings - ics. + Add proper folding for static content in the DESCRIPTION in the + important-dates ics feed. Remove important-dates from the upcoming meetings + ics. - * Hold Unidecode before 1.2.0 for awhile before adjusting patch to match + * Hold Unidecode before 1.2.0 for awhile before adjusting patch to match changed __init__.py * Merged in [18828] from jennifer@painless-security.com: - Use Roles instead of dedicated model for liaison statement group - contacts. Fixes #3100. + Use Roles instead of dedicated model for liaison statement group + contacts. Fixes #3100. * Merged in [18829] from jennifer@painless-security.com: - Allow assignment of Person as 'action holder' for a Doc, plus - rudimentary automation of assignment. Fixes #3146. + Allow assignment of Person as 'action holder' for a Doc, plus + rudimentary automation of assignment. Fixes #3146. * Merged in [18833] from jennifer@painless-security.com: - Refactor reviewer queue policy handling of 'skip' setting. Fixes #3038. - + Refactor reviewer queue policy handling of 'skip' setting. Fixes #3038. + -- Robert Sparks 18 Feb 2021 16:57:27 +0000 @@ -569,114 +642,114 @@ ietfdb (7.24.0) ietf; urgency=medium **Bugfixes and minor features** - * Refactored the import_mailman_listinfo command to run faster (20s + * Refactored the import_mailman_listinfo command to run faster (20s instead of 30+m) and added time logging (for --verbosity 2) - * Upgraded the required versions of mypy and django-stubs to the latest + * Upgraded the required versions of mypy and django-stubs to the latest that support Django 2.2. Fixed some issues found by after the upgrades. * Fixed a test that was broken when run on December 1st. * Added some comment information to settings.py - * Related to issue #2186: The issue asked for changing review requests - from state 'assigned' back to state 'requested' if the last associated - assignment is withdrawn. However, the code to implement this makes the - change for all assignment states, and also when there has been no state + * Related to issue #2186: The issue asked for changing review requests + from state 'assigned' back to state 'requested' if the last associated + assignment is withdrawn. However, the code to implement this makes the + change for all assignment states, and also when there has been no state change. Changed to be more discerning. - * Make the order of addresses returned by gather_address_lists() + * Make the order of addresses returned by gather_address_lists() consistent rather than randomly varying from invocation to invocation. * Removed log noise when running in repair mode. * Added ordering to Session.constraints() to make page renderings stable. - * When doing test-crawling, ignore variations of the 'next=' query arg. + * When doing test-crawling, ignore variations of the 'next=' query arg. (The code ignores other query args if 'next' is given). - * It's very hard to distinguish the different constraint classes on the - meeting requests summary page. Added numbers 1) 2) 3) etc. to make that + * It's very hard to distinguish the different constraint classes on the + meeting requests summary page. Added numbers 1) 2) 3) etc. to make that easier. * Updated hold-for-merge and ready-for-merge lists * Merged in [18714] from rjsparks@nostrum.com: - Send email to new mailtrigger controlled destinations when iana expert - review state changes. Fixes #3121. + Send email to new mailtrigger controlled destinations when iana expert + review state changes. Fixes #3121. * Merged in [18718] from rjsparks@nostrum.com: - Allow program leads to request meetings. Fixes #3141. + Allow program leads to request meetings. Fixes #3141. - * Added a README about the custom font-datatracker font library, and how + * Added a README about the custom font-datatracker font library, and how to add glyphs to it. * Added sorting of agenda filter keywords to make page rendering stable. - * Added additional sorting of Session.constraints() return value to make + * Added additional sorting of Session.constraints() return value to make page rendering stable. - * Added sorting of sessions to make make the materials page rendering + * Added sorting of sessions to make make the materials page rendering stable. - * Removed a timezone-naive invisible HTML element that had been used for + * Removed a timezone-naive invisible HTML element that had been used for debugging. * Fixed some instances of invalid HTML. - * Updated the default settings to match document directories moved from + * Updated the default settings to match document directories moved from /a/www/ietf-ftp/ to /a/ietfdata/doc/ * Merged in [18719] from housley@vigilsec.com: - Automatically move the IESG document state when a ballot is issued, - prevent a writeup change or re-issue of ballot if the document is already - approved, and warn about issuing ballots before the IETF Last Call is - finished. Fixes #3119. + Automatically move the IESG document state when a ballot is issued, + prevent a writeup change or re-issue of ballot if the document is already + approved, and warn about issuing ballots before the IETF Last Call is + finished. Fixes #3119. * Merged in [18748] from rjsparks@nostrum.com: - Populate interim approved email correctly. Fixes #3150. + Populate interim approved email correctly. Fixes #3150. * Merged in [18753] from henrik@levkowetz.com: - Added test case setUp() and tearDown() code to create yang model test - directories for ApiSubmitTests. + Added test case setUp() and tearDown() code to create yang model test + directories for ApiSubmitTests. * Merged in [18723] from mrcullen42@gmail.com: - Fixes #3032: Only send expiration warnings for drafts with a 'draft' - state of 'active', to match the drafts that we will actually expire. + Fixes #3032: Only send expiration warnings for drafts with a 'draft' + state of 'active', to match the drafts that we will actually expire. * Copy both rjsparks and henrik on messages about merged branches. * Merged in [18724] from jennifer@painless-security.com: - Allow cancellation of individual sessions of multi-session interim - meeting. Fixes #2959. + Allow cancellation of individual sessions of multi-session interim + meeting. Fixes #2959. * Merged in [18729] from rcross@amsl.com: - Add argument 'days' to get_meeting() to allow specifying lag time + Add argument 'days' to get_meeting() to allow specifying lag time * Merged in [18736] from rjsparks@nostrum.com: - Fixup document that had no type. Remove dangling review document. Fixes - #3145. + Fixup document that had no type. Remove dangling review document. Fixes + #3145. * Merged in [18743] from rjsparks@nostrum.com: - Cleaning some pyflakes that made it into the last commit. + Cleaning some pyflakes that made it into the last commit. * Merged in [18744] from rjsparks@nostrum.com: - Cleaner title on the document history page when the document is an rfc - (or any other document where rev is empty). + Cleaner title on the document history page when the document is an rfc + (or any other document where rev is empty). * Don't allow mysqlclient 2.0.2 due to compilation issues. * Merged in [18751] from henrik@levkowetz.com: - Added a sort of author names for stability of some stats pages. + Added a sort of author names for stability of some stats pages. * Merged in [18752] from henrik@levkowetz.com: - Added a 'dumptime' entry to the JSON return from /api/version, in order - to be able to make sure that running 'test-crawl --diff' will use database - data from the same dump to avoid false page diff positives. + Added a 'dumptime' entry to the JSON return from /api/version, in order + to be able to make sure that running 'test-crawl --diff' will use database + data from the same dump to avoid false page diff positives. * Merged in [18765] from henrik@levkowetz.com: - Added 'De' as a surname particle, in addition to 'de' (for author Luca - De Cicco). + Added 'De' as a surname particle, in addition to 'de' (for author Luca + De Cicco). -- Robert Sparks 17 Dec 2020 15:42:58 +0000 @@ -687,9 +760,9 @@ ietfdb (7.23.0) ietf; urgency=medium * Added 'test/x-markdown' as accepted mime type for text file uploads. - * Fixed a recent regression in agenda.html which caused the 'now' context - variable to not be available when checking if a meeting session is in the - past or future, to know which recordings or live session links to show. + * Fixed a recent regression in agenda.html which caused the 'now' context + variable to not be available when checking if a meeting session is in the + past or future, to know which recordings or live session links to show. Also fixed a potential timezone issue with regards to this. * Updated the docker development image with a number of tweaks, including @@ -698,17 +771,17 @@ ietfdb (7.23.0) ietf; urgency=medium * Merged in a html typo fix from rcross@amsl.com. - * Added exception catching to the photo endpoint, for cases where + * Added exception catching to the photo endpoint, for cases where conversion fails (we just had one case of RGBA to JPEG didn't work). * Merged in [18698] from rjsparks@nostrum.com: - Add logging for times to save a document with history. + Add logging for times to save a document with history. * Merged in [18695] from peter@akayla.com: - Changed new email address button text. Fixes #3134. + Changed new email address button text. Fixes #3134. * Merged in [18701] from jennifer@painless-security.com: - Improve group 'about' link text on doc page. Fixes #3066. + Improve group 'about' link text on doc page. Fixes #3066. -- Henrik Levkowetz 17 Nov 2020 09:05:42 +0000 @@ -718,35 +791,35 @@ ietfdb (7.22.0) ietf; urgency=medium * Added a GroupHistory.ad_role() method to help with some template expansions. - * Modified the name and help text of the Person.plain field, to make the + * Modified the name and help text of the Person.plain field, to make the intended use clearer (to avoid cases of incorrect usage seen recently). - * Changed back to serve meeting materials locally as the default. There + * Changed back to serve meeting materials locally as the default. There could be more tweaks in a subsequent commit. - * Nomcom topic responses didn't save respondent because of a missing form + * Nomcom topic responses didn't save respondent because of a missing form creation parameter. Fixed. - * Added additional logging of submission steps, for submission timing - investigation. Should be reduced once cause of long response times has + * Added additional logging of submission steps, for submission timing + investigation. Should be reduced once cause of long response times has been found. - * Added *-chairs aliases for teams to the script that generates group + * Added *-chairs aliases for teams to the script that generates group *-chairs@ietf.org aliases for postfix * Merged in [18651] from jennifer@painless-security.com: - Retrieve session agenda, slides, and minutes each time agenda modal is - opened. Fixes #3050. + Retrieve session agenda, slides, and minutes each time agenda modal is + opened. Fixes #3050. - * Removed superfluous spaces within
 for materials.  Fixes issue 
+  * Removed superfluous spaces within 
 for materials.  Fixes issue
     #3124.
 
   * Merged in [18653] from jennifer@painless-security.com:
-    Retrieve session agenda materials by meeting/session instead of by 
-    assignment.  
+    Retrieve session agenda materials by meeting/session instead of by
+    assignment.
 
   * Merged in [18654] from jennifer@painless-security.com:
-    Do not require redundant meeting number for session materials view.  
+    Do not require redundant meeting number for session materials view.
 
   * Added matching indexes to a number of models with default ordering based
     on multiple keys, to speed up queries.
@@ -762,33 +835,33 @@ ietfdb (7.21.0) ietf; urgency=medium
   participated!  As usual, there were some very good contributions:
 
   * Merged in [18589] from rjsparks@nostrum.com:
-    Allow anyone to see the pending and awaiting announcement tabs on the 
-    upcoming meeting view. Fixes #2929. Partially addresses #3016.  
+    Allow anyone to see the pending and awaiting announcement tabs on the
+    upcoming meeting view. Fixes #2929. Partially addresses #3016.
 
   * Merged in [18590] from peter@akayla.com:
-    Added slide numbering reminder. Fixes issue #3041.  
+    Added slide numbering reminder. Fixes issue #3041.
 
   * Merged in [18591] from rcross@amsl.com:
-    Add more options to Group select field of Misc Session create. Fixes 
-    #3033.  
+    Add more options to Group select field of Misc Session create. Fixes
+    #3033.
 
-  * Refined the template used by the person-link template tag to do better 
+  * Refined the template used by the person-link template tag to do better
     for document authors without an email address.
 
   * Merged in [18601] from fenton@bluepopcorn.net:
-    Added NomCom membership history page. Fixes issue #3006. Branch  
+    Added NomCom membership history page. Fixes issue #3006. Branch
 
   The release also contains a number of bugfixes and features other than
   from the sprint:
 
-  * Fixed a bug in the charset handling of individual parts in multipart 
+  * Fixed a bug in the charset handling of individual parts in multipart
     email messages in ietf.nomcom.get_body()
 
-  * Restricted a log.assertion to only run for current documents (not 
-    DocHistory entries).  Fixed a buggy handling of document.group for historic 
+  * Restricted a log.assertion to only run for current documents (not
+    DocHistory entries).  Fixed a buggy handling of document.group for historic
     groups.
 
-  * Added better guards against passing empty data to the person profile 
+  * Added better guards against passing empty data to the person profile
     template.
 
   * Updated paths after directory moves on the production server
@@ -798,10 +871,10 @@ ietfdb (7.21.0) ietf; urgency=medium
   * Added timing information to the send_smtp() log entries.
 
   * Merged in [18616] from rjsparks@nostrum.com:
-    Email requesters when an interim moves into the announcement queue. 
-    Partially addresses #3016 and #3099.  
+    Email requesters when an interim moves into the announcement queue.
+    Partially addresses #3016 and #3099.
 
-  * Merged in branch ^/personal/jennifer/7.17.1.dev0 from 
+  * Merged in branch ^/personal/jennifer/7.17.1.dev0 from
     jennifer@painless-security.com:
     This adds support for the simpler show/hide filtering to the ical agenda
     views. It also significantly rearranges (and, I hope, improves the
@@ -811,7 +884,7 @@ ietfdb (7.21.0) ietf; urgency=medium
 
   * Merged in [18620], [18622], and [18627] from rjsparks@nostrum.com:
     Increased the length-limit on the notes field of the base IPR disclosure
-    form. Fixes #3104. 
+    form. Fixes #3104.
 
   * Disabled mail sending for the check_person_names_and_aliases management
     command, to avoid duplicate person email notifications.
@@ -826,24 +899,24 @@ ietfdb (7.20.0) ietf; urgency=medium
   **Bugfixes and minor features**
 
   * Merged in [18533] from rjsparks@nostrum.com:
-    Replaced review name collision resolution code with a decision to not 
-    save when it occurs. Fixes #3092.  
+    Replaced review name collision resolution code with a decision to not
+    save when it occurs. Fixes #3092.
 
   * Merged in [18550] from rjsparks@nostrum.com:
-    Use the id-archive wherever we had been using the id-repository. 
-    Fixes #3080.  
+    Use the id-archive wherever we had been using the id-repository.
+    Fixes #3080.
 
   * Fixed some grammar errors.
 
-  * Changed the cache-filling code for doc.get_state() to avoid a period 
-    where the cache is seen as valid but empty.  Addresses an issue where 
+  * Changed the cache-filling code for doc.get_state() to avoid a period
+    where the cache is seen as valid but empty.  Addresses an issue where
     documents occasionally appear to be in an unexpected state.
 
-  * Made the important-dates page honour the Meeting.show_important_dates 
+  * Made the important-dates page honour the Meeting.show_important_dates
     setting.
 
-  * Changed the length of the schedule name field from 16 to 64, to avoid 
-    running into lenght issues for schedule names auto-generated from person 
+  * Changed the length of the schedule name field from 16 to 64, to avoid
+    running into lenght issues for schedule names auto-generated from person
     name or email.
 
   * Changed the autogeneration of schedule names to use a slugified user
@@ -852,20 +925,20 @@ ietfdb (7.20.0) ietf; urgency=medium
     schedule names, and are less readable in the contexts where schedule names
     are used.
 
-  * Tweaked the verbose name of the Nomcom Topic Questionnaire's 'audience' 
+  * Tweaked the verbose name of the Nomcom Topic Questionnaire's 'audience'
     field, on request from the NomCom chair.
 
   * Tweaked the generation of .ics vtimezone entries to have a stable ordering
     in /meeting/upcoming.ics.  Fixes issue #3097.
 
-  * Added a UTF-8 language locale to docker-init.sh, in order to be able 
+  * Added a UTF-8 language locale to docker-init.sh, in order to be able
     some python packages that would fail to install under the default locale.
 
   * Tweaked the docker/copydb script to handle symlinked data directories.
 
-  * Changed a draft submission revision consistency check to look at 
-    Submission objects rather than SubmissionDocEvent objects in order to not 
-    fail incorrectly when there are prior cancelled uploads.  
+  * Changed a draft submission revision consistency check to look at
+    Submission objects rather than SubmissionDocEvent objects in order to not
+    fail incorrectly when there are prior cancelled uploads.
     Related to issue #2909.
 
   * Merged in [18587] from rcross@amsl.com:
@@ -875,7 +948,7 @@ ietfdb (7.20.0) ietf; urgency=medium
     primary email address instead of the name, in order to work correctly
     for different persons having the same name.
 
-  * Fixed a bug in the name_parts() function when dealing with names 
+  * Fixed a bug in the name_parts() function when dealing with names
     listing uppercased surname first (followed by given name).
 
   * Added a person name validation step to prevent names like 'anonymous'.
@@ -911,28 +984,28 @@ ietfdb (7.19.0) ietf; urgency=medium
   profile page in a number of places, but there are also a number of minor
   tweaks and fixes.  From the commit log:
 
-  * Added missing exception handling for one invocation of 
+  * Added missing exception handling for one invocation of
     parse_agenda_filter_params().
 
-  * Added Person.personextresource_set to the information returned in the 
+  * Added Person.personextresource_set to the information returned in the
     personal-information JSON blob (this is GDPR-related).
 
   * Fixed a test case bug that compared a py3 string with bytes.
 
   * Added a comment to explain the lack of skipIf() for a test class.
 
-  * Added a link to a user's personal profile page to the personal 
+  * Added a link to a user's personal profile page to the personal
     drop-down menu.  Addresses issue #3093.
 
   * Added a link to a user's personal profile page to the account info page,
     and moved the GDPR 'fine print' to the bottom of the page. Turned the
     'personal-info' dagger symbols into links to the fine print. Added a
-    dagger to the 'External Resources' section. 
+    dagger to the 'External Resources' section.
     Partially related to issue #3093.
 
   * Added RFC and active-drafts counts to the personal profile page.
 
-  * Added listing of author names, with links to the individual profile 
+  * Added listing of author names, with links to the individual profile
     pages, to Draft and RFC status pages.  Related to issue #3093.
 
   * Fixed a Py3 str/bytes issue in the feedback_email handler.
@@ -948,9 +1021,9 @@ ietfdb (7.18.0) ietf; urgency=medium
   **Reimplemented IETF agenda page customisation**
 
   * Merged in the agenda filtering improvements from
-    jennifer@painless-security.com.  This completely reworks the filtering of 
-    the IETF agenda, in order to not collide with page navigation and clean up 
-    a number of edge cases.  It also reinstates the same kind of filtering for 
+    jennifer@painless-security.com.  This completely reworks the filtering of
+    the IETF agenda, in order to not collide with page navigation and clean up
+    a number of edge cases.  It also reinstates the same kind of filtering for
     the upcoming meetings page.
 
  -- Henrik Levkowetz   01 Oct 2020 21:17:36 +0000
@@ -961,36 +1034,36 @@ ietfdb (7.17.1) ietf; urgency=medium
   This is a bugfix release to clear the slate before merging in the updated
   IETF meeting agenda customization work.
 
-  * Changed the format of email addresses added to the document 
+  * Changed the format of email addresses added to the document
     notifications filed when the document shepherd is set.  Fixes issue #3079.
 
   * Added manually built UTC.ics and Etc/UTC.ics to the timezone .ics files
 
-  * Added a context processor to make settings generally available in page 
-    templates.  Split the SECRETARIAT_TICKET_EMAIL setting into 
-    SECRETARIAT_ACTION_EMAIL and SECRETARIAT_INFO_EMAIL, with different 
-    addresses.  Updated places with hardcoded ietf-action@ietf.org addresses to 
-    use the settings value, and updated some places to use ietf-infor@ietf.org 
+  * Added a context processor to make settings generally available in page
+    templates.  Split the SECRETARIAT_TICKET_EMAIL setting into
+    SECRETARIAT_ACTION_EMAIL and SECRETARIAT_INFO_EMAIL, with different
+    addresses.  Updated places with hardcoded ietf-action@ietf.org addresses to
+    use the settings value, and updated some places to use ietf-infor@ietf.org
     instead of the ietf-action address.  Fixes issue #3081.
 
-  * Updated log.assertion() to provide an exception object (under Py3, it 
-    seems that logging.Logger instances ignore the traceback if there isn't 
-    also an exception object).  Added a check for unset draft-iesg state to 
+  * Updated log.assertion() to provide an exception object (under Py3, it
+    seems that logging.Logger instances ignore the traceback if there isn't
+    also an exception object).  Added a check for unset draft-iesg state to
     Document.set_state().
 
-  * Updated a middleware function to use the correct Py3 idiom to access 
+  * Updated a middleware function to use the correct Py3 idiom to access
     exception arguments.
 
   * Merged in [18466] from jennifer@painless-security.com:
-    Cancel multi-session meetings correctly. Fixes #2958.  
+    Cancel multi-session meetings correctly. Fixes #2958.
 
   * Merged in [18502] from rjsparks@nostrum.com:
-    Create a yangcatalog support group and populate its initial roles.  
+    Create a yangcatalog support group and populate its initial roles.
 
   * Merged in [18508] from rjsparks@nostrum.com:
-    Refine day edges on weekview. Fixes #3071.  
+    Refine day edges on weekview. Fixes #3071.
 
-  * Added a migration to create missing DocAlias instances (and remove some 
+  * Added a migration to create missing DocAlias instances (and remove some
     bad ones).
 
   * Fixed a couple of pyflakes issues.
@@ -1000,7 +1073,7 @@ ietfdb (7.17.1) ietf; urgency=medium
   * Merged in ^/personal/rjs/fixreviews_7.17.1.dev0:
     Repair migration for disconnected and confused reviews.
 
-  * Changed the template for /meeting/upcoming.ics to not produce floating 
+  * Changed the template for /meeting/upcoming.ics to not produce floating
     times for meetings with UTC timezone.  Fixes issue #3074.
 
  -- Henrik Levkowetz   28 Sep 2020 20:02:53 +0000
@@ -1010,8 +1083,8 @@ ietfdb (7.17.0) ietf; urgency=medium
 
   **Photo URL support for OpenID profiles**
 
-  * Added an assertion to catch an unexpected document state (no IESG-state 
-    set).  Updated the log.assertion() function to accept a "note" argument, 
+  * Added an assertion to catch an unexpected document state (no IESG-state
+    set).  Updated the log.assertion() function to accept a "note" argument,
     for more informative assertion messages.
 
   * Fixed a bad membership test.
@@ -1033,7 +1106,7 @@ ietfdb (7.17.0) ietf; urgency=medium
 
   * Added a datatracker version endpoint /api/version.  Fixes issue #3077.
 
-  * Added documentation of the OpenID Connect and version endpoints to 
+  * Added documentation of the OpenID Connect and version endpoints to
     /api/.  Added some tests.
 
  -- Henrik Levkowetz   13 Sep 2020 12:33:13 +0000
@@ -1066,46 +1139,46 @@ ietfdb (7.16.0) ietf; urgency=medium
 
 ietfdb (7.15.1) ietf; urgency=medium
 
-  * Fixed an issue in the auth48 state_alert_badge() template filter, which 
+  * Fixed an issue in the auth48 state_alert_badge() template filter, which
     could arise for a document where a get_state() call returns None.
 
-  * Added exception catching around an urlreverse that might fail.  
-    (Enumerating valid group types will also work, but can get out of sync, so 
+  * Added exception catching around an urlreverse that might fail.
+    (Enumerating valid group types will also work, but can get out of sync, so
     this is more DRY).
 
-  * Renamed the AUTH48 state_alert_badge() filter to auth48_alert_badge(), 
+  * Renamed the AUTH48 state_alert_badge() filter to auth48_alert_badge(),
     as the filter is specific to auth48, not generic.
 
-  * Added an xml_version field to Submission objects, to capture the schema 
+  * Added an xml_version field to Submission objects, to capture the schema
     version of submitted XML files (if any).  Related to issue #3067.
 
-  * Added links to v3 HTML output for v3 draft submissions. 
+  * Added links to v3 HTML output for v3 draft submissions.
     Fixes issue #3067.
 
-  * Adjusted the horizontal placement of [New] labels in search results, 
+  * Adjusted the horizontal placement of [New] labels in search results,
     aligning them on a vertical line for a neater look.
 
-  * Updated the bluesheet submission API tests slightly, to verify correct 
+  * Updated the bluesheet submission API tests slightly, to verify correct
     handling of bluesheet updates.
 
   * Merged in [18373] from mark@painless-security.com:
-    Filter out reviewers who have rejected reviewing this document in the 
-    past from the list of suggested reviewers.  Fixes #2996.  
+    Filter out reviewers who have rejected reviewing this document in the
+    past from the list of suggested reviewers.  Fixes #2996.
 
   * Merged in [18378] from rjsparks@nostrum.com:
-    Improved the classification of some github related external resources. 
-    Tightened validation of new resource values.  
+    Improved the classification of some github related external resources.
+    Tightened validation of new resource values.
 
   * Added an admin page search field and tweaked the list display for the
     DocAlias admin page.
 
   * Merged in [18103] from olau@iola.dk:
     Prefetch a couple of things in the agenda view to reduce the number of
-    queries for IETF 106 from about 3800 to about 235. 
+    queries for IETF 106 from about 3800 to about 235.
 
   * Merged in [18414] from olau@iola.dk:
     Compute session order from available data instead of going through the
-    database again (saves ~2800 queries on the IETF 106 agenda page) 
+    database again (saves ~2800 queries on the IETF 106 agenda page)
 
   * Merged in [18425] from olau@iola.dk:
     Made the IPR search form initialize the state field upon form
@@ -1114,13 +1187,13 @@ ietfdb (7.15.1) ietf; urgency=medium
     the live environment, but it's a confusing practice, and when running
     the tests sometimes a bug seems to throw Django off and the error is
     then shadowed by Django crashing when trying to access the
-    (non-existing) database. 
+    (non-existing) database.
 
   * Merged in [18445] from rjsparks@nostrum.com:
-    Provided a management command to inform github backups.  
+    Provided a management command to inform github backups.
 
   * Merged in [18446] from rcross@amsl.com:
-    Removed a reference to old style exception attribute 'message'.  
+    Removed a reference to old style exception attribute 'message'.
 
  -- Henrik Levkowetz   02 Sep 2020 20:54:59 +0000
 
@@ -1129,7 +1202,7 @@ ietfdb (7.15.0) ietf; urgency=medium
 
   **IETF Agenda page improvements for small devices, bugfixes**
 
-  * Updated the instructions for how to expand a vocabulary v3 file to 
+  * Updated the instructions for how to expand a vocabulary v3 file to
     standalone (by using --expand with xml2rfc)
 
   * Updated the IETF meeting agenda rendering so as to show the session links
@@ -1141,24 +1214,24 @@ ietfdb (7.15.0) ietf; urgency=medium
     less padding at the sides of pages on narrow devices.
 
   * Merged in [18326] from lars@netapp.com:
-    Updated bootstrap to 3.4.1 
+    Updated bootstrap to 3.4.1
 
   * Merged in [18357] from rjsparks@nostrum.com:
     Show a link to a drafts group page on the draft info page for all group
-    types when the draft has a group. Fixes #3061.  
+    types when the draft has a group. Fixes #3061.
 
-  * Added a patch for tastypie under django 2.2, to catch field error 
+  * Added a patch for tastypie under django 2.2, to catch field error
     exceptions that were handled differently under earlier django versions.
 
-  * Changed the maybe_patch_libraries() check action to emit 'patched now, 
-    restart needed' errors in test or development, but not in production, where 
+  * Changed the maybe_patch_libraries() check action to emit 'patched now,
+    restart needed' errors in test or development, but not in production, where
     we don't care if the patches were applied earlier or just now.
 
-  * Changed the week_view() function to calculate a 
-    first_regular_session_time also when the meeting has not been populated 
+  * Changed the week_view() function to calculate a
+    first_regular_session_time also when the meeting has not been populated
     with any sessions, by using the meeting.date as a proxy value.
 
-  * Fixed an issue that could prevent error messages from docutils from 
+  * Fixed an issue that could prevent error messages from docutils from
     propagating to the end user when editing RST templates.
 
   * Made a template filter more robust when given unexpected input.
@@ -1166,20 +1239,20 @@ ietfdb (7.15.0) ietf; urgency=medium
   * Fixed an issue with the generated tag and target URL for versioned bibxml
     entries under /doc/bibxml3 for drafts that have been published as RFC.
 
-  * Added html.escape() in a test case in order to correctly handle 
+  * Added html.escape() in a test case in order to correctly handle
     affiliation names with ampersands.
 
   * Merged in [18371] from mark@painless-security.com:
     Track slide submissions even after acceptance or rejection.
-    Fixes issue #2835.   
+    Fixes issue #2835.
 
-  * Fixed an issue with the target URL for versioned bibxml entries under 
+  * Fixed an issue with the target URL for versioned bibxml entries under
     /doc/bibxml3 for drafts that have been published as RFC.
 
-  * Changed the nomcom template editing forms to use a monospaced font for 
+  * Changed the nomcom template editing forms to use a monospaced font for
     the template text (recommended for RST templates).
 
-  * Added a link to the group page from the year label on the nomcom index 
+  * Added a link to the group page from the year label on the nomcom index
     page.
 
  -- Henrik Levkowetz   27 Aug 2020 21:38:04 +0000
@@ -1192,8 +1265,8 @@ ietfdb (7.14.1) ietf; urgency=medium
   * Code cleanup: removed an unused model and updated an initial migration to
     reflect actual database tables present.
 
-  * Changed the API to not export saved Message instances (they can contain 
-    information such as draft confirmation codes and password reset codes that 
+  * Changed the API to not export saved Message instances (they can contain
+    information such as draft confirmation codes and password reset codes that
     should not be generally visible).
 
   * Added a 'meeting' list filter to the admin page for ImportantDate.
@@ -1201,12 +1274,12 @@ ietfdb (7.14.1) ietf; urgency=medium
   * Changed some settings for non-production modes to permit login to the dev.
     server from recent browsers (such as Chrome 84).
 
-  * Changed the default LOGGING settings to avoid logging to syslog, as it may 
+  * Changed the default LOGGING settings to avoid logging to syslog, as it may
     not be available in all enviroments.
 
-  * Made the patch utility return information to distinguish already 
-    patched files from successful patch application, and modified our checks 
-    extensions to signal when patches have been applied and a ccommand needs to 
+  * Made the patch utility return information to distinguish already
+    patched files from successful patch application, and modified our checks
+    extensions to signal when patches have been applied and a ccommand needs to
     be re-run.
 
   * Removed a misnamed patch file.
@@ -1218,13 +1291,13 @@ ietfdb (7.14.0) ietf; urgency=medium
 
   **Updated new schedule editor, cookie fixes, and yangdoctor notifications**
 
-  * Merged in /branch/iola/meeting-improvement-r17835@18048.  This provides 
-    a new snapshot of the new schedule editor work, with improved edit page 
+  * Merged in /branch/iola/meeting-improvement-r17835@18048.  This provides
+    a new snapshot of the new schedule editor work, with improved edit page
     layout and details.
 
-  * Added a patch to make django use the same settings when deleting a 
-    cookie as when setting it.  In particular, it sets Secure if 
-    settings.SESSION_COOKIE_SECURE, which is needed if samesite='None'. Fixes 
+  * Added a patch to make django use the same settings when deleting a
+    cookie as when setting it.  In particular, it sets Secure if
+    settings.SESSION_COOKIE_SECURE, which is needed if samesite='None'. Fixes
     issue #3056
 
   * Use the same 'Secure' and 'SameSite' cookie settings for application
@@ -1232,41 +1305,41 @@ ietfdb (7.14.0) ietf; urgency=medium
     order to play well with recent changes in browser cookie handling.
 
   * Merged in [18324] from rjsparks@nostrum.com:
-    Send extra mail to yangdoctors chairs when a draft with yang checks 
-    goes into IETF LC. Fixes #2419.  
+    Send extra mail to yangdoctors chairs when a draft with yang checks
+    goes into IETF LC. Fixes #2419.
 
  -- Henrik Levkowetz   13 Aug 2020 12:22:03 +0000
 
 
 ietfdb (7.13.0) ietf; urgency=medium
 
-  **Enhancements to upload pages and APIs, new Research Area Groups, better 
+  **Enhancements to upload pages and APIs, new Research Area Groups, better
   403 pages, bugfixes.**
 
-  * Changed a list of group types in all_meeting_sessions_for_group() to 
+  * Changed a list of group types in all_meeting_sessions_for_group() to
     instead use group.features.
 
-  * Fixed a bug in determining if the agenda page being rendered belongs to 
+  * Fixed a bug in determining if the agenda page being rendered belongs to
     the current meeting (which affects caching time).
 
   * Merged in [18298] from rjsparks@nostrum.com:
-    Converted IRTF area groups into their own group type rather than 
-    attempting to overload AG. Fixes #3027.  
+    Converted IRTF area groups into their own group type rather than
+    attempting to overload AG. Fixes #3027.
 
-  * Improved the handling of the meeting materials page if unknown upload 
+  * Improved the handling of the meeting materials page if unknown upload
     names without revision numbers are given.
 
-  * Provided a local environment path for pyang, which is installed with pip 
+  * Provided a local environment path for pyang, which is installed with pip
     and may not be available globally.  Fixes issue #3018.
 
   * Simplified some recent code a little bit.
 
   * Added a custom 403 page, extending the datatracker base.html template.
 
-  * Added a utility function around the PermissionDenied exception, in 
+  * Added a utility function around the PermissionDenied exception, in
     order to easily be able to provide relevant information to the 403 template.
 
-  * Based on feedback from the Secretariat, changed the 404 for IPR 
+  * Based on feedback from the Secretariat, changed the 404 for IPR
     declarations in other states than 'posted' to a 403 with a login link.
 
   * Added a missing 404 response
@@ -1283,7 +1356,7 @@ ietfdb (7.13.0) ietf; urgency=medium
   * Changed mm_hourly to run the mailman cronjobs under Py27 until mailman has
     been upgraded to version 3.x (running under Py3).
 
-  * Changed to using a template to generate bluesheets, and added a count of 
+  * Changed to using a template to generate bluesheets, and added a count of
     participants at the top.
 
  -- Henrik Levkowetz   07 Aug 2020 15:27:42 +0000
@@ -1294,37 +1367,37 @@ ietfdb (7.12.0) ietf; urgency=medium
   **IETF 108 Code Sprint release 2, bugfixes and tweaks**
 
   This release contains the second bunch of datatracker bug fixes and
-  enhancements from the IETF-108 Virtual Code Sprint.  Again, there has 
+  enhancements from the IETF-108 Virtual Code Sprint.  Again, there has
   been a lot of good contributions :-)
 
   Thanks to everyone who contributed!
 
   * Changed the error logging propagation setting for some errors.
 
-  * Added some normalisation of the reg_type and ticket_type entries in the 
+  * Added some normalisation of the reg_type and ticket_type entries in the
     OIDC registration scope.
 
   * Merged in [18272] from fenton@bluepopcorn.net:
-    This is an interim change to prevent chairs from editing milestone 
-    description.  Fixes #3036.  
+    This is an interim change to prevent chairs from editing milestone
+    description.  Fixes #3036.
 
   * Merged in [18275] from fenton@bluepopcorn.net:
-    Added programs to concluded groups page. Fixes #3023.  
+    Added programs to concluded groups page. Fixes #3023.
 
   * Merged in [18276] from housley@vigilsec.com:
-    Send email to AD when an IETF Last Call expires that contains downrefs. 
-    Fixes #2472 
+    Send email to AD when an IETF Last Call expires that contains downrefs.
+    Fixes #2472
 
   * Merged in [18282] from mark@painless-security.com:
     Added IETF sessions to the types that emit parent group name in the session
     assignment slug, so that the parent group name will be present on the HTML
     row ID in the agenda for IAB sessions.  Also update the wording on special
-    sessions.  Fixes #3034.  
+    sessions.  Fixes #3034.
 
   * Merged in [18296], [18297], and [18299] from rjsparks@nostrum.com:
-    Show RSOC from the Group menu.  Fixes #3024.  
+    Show RSOC from the Group menu.  Fixes #3024.
 
-  * Added 'text/x-markdown' as an accepted MIME type for agenda and minutes 
+  * Added 'text/x-markdown' as an accepted MIME type for agenda and minutes
     uploads.
 
  -- Henrik Levkowetz   29 Jul 2020 20:52:06 +0000
@@ -1338,31 +1411,31 @@ ietfdb (7.11.0) ietf; urgency=medium
   important fixes; additional code sprint contributions will come in
   another release.
 
-  * Changed the URL to use for meeting attendees information in the new 
+  * Changed the URL to use for meeting attendees information in the new
     registration system.
 
   * Merged in [18250] from jennifer@painless-security.com:
-    Reject or require manual processing for submissions when inconsistent 
-    SubmissionDocEvent revs exist. Fixes #2909.  
+    Reject or require manual processing for submissions when inconsistent
+    SubmissionDocEvent revs exist. Fixes #2909.
 
-  * Tweaked the messages from bin/rfc-editor-index-updates to be slightly 
+  * Tweaked the messages from bin/rfc-editor-index-updates to be slightly
     more informative.
 
-  * Refined the code in ietf.sync.rfceditor that deals with errata to 
+  * Refined the code in ietf.sync.rfceditor that deals with errata to
     distinguish between rejected errata and other errata.
 
   * Merged in [18270] from valery@smyslov.net:
-    Added display of verified errata in red, not verified in orange in 
+    Added display of verified errata in red, not verified in orange in
     document lists.  Fixes issue #2997.
 
   * Merged in [18271] from valery@smyslov.net:
     Improved support of CygWin environment for the docker image.
 
-  * Added a few extra modules (in particular enscript and ghostscript, 
-    which is needed for the agenda pdf materials) to the docker/install-extras 
+  * Added a few extra modules (in particular enscript and ghostscript,
+    which is needed for the agenda pdf materials) to the docker/install-extras
     script.
 
-  * Added a workaround to display text/markdown as text in agenda popups.  
+  * Added a workaround to display text/markdown as text in agenda popups.
     More work is needed to convert markdown to HTML for this view.
     See issue #3039.
 
@@ -1371,8 +1444,8 @@ ietfdb (7.11.0) ietf; urgency=medium
     same person.
 
   * Merged in [18285] from rjsparks@nostrum.com:
-    Better handle materials with names that end with a string that looks 
-    like a version (-nn). May address #3040.  
+    Better handle materials with names that end with a string that looks
+    like a version (-nn). May address #3040.
 
  -- Henrik Levkowetz   28 Jul 2020 14:52:35 +0000
 
@@ -1385,35 +1458,35 @@ ietfdb (7.10.1) ietf; urgency=medium
 
   * Added a check for inallowable characters in slide titles at upload time.
 
-  * Added 'gather.town' to the domains recognized as conference service 
+  * Added 'gather.town' to the domains recognized as conference service
     domains.
 
-  * Swapped out the conference URL icon from 'fa-phone' to 'fd-users', and 
+  * Swapped out the conference URL icon from 'fa-phone' to 'fd-users', and
     changed the tooltip to 'Online conference'.
 
-  * Added a setting for an explicit path to yanglint, in order to be able 
+  * Added a setting for an explicit path to yanglint, in order to be able
     to detect its presence or absence.
 
-  * Reformulated a filter step in docker/updatedb to use a more commonly 
+  * Reformulated a filter step in docker/updatedb to use a more commonly
     available command.
 
-  * Added yang/catalogmod to the yang module directories created by 
+  * Added yang/catalogmod to the yang module directories created by
     docker-init.sh.
 
-  * Fixed a problem with writing to /dev/stderr in some environments, in 
+  * Fixed a problem with writing to /dev/stderr in some environments, in
     docker/updatedb.
 
   * Added download progress information (where available) to docker/setupdb.
 
-  * Updated Dockerfile to use latest Devuan release (beowulf) as base 
+  * Updated Dockerfile to use latest Devuan release (beowulf) as base
     image.  Added syslog support.
 
   * Tweaked the handling of yanglint settings.
 
-  * Made test parts that depends on yanglint conditional.  Added some 
+  * Made test parts that depends on yanglint conditional.  Added some
     informational messages about tests skipped due to missing resources.
 
-  * Removed pip install into old virtualenv location from Dockerfile, and 
+  * Removed pip install into old virtualenv location from Dockerfile, and
     fixed an rsyslog config issue.
 
   * Made the docker-container syslog startup less noisy.  Refined the
@@ -1423,8 +1496,8 @@ ietfdb (7.10.1) ietf; urgency=medium
   * Updated font-datatracker, removing the fd-users and adding the fd-group
     glyph.
 
-  * Added individual ical links for meeting sessions on the agenda, and 
-    changed the phone handset icon to a group icon for the various online 
+  * Added individual ical links for meeting sessions on the agenda, and
+    changed the phone handset icon to a group icon for the various online
     conference links.
 
   * Merged in [18246] from rcross@amsl.com:
@@ -1448,7 +1521,7 @@ ietfdb (7.10.0) ietf; urgency=medium
     remain to convert to the new scheme, as they have come in with other
     merged-in work while the ExtResource work was in transit.
 
-  * Corrected and improved some language in the OIDC userinfo 'Request for 
+  * Corrected and improved some language in the OIDC userinfo 'Request for
     Permission' view.
 
   * Provided the new session attribute 'order_number' to the template
@@ -1456,41 +1529,41 @@ ietfdb (7.10.0) ietf; urgency=medium
     in order to implement a requested change of URL format.
 
   * Merged in [18198] from rjsparks@nostrum.com:
-    Return the right reference for interim meeting materials.  
+    Return the right reference for interim meeting materials.
 
   * Merged in [18185] from rjsparks@nostrum.com:
-    Only show sessions from the traditional week in the 'week view' used 
-    for customized calendars. Partially addresses #3022 until a more general 
-    solution can be constructed. 
+    Only show sessions from the traditional week in the 'week view' used
+    for customized calendars. Partially addresses #3022 until a more general
+    solution can be constructed.
 
   * Merged in [18186] from rjsparks@nostrum.com:
-    Let the weekview in the customized agenda show more than just the 
-    traditional meeting 'week'. Fixes #3022.  
+    Let the weekview in the customized agenda show more than just the
+    traditional meeting 'week'. Fixes #3022.
 
   * Merged in [18189] from jennifer@painless-security.com:
-    Make docs in Auth48 state visually distinct. Fixes #2925.  
+    Make docs in Auth48 state visually distinct. Fixes #2925.
 
-  * Fixed an issue for Session.order_in_meeting() if the session was 
+  * Fixed an issue for Session.order_in_meeting() if the session was
     cancelled.
 
   * Merged in [18201] from rcross@amsl.com: Fixed an issue with the
     Secretariat Telechat app where the left pane would have missing sections.
 
   * Merged in [18202] from rjsparks@nostrum.com:
-    Serve older ietf meetings locally. Add tests to verify we have not set 
-    up a redirect to self.  
+    Serve older ietf meetings locally. Add tests to verify we have not set
+    up a redirect to self.
 
   * Merged in [18204] from rjsparks@nostrum.com:
-    Recent past meetings are shown as past meetings, so sort them like past 
-    meetings. Fixes side-comment in #3101.  
+    Recent past meetings are shown as past meetings, so sort them like past
+    meetings. Fixes side-comment in #3101.
 
   * Merged in [18205] from rjsparks@nostrum.com:
-    Added rudimentary validation to the admin group form acronym field. 
-    Partially addresses #3026.  
+    Added rudimentary validation to the admin group form acronym field.
+    Partially addresses #3026.
 
   * Merged in [18206] from rjsparks@nostrum.com:
-    Allowed modelforms, particularly the admin, to treat joint_with_groups as 
-    a optional field. Fixes #3029.  
+    Allowed modelforms, particularly the admin, to treat joint_with_groups as
+    a optional field. Fixes #3029.
 
  -- Henrik Levkowetz   22 Jul 2020 20:42:06 +0000
 
@@ -1511,24 +1584,24 @@ ietfdb (7.9.0) ietf; urgency=medium
     is unacceptable.
 
   * Merged in [18131] from rjsparks@nostrum.com:
-    Add configuration and mechanisms to allow meeting materials to be 
-    served via a CDN. Fixes #2935.  
+    Add configuration and mechanisms to allow meeting materials to be
+    served via a CDN. Fixes #2935.
 
   * Merged in [18157] from jennifer@painless-security.com:
-    Store Auth48 URL as DocumentURL and display in RFC-Editor state. 
-    Migrates old data when possible. Alternative to 17563. Fixes #2722.  
+    Store Auth48 URL as DocumentURL and display in RFC-Editor state.
+    Migrates old data when possible. Alternative to 17563. Fixes #2722.
 
   * Fixed an UnboundLocalError issue.
 
   * Merged in [18159] from jennifer@painless-security.com:
-    Notify secretariat when conflict review/status change doc enters an 
-    announcement pending state. Fixes #2962.  
+    Notify secretariat when conflict review/status change doc enters an
+    announcement pending state. Fixes #2962.
 
   * Tweaked the agenda HTML template, adding additional conditions
     (agenda-note, remote instructions) that will make session-related links
     show.
 
-  * Tweaked the list of days in secr session edit forms to allow setting 
+  * Tweaked the list of days in secr session edit forms to allow setting
     the date to a day before the start of the meeting, necessary for IETF 108.
 
   * Renamed some settings so as to start with the relevant app name
@@ -1543,7 +1616,7 @@ ietfdb (7.9.0) ietf; urgency=medium
     actually apply the example settings.
 
   * Merged in [18162] from jennifer@painless-security.com:
-    Notify IRSG when an IRSG ballot is created. Fixes #2978.  
+    Notify IRSG when an IRSG ballot is created. Fixes #2978.
 
  -- Henrik Levkowetz   15 Jul 2020 15:33:35 +0000
 
@@ -1552,37 +1625,37 @@ ietfdb (7.8.0) ietf; urgency=medium
 
   **Changes to cookie settings, yang checking improvement, and bugfixes**
 
-  * Added a warnings filter for a deprecated message triggered by a library 
+  * Added a warnings filter for a deprecated message triggered by a library
     module, to get rid of unhelpful deprecation messages.
 
-  * Increased the generate_schedule optimiser run count to 160, and tweaked 
+  * Increased the generate_schedule optimiser run count to 160, and tweaked
     some output messages, after several days of testing various run counts.
 
   * Fixed a bad string formatting directive.
 
-  * Fixed an issue with secr.meetings.views.send_notifications() that could 
+  * Fixed an issue with secr.meetings.views.send_notifications() that could
     occur if a session didn't have a timeslot set.
 
   * Merged in [18130] from rjsparks@nostrum.com:
-    Fixed some test scaffolding that used non-existent keys (uncovered by 
-    recent improvements in sqlite3 integrity checking).  
+    Fixed some test scaffolding that used non-existent keys (uncovered by
+    recent improvements in sqlite3 integrity checking).
 
-  * Added a patch for Django to permit cookie 'samesite' setting to be 
+  * Added a patch for Django to permit cookie 'samesite' setting to be
     explicitly set to 'None'.
 
-  * Added some cookie settings and changed others, in order to support 
+  * Added some cookie settings and changed others, in order to support
     login and operation from a Meetecho iframe.
 
-  * Added a guard against trying to use historic group parent information 
+  * Added a guard against trying to use historic group parent information
     when parent is None
 
   * Added support for pulling yang modules from yangcatalog.org, and use
     them when running yang checks on drafts.
 
-  * Changed the subclass of lxml.html.clean.Cleaner() to adapt to changes 
+  * Changed the subclass of lxml.html.clean.Cleaner() to adapt to changes
     in the superclass in v4.5.2
 
-  * Added a new field Person.plain as a fallback for names where 
+  * Added a new field Person.plain as a fallback for names where
     plain_name() produces the wrong result.  Fixes issue #3020.
 
 
@@ -1625,16 +1698,16 @@ ietfdb (7.7.0) ietf; urgency=medium
     changed the autogenerated names to be easier to remember and type for
     later manual work based on an autogenerated schedule.
 
-  * Removed the command to purge request_profiler entries, given that 
+  * Removed the command to purge request_profiler entries, given that
     request_profiler is incompatible with Django 2.2 and has been removed
 
   * Fixed a bug in the caching of the agenda, where too much of the page was
     cached.  Fixes issue #3008.
 
-  * Added a guard against trying to serialize session UTC start time for a 
+  * Added a guard against trying to serialize session UTC start time for a
     meeting with unknown timezone.
 
-  * Renamed a test module to conform to our name convention ('test_*' to 
+  * Renamed a test module to conform to our name convention ('test_*' to
     'tests_*').
 
   * Tweaked the HTML that puts session links and calendar links on the session
@@ -1642,11 +1715,11 @@ ietfdb (7.7.0) ietf; urgency=medium
 
   * Added some CSRF settings to make login from a meetecho iframe possible.
 
-  * Added 'remote_instructions' as an editable field for misc. sessions in 
+  * Added 'remote_instructions' as an editable field for misc. sessions in
     the secretariat app, in order to be able to set remote access URLs.
 
-  * Reworked the support for remote access urls in the agenda_note and 
-    remote_instructions fields of Session objects so as to accept any of a list 
+  * Reworked the support for remote access urls in the agenda_note and
+    remote_instructions fields of Session objects so as to accept any of a list
     of conference service domains as remote call-in URLs (i.e., not only webex).
 
  -- Henrik Levkowetz   01 Jul 2020 16:34:49 +0000
@@ -1658,27 +1731,27 @@ ietfdb (7.6.0) ietf; urgency=medium
 
   * Changed deprecated 'load staticfiles' to recommended 'load static'
 
-  * Added a warnings filter.  Removed the use request_profiler, which is 
+  * Added a warnings filter.  Removed the use request_profiler, which is
     not compatible with Django 2.2.
 
   * Removed an unused parameter from submit.tests.do_submission_email().
 
   * Updated requirements for Django 2.2.
 
-  * Fixed an issue where a session was saved without a type_id, found by 
-    the Django 2.2 checks.  The code set the value just after the first save, 
-    and then did a second save, but this is 1) more costly, and 2) keeps an 
+  * Fixed an issue where a session was saved without a type_id, found by
+    the Django 2.2 checks.  The code set the value just after the first save,
+    and then did a second save, but this is 1) more costly, and 2) keeps an
     invalid session object in the database for a short time.
 
-  * Fixed a place where data provider for a POST in contained None, which 
+  * Fixed a place where data provider for a POST in contained None, which
     cannot be serialized into POST data.  Found by Django 2.2 checks.
 
-  * Django 2.2 does not wrap single queries in transactions, for 
-    performance reasons.  This caused some template tags that did database 
-    lookups to trigger exceptions.  Fixed by moving the lookups (which would 
-    not normally change between apache reloads) out from the template tag code 
-    to module scope.  Adding new groups of type 
-    ['ag','area','team','dir','program'] will now require a reload to show up 
+  * Django 2.2 does not wrap single queries in transactions, for
+    performance reasons.  This caused some template tags that did database
+    lookups to trigger exceptions.  Fixed by moving the lookups (which would
+    not normally change between apache reloads) out from the template tag code
+    to module scope.  Adding new groups of type
+    ['ag','area','team','dir','program'] will now require a reload to show up
     in the group menu.
 
   Other changes:
@@ -1697,10 +1770,10 @@ ietfdb (7.5.0) ietf; urgency=medium
   **Django 2.1 upgrade, CodiMD support, bluesheet support for Meetecho, and bugfixes**
 
   * Merged in [18036] from rjsparks@nostrum.com:
-    Tweaked the title of the page used to complete reviews. Fixes #2767.  
+    Tweaked the title of the page used to complete reviews. Fixes #2767.
 
   * Merged in [18037] from rjsparks@nostrum.com:
-    Removed abandoned charters from any future telechats. Fixes #3003.  
+    Removed abandoned charters from any future telechats. Fixes #3003.
 
   * Separated the session cache from the default cache, using slightly
     different settings, in order to not drop sessions when a new release is
@@ -1766,16 +1839,16 @@ ietfdb (7.4.0) ietf; urgency=medium
   * In the OpenID registration scope handler, look for registration matches
     by email if no person link is available, in order to handle the case
     where somebody registered with a new email and only added it to the
-    datatracker later.  
+    datatracker later.
 
   * Added a test suite switch to optionally show logging output.  Normally
     this is suppressed while running tests.  In production, it goes to
     syslog's user facility.  With --show-logging, it will go to the console
     when running tests.
 
-  * The registration system creates separate records for hackathon and 
-    session registration, but we want just one consolidated record.  
-    Changed the handling of notifications from the registration system to 
+  * The registration system creates separate records for hackathon and
+    session registration, but we want just one consolidated record.
+    Changed the handling of notifications from the registration system to
     aggregate reg_type and ticket_type information in one record.
 
   * With the draft submission cutoff date before a meeting set to the
@@ -1786,15 +1859,15 @@ ietfdb (7.4.0) ietf; urgency=medium
     cutoff-date==meeting.date.
 
   * Merged in [18016] from rjsparks@nostrum.com:
-    Ensure UTC time is shown throughout the interim request, approval, and 
-    announcement workflow. Fixes issue #2974.  
+    Ensure UTC time is shown throughout the interim request, approval, and
+    announcement workflow. Fixes issue #2974.
 
   * Merged in [18020] from rjsparks@nostrum.com:
-    Construct Faker objects used for person name generation only once. 
-    Results in a roughly 20% speedup of the test-suite.  
+    Construct Faker objects used for person name generation only once.
+    Results in a roughly 20% speedup of the test-suite.
 
   * Merged in [18021] from rjsparks@nostrum.com:
-    Refactoring for a little less waste creating meeting/interim test data.  
+    Refactoring for a little less waste creating meeting/interim test data.
 
  -- Henrik Levkowetz   22 Jun 2020 13:58:52 +0000
 
@@ -1804,10 +1877,10 @@ ietfdb (7.3.2) ietf; urgency=medium
 
   * Fixed a bad regex in test-crawl
 
-  * Removed an unnecessary entry from the OIDC auth request arguments in 
+  * Removed an unnecessary entry from the OIDC auth request arguments in
     test_oidc_code_auth().
 
-  * Reorganized the python logging setup slightly, and added a possibility 
+  * Reorganized the python logging setup slightly, and added a possibility
     to configure logging levels for individual loggers in settings_local.py
 
   * Added a management command to list registered logging framewor entries
@@ -1819,25 +1892,25 @@ ietfdb (7.3.2) ietf; urgency=medium
     datatracker doesn't know, and doesn't share, such as gender and
     birth-date.
 
-  * The datatracker logs directly to syslog, but some python libraries send 
-    debug logging to the python logging module.  Added a python logging syslog 
-    handler to the django logging setup, in order to make it easier to turn on 
+  * The datatracker logs directly to syslog, but some python libraries send
+    debug logging to the python logging module.  Added a python logging syslog
+    handler to the django logging setup, in order to make it easier to turn on
     built-in logging from external modules when needed.
 
-  * Improved the handling of logger enabling entries in UTILS_LOGGER_LEVELS 
+  * Improved the handling of logger enabling entries in UTILS_LOGGER_LEVELS
     to set a handler if none exists for a given logger.
 
-  * Changed the required version of pyflakes to one that supports ANNASSIGN 
+  * Changed the required version of pyflakes to one that supports ANNASSIGN
     (python annotated assignments, now used in the code).
 
-  * Added a --sprint switch to mkdevbranch to avoid switching on the 
+  * Added a --sprint switch to mkdevbranch to avoid switching on the
     absence of a developer name when creating sprint branches
 
   * Merged in [17992] from rjsparks@nostrum.com:
-    Improved the admin interface form validation for used_roles.  
+    Improved the admin interface form validation for used_roles.
 
   * Merged in [17993] from rjsparks@nostrum.com:
-    Made test_interim_send_announcement a little more time_zone aware.  
+    Made test_interim_send_announcement a little more time_zone aware.
 
  -- Henrik Levkowetz   16 Jun 2020 21:16:03 +0000
 
@@ -1877,10 +1950,10 @@ ietfdb (7.3.1) ietf; urgency=medium
     the existing and new account case, and test that additional table fields are
     set appropriately.
 
-  * Merged in [17908] from rjsparks@nostrum.com: 
+  * Merged in [17908] from rjsparks@nostrum.com:
     Added used_roles to Group and default_used_roles to GroupFeatures.
     Dynamically build the group edit form to provide a field for all
-    used_roles. Fixes #2785 and #2572.  Partially addresses #2160.  
+    used_roles. Fixes #2785 and #2572.  Partially addresses #2160.
 
   * Added hourly generation of two static files: 1wg-charter*.txt
 
@@ -1926,16 +1999,16 @@ ietfdb (7.2.0) ietf; urgency=medium
   This release introduces support for OpenID and OAuth2, with out-of-band
   client registration, and adds some other minor tweaks and bugfixes:
 
-  * Added OpenID support through django-oidc-provider, with tests using the 
+  * Added OpenID support through django-oidc-provider, with tests using the
     certified python oic module.
 
-  * Added patches for some issues with the oic and oidc-provider modules, 
+  * Added patches for some issues with the oic and oidc-provider modules,
     and updated a patch for request-profiler.
 
   * Added a factory function OidClientRecordFactory for OpenID testing
 
-  * Added django urlconfig namespace support in 
-    ietf.utils.test.get_callbacks() (needed when testing the reverse lookups in 
+  * Added django urlconfig namespace support in
+    ietf.utils.test.get_callbacks() (needed when testing the reverse lookups in
     templates for oidc_provider).
 
   * Tweaked patch.py for Py3 compatibility.
@@ -1947,12 +2020,12 @@ ietfdb (7.2.0) ietf; urgency=medium
 
   * Added a download-only switch to docker/updatedb
 
-  * Decorated post_submission() with @transaction.atomic, and did some 
-    slight refactoring of code related to post_submission() calls and 
-    submission events.  This was triggered by a submission left in an 
+  * Decorated post_submission() with @transaction.atomic, and did some
+    slight refactoring of code related to post_submission() calls and
+    submission events.  This was triggered by a submission left in an
     intermediate state because of a WSGI timeout (leading to a 504 error).
 
-  * Increased the required version of request-profiler and updated its 
+  * Increased the required version of request-profiler and updated its
     patch file.
 
   * Excluded a majority of htmlized drafts at /doc/html from the test-crawler
@@ -1969,8 +2042,8 @@ ietfdb (7.1.0) ietf; urgency=medium
   participated!  There were some very good contributions:
 
   * Merged in [17835] from pusateri@bangj.com:
-    Add agenda_note and remote_instructions to agenda.json API.  Fixes 
-    #2955. 
+    Add agenda_note and remote_instructions to agenda.json API.  Fixes
+    #2955.
 
   * Merged in [17838] from fenton@bluepopcorn.net:
     Give IRSG at-large members balloting capability. Fixes #2979.
@@ -1988,23 +2061,23 @@ ietfdb (7.1.0) ietf; urgency=medium
 
   * Added a missing guard against attribute access on None.
 
-  * Changed the nomcom chair help page to show 4-digit years, rather than 
+  * Changed the nomcom chair help page to show 4-digit years, rather than
     2-digit years in templates and examples.
 
-  * Renamed some view funtions for consistency.  Almost all .json enpoints 
-    were named \*_json(), but not all.  Fixed in this commit, together with the 
+  * Renamed some view funtions for consistency.  Almost all .json enpoints
+    were named \*_json(), but not all.  Fixed in this commit, together with the
     equivalent renaiming for one .ical endpoint.
 
-  * Refined the makeresources management command slightly to improve 
-    handling of models with names ending in 'Resource' -- tastypie requires the 
+  * Refined the makeresources management command slightly to improve
+    handling of models with names ending in 'Resource' -- tastypie requires the
     resource name to be explicitly set in this case.
 
-  * Updated the NomCom eligibility calculation to use the last 5 in-person 
-    meetings, in accordance with draft-iesg-nomcom-eligibility-2020-03 which 
-    has now been approved for publication.  The code will need revisiting when 
+  * Updated the NomCom eligibility calculation to use the last 5 in-person
+    meetings, in accordance with draft-iesg-nomcom-eligibility-2020-03 which
+    has now been approved for publication.  The code will need revisiting when
     the long-term policy is available.
 
-  * Merged in a patch from mark@painless-security.com to add caching 
+  * Merged in a patch from mark@painless-security.com to add caching
     options to docker/run
 
   * Changed the wording in one place on the NomCom Chair help page so as to be
@@ -2028,14 +2101,14 @@ ietfdb (7.0.0) ietf; urgency=medium
 
   There are also some other minor changes:
 
-  * Merged in ^/personal/henrik/6.129.2-django2.0 which contains an upgrade 
+  * Merged in ^/personal/henrik/6.129.2-django2.0 which contains an upgrade
     of Django from 1.11 to 2.0, with the accompanying code changes needed.
 
   * Added a template with-clause that was lost in merging.
 
   * Merged in [17803] from rcross@amsl.com:
     Made various changes to session request form, mostly removal of fields, in
-    order to support virtual session requests. 
+    order to support virtual session requests.
     Also added settings.SECR_VIRTUAL_MEETINGS list.
 
   * Fixed a test that incorrectly looked for author.name instead of
@@ -2051,17 +2124,17 @@ ietfdb (6.130.1) ietf; urgency=medium
   From the commit log:
 
   * Merged in [17797] from rjsparks@nostrum.com:
-    Better use of group type in interim announcement tools. Fixes #2989.  
+    Better use of group type in interim announcement tools. Fixes #2989.
 
   * Refactored many instances of msg.get_payload(decode=True).decode('utf-8')
     and similar to get_payload_text(msg), which uses msg.get_charset() to get
     the actual charset to do the decoding in a consistent manner.  Also
     removed some instances of force_str (but more remain).
 
-  * Added group chair/secretary role information to the personal meetecho 
+  * Added group chair/secretary role information to the personal meetecho
     key API return.
 
-  * Added a bunch of drafts for which we don't have text files to the 
+  * Added a bunch of drafts for which we don't have text files to the
     test-crawler exclusion list.
 
   * Fleshed out a review test slightly, and did some refactoring.
@@ -2069,12 +2142,12 @@ ietfdb (6.130.1) ietf; urgency=medium
   * Added an utility function to get email payload as unicode text.
 
   * Merged in [17794] from mark@painless-security.com:
-    Add the 'msg' variable for interpolation on reviewer availability 
-    change emails, and reformat the add-a-period email.  Fixes #2891.   
+    Add the 'msg' variable for interpolation on reviewer availability
+    change emails, and reformat the add-a-period email.  Fixes #2891.
 
   * Merged in [17722] from mark@painless-security.com:
-    Remove the 'experimental' verbiage from the references / referenced by 
-    pages.  Fixes #2857.   
+    Remove the 'experimental' verbiage from the references / referenced by
+    pages.  Fixes #2857.
 
   * Fixed a bug in upcoming() leading to entries before the current date
     being shown.
@@ -2089,18 +2162,18 @@ ietfdb (6.130.0) ietf; urgency=medium
   Extracted from the commit log:
 
   * Merged in [17764] from rjsparks@nostrum.com:
-    Allow IAB programs to use normal meeting mechanics. Fixes #2970.  
+    Allow IAB programs to use normal meeting mechanics. Fixes #2970.
 
-  * Based on [17694] from mark@painless-security.com, this merges in a set 
-    of changes that provides agenda-like details on session meeting view, and 
-    fixes issue #2751.  It also aligns the styling of materials and resources 
-    link lists on the upcoming meetings and ietf agenda pages, and adds 
-    calendar symbols with links and recordings symbols with links to interim 
+  * Based on [17694] from mark@painless-security.com, this merges in a set
+    of changes that provides agenda-like details on session meeting view, and
+    fixes issue #2751.  It also aligns the styling of materials and resources
+    link lists on the upcoming meetings and ietf agenda pages, and adds
+    calendar symbols with links and recordings symbols with links to interim
     meeting pages.
 
   * Added send-scheduled-mail to bin/every15min
 
-  * Reworded the instructions for submission tool bug reporting and manual 
+  * Reworded the instructions for submission tool bug reporting and manual
     posting to avoid reports going to the wrong address.
 
   * Added missing notify-expirations script to bin/weekly
@@ -2111,11 +2184,11 @@ ietfdb (6.130.0) ietf; urgency=medium
 
   * Tweaked a 404 message to differentiate between two not-found cases.
 
-  * Updated the buildbot config with additional builders, database loading 
-    as part of test-crawler run, tweaked test-crawler start-time and other 
+  * Updated the buildbot config with additional builders, database loading
+    as part of test-crawler run, tweaked test-crawler start-time and other
     tweaks
 
-  * Added a second link to htmlized draft content (on the datatracker) in 
+  * Added a second link to htmlized draft content (on the datatracker) in
     addition to the link to the tools hosted htmlized document.
 
   * Fixed some instances of invalid html.
@@ -2131,38 +2204,38 @@ ietfdb (6.129.1) ietf; urgency=medium
     Turned autoescape off for another email fragment template (production
     database has also been changed).  This fixes an issue where
     test_assign_reviewer() would sometimes fail due to html-escaped characters
-    in email text. 
+    in email text.
 
   * Merged in [17725] from rjsparks@nostrum.com:
-    Add help text strongly encouraging always having a conference link in 
-    any interim request. Fixes #2973.  
+    Add help text strongly encouraging always having a conference link in
+    any interim request. Fixes #2973.
 
   * Merged in [17724] from rjsparks@nostrum.com:
-    Use normal material management permissions for uploading bluesheets. 
-    Fixes #2975.  
+    Use normal material management permissions for uploading bluesheets.
+    Fixes #2975.
 
   * Merged in [17723] from rjsparks@nostrum.com:
-    Stop requiring AD approval of virtual interims. Fixes #2972.  
+    Stop requiring AD approval of virtual interims. Fixes #2972.
 
   * Merged in [17712] from rjsparks@nostrum.com:
-    Add a webcal link to /meetings/upcoming. Partially addresses #2971. 
-    Adding this to the main agenda page will require some js juggling, and I 
-    think getting some runtime with it first to make sure it is what we want 
-    makes sense. 
+    Add a webcal link to /meetings/upcoming. Partially addresses #2971.
+    Adding this to the main agenda page will require some js juggling, and I
+    think getting some runtime with it first to make sure it is what we want
+    makes sense.
 
   * Merged in [17709] from rjsparks@nostrum.com:
-    Modified the last-call announcement template, at the IESG's request, 
-    removing the link to documment's ballot (which may not exist at the time 
-    last-call goes out). Fixes #2967.  
+    Modified the last-call announcement template, at the IESG's request,
+    removing the link to documment's ballot (which may not exist at the time
+    last-call goes out). Fixes #2967.
 
   * Merged in [17708] from rjsparks@nostrum.com:
-    Remove 'point raised - writup needed' from the set of substates the 
-    IESG can use with a document. Fixes #2968.  
+    Remove 'point raised - writup needed' from the set of substates the
+    IESG can use with a document. Fixes #2968.
 
-  * Added a first iteration of /meeting/upcoming.json for Meetecho use, 
+  * Added a first iteration of /meeting/upcoming.json for Meetecho use,
     with the expectation that buildout and tweaks may be required.
 
-  * Limited the data for 'New draft revisions over time' on the personal 
+  * Limited the data for 'New draft revisions over time' on the personal
     profile page to type='draft'.  This fixes an issue where other document
     types, for instance reviews, would be counted.
 
@@ -2179,7 +2252,7 @@ ietfdb (6.129.0) ietf; urgency=medium
   improvements, the underlying javascript and ajax API has been thoroughly
   revised.
 
-  * Merged in  ^/branch/iola/meeting-improvement-r17214@17617, which 
+  * Merged in  ^/branch/iola/meeting-improvement-r17214@17617, which
     provides a new meeting schedule editor.
 
   * Minor housekeeping changes
@@ -2228,10 +2301,10 @@ ietfdb (6.128.0) ietf; urgency=medium
 
   * Merged in [17663] from rjsparks@nostrum.com: Show recent meetings on a
     group's meeting tab even if there aren't other past meetings. Fixes #2961.
-    
 
-  * Added an explicit dependency on svn.  Under py3 it can be installed 
-    with pip, and doesn't need OS packages for python-subversion (it still 
+
+  * Added an explicit dependency on svn.  Under py3 it can be installed
+    with pip, and doesn't need OS packages for python-subversion (it still
     needs libsvn1, though).
 
   * Updated buildbot in a number of respects, in order to be able to deploy
@@ -2250,10 +2323,10 @@ ietfdb (6.128.0) ietf; urgency=medium
       added some convenience scripts.
 
   * Merged in [17649] from rjsparks@nostrum.com: Follow RFC8713 section 4.15
-    for roles that disqualify for nomcom. Fixes #2944.  
+    for roles that disqualify for nomcom. Fixes #2944.
 
   * Merged in [17650] from rjsparks@nostrum.com: Refactored
-    nomcom-disqualifying roles into one place.  
+    nomcom-disqualifying roles into one place.
 
   * Added a request profiler and a management command to purge profiler
     records.
@@ -2300,7 +2373,7 @@ ietfdb (6.127.0) ietf; urgency=medium
   Please note that there may however be some additional releases based on
   Django 1.11 before we come to the first Django 2.x release.
 
-  * Merged in the py3clean work, which removes usage of six and __future__ 
+  * Merged in the py3clean work, which removes usage of six and __future__
     imports, along with other py2/3 compatibility code.
 
  -- Henrik Levkowetz   14 Apr 2020 19:45:50 +0000
@@ -2352,10 +2425,10 @@ ietfdb (6.125.0) ietf; urgency=medium
   **Various meeting-related fixes and improvements**
 
   * Merged in [17590] from rcross@amsl.com:
-    Added support for variable length meetings to secr/meetings app.  
+    Added support for variable length meetings to secr/meetings app.
 
-  * Changed the handling of some exceptions during draft submission to give 
-    user feedback rather than server 500 responses, in order to deal better 
+  * Changed the handling of some exceptions during draft submission to give
+    user feedback rather than server 500 responses, in order to deal better
     with severely malformed drafts.
 
   * Added a workaround for the current libmagic on OpenSUSE, which quite
@@ -2365,7 +2438,7 @@ ietfdb (6.125.0) ietf; urgency=medium
   * Added validation of the session duration in interim meeting requests, with
     added values in settings.py for min and max duration.
 
-  * Clarified the standalone XML draft submission requirements, and 
+  * Clarified the standalone XML draft submission requirements, and
     mentioned the xml2rfc switch to use for v3 sources.
 
   * Changes to accept a wider range of URLs when displaying call-in links from
@@ -2374,8 +2447,8 @@ ietfdb (6.125.0) ietf; urgency=medium
   * Changed some fields to raw_id_fields in the MessageAdmin, for improved
     admin page load times.
 
-  * Added 'Remote instructions' at the top of interim sesssion pages, and 
-    made the 'Meeting Details' button available to the group chairs, not only 
+  * Added 'Remote instructions' at the top of interim sesssion pages, and
+    made the 'Meeting Details' button available to the group chairs, not only
     secretariat.
 
  -- Henrik Levkowetz   08 Apr 2020 16:51:46 +0000
@@ -2385,13 +2458,13 @@ ietfdb (6.124.0) ietf; urgency=medium
 
   **Enhanced 'Upcoming Meetings' page, and more**
 
-  * Added links to agenda/materials pop-up, materials download, etherpad, 
-    jabber room, and webex call-in session for interims on the upcoming 
-    meetings page.  With the earlier changes from [17555], this fixes issue 
+  * Added links to agenda/materials pop-up, materials download, etherpad,
+    jabber room, and webex call-in session for interims on the upcoming
+    meetings page.  With the earlier changes from [17555], this fixes issue
     #2937.
 
-  * Changed the IPR patent number regex to permit space between country 
-    code and serial number, and expanded on the help text for the IPR patent 
+  * Changed the IPR patent number regex to permit space between country
+    code and serial number, and expanded on the help text for the IPR patent
     number field.
 
   * Added verification of response data to IphoneAppJsonTests
@@ -2400,8 +2473,8 @@ ietfdb (6.124.0) ietf; urgency=medium
     Added interim meetings to agenda.json API. Fixes #2946.
 
   * Merged in [17562] from jennifer@painless-security.com:
-    Add tooltips with doc name to 'updates' and 'obsoletes' links. Fixes 
-    #2866;  
+    Add tooltips with doc name to 'updates' and 'obsoletes' links. Fixes
+    #2866;
 
   * Fixed a Py2/3 issue in the djangobwr's bower_install command
 
@@ -2410,21 +2483,21 @@ ietfdb (6.124.0) ietf; urgency=medium
   * Cleaned up the contributors list in bin/mkrelease a bit.
 
   * Merged in [17557] from fenton@bluepopcorn.net:
-    Provide more consistent links to people pages. Fixes #2918.  
+    Provide more consistent links to people pages. Fixes #2918.
 
-  * Changed an obsolete document.href() to document.get_href().  Fixes 
+  * Changed an obsolete document.href() to document.get_href().  Fixes
     issue #2945.
 
-  * Tweaked the upcoming calendar and calendar entries slightly, to render 
+  * Tweaked the upcoming calendar and calendar entries slightly, to render
     with times first and on two lines on narrow screens.
 
   * Merged in [17555] from rjsparks@nostrum.com:
-    Remove the not-quite-working customization widgets from 
-    /meeting/upcoming and /meeting/past. Simplify those views. Correct the list 
-    of sessions on those pages when one interim has more than one session. 
-    Fixes #2938. Partially addresses #2937.  
+    Remove the not-quite-working customization widgets from
+    /meeting/upcoming and /meeting/past. Simplify those views. Correct the list
+    of sessions on those pages when one interim has more than one session.
+    Fixes #2938. Partially addresses #2937.
 
-  * Prevent an exception on missing author.email.person when listing author 
+  * Prevent an exception on missing author.email.person when listing author
     emails.
 
  -- Henrik Levkowetz   03 Apr 2020 10:04:43 +0000
@@ -2435,31 +2508,31 @@ ietfdb (6.123.1) ietf; urgency=medium
   **Fixes for meeting-related issues**
 
   * Merged in [17543] from rjsparks@nostrum.com:
-    Repaired construction of group_hierarchy used for the customisation 
-    controls at /meeting/upcoming. Fixes #2940.  
+    Repaired construction of group_hierarchy used for the customisation
+    controls at /meeting/upcoming. Fixes #2940.
 
   * Merged in [17542] from rjsparks@nostrum.com:
-    Show calendar entries on /meeting/upcoming in utc. Show end times. 
-    Partially addresses #2936.  
+    Show calendar entries on /meeting/upcoming in utc. Show end times.
+    Partially addresses #2936.
 
-  * Don't show agenda buttons for Meetecho recordings (after the session 
+  * Don't show agenda buttons for Meetecho recordings (after the session
     concludes) if there isn't a Meetecho UrlResource.  Fixes issue #2934
 
   * Merged in [17538] from rjsparks@nostrum.com:
-    Allow an out-of-area AD assigned as the AD for a WG to approve interim 
-    requests for that WG. Fixes #2930.  
+    Allow an out-of-area AD assigned as the AD for a WG to approve interim
+    requests for that WG. Fixes #2930.
 
-  * Changed the object factory instances of nomcom private key and cert to 
-    be byte objects (matching the production settings), and fixed the issue 
-    with nomcom key handling under Py3 found by fenton@bluepopcorn.net.  Did 
-    some renaming in nomcom/tests.py to better match setup/teardown function 
+  * Changed the object factory instances of nomcom private key and cert to
+    be byte objects (matching the production settings), and fixed the issue
+    with nomcom key handling under Py3 found by fenton@bluepopcorn.net.  Did
+    some renaming in nomcom/tests.py to better match setup/teardown function
     names to functionality.
 
   * Merged in [17521] from housley@vigilsec.com:
-    Improve performance of log.assertion() and log.unreachable() 
+    Improve performance of log.assertion() and log.unreachable()
 
   * Merged in [17505] from housley@vigilsec.com:
-    Improve performance of many document list pages 
+    Improve performance of many document list pages
 
  -- Henrik Levkowetz   27 Mar 2020 14:27:24 +0000
 
@@ -2478,52 +2551,52 @@ ietfdb (6.123.0) ietf; urgency=medium
     Remove the rest of the log.assertions checking that iesg_state existed in
     places we expected it to.  Removed unnecessary imports.
 
-  * Changed the page for upcoming meetings to show the current IETF meeting 
-    for 7 days from its start date, while interims are shown for today and 
-    forward.  Also changed the upcoming.ics calendar to show future sessions, 
-    even if the meeting to which they belong started in the past.  This 
+  * Changed the page for upcoming meetings to show the current IETF meeting
+    for 7 days from its start date, while interims are shown for today and
+    forward.  Also changed the upcoming.ics calendar to show future sessions,
+    even if the meeting to which they belong started in the past.  This
     improves on [17518].
 
-  * Changed the starting point of display of upcoming meetings to be 7 days 
-    before today, rather than today, to let meetings linger a bit in the 
-    listing and iCalendar file after the meeting has started.  Triggered by an 
-    observation from resnick@episteme.net about IETF 107 sessions disappearing 
+  * Changed the starting point of display of upcoming meetings to be 7 days
+    before today, rather than today, to let meetings linger a bit in the
+    listing and iCalendar file after the meeting has started.  Triggered by an
+    observation from resnick@episteme.net about IETF 107 sessions disappearing
     from 'upcoming.ics' on meeting week Monday.
 
   * Merged in [17495] from rjsparks@nostrum.com:
     Removes a log.assertion() that was checking that we covered the edges when
-    we changed documents to always have an iesg state.  
+    we changed documents to always have an iesg state.
 
   * Merged in [17494] from rjsparks@nostrum.com:
     Use current email addresses when we have them when listing document
-    authors. Fixes #1902.  
+    authors. Fixes #1902.
 
   * Merged in [17493] from mahoney@nostrum.com:
     Changed awkward IESG/IAB Nominating Committee names to just NomCom,
-    updated a ref. Fixes #2860.  
+    updated a ref. Fixes #2860.
 
   * Merged in [17492] from rcross@amsl.com:
     On session request form, made the Special Requests field smaller and
-    display 200 character limit. Fixes #2875.  
+    display 200 character limit. Fixes #2875.
 
   * Merged in [17491] from rcross@amsl.com:
-    Prevent use of capital letters in group acronym. Fixes #2709.  
+    Prevent use of capital letters in group acronym. Fixes #2709.
 
   * Merged in [17490] from rjsparks@nostrum.com:
-    Basic regex validation on community rule entry form. Fixes #2928.  
+    Basic regex validation on community rule entry form. Fixes #2928.
 
   * Merged in [17489] from rcross@amsl.com:
-    Removed redundant URL secr/groups/search because search page is 
-    available here secr/groups. Resolves issue with Add link. Fixes #2708.  
+    Removed redundant URL secr/groups/search because search page is
+    available here secr/groups. Resolves issue with Add link. Fixes #2708.
 
   * Merged in [17488] from rcross@amsl.com:
-    Removed the drafts secretariat tool because this functionality is now 
-    provided by the core Datatracker. Moved ID reports to proceedings tool. 
-    Fixes #1655.  
+    Removed the drafts secretariat tool because this functionality is now
+    provided by the core Datatracker. Moved ID reports to proceedings tool.
+    Fixes #1655.
 
   * Merged in [17487] from rjsparks@nostrum.com:
-    Let chairs know what to do after material submission uploads have been 
-    cut off. Fixes #2887.  
+    Let chairs know what to do after material submission uploads have been
+    cut off. Fixes #2887.
 
   * Merged in [17486] from valery@smyslov.net:
     Added docker/run modifications to support Cygwin.
@@ -2535,22 +2608,22 @@ ietfdb (6.123.0) ietf; urgency=medium
     information to retrieve.
 
   * Merged in [17483] from peter@akayla.com:
-    Changed things so that only WGs/RGs can be closed, per RJS.  Fixes #1578.   
+    Changed things so that only WGs/RGs can be closed, per RJS.  Fixes #1578.
 
   * Merged in [17466] from rcross@amsl.com:
-    Added a migration to cancel 107 sessions 
+    Added a migration to cancel 107 sessions
 
   * Added a check to see if any files matching the submitted draft name and
     revision already exists on disk in the active drafts or archived drafts
     directories, and if so reject the submission.  Fixes issue #2908
 
-  * Made sure to strip possible mail header field values of whitespace 
-    before applying email.utils.unquite().  Resolution by kivinen@iki.fi,  
+  * Made sure to strip possible mail header field values of whitespace
+    before applying email.utils.unquite().  Resolution by kivinen@iki.fi,
     Fixes issue #2899.
 
   * Merged in [17480] from rjsparks@nostrum.com:
-    Show UTC times in interim announcements if the interim has a non-UTC 
-    timzone. Fixes #2922.  
+    Show UTC times in interim announcements if the interim has a non-UTC
+    timzone. Fixes #2922.
 
  -- Henrik Levkowetz   24 Mar 2020 17:53:45 +0000
 
@@ -2579,7 +2652,7 @@ ietfdb (6.122.0) ietf; urgency=medium
   * Tweaked bin/mkpatch some for -c handling
 
   * Merged in [17442] from rjsparks@nostrum.com: Allow area groups to request
-    interim meetings. Fixed #2919.  
+    interim meetings. Fixed #2919.
 
   * Additional tweaks to bin/mkpatch; removing buggy -r option.
 
@@ -2605,20 +2678,20 @@ ietfdb (6.121.0) ietf; urgency=medium
     agenda-note contains and IETF webex URL.
 
   * Merged in [17425] from rjsparks@nostrum.com: Make required AD approval of
-    virtual interims configurable. Fixes #2912.  
+    virtual interims configurable. Fixes #2912.
 
   * Added a management command to check draft event revision numbers.  To be
     extended for other checks.
 
   * Merged in [17419] from rjsparks@nostrum.com: Don't warn about idcutoff
-    when the cutoff is after the meeting starts.  Fixes #2907.  
+    when the cutoff is after the meeting starts.  Fixes #2907.
 
   * Merged in [17418] from rjsparks@nostrum.com: Correctly represent cancelled
-    sessions in ics files. Fixes #2905.  
+    sessions in ics files. Fixes #2905.
 
   * Merged in [17396] from rjsparks@nostrum.com: Move charters for replaced
     groups to a new replaced state. Close any outstanding ballots on them.
-    Fixes #2889, #2873, and #1286.  
+    Fixes #2889, #2873, and #1286.
 
   * Avoid trying to open meeting documents with empty .uploaded_filename.
 
@@ -2685,17 +2758,17 @@ ietfdb (6.119.1) ietf; urgency=medium
 
   * Changed some cases of urlopen() to use requests.get()
 
-  * Python3 is more ticklish about comparing strings to None than Py2.  
+  * Python3 is more ticklish about comparing strings to None than Py2.
     Fixed an issue with this in generate_sort_key() for document searches.
 
-  * Fixed a Py2/3 issue in the pyflakes management command, and tweaked the 
+  * Fixed a Py2/3 issue in the pyflakes management command, and tweaked the
     verbose output format.
 
-  * Merged back production changes to two scripts indirectly called by 
-    /a/www/www6s/scripts/run-ietf-report, through 
+  * Merged back production changes to two scripts indirectly called by
+    /a/www/www6s/scripts/run-ietf-report, through
     /a/www/www6s/scripts/run-report.
 
-  * Changed the release script to not pick up other email addresses than 
+  * Changed the release script to not pick up other email addresses than
     those of contributors from the release notes.
 
  -- Henrik Levkowetz   03 Mar 2020 11:23:46 +0000
@@ -2720,11 +2793,11 @@ ietfdb (6.119.0) ietf; urgency=medium
 
   * Merged in [17336] from rcross@amsl.com: Add rfp-announce@ietf.org to
     Announcement app To: address list.  Changed name of secr dashboard from WG
-    Chair Dahsboard to IETF Dashboard.  
+    Chair Dahsboard to IETF Dashboard.
 
   * Merged in [17325] from rjsparks@nostrum.com: Allow review team secretaries
     and the secretariat to reset the next reviewer in queue for review teams
-    using the RotateAlphabetically policy.  Partially addresses #2879.  
+    using the RotateAlphabetically policy.  Partially addresses #2879.
 
   * Fixed an issue with some tests that mocked urlopen() responses, and
     tweaked error messages on bad results in sync/rfceditor.py
@@ -2838,13 +2911,13 @@ ietfdb (6.118.0) ietf; urgency=medium
   **RG and NomCom support refinements, new data merge management commands, bug fixes**
 
   * Merged in [17288] from rjsparks@nostrum.com:
-    Made internal review email about an RG use the IRSG instead of the 
-    IESG in text and addresses. Fixes #2881.  
+    Made internal review email about an RG use the IRSG instead of the
+    IESG in text and addresses. Fixes #2881.
 
   * Merged in [17287] from rjsparks@nostrum.com:
     Set the default for use_milestone_dates to True. Allow changing
     use_milestone_dates from the edit milestone dates form for charters if it
-    is the initial chartering effort. Fixes #2884.  
+    is the initial chartering effort. Fixes #2884.
 
   * Wrapped more code in draft submission in an exception block, in order not
     to continue processing after an XML parse exception.  Fixes issue #2885.
@@ -2885,18 +2958,18 @@ ietfdb (6.118.0) ietf; urgency=medium
     tearDown() in MeetingTests.
 
   * Merged in [17286] from rjsparks@nostrum.com:
-    Added Reply-To to the default group review text. Fixes #2883.  
+    Added Reply-To to the default group review text. Fixes #2883.
 
   * Merged in [17284] from jennifer@painless-security.com:
-    Create DocEvent when related IprDisclosure is posted or removed. Fixes 
-    #2811.  
+    Create DocEvent when related IprDisclosure is posted or removed. Fixes
+    #2811.
 
   * Merged in [17275] from jennifer@painless-security.com:
-    Added links to user profiles from nominee list and feedback page. Fixes 
-    #2839.  
+    Added links to user profiles from nominee list and feedback page. Fixes
+    #2839.
 
   * Merged in [17273] from rcross@amsl.com:
-    Updated link to session request tool instructions.  
+    Updated link to session request tool instructions.
 
  -- Henrik Levkowetz   18 Feb 2020 22:59:34 +0000
 
@@ -2906,12 +2979,12 @@ ietfdb (6.117.0) ietf; urgency=medium
   **Python 2/3 transition fixes, sumbmission and chartering improvements**
 
   * Merged in [17268] from rjsparks@nostrum.com: Set a meaningful state in a
-    test fixture. Tests surprisingly were not broken by this though.  
+    test fixture. Tests surprisingly were not broken by this though.
 
   * Merged in [17266] from rjsparks@nostrum.com: Improve the tests for session
     draft bundles to exercise the code that extracts draftnames from agendas.
 
-  * Removed exec of activate_this.py from 2 more scripts that are in 
+  * Removed exec of activate_this.py from 2 more scripts that are in
     activbe use.
 
   * Ran scripts invoked from bin/hourly and bin/daily through pyflakes3 and
@@ -2962,37 +3035,37 @@ ietfdb (6.117.0) ietf; urgency=medium
   * Merged in [17246] from rjsparks@nostrum.com: Only show groups in
     reasonable states when showing current chartering efforts (otherwise
     crufty charter states can would lead to abandoned or replaced groups
-    showing here). Fixes #2872.  
+    showing here). Fixes #2872.
 
  -- Henrik Levkowetz   05 Feb 2020 22:28:38 +0000
 
 
 ietfdb (6.116.1) ietf; urgency=medium
 
-  * Refined the links from document stats pages to author pages so as to 
+  * Refined the links from document stats pages to author pages so as to
     not link to non-existent pages.  Fixes 404 errors for a number of stats
     page links.
 
   * Merged in [17234] from rjsparks@nostrum.com:
-    Restrict the ability to change whether a group uses milestone dates to 
-    the ADs and the secretariat. Fixes #2869.  
+    Restrict the ability to change whether a group uses milestone dates to
+    the ADs and the secretariat. Fixes #2869.
 
   * Merged in [17233] from rjsparks@nostrum.com:
-    Be clear about who changed a group's personnel in the resulting email 
-    message. Fixes #2868.  
+    Be clear about who changed a group's personnel in the resulting email
+    message. Fixes #2868.
 
   * Merged in [17228] from rjsparks@nostrum.com:
-    Improved admin handling of DocumentURL. Fixes #2865.  
+    Improved admin handling of DocumentURL. Fixes #2865.
 
   * Merged in [17227] from rjsparks@nostrum.com:
-    Allow document Additional URLs to become empty. Fixes #2864.  
+    Allow document Additional URLs to become empty. Fixes #2864.
 
-  * Added (currently inactive) code to trigger exceptions on failure to 
-    resolve template variables during tests, and added fixes for a couple of 
+  * Added (currently inactive) code to trigger exceptions on failure to
+    resolve template variables during tests, and added fixes for a couple of
     places that triggered such exceptions.
 
   * Merged in [17219] from rjsparks@nostrum.com:
-    Update some uses of pos.ad in templates to pos.balloter. Fixes #2863.  
+    Update some uses of pos.ad in templates to pos.balloter. Fixes #2863.
 
   * Merged in [17217] from olau@iola.dk:
     Tighten validation of session conflicts in the session request tool,
@@ -3001,17 +3074,17 @@ ietfdb (6.116.1) ietf; urgency=medium
     longer valid.
     Also fix a bug with the group list in the dropdowns being computed
     statically at module import time instead of being queried dynamically
-    upon each page request. 
+    upon each page request.
 
   * Merged in [17211] from rjsparks@nostrum.com:
-    Upgrade to the newer js-cookie library that replaced jquery.cookie. 
-    Fixes #2832.  
+    Upgrade to the newer js-cookie library that replaced jquery.cookie.
+    Fixes #2832.
 
   * Fixed a Py2/3 compatibility issue with the verified errata code.
 
   * Merged in [17201] from rjsparks@nostrum.com:
-    Make it easier for the nomcom chair to manage generic IESG 
-    requirements. Fixes #2794.  
+    Make it easier for the nomcom chair to manage generic IESG
+    requirements. Fixes #2794.
 
   * Added a check for uncomitted changes to bin/mergedevbranch.
 
@@ -3028,11 +3101,11 @@ ietfdb (6.116.0) ietf; urgency=medium
   **Dateless group milestones, improved author stats, and bugfixes**
 
   * Merged in [17196] from rcross@amsl.com:
-    Removed agenda@ietf.org from audio import notification To: list.  
+    Removed agenda@ietf.org from audio import notification To: list.
 
   * Merged in [17195] from rcross@amsl.com:
     Updated admin permissions to grant secretariat access to
-    LiaisonStatementGroupContacts.  
+    LiaisonStatementGroupContacts.
 
   * Merged in [17185] from rjsparks@nostrum.com:
     Added support for dateless milestones. Fixes issue #2799.
@@ -3041,7 +3114,7 @@ ietfdb (6.116.0) ietf; urgency=medium
     order to avoid issues when reporting errors due to UTF-8 content.
 
   * Merged in [17181] from olau@iola.dk:
-    Fixed a problem with assignments to the same session causing a crash. 
+    Fixed a problem with assignments to the same session causing a crash.
 
   * Merged in [17179] from housley@vigilsec.com:
     Added references and referened-by buttons to each RFC listed on the person
@@ -3067,8 +3140,8 @@ ietfdb (6.116.0) ietf; urgency=medium
     order to accomodate longer change descriptions.
 
   * Merged in [17173] from rjsparks@nostrum.com:
-    Worked around a problem with displaying IESG evaluation information for 
-    non-approve ballot types. Partially addresses #2851.  
+    Worked around a problem with displaying IESG evaluation information for
+    non-approve ballot types. Partially addresses #2851.
 
  -- Henrik Levkowetz   09 Jan 2020 21:58:16 +0000
 
@@ -3078,12 +3151,12 @@ ietfdb (6.115.0) ietf; urgency=medium
   **IRSG document ballot support**
 
   * Merged in ^/branch/akayla/irsg/6.113.1.dev0 from peter@akayla.com:
-    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 
+    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.
 
-  * Changed print() statements into syslog logging in a cron-invoked script, 
+  * Changed print() statements into syslog logging in a cron-invoked script,
     to remove non-error output.  Fixes issue #2849.
 
  -- Henrik Levkowetz   20 Dec 2019 15:44:39 +0000
@@ -3094,7 +3167,7 @@ ietfdb (6.114.0) ietf; urgency=medium
 
   * Merged in [17148] from rjsparks@nostrum.com:
     Only gather addresses instead of name_addrs for the group_secretaries
-    Mailtrigger Recipient. Fixes #2847.  
+    Mailtrigger Recipient. Fixes #2847.
 
   * Merged in [17147] from rjsparks@nostrum.com:
     Show diff controls for a bis -00 document. Fixes #2846.
@@ -3117,10 +3190,10 @@ ietfdb (6.114.0) ietf; urgency=medium
   * Added handling for a decoding exception during submission processing.
 
   * Merged in [17120] from rjsparks@nostrum.com:
-    Add links to the main website and the mailarchive to the search page.  
+    Add links to the main website and the mailarchive to the search page.
 
-  * Added an OPTIONS settings to the DATABASES setting in 
-    docker/settings_local.py, to make some migration operations work under 
+  * Added an OPTIONS settings to the DATABASES setting in
+    docker/settings_local.py, to make some migration operations work under
     docker.
 
  -- Henrik Levkowetz   18 Dec 2019 20:38:33 +0000
@@ -3138,7 +3211,7 @@ ietfdb (6.113.0) ietf; urgency=medium
   policy.  Both policies provides for various exceptions.  There are also
   some unrelated minor bugfixes.  From the commit log:
 
-  * Merged in work from sasha@dashcare.nl on Review Queue Managemnt: 
+  * Merged in work from sasha@dashcare.nl on Review Queue Managemnt:
     This abstracts queue management, making it possible to implement different
     policies for each team. It provides two concrete policies:
     RotateAlphabeticallyReviewerQueuePolicy, which rotates an alphabetically
@@ -3154,7 +3227,7 @@ ietfdb (6.113.0) ietf; urgency=medium
 
   * Removed code under docker/ from test coverage calculation.
 
-  * Fixed a backwards compatibiltiy issue for the factoryboy lib and 
+  * Fixed a backwards compatibiltiy issue for the factoryboy lib and
     updated a dependency requirement.
 
  -- Henrik Levkowetz   07 Dec 2019 19:28:38 +0000
@@ -3169,7 +3242,7 @@ ietfdb (6.112.0) ietf; urgency=medium
 
   * Merged in [17085] from sasha@dashcare.nl:
     Notify secretary when a review request is closed.  The assigned reviewer
-    was already notified, but secretaries were always excluded.  
+    was already notified, but secretaries were always excluded.
     Fixes issue #2278
 
   * When group secretary email addresses occurred in some mailtrigger To:
@@ -3179,7 +3252,7 @@ ietfdb (6.112.0) ietf; urgency=medium
     consistency.  Also added a general utility function to exclude selected
     email addresses from email address lists.
 
-  * Added support for bibxml3 entries using the traditional reference entry 
+  * Added support for bibxml3 entries using the traditional reference entry
     name (using 'reference.I-D....'), instead of just the plain draft name.
 
   * Merged in [17070] from sasha@dashcare.nl:
@@ -3189,11 +3262,11 @@ ietfdb (6.112.0) ietf; urgency=medium
     secretary can still modify all details.  The order of fields for
     secretaries is also modified to fit this workflow.  All cases where 'link
     to review message' is used, by reviewers or secretaries, now attempt to
-    fill in the 'reviewed version' if found in the email subject.  
+    fill in the 'reviewed version' if found in the email subject.
     Fixes issue #2061.
 
   * Merged in [17069] from sasha@dashcare.nl:
-    Added history for assignments, requests and unavailability. 
+    Added history for assignments, requests and unavailability.
     Fixes issues #2074 and #2358.
 
   * Added a test for bibtex page content-type.
@@ -3201,18 +3274,18 @@ ietfdb (6.112.0) ietf; urgency=medium
   * Fixed an incorrect content_type.
 
   * Merged in [17097] from rjsparks@nostrum.com:
-    Removed unreachable assertion from slide reordering utility function.  
+    Removed unreachable assertion from slide reordering utility function.
 
   * Merged in [17090] from rjsparks@nostrum.com:
-    Added pages to assignment email. Fixes #2838.  
+    Added pages to assignment email. Fixes #2838.
 
   * Merged in [17083] from kivinen@iki.fi:
     Moved hard coded defaults for max items to show and days to show to the
-    settings.py.  
+    settings.py.
 
   * Merged in [17071] from rjsparks@nostrum.com:
-    Use doc.name explicitly now that name is no lonker the pk. Pointed out 
-    by Sasha in #2050.  
+    Use doc.name explicitly now that name is no lonker the pk. Pointed out
+    by Sasha in #2050.
 
  -- Henrik Levkowetz   27 Nov 2019 23:04:12 +0000
 
@@ -3228,62 +3301,62 @@ ietfdb (6.111.0) ietf; urgency=medium
 
   * Merged in [17062] from rjsparks@nostrum.com:
     Change the default template for assigned review emails to name the
-    assigned reviewer. Fixes #2830.  
+    assigned reviewer. Fixes #2830.
 
   * Merged in [17061] and [17024] from rjsparks@nostrum.com:
-    Allow slides drag-drop between sessions for groups meeting with 
+    Allow slides drag-drop between sessions for groups meeting with
     multiple sessions. Fixes #2700.
 
   * Merged in [17044] from valery@smyslov.net:
-    Make it clearer that a chair can't revise materials for a meeting once 
-    the proceedings deadline has passed.  Fixes issue #2612.  
+    Make it clearer that a chair can't revise materials for a meeting once
+    the proceedings deadline has passed.  Fixes issue #2612.
 
   * Merged in [17037] from kivinen@iki.fi:
     Added padding to the  column in the unavailability period list of
-    the reviewers page.  
+    the reviewers page.
 
   * Merged in [17036] from housley@vigilsec.com:
-    Drop old 'slides' section from agenda.json 
+    Drop old 'slides' section from agenda.json
 
   * Merged in [17035] from housley@vigilsec.com:
-    Improved performance for some agenda-related pages 
+    Improved performance for some agenda-related pages
 
   * Merged in [17034] from kivinen@iki.fi:
     Added two new configuration settings for the review team secretary,
     one to set how many days to include in the reviewers list, and
     another one to limit the number of completed items in the list for
     each person. This version replaces the one I did earlier, and includes
-    much more test cases to test different limits on the reviewers page. 
+    much more test cases to test different limits on the reviewers page.
 
-  * Added an instance of force_text() to ensure non_ascii mail subjects are 
-    unicode when used for string interpolation, rather than bytes (which will 
+  * Added an instance of force_text() to ensure non_ascii mail subjects are
+    unicode when used for string interpolation, rather than bytes (which will
     trigger ascii decode()).
 
   * Merged in [17033] from kivinen@iki.fi:
     Reviewers page template changes. Changed draft names so they never wrap.
-    Changed the Unavailability period table so it is much narrower. 
+    Changed the Unavailability period table so it is much narrower.
 
   * Merged in [17031] from fenton@bluepopcorn.net:
-    Add edit button for Secreatriat on concluded groups. Fixes #2781.  
+    Add edit button for Secreatriat on concluded groups. Fixes #2781.
 
   * RFCs with inline errata now have a non-beta URL.  Updated the setting.
 
   * Merged in [17028] from fenton@bluepopcorn.net:
-    Added a Closing note field to state specific WG edit. Fixes #2779.  
+    Added a Closing note field to state specific WG edit. Fixes #2779.
 
   * Merged in [17027] from rcross@amsl.com:
-    Fix issue where draft resurrect feature does not move most recent draft 
-    file from the archive directory back to the current draft directory. Fixes 
-    #2646.  
+    Fix issue where draft resurrect feature does not move most recent draft
+    file from the archive directory back to the current draft directory. Fixes
+    #2646.
 
-  * Tweaked docker-init.sh to create a needed GID entry before using it 
+  * Tweaked docker-init.sh to create a needed GID entry before using it
     when creating a new user.  Fixes an issue when the user GID in the
     host OS is missing in the docker image.
 
   * Added fullcalendar to the bower.json file.
 
-  * Changed the call arguments for submission tool conversion from XML to 
-    v3 text to match those of the standalone tool.  Fixes an issue where 
+  * Changed the call arguments for submission tool conversion from XML to
+    v3 text to match those of the standalone tool.  Fixes an issue where
      would have line ends stripped when converted by the datatracker.
 
   * Tweaked a test's person name form to match the usage in the tested code.
@@ -3303,7 +3376,7 @@ ietfdb (6.110.1) ietf; urgency=medium
   * Merged in [16981] from rjsparks@nostrum.com:
     Look at the tree of replaces-relationships when determining if some
     reviewer has reviewed this (or perhaps an ancestor) of this document.
-    Fixes #2821.  
+    Fixes #2821.
 
   * Merged in [16966] from rjsparks@nostrum.com:
     Use the recently released shepherd writeup templates. Fixes #2820.
@@ -3313,7 +3386,7 @@ ietfdb (6.110.1) ietf; urgency=medium
   * Merged in [16939] from sasha@dashcare.nl:
     Allow adding review wishes from document and search pages.  On the main
     page of a document and in document search results, a new button allows
-    review team members to add a review wish for that document.  
+    review team members to add a review wish for that document.
     For reviewers that are only on one team, this essentially works
     identical to tracking a document. Reviewers that are on multiple teams
     are lead through an intermediate step to select a review team, and then
@@ -3326,8 +3399,8 @@ ietfdb (6.110.1) ietf; urgency=medium
 
   * Merged in [16977] from rjsparks@nostrum.com:
     Disregard unassigned reviews when building the sets to compare when
-    checking for race-conditions on assigning reviews. 
-    Partially addresses #2821.  
+    checking for race-conditions on assigning reviews.
+    Partially addresses #2821.
 
   * Moved the ietf/names/generate_fixtures.py command to a management command
     "generate_name_fixture", and updated it to include a necessary dbtemplate
@@ -3350,12 +3423,12 @@ ietfdb (6.110.0) ietf; urgency=medium
 
   * Tweaked the submission tool to be more liberal with v3 xml submissions.
 
-  * Rewrote the ietf/bin/fix-ambiguous-timestamps command as a management 
-    command (fix_ambiguous_timestamps) and made it look at all instances of 
+  * Rewrote the ietf/bin/fix-ambiguous-timestamps command as a management
+    command (fix_ambiguous_timestamps) and made it look at all instances of
     DateTimeField by means of model introspection.
 
   * Merged in [16934] from sasha@dashcare.nl:
-    Sort unassigned review requests by doc name by default.  
+    Sort unassigned review requests by doc name by default.
     Fixes issue #2088.
 
   * Merged in [16933] from sasha@dashcare.nl:
@@ -3371,7 +3444,7 @@ ietfdb (6.110.0) ietf; urgency=medium
     - Rejections when assigning suggested reviews, as they could be considered
       a newly opened request due to not having a pk (group/views.py:1508)
 
-    Fixes issue #2119 
+    Fixes issue #2119
 
   * Merged in [16927] from sasha@dashcare.nl:
     Small cleanup from changeset [16924], see issue #2217.
@@ -3388,10 +3461,10 @@ ietfdb (6.109.0) ietf; urgency=medium
     sending review overdue reminders to team secretaries. Fixes #2816.
 
   * Merged in [16937] from rjsparks@nostrum.com:
-    Only show a blocked document once in the set of blocked documents on an 
+    Only show a blocked document once in the set of blocked documents on an
     ADs document page. Fixes #2818.
 
-  * Added mising GET parameters to the fragment cache in the agenda.ics 
+  * Added mising GET parameters to the fragment cache in the agenda.ics
     template.  Fixes issue #2817.
 
   * Merged in [16924] from sasha@dashcare.nl:
@@ -3417,7 +3490,7 @@ ietfdb (6.109.0) ietf; urgency=medium
     fixed.  Fixes issue #2217.
 
   * Merged in [16923] from sasha@dashcare.nl:
-    Show doc authors and WG chairs in unassigned reviews views.  
+    Show doc authors and WG chairs in unassigned reviews views.
     Fixes issue #2087.
 
   * Merged in [16922] from sasha@dashcare.nl:
@@ -3476,15 +3549,15 @@ ietfdb (6.108.0) ietf; urgency=medium
     assignment.  Fixes issue #2277.
 
   * Merged in [16907] from rjsparks@nostrum.com:
-    Correct construction for a reverse URL in an edge case. Fixes #2815.  
+    Correct construction for a reverse URL in an edge case. Fixes #2815.
 
   * Merged in [16875] from rjsparks@nostrum.com:
     Adds docs with blocking positions to the ADs my-documents page. Fixes
-    #2800.  
+    #2800.
 
   * Merged in [16860] from rjsparks@nostrum.com:
     Be resilient to statistics queries that provide a state but not a
-    substate. Fixes #2813.  
+    substate. Fixes #2813.
 
   * Fixed a couple of places where document alias.document was used instead of
     alias.docs.all().
@@ -3493,11 +3566,11 @@ ietfdb (6.108.0) ietf; urgency=medium
     Remove some pre-ReviewAssignment refactor logic, and simplify what remains
     while still allowing a group secretary to not assign a row on the
     unassigned requests form after touching the control to assign a reviewer.
-    Fixes #2812.  
+    Fixes #2812.
 
   * Merged in [16853] from rjsparks@nostrum.com:
     Add submitted and posted dates to several ipr notification email messages.
-    Fixes #2807.  
+    Fixes #2807.
 
   * Merged in [16852] from sasha@dashcare.nl:
     Show stacked bar graph for in time and late reviews.  On the stats page, a
@@ -3519,7 +3592,7 @@ ietfdb (6.108.0) ietf; urgency=medium
     Changes to displaying the ballot_icon to account for IRSG ballots.
     Updates Grunt generated css and map files based on updated ietf.less to
     add styles for IRSG ballot positions.  Updated copyrights in grunt
-    generated bootstrap.js.  
+    generated bootstrap.js.
 
  -- Henrik Levkowetz   23 Oct 2019 15:57:50 +0000
 
@@ -3529,7 +3602,7 @@ ietfdb (6.107.0) ietf; urgency=medium
   **Use  for last-call announcements.**
 
   * Merged in [16824] and [16825] from rjsparks@nostrum.com:
-    Introduced the use of  for last-call announcements, 
+    Introduced the use of  for last-call announcements,
     changing various email message templates and recipients to match.
 
   * Merged in [16819] from sasha@dashcare.nl:
@@ -3537,11 +3610,11 @@ ietfdb (6.107.0) ietf; urgency=medium
     If a review assignment is rejected, withdrawn, marked no response, etc.,
     and this leaves a review request without any assigned/accepted/completed
     review assignments, return the request state to 'requested', which means
-    it will be shown as an unassigned review in all interfaces.  
+    it will be shown as an unassigned review in all interfaces.
     Fixes issue #2186.
 
   * Merged in [16818] from rjsparks@nostrum.com:
-    Make hybrid pdfs when converting ppt materials to pdf. Fixes #2769.  
+    Make hybrid pdfs when converting ppt materials to pdf. Fixes #2769.
 
   * Send output of the review reminders script to log, rather than stdout
     (since this is run from cron, stdout and stderr should be quiet if nothing
@@ -3555,7 +3628,7 @@ ietfdb (6.107.0) ietf; urgency=medium
 ietfdb (6.106.0) ietf; urgency=medium
 
   * Merged in [16824] and [16825] from rjsparks@nostrum.com:
-    Introduced the use of  for last-call announcements, 
+    Introduced the use of  for last-call announcements,
     changing various email message templates and recipients to match.
 
   * Merged in [16819] from sasha@dashcare.nl:
@@ -3563,11 +3636,11 @@ ietfdb (6.106.0) ietf; urgency=medium
     If a review assignment is rejected, withdrawn, marked no response, etc.,
     and this leaves a review request without any assigned/accepted/completed
     review assignments, return the request state to 'requested', which means
-    it will be shown as an unassigned review in all interfaces.  
+    it will be shown as an unassigned review in all interfaces.
     Fixes issue #2186.
 
   * Merged in [16818] from rjsparks@nostrum.com:
-    Make hybrid pdfs when converting ppt materials to pdf. Fixes #2769.  
+    Make hybrid pdfs when converting ppt materials to pdf. Fixes #2769.
 
   * Send output of the review reminders script to log, rather than stdout
     (since this is run from cron, stdout and stderr should be quiet if nothing
@@ -3584,21 +3657,21 @@ ietfdb (6.106.0) ietf; urgency=medium
 
   * Added some type checking annotation tweaks and mypy_test() output tweaks.
 
-  * Moved the code that generates .txt and .html draft files from .xml to a 
-    place where potential errors can be caught and displayed better.  Related 
+  * Moved the code that generates .txt and .html draft files from .xml to a
+    place where potential errors can be caught and displayed better.  Related
     to ticket #2814.
 
-  * Updated PLAN: Moved reworked email sending sooner to the head of the 
+  * Updated PLAN: Moved reworked email sending sooner to the head of the
     list.
 
   * Merged in [16815] from rjsparks@nostrum.com:
     Link to the about pages for groups even if they don't have a charter (some
     have other forms of descriptive text, and all have more information on the
-    group pages than they did a few years ago). Fixes #2744.  
+    group pages than they did a few years ago). Fixes #2744.
 
   * Merged in [16813] from rjsparks@nostrum.com:
     Don't offer to propose slides when the next view will not allow you to
-    propose slides. Fixes #2763.  
+    propose slides. Fixes #2763.
 
   * Merged in [16792] from sasha@dashcare.nl:
     Send opt-in reminders for unconfirmed review assignments.  If enabled for
@@ -3606,27 +3679,27 @@ ietfdb (6.106.0) ietf; urgency=medium
     assignments they have not accepted or rejected.  Fixes issue #2475.
 
   * Merged in [16785] from rjsparks@nostrum.com:
-    Improved alerts when looking at non-current versions of a charter 
-    document. Fixes #2774.  
+    Improved alerts when looking at non-current versions of a charter
+    document. Fixes #2774.
 
-  * Turned the ReviewAssignmentAdmin.review field into a raw_id_field, to 
-    avoid a form that lists all documents in the database in a drop-down.  
+  * Turned the ReviewAssignmentAdmin.review field into a raw_id_field, to
+    avoid a form that lists all documents in the database in a drop-down.
     Fixes issue #2810.
 
   * Merged in [16770] from rjsparks@nostrum.com:
-    Populate completed_on when rejecting a ReviewAssignment. Migrate past 
-    rejected assignments accordingly. Fixes #2782.  
+    Populate completed_on when rejecting a ReviewAssignment. Migrate past
+    rejected assignments accordingly. Fixes #2782.
 
   * Merged in [16765] from sasha@dashcare.nl:
     Send daily reminders of overdue reviews to secretaries.  See issue #2277
 
   * Merged in [16763] from rjsparks@nostrum.com:
     Allowed the responsible AD to be None for documents in iesg states
-    idexists and dead. Fixes #2803 and #993.  
+    idexists and dead. Fixes #2803 and #993.
 
   * Merged in [16762] from rjsparks@nostrum.com:
     Use form validation to prevent interim slide titles that end with -nn
-    until we change interims to use the modern HREF schemes. Fixes #2797.  
+    until we change interims to use the modern HREF schemes. Fixes #2797.
 
  -- Henrik Levkowetz   16 Oct 2019 14:14:16 +0000
 
@@ -3637,7 +3710,7 @@ ietfdb (6.105.0) ietf; urgency=medium
 
   * Merged in [16759] from rjsparks@nostrum.com:
     Restrict comments total on nomcom private index to comments on positions.
-    Fixes #2792.  
+    Fixes #2792.
 
   * Merged in [16705] from sasha@dashcare.nl:
     Send periodic reminders of open reviews every X days (opt-in).
@@ -3658,26 +3731,26 @@ ietfdb (6.105.0) ietf; urgency=medium
   * Merged in [16607] from rcross@amsl.com:
     Fixed an issue where third session requests, which rerequire AD approval,
     get left with approved status, instead of scheduled, after Secretraiat
-    sends out notifications of official schedule.  Fixes #2765.  
+    sends out notifications of official schedule.  Fixes #2765.
 
   * Merged in [16701] from rcross@amsl.com:
-    Added a migration to remove any break / registration sessions that have 
-    already been created for future meetings.  Goes with changes for #2713.   
+    Added a migration to remove any break / registration sessions that have
+    already been created for future meetings.  Goes with changes for #2713.
 
-  * Added log.unreachable() for the code that creates unknown-email-* 
+  * Added log.unreachable() for the code that creates unknown-email-*
     addresses.  Related to issue #2696.
 
   * Fixed a bug in gather_submission_submitter().
 
   * Fixed an incorrect version number for mypy in requirements3.txt
 
-  * Removed some test assertions which are incorrect after the previous 
+  * Removed some test assertions which are incorrect after the previous
     commit.
 
-  * From rcross@amsl.com: Don't copy breaks etc, when creating new Empty 
+  * From rcross@amsl.com: Don't copy breaks etc, when creating new Empty
     Schedule for meetings.  Fixes issue #2713.
 
-  * Added a type hint stub file for ietf/api/__init__.py, to capture 
+  * Added a type hint stub file for ietf/api/__init__.py, to capture
     module variables created during module initialization.
 
  -- Henrik Levkowetz   07 Oct 2019 15:06:27 +0000
@@ -3692,7 +3765,7 @@ ietfdb (6.104.0) ietf; urgency=medium
   From the commit log:
 
   * Merged in [16688] from sasha@dashcare.nl:
-    When completing a review, show which addresses it is posted to. 
+    When completing a review, show which addresses it is posted to.
     Fixes issue #2478.
 
   * Merged in [16680] from sasha@dashcare.nl:
@@ -3703,7 +3776,7 @@ ietfdb (6.104.0) ietf; urgency=medium
     teams, and they are also created on the fly if a trigger does not exist
     yet, providing a safe fallback for new review teams. The review_completed
     mailtrigger serves as the template for new triggers.  This commit also
-    includes tests for gather_address_lists(), as none existed. 
+    includes tests for gather_address_lists(), as none existed.
     Fixes issue #2354.
 
   * Merged in [16672] from sasha@dashcare.nl:
@@ -3728,11 +3801,11 @@ ietfdb (6.104.0) ietf; urgency=medium
       secretary's action.
 
     - Each revision generates a new event, rather than updating previous
-      existing events. 
+      existing events.
 
     Fixes issue #2590
 
-  * Improved the wrapping of long lines in emails sent by the datatracker: 
+  * Improved the wrapping of long lines in emails sent by the datatracker:
     In wordwrap(), consider lines consisting entirely of some non-alphanumeric
     characters like ---- or === to be block (paragraph) separators.  Fixes
     issue #2806.
@@ -3748,7 +3821,7 @@ ietfdb (6.104.0) ietf; urgency=medium
     Added an optional comment field for closing review requests.
     Fixes issue #2071
 
-  * Updated the docker files to build and run an image based on devuan:ascii 
+  * Updated the docker files to build and run an image based on devuan:ascii
     instead of debian:jessie.
 
  -- Henrik Levkowetz   01 Oct 2019 16:15:46 +0000
@@ -3773,19 +3846,19 @@ ietfdb (6.103.1) ietf; urgency=medium
 
   From the commit log:
 
-  * Fixed up mypy issues or added type:ignore comments as needed for a 
+  * Fixed up mypy issues or added type:ignore comments as needed for a
     clean mypy run.
 
   * Added a mypy .ini file
 
-  * Added mypy and django-stubs to Py3 requirements, and added a mypy test 
+  * Added mypy and django-stubs to Py3 requirements, and added a mypy test
     case.
 
-  * Changed the call signature of docevent_from_submission() to take an 
-    optional Person object, rather than person name.  Added a type hint for the 
+  * Changed the call signature of docevent_from_submission() to take an
+    optional Person object, rather than person name.  Added a type hint for the
     signature.
 
-  * Tweaked the condition for waiving submission email confirmation 
+  * Tweaked the condition for waiving submission email confirmation
     slightly.
 
  -- Henrik Levkowetz   30 Sep 2019 16:55:32 +0000
@@ -3801,21 +3874,21 @@ ietfdb (6.103.0) ietf; urgency=medium
   author notification problems during IETF and RFC-Editor processing.  Commit
   log details:
 
-  * Changed draft submission to not require an email round-trip when the 
+  * Changed draft submission to not require an email round-trip when the
     submitter is logged in.  Added corresponding test cases.
 
-  * Added code to detect conflicting information for draft name, revision, 
+  * Added code to detect conflicting information for draft name, revision,
     and title when both XML and text versions of a document are submitted.
 
-  * Changed the draft submission form and views so that an email address is 
-    required for each author in order to complete self-service draft 
-    submission.  It is possible to add these as metadata updates, but this will 
-    lead to submission through the secretariat (and the email addresses will 
-    still be required).  Also updated related templates to make the handling of 
+  * Changed the draft submission form and views so that an email address is
+    required for each author in order to complete self-service draft
+    submission.  It is possible to add these as metadata updates, but this will
+    lead to submission through the secretariat (and the email addresses will
+    still be required).  Also updated related templates to make the handling of
     form section headings more consistent.
 
-  * Added some caching to /release/ pages.  With now more than 350 
-    releases, the page response times had increased to typically 4s.  Caching 
+  * Added some caching to /release/ pages.  With now more than 350
+    releases, the page response times had increased to typically 4s.  Caching
     in view and template brought this down to ~160ms.
 
  -- Henrik Levkowetz   26 Sep 2019 18:42:18 +0000
@@ -3840,13 +3913,13 @@ ietfdb (6.102.0) ietf; urgency=medium
   * Added a link from the datatracker RFC pages to the new RFC renderings
     with inline errata on the RFC-Editor web page (where available).
 
-  * Updated rfc-editor sync code to recognise the new Tooling Issue queue 
+  * Updated rfc-editor sync code to recognise the new Tooling Issue queue
     state.
 
-  * Updated ietf.sync.rfceditor.parse_index() to use the new rfc-index 
+  * Updated ietf.sync.rfceditor.parse_index() to use the new rfc-index
     schema (changed placement of the page-count element).
 
-  * Added code to catch a form error regularly caused by form spam and 
+  * Added code to catch a form error regularly caused by form spam and
     return a failure instead of triggering a server 500.
 
  -- Henrik Levkowetz   20 Sep 2019 16:18:30 +0000
@@ -3862,93 +3935,93 @@ ietfdb (6.101.0) ietf; urgency=medium
   fixes.  From the commit log:
 
   * Merged in [16656] from rjsparks@nostrum.com:
-    Added IANA expert review tracking.  
+    Added IANA expert review tracking.
 
   * Merged in [16650], [16655] from rjsparks@nostrum.com:
-    Removed the bootstrap project todo page. #2778 points to the old content 
+    Removed the bootstrap project todo page. #2778 points to the old content
     so we can make new tickets for anything that is still relevant.
 
   * Merged in [16649] from rjsparks@nostrum.com:
-    Guard against attempts to use the review request view with a 
-    ReviewRequest id that does not match the document for the ReviewRequest. 
-    This would have exposed #2776 much earlier.  
+    Guard against attempts to use the review request view with a
+    ReviewRequest id that does not match the document for the ReviewRequest.
+    This would have exposed #2776 much earlier.
 
   * Merged in [16647] from rjsparks@nostrum.com:
-    Corrected a view that was looking at review assignment ids when it 
-    should have been looking at request review ids. Fixes #2776.  
+    Corrected a view that was looking at review assignment ids when it
+    should have been looking at request review ids. Fixes #2776.
 
-  * Added a 'domain' variable to context supplied to the agenda_package.txt 
+  * Added a 'domain' variable to context supplied to the agenda_package.txt
     template.  Fixes issue #2793.
 
   * Merged in [16646] from rjsparks@nostrum.com:
     Don't manually linewrap when looking at feedback - let the pasted styling
-    do that. Fixes #2761.  
+    do that. Fixes #2761.
 
   * Merged in [16630] from rjsparks@nostrum.com:
-    Rework how we are labeling constraints to provide a quick-fix for 
-    session requests at IETF106. Turned off several javascript functions that 
-    added/enforced old (possibly no longer correct) semantics for the session 
-    request forms. Fixes #2754.  
+    Rework how we are labeling constraints to provide a quick-fix for
+    session requests at IETF106. Turned off several javascript functions that
+    added/enforced old (possibly no longer correct) semantics for the session
+    request forms. Fixes #2754.
 
   * Merged in [16629] from rjsparks@nostrum.com:
-    Removing unused template. I think it was an artifact of the Django 1.2 
-    to 1.6 conversion from 6 years ago. 
+    Removing unused template. I think it was an artifact of the Django 1.2
+    to 1.6 conversion from 6 years ago.
 
   * Merged in [16615] from peter@akayla.com:
-    Spelling correction in a comment.  No open issue.   
+    Spelling correction in a comment.  No open issue.
 
   * Merged in [16614] from peter@akayla.com:
-    Improved so that new draft diffs (from the working group drafts page) 
-    work correctly for both -00 drafts and later revisions.  Fixes issue #2697. 
+    Improved so that new draft diffs (from the working group drafts page)
+    work correctly for both -00 drafts and later revisions.  Fixes issue #2697.
 
   * Merged in [16604] from rjsparks@nostrum.com:
     Look at all scheduled sessions for a group when deciding to display a
-    cancelled banner. Fixes #2764.  
+    cancelled banner. Fixes #2764.
 
-  * The logic for displaying 'Email requested to be sent for earlier 
-    discuss' on IESG positions was wrong; it would count later discusses and 
-    discusses from other ADs as an 'earlier discuss'.  Moved any_email_sent() 
+  * The logic for displaying 'Email requested to be sent for earlier
+    discuss' on IESG positions was wrong; it would count later discusses and
+    discusses from other ADs as an 'earlier discuss'.  Moved any_email_sent()
     from ballot to position, and refined the criteria.
 
-  * Made sure Person.active_drafts() and .expired_drafts() don't return 
+  * Made sure Person.active_drafts() and .expired_drafts() don't return
     duplicate entries.  Fixes issue #2784.
 
   * Changed requirements to permit pyang 2.0 and greater.
 
-  * Added a migration to fix some m2m table columns incorrectly left as 
+  * Added a migration to fix some m2m table columns incorrectly left as
     varchar(8) when we changed the size of name slugs to varchar(32).
 
   * Merged in [16601] from rjsparks@nostrum.com:
-    A management command to correct the state of several slide 
-    presentations uploaded during IETF105, and perform some missed powerpoint 
-    to pdf conversions. 
+    A management command to correct the state of several slide
+    presentations uploaded during IETF105, and perform some missed powerpoint
+    to pdf conversions.
 
   * Merged in [16600] from rjsparks@nostrum.com:
-    Fixed a subtle bug in the code that converts slides to PDF that was 
-    writing back into settings.  
+    Fixed a subtle bug in the code that converts slides to PDF that was
+    writing back into settings.
 
   * Merged in [16599] from rjsparks@nostrum.com:
-    Correct the uploaded_filename for slides that go through the 
-    approve-proposed-slides workflow.  
+    Correct the uploaded_filename for slides that go through the
+    approve-proposed-slides workflow.
 
   * Merged in [16598] from rjsparks@nostrum.com:
-    Add the ppt* to pdf conversion to the approve-suggested-slides 
-    workflow. Fixes #2762.  
+    Add the ppt* to pdf conversion to the approve-suggested-slides
+    workflow. Fixes #2762.
 
   * Added textual information about patent application formats according to
     WIPO's Handbook on Industrial Property Information and Documentation, as
     input to future extension of the regex set.
 
-  * Added some new formats to the regex validator for patent numbers and 
+  * Added some new formats to the regex validator for patent numbers and
     patent application numbers.  This is still not comprehensive.
 
   * Adjusted migrations for Python2/3 compatibility.
 
-  * Updated database options settings to match our production database and 
+  * Updated database options settings to match our production database and
     dump files.
 
   * Fixed an issue where the text file charset information for an upload would
-    be overwritten on upload of multiple files for a draft.  
+    be overwritten on upload of multiple files for a draft.
     Fixes issue #2768.
 
   * Added 30 minutes caching to agenda.ics
@@ -3965,7 +4038,7 @@ ietfdb (6.100.0) ietf; urgency=medium
   into the datatracker than before, accomplishing substantial tasks.  Thanks
   to everyone who contributed!
 
-  Notable improvements: 
+  Notable improvements:
 
   The document list pages produced by searches, group document pages, and
   similar has been speeded up by a factor of more than 2 by doing detailed
@@ -3984,28 +4057,28 @@ ietfdb (6.100.0) ietf; urgency=medium
 
   * Merged in [16593] from rjsparks@nostrum.com:
     Added sorting of the documents in the agenda, minutes, bluesheets section
-    of the session_details view. Fixes #2759.  
+    of the session_details view. Fixes #2759.
 
   * Merged in [16592] from rjsparks@nostrum.com:
     Changed how the session details page links to documents to not link to a
-    specific version. Fixes #2758. See also #2756.  
+    specific version. Fixes #2758. See also #2756.
 
   * Merged in [16590] from rjsparks@nostrum.com:
     Example of using webtest. The full testcase was not converted because the
     add_rule form is modified in-flight by javascript when a control value is
-    changed.  
+    changed.
 
   * Merged in [16583] from rjsparks@nostrum.com:
     Restored the ability to remove documents while managing a personal list.
     Required updating code to match the recent change to Document's primary
-    key. Fixes #2757.  
+    key. Fixes #2757.
 
   * Merged in [16569] from rjsparks@nostrum.com:
-    Added quotes around document name in the mailarchive search link on a 
-    document's main page. Fixes #2659.  
+    Added quotes around document name in the mailarchive search link on a
+    document's main page. Fixes #2659.
 
   * Merged in [16589] from rjsparks@nostrum.com:
-    Added a calendar to the upcoming meetings page. Fixes #2719.  
+    Added a calendar to the upcoming meetings page. Fixes #2719.
 
   * Prevent login name case issues by generating apache permissions file
     entries for both uppercase and lowercase logins.
@@ -4017,20 +4090,20 @@ ietfdb (6.100.0) ietf; urgency=medium
     to yarn.  New management command, replacing bower_install will be needed.
 
   * Merged in [16562] from rcross@amsl.com:
-    Added encoding='utf-8' parameter to io.open operations in tests that 
-    starting failing since adding unicode_literals.   
+    Added encoding='utf-8' parameter to io.open operations in tests that
+    starting failing since adding unicode_literals.
 
   * Merged in [16561] from rjsparks@nostrum.com:
-    Added a prompt for login for approving slide suggestions instead of just 
-    presenting an error. Fixes #2750.  
+    Added a prompt for login for approving slide suggestions instead of just
+    presenting an error. Fixes #2750.
 
   * Merged in [16559] from fenton@bluepopcorn.net:
     Added Closing Notes to history and about pages for groups. Fixes issue
-    #2725.  
+    #2725.
 
   * Merged in [16558] from rjsparks@nostrum.com:
-    Made removed IPR disclosures visually distinctive on search results. 
-    Partially addresses #2687.  
+    Made removed IPR disclosures visually distinctive on search results.
+    Partially addresses #2687.
 
   * Merged in [16557] from pusateri@bangj.com:
     Added the ability to upload agenda and minutes in markdown format.
@@ -4039,22 +4112,22 @@ ietfdb (6.100.0) ietf; urgency=medium
 
   * Fixed a number of additional Py2/3 compatibility issues.
 
-  * Added LookupError to the exceptions caught during text upload decoding, 
+  * Added LookupError to the exceptions caught during text upload decoding,
     leading to upload form validation error.
 
   * Merged in [16554] from rjsparks@nostrum.com:
-    Rework how SlideSuggestion objects name their files. Improve the UI 
-    when there are multiple pending suggestions for updating the same 
-    presentation.  
+    Rework how SlideSuggestion objects name their files. Improve the UI
+    when there are multiple pending suggestions for updating the same
+    presentation.
 
-  * Moved djangobwr into the local repository, due to consistent 
+  * Moved djangobwr into the local repository, due to consistent
     difficulties pulling it from github as an svn:external
 
   * Enabled display of group pages also for groups of type adhoc and ise.
 
   * Updated the PLAN to adjust priority on modeling BCPs correctly
 
-  * Added another check before building submitter email for mailtrigger 
+  * Added another check before building submitter email for mailtrigger
     entries, to ensure valid email addresses.
 
  -- Henrik Levkowetz   05 Aug 2019 16:43:03 +0000
@@ -4073,14 +4146,14 @@ ietfdb (6.99.1) ietf; urgency=medium
   * Added a check for submitter found before trying to get submitter name and
     email when generating email notification address lists.
 
-  * Shortened generated document titles a tad, to avoid line wrapping in 
+  * Shortened generated document titles a tad, to avoid line wrapping in
     the IESG agenda package (which sometimes breaks the relevant tests).
 
   * Merged in [16515] from rjsparks@nostrum.com:
-    Save files correctly when updates to an existing set of slides are 
-    proposed. Fixes #2748.  
+    Save files correctly when updates to an existing set of slides are
+    proposed. Fixes #2748.
 
-  * Added information about versions (Datatracker, Python, and Django) at 
+  * Added information about versions (Datatracker, Python, and Django) at
     the beginning of test suite runs, to be able to clearly see which Python
     and Django versions were used during a test run.
 
@@ -4098,10 +4171,10 @@ ietfdb (6.99.1) ietf; urgency=medium
     address.  This deals better with submission records that only has a name
     in the submitter field.
 
-  * Changed import path for settings_local.py to work with absolute_import 
+  * Changed import path for settings_local.py to work with absolute_import
     under Py2, and also under Py3.
 
-  * Changed agenda file reading to read files as binary when looking for 
+  * Changed agenda file reading to read files as binary when looking for
     draft names listed in the agenda, in order to avoid issues with
     older uploads using latin-1 or other encodings where the lower
     127 character match ASCII.
@@ -4137,19 +4210,19 @@ ietfdb (6.98.4) ietf; urgency=medium
   This is a small bugfix release, to clear the slate before merging
   in the Python 2/3 conversion.  From the commit log:
 
-  * Added a validation step for SearchablePersonField, to avoid later 
+  * Added a validation step for SearchablePersonField, to avoid later
     server 500 errors on bad input.
 
   * Merged in [16404] from rjsparks@nostrum.com:
-    Only look for ietf/datatracker-env images when extracting the most 
-    recent build to tag as latest.  
+    Only look for ietf/datatracker-env images when extracting the most
+    recent build to tag as latest.
 
   * Merged in [16359] from rcross@amsl.com:
-    Fix registration import, use user.person if it exists.   
+    Fix registration import, use user.person if it exists.
 
   * Merged in [16096] from rcross@amsl.com:
-    Update admin permissions. Grant secretariat change permissions on 
-    dbtemplate so they can update proceedings pages.  
+    Update admin permissions. Grant secretariat change permissions on
+    dbtemplate so they can update proceedings pages.
 
   * Turned off html autoescape in IPR email templates.  This fixes
     inappropriate html escapes that occurred in various IPR-related
@@ -4158,12 +4231,12 @@ ietfdb (6.98.4) ietf; urgency=medium
   * Added missing code to skip coverage measurement for skippable tests.
 
  -- Henrik Levkowetz   16 Jul 2019 14:14:12 +0000
-  
+
 
 ietfdb (6.98.3) ietf; urgency=medium
 
-  * Increased the length of the list Subscribed email field from 64 to 128, 
-    updated the import_mailman_listinfo management command, and added a 
+  * Increased the length of the list Subscribed email field from 64 to 128,
+    updated the import_mailman_listinfo management command, and added a
     migration for the model change.
 
  -- Henrik Levkowetz   04 Jul 2019 16:07:14 +0000
@@ -4191,10 +4264,10 @@ ietfdb (6.98.2) ietf; urgency=medium
 
   * Added a utility to check copyright statements in specified files.
 
-  * Updated some functions and views in secr/srec/ to use GroupFeatures 
+  * Updated some functions and views in secr/srec/ to use GroupFeatures
     instead of hardcoded lists of group types.
 
-  * Made session requests also work for ad-hoc groups, which may not have a 
+  * Made session requests also work for ad-hoc groups, which may not have a
     parent area.
 
  -- Henrik Levkowetz   03 Jul 2019 20:27:54 +0000
@@ -4206,42 +4279,42 @@ ietfdb (6.98.1) ietf; urgency=medium
   Document/DocAlias primary key refactoring, and also fixes some other
   unrelated issues.  From the commit log:
 
-  * Fixed bad logic for the display of previous related IPR information in 
+  * Fixed bad logic for the display of previous related IPR information in
     the IPR details template.
 
   * Tweaked some test failure messages for better debugging.
 
   * Merged in [16287] from rjsparks@nostrum.com:
-    Send mail to a list when a new IETF WG -00 is submitted. Fixes #2730.  
+    Send mail to a list when a new IETF WG -00 is submitted. Fixes #2730.
 
-  * Fixed some name versus pk issues lingering after the Document/DocAlias 
+  * Fixed some name versus pk issues lingering after the Document/DocAlias
     primary key refactoring.  Fixes issue #2729.
 
-  * Added the option to order API resource lists by primary key, for stable 
+  * Added the option to order API resource lists by primary key, for stable
     ordering when paging through a list.
 
   * Added generation of Meta.ordering for API ModelResources in the
   * mkresources management command.
 
-  * The Document and DocAlias primary key refactoring caused the Tastypie 
-    API under /api/v1/ to change -- reverting that to use the old form, with 
+  * The Document and DocAlias primary key refactoring caused the Tastypie
+    API under /api/v1/ to change -- reverting that to use the old form, with
     name ask API key.
 
   * Added a better error message for too long draft names during submission.
 
-  * Adjusted the test_runner to generate migration coverage data also when 
+  * Adjusted the test_runner to generate migration coverage data also when
     permitting mixed migrations.
 
-  * Added a guard against duplicate insertions in 
+  * Added a guard against duplicate insertions in
     SearchRule.name_contains_index
 
   * Fixed a docalias problem with generate-draft-aliases
 
   * Merged in [16248] from rjsparks@nostrum.com:
-    Removed the IETF chair as a recipient of new IPR disclosures if there 
-    is no group or active document to send them to. Fixes #2727.  
+    Removed the IETF chair as a recipient of new IPR disclosures if there
+    is no group or active document to send them to. Fixes #2727.
 
-  * Added a management command to update the index table used by some 
+  * Added a management command to update the index table used by some
     community list search rules.  Running this fixes the missing listings
     of drafts related to a group on group document pages and in searches.
 
@@ -4263,10 +4336,10 @@ ietfdb (6.98.0) ietf; urgency=medium
   DocAlias use a m2m document field; with 255 long strings as primary keys for
   Document and DocAlias this violated the MySQL database limitations.
 
-  Changing the primary keys to integers should also improve efficiency.  
+  Changing the primary keys to integers should also improve efficiency.
 
   Additionally, in order to make it possible to have DocAlias objects referring
-  to multiple documents, in order to reflect STD and BCP names that refer to 
+  to multiple documents, in order to reflect STD and BCP names that refer to
   multiple RFCs, DocAlias has been refactored to use many-to-many tables instead
   of foreign keys do toduments.
 
@@ -4299,7 +4372,7 @@ ietfdb (6.97.1) ietf; urgency=medium
   * Fixed an issue where the 'Request closing group' button incorrectly was
     showing for group chairs.  Fixes issue #2724.
 
-  * Moved some explicit URLs from code and templates to settings (related 
+  * Moved some explicit URLs from code and templates to settings (related
     to the production server www6/ directory cleanup).
 
   * Refined the handling of draft xml version 3 versus version 2.  This fixes
@@ -4322,33 +4395,33 @@ ietfdb (6.97.0) ietf; urgency=medium
 
   * Added a link to the meeting registration page to the meetings menu.
 
-  * Added a link to the registration page from the meeting 'Important 
+  * Added a link to the registration page from the meeting 'Important
     Dates' page.
 
   * Removed additional instances of links to unposted IPR disclosures that
     would result in 404 pages.
 
-  * After feedback from the RFC-Editor staff, changed the URL POST 
+  * After feedback from the RFC-Editor staff, changed the URL POST
     notification of Group name changes to an Email notification.
 
   * Added .ics links for future meetings to the group meetings tab.
 
-  * Added a signal receiver for notifications to the RFC editor about 
+  * Added a signal receiver for notifications to the RFC editor about
     changed Group names.
 
-  * Added sample notification JWT signature verification code to 
+  * Added sample notification JWT signature verification code to
     /api/index.html.
 
-  * Updated settings with EC/P-256 api keys (JWT does not support RS2048, 
-    which is what we had).  Added a variable for RFC Editor group name 
+  * Updated settings with EC/P-256 api keys (JWT does not support RS2048,
+    which is what we had).  Added a variable for RFC Editor group name
     notifications, with a placeholder value.
 
-  * Fixed template and view to restore previous review display on the 
+  * Fixed template and view to restore previous review display on the
     Manage Unassigned Reviews page.  Fixes issue #2718.
 
   * Tweaked the review assignment presentation in review/request_info.html.
 
-  * Added review assignment information to the review-document view.  
+  * Added review assignment information to the review-document view.
     Addresses issue #2717.
 
  -- Henrik Levkowetz   23 May 2019 15:09:45 +0000
@@ -4368,41 +4441,41 @@ ietfdb (6.96.0) ietf; urgency=medium
 
   Additional details from the commit log:
 
-  * Merged in a refactoring of document review code from 
-    rjsparks@nostrum.com.  This introduces ReviewAssignments, letting us do 
-    multiple assingments for a given RevieRequest, without conflating the 
+  * Merged in a refactoring of document review code from
+    rjsparks@nostrum.com.  This introduces ReviewAssignments, letting us do
+    multiple assingments for a given RevieRequest, without conflating the
     assignments and their results with the request itself.
 
   * Updated the ReviewAssignment api resource to match the current model.
 
-  * Added a no-follow option to the test crawler, in order to be able to 
+  * Added a no-follow option to the test crawler, in order to be able to
     easily test a specific list of URLs.
 
-  * Modified a template to handle old reviews with incomplete information 
+  * Modified a template to handle old reviews with incomplete information
     appropriately, instead of giving 500 errors.
 
-  * Fixed a problem in 3 views that were accessible through URLs without 
-    meeting numbers (e.g., .../meeting/proceedings/overview/) but gave 500 
+  * Fixed a problem in 3 views that were accessible through URLs without
+    meeting numbers (e.g., .../meeting/proceedings/overview/) but gave 500
     errors when accessed.
 
   * Corrected an old URL for past meeting proceedings.
 
-  * Fixed some migrations issues that prevented the review assignment 
+  * Fixed some migrations issues that prevented the review assignment
     refactoring migrations from being reversed and re-applied.
 
-  * Changed a ReviewAssignmentDocEvent type from 'closed_review_request' to 
+  * Changed a ReviewAssignmentDocEvent type from 'closed_review_request' to
     'closed_review_assignment', for consistency and readability.
 
-  * After having test_duplicate_person_name() fail for a non-ascii name, 
+  * After having test_duplicate_person_name() fail for a non-ascii name,
     changed the test to always supply a non-ascii name.
 
   * Removed links to the old MHonArc mail archives, and related view.
 
   * Changed the BOF request procedures page URL.
 
-  * Tweaked the greate_group_wikis management command to accept trailing 
-    fileglob wildcards on adhoc wiki group acronyms.  Added a generic NomCom 
-    wiki to the list of adhoc wikis to be created and maintained, with admins 
+  * Tweaked the greate_group_wikis management command to accept trailing
+    fileglob wildcards on adhoc wiki group acronyms.  Added a generic NomCom
+    wiki to the list of adhoc wikis to be created and maintained, with admins
     from active nomcom* groups.
 
   * Fixed bad html in a proceedings template.
@@ -4414,7 +4487,7 @@ ietfdb (6.95.1) ietf; urgency=medium
 
   This is a bugfix release, addressing the following issues:
 
-  * Modified the display of updates to a rejected IPR to avoid links that 
+  * Modified the display of updates to a rejected IPR to avoid links that
     result in 404 pages.
 
   * Combined [16154] from rjsparks@nostrum.com with previous work on ticket
@@ -4423,7 +4496,7 @@ ietfdb (6.95.1) ietf; urgency=medium
 
   * Merged in [16152] from rjsparks@nostrum.com:
     Show minutes on the popup for the meeting materials button on the agenda
-    page when those minutes are available. Fixes #2711.  
+    page when those minutes are available. Fixes #2711.
 
   * Updated the role handling to use GroupFeatures.groupman_roles
     consistently for group management access.  Fixes a IRTF RG delegate
@@ -4434,15 +4507,15 @@ ietfdb (6.95.1) ietf; urgency=medium
   * Added a missing test directory cleanup action.
 
   * Merged in [16145] from housley@vigilsec.com:
-    Updated the out-of-date links in the footer of each datatracker page. 
-    Fixes #2710.  
+    Updated the out-of-date links in the footer of each datatracker page.
+    Fixes #2710.
 
   * Merged in [16144] from housley@vigilsec.com:
-    Removed some clutter from I-D upload page.  The information was moved to 
-    the Instructions tab, but a higligh to the Note Well and BCP 78 was added. 
-    Fixes #2057.   
+    Removed some clutter from I-D upload page.  The information was moved to
+    the Instructions tab, but a higligh to the Note Well and BCP 78 was added.
+    Fixes #2057.
 
-  * Added some HTTP header settings for better security.  Brings results at 
+  * Added some HTTP header settings for better security.  Brings results at
     https://securityheaders.com/ up to an 'A' grade.
 
  -- Henrik Levkowetz   26 Apr 2019 11:23:57 +0000
@@ -4455,7 +4528,7 @@ ietfdb (6.95.0) ietf; urgency=medium
   IETF-104 Code Sprint.  We have several first-time sprint contributors,
   and a substantial set of improvements.  Thanks to everyone who contributed!
 
-  Notable improvements: 
+  Notable improvements:
 
   The datatracker now supports reminders of and direct addition of downref
   entries at the time of document approval.  Document review management has
@@ -4467,86 +4540,86 @@ ietfdb (6.95.0) ietf; urgency=medium
   Additional comments, excerpted from the commit log:
 
   * Merged in [16126] from housley@vigilsec.com:
-    Allow Secretariat to handle downrefs when they approve a document 
+    Allow Secretariat to handle downrefs when they approve a document
 
   * Merged in [16124] from rcross@amsl.com:
-    Add No Bluesheets indicator to materials page.  
+    Add No Bluesheets indicator to materials page.
 
   * Merged in [16121] from rjsparks@nostrum.com:
-    Provides menubar offset for wg anchors on the /wg page. Fixes #1481.  
+    Provides menubar offset for wg anchors on the /wg page. Fixes #1481.
 
   * Merged in [16110] from rjsparks@nostrum.com:
-    Include the note itself in email sent when the RFC editor note changes 
-    after document approval. Also changed the flow to redirect back to the 
-    writeups pages after editing the RFC editor note. Fixes #2672.  
+    Include the note itself in email sent when the RFC editor note changes
+    after document approval. Also changed the flow to redirect back to the
+    writeups pages after editing the RFC editor note. Fixes #2672.
 
   * Merged in [16109] from rjsparks@nostrum.com:
-    Protect drafts in certain IRTF states from expiring. Fixes #2669.  
+    Protect drafts in certain IRTF states from expiring. Fixes #2669.
 
   * Merged in [16108] from fenton@bluepopcorn.net:
-    Moved old nomcom announcements to database and removed references to 
-    legacy website. Fixes #2686.  
+    Moved old nomcom announcements to database and removed references to
+    legacy website. Fixes #2686.
 
   * Merged in [16107] from rjsparks@nostrum.com:
-    Show the agenda note, if it exits, on a sessions SUMMARY line in the 
-    ical view of an agenda. Fixes #2676.  
+    Show the agenda note, if it exits, on a sessions SUMMARY line in the
+    ical view of an agenda. Fixes #2676.
 
   * Merged in [16106] from rjsparks@nostrum.com:
-    Don't allow users to edit the 'active' value for unknown-email-* 
-    addresses. Related to #2696.  
+    Don't allow users to edit the 'active' value for unknown-email-*
+    addresses. Related to #2696.
 
   * Merged in [16103] from rjsparks@nostrum.com:
-    Modified the admin model for SlideSubmission to use a couple of 
-    raw_id_field widgets.  
+    Modified the admin model for SlideSubmission to use a couple of
+    raw_id_field widgets.
 
   * Merged in [16102] from rjsparks@nostrum.com:
-    Allow logged in users to propose slides for meeting sessions. Fixes 
-    #2547 and #2403.  
+    Allow logged in users to propose slides for meeting sessions. Fixes
+    #2547 and #2403.
 
   * Merged in [16095] from peter@akayla.com:
-    Fixed bad calls to rfcdiff for -00 drafts and replaced drafts.  Fixes 
-    issue #2697.   
+    Fixed bad calls to rfcdiff for -00 drafts and replaced drafts.  Fixes
+    issue #2697.
 
   * Merged in [16094] from magnus.westerlund@ericsson.com:
-    Added sortable columns to Review Team Reviewers page. Partially 
-    addresses issue #2656  
+    Added sortable columns to Review Team Reviewers page. Partially
+    addresses issue #2656
 
   * Merged in [16092] from rcross@amsl.com:
-    Remove ability to cancel a break session.  Fixes #2703.   
+    Remove ability to cancel a break session.  Fixes #2703.
 
   * Changed the etherpad url schema to https.
 
-  * Temorary workaround to upload xml validation.  The tree.validate() of 
-    xml2rfc should be updated to check vocabulary version and validate against 
+  * Temorary workaround to upload xml validation.  The tree.validate() of
+    xml2rfc should be updated to check vocabulary version and validate against
     the appropriate schema, to fix this properly.
 
   * Added dbtemplate validation to the DBTemplate class, to make sure one
     cannot enter invalid DBtemplates through the admin.
 
   * Merged in [16089] from mahoney@nostrum.com:
-    added instructions for entering the draft name. Fixes #1375.  
+    added instructions for entering the draft name. Fixes #1375.
 
-  * Added creation of a group with the user's GID inside the docker 
+  * Added creation of a group with the user's GID inside the docker
     container, if it's missing.
 
   * Merged in [16088] from rcross@amsl.com:
-    Fixed multiple issues with secretariat non-session view, including 
-    an indicator of cancelled sessions.  Fixes #2701.   
+    Fixed multiple issues with secretariat non-session view, including
+    an indicator of cancelled sessions.  Fixes #2701.
 
   * Merged in [16087] from housley@vigilsec.com:
-    Add downward references to telechat moderator package and Secretariat 
-    telechat pages.   
+    Add downward references to telechat moderator package and Secretariat
+    telechat pages.
 
   * Merged in [16085] from rcross@amsl.com:
     Fixed an issue where cancelling one break session would cause other
-    breaks to get cancelled.  Fixes #2699.  
+    breaks to get cancelled.  Fixes #2699.
 
   * Added filtering by meeting for the UrlResource admin.
 
-  * Changed docker/updatedb to use https://, as cloudflare doesn't do the 
+  * Changed docker/updatedb to use https://, as cloudflare doesn't do the
     right thing for our http:// database dump URL any more.
 
-  * Added a skipIf() decorator for a test which should not be run unless 
+  * Added a skipIf() decorator for a test which should not be run unless
     the ghostscript binary is available in the test environment.
 
  -- Henrik Levkowetz   09 Apr 2019 11:55:21 +0000
@@ -4556,14 +4629,14 @@ ietfdb (6.94.1) ietf; urgency=medium
 
   This is a minor bugfix release, to clear the slate for the IETF 104 sprint.
 
-  * Put a length limit to generated cache keys in stats/views.py, to avoid 
+  * Put a length limit to generated cache keys in stats/views.py, to avoid
     tickling memcached's limit of 250.
 
-  * Changed sending of PubReq messages to explicitly use on-behalf-of, 
-    without Reply-To.  Reply-To is picked up as requestor by RT.  Fixes issue 
+  * Changed sending of PubReq messages to explicitly use on-behalf-of,
+    without Reply-To.  Reply-To is picked up as requestor by RT.  Fixes issue
     #2691 anew.
 
-  * Changed etherpad server address from etherpad.tools.ietf.org to 
+  * Changed etherpad server address from etherpad.tools.ietf.org to
     etherpad.ietf.org.
 
  -- Henrik Levkowetz   19 Mar 2019 18:01:07 +0000
@@ -4578,7 +4651,7 @@ ietfdb (6.94.0) ietf; urgency=medium
   of other changes and fixes, as follows:
 
   * Merged in [16022] from rcross@amsl.com: Modified IPR Patent number regex
-    to allow a new Italian patent number format, IT[15 digits]. Fixes #2694.  
+    to allow a new Italian patent number format, IT[15 digits]. Fixes #2694.
 
   * Reverted earlier application of on_behalf_of() at mail sending call
     points, and instead did all on_behalf_of processing in
@@ -4630,7 +4703,7 @@ ietfdb (6.93.0) ietf; urgency=medium
 
   From the commit log:
 
-  * Added on_behalf_of() calls for from addresses needing it throughout the 
+  * Added on_behalf_of() calls for from addresses needing it throughout the
     code.
 
   * Added html escaping of initial text-area content in a view function to
@@ -4647,8 +4720,8 @@ ietfdb (6.93.0) ietf; urgency=medium
     changed.
 
   * Merged in [15982] from rjsparks@nostrum.com:
-    Add session.short to the output from meeting/agenda.json when it is 
-    available.  
+    Add session.short to the output from meeting/agenda.json when it is
+    available.
 
  -- Henrik Levkowetz   05 Mar 2019 17:52:55 +0000
 
@@ -4660,7 +4733,7 @@ ietfdb (6.92.1) ietf; urgency=medium
   code was removed, and one migration to extend the width of a field used to
   hold URLs.  From the commit log:
 
-  * Increased the DocumentURL.url field length to the legal URL maximum of 
+  * Increased the DocumentURL.url field length to the legal URL maximum of
     2083.
 
   * Removed the GroupFeatures.has_dependencies field.
@@ -4682,11 +4755,11 @@ ietfdb (6.92.0) ietf; urgency=medium
 
   There are also some bugfixes.  From the commit log:
 
-  * Increased the document count for group document lists from the 
+  * Increased the document count for group document lists from the
     default(200) to 500, as MPLS now exceeds 200.
 
-  * Rewrote the submission deduce_group() to consider all groups with 
-    acronyms that are also GroupTypeNames. Added GroupTypeName for 
+  * Rewrote the submission deduce_group() to consider all groups with
+    acronyms that are also GroupTypeNames. Added GroupTypeName for
     iesg,ise,adhoc groups, and appropriate GroupFeatures for each.
 
 
@@ -4697,11 +4770,11 @@ ietfdb (6.92.0) ietf; urgency=medium
 
   * Tweaked mkdevbranch to take an optional extra message paragraph.
 
-  * Modified a view function to fill in missing default CommunityLists for 
+  * Modified a view function to fill in missing default CommunityLists for
     groups with features.has_documents == True, to avoid a possible server
     error.
 
-  * Removed the has_dependencies GroupFeature, and used has_documents 
+  * Removed the has_dependencies GroupFeature, and used has_documents
     instead in the one place it was used.
 
   * Fixed a submission failure for xml files missing abstract sections.
@@ -4724,21 +4797,21 @@ ietfdb (6.91.0) ietf; urgency=low
   Additionally, some minor unrelated fixes has been applied.  From the
   commit log:
 
-  * Merged in GroupFeatures refactoring and expansion from 
+  * Merged in GroupFeatures refactoring and expansion from
     ^/personal/henrik/6.89.4.dev0@15911.
 
-  * Reverted r15071 with respects to showing the submit for publication 
+  * Reverted r15071 with respects to showing the submit for publication
     button to shepherds.  Fixes issue #2673.
 
-  * Updated code and templates to use the new docman and groupman group 
+  * Updated code and templates to use the new docman and groupman group
     features.
 
   * Updated fixture with new group features and more.
 
   * Added a tiny management command to list group types per feature.
 
-  * Removed origin information from the liaison_title.html template, as 
-    it's used in a context where  html comments will be rendered.  Fixes issue 
+  * Removed origin information from the liaison_title.html template, as
+    it's used in a context where  html comments will be rendered.  Fixes issue
     #2674.
 
  -- Henrik Levkowetz   04 Feb 2019 11:57:59 +0000
@@ -4813,28 +4886,28 @@ ietfdb (6.89.3) ietf; urgency=low
     release (2018i)
 
   * Merged in [15865] from rjsparks@nostrum.com:
-    Cleanup: removed the infrastructure for importing reviews from the 
-    old review tool.  
+    Cleanup: removed the infrastructure for importing reviews from the
+    old review tool.
 
   * Merged in [15864] from rjsparks@nostrum.com:
-    Refactored DocumentInfo to address overloading the external_url field 
-    with strings that are not URLs.  
+    Refactored DocumentInfo to address overloading the external_url field
+    with strings that are not URLs.
 
   * Merged in [15846] from rjsparks@nostrum.com:
-    Simple tests of some log utilities.  
+    Simple tests of some log utilities.
 
   * Merged in [15845] from rjsparks@nostrum.com:
-    simple test of BowerStorageFinder.  
+    simple test of BowerStorageFinder.
 
   * Merged in [15833] from rjsparks@nostrum.com:
-    Incremental improvements to the submit_existing tests.  
+    Incremental improvements to the submit_existing tests.
 
   * Merged in [15829] from rjsparks@nostrum.com:
-    Make state/substate changes on new submissions sensitive to stream. 
-    Fixes #2642.  
+    Make state/substate changes on new submissions sensitive to stream.
+    Fixes #2642.
 
   * Merged in [15828] from rjsparks@nostrum.com:
-    Show more group types on the concluded groups page. Fixes #2643.  
+    Show more group types on the concluded groups page. Fixes #2643.
 
   * Additional tweaks to submission yang testing and the test runner
 
@@ -4844,24 +4917,24 @@ ietfdb (6.89.3) ietf; urgency=low
 
 ietfdb (6.89.2) ietf; urgency=low
 
-  * Added a migration to capture changes to HistoricalRecords triggered by 
+  * Added a migration to capture changes to HistoricalRecords triggered by
     changes in django-simple-history
 
-  * Bumped the minimum version requirement on django-simple-history; 
+  * Bumped the minimum version requirement on django-simple-history;
     HistoricalChanges which we now use was introduced with 2.3.0.
 
-  * Changed the construction of element IDs that could trigger ad-blockers 
+  * Changed the construction of element IDs that could trigger ad-blockers
     in a NomCom page to avoid the problem.
 
-  * Removed an assertion for iesg state for documents that can be in any 
+  * Removed an assertion for iesg state for documents that can be in any
     stream.
 
   * Merged in [15824] from rjsparks@nostrum.com:
-    Make it more obvious that a group has been replaced when looking at its 
-    pages. Fixes #2661.  
+    Make it more obvious that a group has been replaced when looking at its
+    pages. Fixes #2661.
 
   * Merged in [15818] from rjsparks@nostrum.com:
-    Whitespace only change to make the conditional structure followable.  
+    Whitespace only change to make the conditional structure followable.
 
   * Merged in [15822] and [15809] from rjsparks@nostrum.com:
     Added an explicit ID-Exists state for the IESG state machine.
@@ -4870,33 +4943,33 @@ ietfdb (6.89.2) ietf; urgency=low
     research group, or the independent stream. Releasing a document
     removes all stream state, and sets the document to have no stream.
 
-  * Fixed a bug in the RFC Index parsing that caused extraction of only one 
+  * Fixed a bug in the RFC Index parsing that caused extraction of only one
     paragraph of an abstract, even if there were multiple.
 
   * Merged in [15816] from rjsparks@nostrum.com:
-    Provide a correct link to jabber logs for plenaries in past agendas. 
-    Fixes #2641.  
+    Provide a correct link to jabber logs for plenaries in past agendas.
+    Fixes #2641.
 
   * Merged in [15810] from rcross@amsl.com:
-    Grant secretariat admin permissions to mailtrigger models.  Fixes 
-    #2637.   
+    Grant secretariat admin permissions to mailtrigger models.  Fixes
+    #2637.
 
   * Merged in [15808] from rjsparks@nostrum.com:
-    Allow notify_ad_when to be blank.  
+    Allow notify_ad_when to be blank.
 
   * Merged in [15807] from rjsparks@nostrum.com:
-    Repaired another instance of a literal path with a reverse lookup. 
-    Related to #2657.  
+    Repaired another instance of a literal path with a reverse lookup.
+    Related to #2657.
 
-  * Added a description of the /doc//doc.json API to the /api/ index page, 
+  * Added a description of the /doc//doc.json API to the /api/ index page,
     and also added a table-of-contents column.
 
   * Merged in [15806] from rjsparks@nostrum.com:
-    Changed an inappropriate literal path to a reverse url lookup. Fixes 
-    #2657.  
+    Changed an inappropriate literal path to a reverse url lookup. Fixes
+    #2657.
 
   * Merged in [15804] from rjsparks@nostrum.com:
-    Add history to ReviewerSettings. Fixes #2147.  
+    Add history to ReviewerSettings. Fixes #2147.
 
  -- Henrik Levkowetz   19 Dec 2018 08:27:48 +0000
 
@@ -4904,13 +4977,13 @@ ietfdb (6.89.2) ietf; urgency=low
 ietfdb (6.89.1) ietf; urgency=low
 
   * Merged in [15787] from rcross@amsl.com:
-    Rework page flow and forms of secr/meetings app.  Fixes #2609.   
+    Rework page flow and forms of secr/meetings app.  Fixes #2609.
 
   * Added code to catch a possible attribute error on event notification.
 
-  * Added two new management commands to make it easier to load back 
-    selected objects that have been removed by mistake (providing they are 
-    available in a full database dump or backup that can be loaded and worked 
+  * Added two new management commands to make it easier to load back
+    selected objects that have been removed by mistake (providing they are
+    available in a full database dump or backup that can be loaded and worked
     with): dumprelated and loadrelated.
 
   * Increased the document limit from 200 to 500 for the AD documents page.
@@ -4922,7 +4995,7 @@ ietfdb (6.89.0) ietf; urgency=low
   This release provides improved export of statistics charts and data,
   improved and more consistent test coverage, and fixes a few bugs:
 
-  * Fixed an issue with the To: and Cc: addresses of extra review email to 
+  * Fixed an issue with the To: and Cc: addresses of extra review email to
     responsible AD.
 
   * Changed the liaison tool From: address to .
@@ -4936,7 +5009,7 @@ ietfdb (6.89.0) ietf; urgency=low
     from charts.  Also tweaked the look of the highcharts context menu
     separators.
 
-  * Added handling for an EOF exception that can occur when using the 
+  * Added handling for an EOF exception that can occur when using the
     django file-based cache.
 
  -- Henrik Levkowetz   20 Nov 2018 16:30:42 +0000
@@ -4950,7 +5023,7 @@ ietfdb (6.88.0) ietf; urgency=low
   IETF-103 Code Sprint.  Again, this looks to be a sprint with an extremely
   large number of contributions.  Thanks to everyone who contributed!
 
-  Notable improvements: 
+  Notable improvements:
 
   Reviewer statistics are now more readable.  Reasons for reviewer
   unavailability is now only shown to authorised persons.  It is now possible
@@ -4968,27 +5041,27 @@ ietfdb (6.88.0) ietf; urgency=low
   Additionally, a large number of individual bugs has been squashed:
 
   * Merged in [15722] from rcross@amsl.com:
-    Added a link to meeting/../agendas/list.  Fixes #2627.   
+    Added a link to meeting/../agendas/list.  Fixes #2627.
 
   * Merged in [15720] from rjsparks@nostrum.com:
-    Invalidate the get_state_slug cache when the get_state cache is 
-    invalidated. Fixes #2630.  
+    Invalidate the get_state_slug cache when the get_state cache is
+    invalidated. Fixes #2630.
 
   * Merged in [15719] from rcross@amsl.com:
     Removed resources field from secr/meetings/../rooms.  Tweaked CSS for this
     page to eliminate horizontal scrolling.  Includes new base templates to
-    facilitate transition to bootstrap.  Fixes #2628.  
+    facilitate transition to bootstrap.  Fixes #2628.
 
   * Merged in [15717] from rcross@amsl.com:
-    Reworked the buttons on secr/meetings. Fixes #2629.   
+    Reworked the buttons on secr/meetings. Fixes #2629.
 
   * Merged in [15715] from rcross@amsl.com:
-    Fixed the issue where new non-session location field value wasn't saved.  
-    Fixes #2625.   
+    Fixed the issue where new non-session location field value wasn't saved.
+    Fixes #2625.
 
   * Merged in [15709] from rjsparks@nostrum.com:
     Show counts on the active groups page and on the active WGs page. Fixes
-    #2060.  
+    #2060.
 
   * Updated the script to fix ambiguous time stamps so that it will fix
     ambiguous time fields for additional types of objects.
@@ -4998,7 +5071,7 @@ ietfdb (6.88.0) ietf; urgency=low
     more stable.
 
   * Added exclusion of cancelled session when doing audio file import.  This
-    fixes an server 500 error when a cancelled session is shown in the same 
+    fixes an server 500 error when a cancelled session is shown in the same
     room and time slot as an actual session.
 
   * Corrected the rendering of non-ASCII email names in nomcom templates.
@@ -5008,97 +5081,97 @@ ietfdb (6.88.0) ietf; urgency=low
     the alias if there is one for email about review request changes.  Added
     a test for the review team secretary alias functionality.
 
-  * Added a test that checks the mailarch search failure return, and tweaks 
+  * Added a test that checks the mailarch search failure return, and tweaks
     the no-result return handling.
 
   * Merged in [15706] from kivinen@iki.fi:
-    Added easier to detect error message when search returns 0 results. 
-    This currently parses HTML result from the mail archive system, but when we 
-    get proper API to mail archive system it should be changed to do that 
-    instead. Fixes #2126.  
+    Added easier to detect error message when search returns 0 results.
+    This currently parses HTML result from the mail archive system, but when we
+    get proper API to mail archive system it should be changed to do that
+    instead. Fixes #2126.
 
   * Merged in [15705] from johnl@taugh.com:
-    Trivial fix for trivial issue #1907, warn user that added addresses 
-    will be confirmed. 
+    Trivial fix for trivial issue #1907, warn user that added addresses
+    will be confirmed.
 
   * Merged in [15702] from johnl@taugh.com:
-    Allow email as well as username when logging in.   
+    Allow email as well as username when logging in.
 
   * Merged in [15701] from kivinen@iki.fi:
-    Changed format of the reviewer statistics in lists. Fixes #2131.  
+    Changed format of the reviewer statistics in lists. Fixes #2131.
 
   * Merged in [15683] and [15699] from housley@vigilsec.com:
-    Do not show reasons for review team member unavailability outside the team. 
+    Do not show reasons for review team member unavailability outside the team.
     Fixes #2614.
 
-  * Added normalisation of the email addresses returned by 
-    ietf.nomcom.utils.parse_email, in order to not treat feedback from the same 
-    person as coming from different sources due to email name+address 
+  * Added normalisation of the email addresses returned by
+    ietf.nomcom.utils.parse_email, in order to not treat feedback from the same
+    person as coming from different sources due to email name+address
     variations.
 
   * Merged in [15698] from rjsparks@nostrum.com:
-    Notify the RFC Editor when an RFC Editor note is changed after a draft 
-    has been approved. Fixes #2440.  
+    Notify the RFC Editor when an RFC Editor note is changed after a draft
+    has been approved. Fixes #2440.
 
   * Merged in [15696] from peter@akayla.com:
-    Minor text fixes.  Fixes issue #2621.   
+    Minor text fixes.  Fixes issue #2621.
 
   * Merged in [15694] from rjsparks@nostrum.com:
-    Clearly label cancelled sessions on the week-view on the agenda page. 
-    Fixes #2619.  
+    Clearly label cancelled sessions on the week-view on the agenda page.
+    Fixes #2619.
 
   * Merged in [15693] from mahoney@nostrum.com:
-    Fixed link to webex request page. Fixes issue #2564.  
+    Fixed link to webex request page. Fixes issue #2564.
 
-  * Added a guard against getting the attribute of None in 
-    api_set_session_video_url().  Fixes a server 500 for some hackathon 
+  * Added a guard against getting the attribute of None in
+    api_set_session_video_url().  Fixes a server 500 for some hackathon
     sessions.
 
-  * Provided a tool-tip with full time information for the document history 
+  * Provided a tool-tip with full time information for the document history
     dates.
 
   * Merged in [15689] from mahoney@nostrum.com:
-    It need not be an error to find duplicate person records, such as for 
-    instance for 'Matt Larson'.  Took out the statement in the profile template 
-    that this is an error.  Fixes issue #2616.  
+    It need not be an error to find duplicate person records, such as for
+    instance for 'Matt Larson'.  Took out the statement in the profile template
+    that this is an error.  Fixes issue #2616.
 
-  * Factored out some parts of the meeting/agenda.html into separate files, 
+  * Factored out some parts of the meeting/agenda.html into separate files,
     and added session buttons for 'other' session (e.g., hotrfc)
 
   * Merged in [15688] from mahoney@nostrum.com:
-    Fixed bad variable in title of requests.html. Fixes issue #2608.  
+    Fixed bad variable in title of requests.html. Fixes issue #2608.
 
-  * Don't show slides in main IETF meeting agenda for sessions with their 
+  * Don't show slides in main IETF meeting agenda for sessions with their
     own session agenda.
 
   * Merged in [15684] from rjsparks@nostrum.com:
-    Removed the field and widget that made editing document states easier 
-    on the document admin page since they do not survive validation failure of 
-    other fields on the form. Excluded states from the model form since the 
-    default states widget is almost impossible to use without producing bad 
-    data. If states need to be edited through the admin, it will, for now, need 
-    to be done gruelingly through the admin form for State. Fixes #2524.  
+    Removed the field and widget that made editing document states easier
+    on the document admin page since they do not survive validation failure of
+    other fields on the form. Excluded states from the model form since the
+    default states widget is almost impossible to use without producing bad
+    data. If states need to be edited through the admin, it will, for now, need
+    to be done gruelingly through the admin form for State. Fixes #2524.
 
   * Merged in [15681] from rjsparks@nostrum.com:
-    Only do state-parent cross-validation on the group edit form when both 
-    fields are used on the form. (Many invocations of the form suppress all but 
-    one field.) Fixes #2597.  
+    Only do state-parent cross-validation on the group edit form when both
+    fields are used on the form. (Many invocations of the form suppress all but
+    one field.) Fixes #2597.
 
   * Merged in [15679] from mahoney@nostrum.com:
-    Verb tense used in Ballot Issued emails now matches whether the LC end 
-    date is in the past or future. Fixes issue #2482.  
+    Verb tense used in Ballot Issued emails now matches whether the LC end
+    date is in the past or future. Fixes issue #2482.
 
   * Merged in [15677] from rjsparks@nostrum.com:
-    Tune the recipients when a teams settings or a reviewer indicate ADs 
-    should be notified about a review.  
+    Tune the recipients when a teams settings or a reviewer indicate ADs
+    should be notified about a review.
 
   * Merged in [15676] from rjsparks@nostrum.com:
-    Let a reviewer indicate that an AD should give this review early 
-    attention. Fixes #2553.  
+    Let a reviewer indicate that an AD should give this review early
+    attention. Fixes #2553.
 
   * Merged in [15675] from rjsparks@nostrum.com:
-    Let review teams opt in to poking a responsible AD when unhappy reviews 
-    are submitted. Fixes #2544.  
+    Let review teams opt in to poking a responsible AD when unhappy reviews
+    are submitted. Fixes #2544.
 
  -- Henrik Levkowetz   13 Nov 2018 09:47:39 +0000
 
@@ -5109,7 +5182,7 @@ ietfdb (6.87.3) ietf; urgency=low
   the test_edit_timeslot_type() test.
 
   * Merged in [15648] from rjsparks@nostrum.com:
-    Use only ietf meetings for testing editing timeslots.  
+    Use only ietf meetings for testing editing timeslots.
 
  -- Henrik Levkowetz   02 Nov 2018 02:51:32 +0000
 
@@ -5120,11 +5193,11 @@ ietfdb (6.87.2) ietf; urgency=medium
   From the commit log:
 
   * Merged in [15613] from rjsparks@nostrum.com:
-    Make having a trailing slash optional for doc/html/docname. Fixes #2247.  
+    Make having a trailing slash optional for doc/html/docname. Fixes #2247.
 
   * Merged in [15603] from rjsparks@nostrum.com:
-    Changed some text and button labels to make the workflow for commiting 
-    group schedules more self-documenting.  
+    Changed some text and button labels to make the workflow for commiting
+    group schedules more self-documenting.
 
   * Clarified that the document search author field accepts also author
     affiliation as a search term.
@@ -5133,8 +5206,8 @@ ietfdb (6.87.2) ietf; urgency=medium
     browsers render them correctly with badges, and they are too small to
     provide meaningful information.
 
-  * Changed the generation of the 1id-index.txt file to not list individual 
-    drafts in states Candidate for WG Adoption and Call for WG Adoption Issued 
+  * Changed the generation of the 1id-index.txt file to not list individual
+    drafts in states Candidate for WG Adoption and Call for WG Adoption Issued
     as group drafts.
 
  -- Henrik Levkowetz   31 Oct 2018 16:13:17 +0000
@@ -5147,14 +5220,14 @@ ietfdb (6.87.1) ietf; urgency=medium
   * Merged in [15601] from rjsparks@nostrum.com:
     Corrected some DocTypeName entries' prefix value. Made the search code
     more robust against DocTypeName objects that have an empty prefix value.
-    Fixes #2599.  
+    Fixes #2599.
 
   * Merged in [15596] from rjsparks@nostrum.com:
-    Improved coverage for several tests.  
+    Improved coverage for several tests.
 
   * Merged in [15595] from rjsparks@nostrum.com:
-    Converted stats, submit, sync. and utils/test to use factories. 
-    Excluded utils/test_data from coverage checks.  
+    Converted stats, submit, sync. and utils/test to use factories.
+    Excluded utils/test_data from coverage checks.
 
   * Fixed some incorrect topic audience id slugs, to make the NomCom topic
     availability filtering work correctly.
@@ -5163,15 +5236,15 @@ ietfdb (6.87.1) ietf; urgency=medium
     page.
 
   * Merged in [15580] from rjsparks@nostrum.com:
-    Better constrain a liaison test object to match the preconditions for 
-    the test.  
+    Better constrain a liaison test object to match the preconditions for
+    the test.
 
   * Tweaked the mail sending routines' handling of the copy flag.
 
-  * Changed the mail sending routines so it's possible to not copy the 
+  * Changed the mail sending routines so it's possible to not copy the
     debug archive on some messages.
 
-  * Added 'os.chdir()' to virtualenv_activate to place us correctly to pick 
+  * Added 'os.chdir()' to virtualenv_activate to place us correctly to pick
     up patch files.
 
   * Added Message-ID to log lines for sent email messages.
@@ -5185,28 +5258,28 @@ ietfdb (6.87.0) ietf; urgency=medium
 
   This is a small feature release, with the following changes:
 
-  * Updated the nomcom admin pages for Feedback to make it possible to see 
+  * Updated the nomcom admin pages for Feedback to make it possible to see
     and sort on the Nominees field.
 
   * Merged in [15551] from rjsparks@nostrum.com:
-    Used factories instead of make_test_data for malinglists, 
-    mailtrigger, message, person, secr/announcement, and secr/areas tests.  
+    Used factories instead of make_test_data for malinglists,
+    mailtrigger, message, person, secr/announcement, and secr/areas tests.
 
   * Merged in [15550] from rjsparks@nostrum.com:
-    Added meeting.agenda_info_note.  
+    Added meeting.agenda_info_note.
 
   * Merged in [15549] from rjsparks@nostrum.com:
-    Renamed meeting.agenda_note to meeting.agenda_warning_note.  
+    Renamed meeting.agenda_note to meeting.agenda_warning_note.
 
-  * Changed the 'View' button on the NomCom email classification page to 
-    render the email body within 
, and to not offer classification 
-    choices, as this encourages a slow workflow, and also seems to have been 
+  * Changed the 'View' button on the NomCom email classification page to
+    render the email body within 
, and to not offer classification
+    choices, as this encourages a slow workflow, and also seems to have been
     broken for some time.
 
-  * Bleach 3.0.0 has a bug that can result in exceptions for some inputs.  
+  * Bleach 3.0.0 has a bug that can result in exceptions for some inputs.
     Bug report filed.  Disallowed that version in requirements.txt
 
-  * Turned the nomcom chair dropdown menu item 'Classify pending feedback' 
+  * Turned the nomcom chair dropdown menu item 'Classify pending feedback'
     into a tab with a mail count badge.
 
   * Merged in [15263], [15264], [15265], [15287] from rcross@amsl.com:
@@ -5222,40 +5295,40 @@ ietfdb (6.86.0) ietf; urgency=medium
 
   This is a feature release with only small tweaks, mostly related to the
   NomCom tools, but there are also some IESG page, test suite, account, and
-  utility script improvements, 
+  utility script improvements,
 
-  * Added pagination to the nomcom pending-feedback page, to reduce load 
+  * Added pagination to the nomcom pending-feedback page, to reduce load
     time.
 
-  * Changed the default sort for nomcom.models.Nominees to be 
+  * Changed the default sort for nomcom.models.Nominees to be
     'person__name'.
 
   * Merged in [15523] from rjsparks@nostrum.com:
-    Converted the liaisons tests to use factories.  
+    Converted the liaisons tests to use factories.
 
-  * Added a '--reminder' switch to the GDPR request mailer, for repeat 
+  * Added a '--reminder' switch to the GDPR request mailer, for repeat
     notifications.
 
   * Merged in [15522] from rcross@amsl.com:
-    Made email address read-only in rolodex edit form.  Fixes #2602.   
+    Made email address read-only in rolodex edit form.  Fixes #2602.
 
-  * Prevent issues for logins without Person records by not letting 
+  * Prevent issues for logins without Person records by not letting
     Person-less users through login.
 
   * Added an send_email field to BallotPostitionDocEvent to reflect whether
     the 'Send email' button was used to save the ballot position.  Added icons
     on documents' IESG evaluation record to reflect this.
 
-  * Adjusted the test_submit_nonascii_name() to match the output from 
+  * Adjusted the test_submit_nonascii_name() to match the output from
     idnits 2.16.0, which emits warnings rather than errors for nonascii content.
 
-  * Built out test_edit_nomcom_view() to also test adding and removing 
+  * Built out test_edit_nomcom_view() to also test adding and removing
     reminder dates.
 
-  * Added a form clean() for the reminder dates of the nomcom edit form, to 
-    make something appropriate out of edits that remove reminder dates, rather 
-    than clicking 'delete'.  This fixes a potential exception, when a blank 
-    date cannot be saved, and also does what the user expected (deletes a 
+  * Added a form clean() for the reminder dates of the nomcom edit form, to
+    make something appropriate out of edits that remove reminder dates, rather
+    than clicking 'delete'.  This fixes a potential exception, when a blank
+    date cannot be saved, and also does what the user expected (deletes a
     blanked date).
 
   * The nomcom send_reminders command was not being run daily.  Fixed that.
@@ -5263,7 +5336,7 @@ ietfdb (6.86.0) ietf; urgency=medium
   * Fixed a typo in the GDPR consent request email template.
 
   * Merged in [15492] from rjsparks@nostrum.com:
-    Use factories for ipr tests.  
+    Use factories for ipr tests.
 
  -- Henrik Levkowetz   08 Oct 2018 13:23:53 +0000
 
@@ -5276,13 +5349,13 @@ ietfdb (6.85.1) ietf; urgency=medium
   will read email delivery-status messages and disable addresses with
   permanent delivery failures.  There are also some other tweaks:
 
-  * Added a management command to deactivate email addresses found in 
+  * Added a management command to deactivate email addresses found in
     delivery-status emails or given on the command-line.
 
   * Added column sorting to the private nomcom nominee table.
 
-  * Tweaked the management command to send GDPR consent request emails, to 
-    correctly perform exclusion based on the time of previous consent request 
+  * Tweaked the management command to send GDPR consent request emails, to
+    correctly perform exclusion based on the time of previous consent request
     emails.
 
   * Added a PersonEvent type for email address deactivation.
@@ -5308,47 +5381,47 @@ ietfdb (6.85.0) ietf; urgency=medium
   responded to the GDPR consent request emails, and enhancements in
   the NomCom tools:
 
-  * Added username validation to the change username form, to avoid 
-    database key collision exceptions.  Instead give a message to contact the 
+  * Added username validation to the change username form, to avoid
+    database key collision exceptions.  Instead give a message to contact the
     secretariat to resolve the situation.
 
-  * Fixed a problem where an exception could be raised when reporting an 
+  * Fixed a problem where an exception could be raised when reporting an
     exception during draft XML processing to the user.
 
   * Added 'consent' to the fields handled when merging person records.
 
   * Merged in [15486] from rjsparks@nostrum.com:
-    Allow a nomcom to show nominees that have accepted nomination before 
-    feedback is open. Fixes #2598.  
+    Allow a nomcom to show nominees that have accepted nomination before
+    feedback is open. Fixes #2598.
 
-  * Tweaked the consent request email text to point out an alternative to 
+  * Tweaked the consent request email text to point out an alternative to
     follow email links.
 
   * Merged in [15450] from rcross@amsl.com:
-    Change content-type of ajax_get_liaison_info to application/json.   
+    Change content-type of ajax_get_liaison_info to application/json.
 
-  * Tweaked the text of the personal information help page to remove some 
+  * Tweaked the text of the personal information help page to remove some
     ambiguity.
 
-  * A string.Template with a unicode template must be given unicode 
-    dictionary values if the values contain unicode codepoints.  Providing 
-    values that are objects with __str__() methods, or utf-8 encoded strings 
-    doesn't work.  Fixes an issue with nomcom template interpolation for 
+  * A string.Template with a unicode template must be given unicode
+    dictionary values if the values contain unicode codepoints.  Providing
+    values that are objects with __str__() methods, or utf-8 encoded strings
+    doesn't work.  Fixes an issue with nomcom template interpolation for
     nominees with non-ascii names.
 
-  * Tweaked the GDPR reminder command to avoid bounces to RT and copies to 
+  * Tweaked the GDPR reminder command to avoid bounces to RT and copies to
     gmail.
 
   * Changed the sort order of nominees on the private nomcom index page to be
     according to name (instead of email address).
 
-  * Fixed an issue where a user record without matching person record will 
+  * Fixed an issue where a user record without matching person record will
     cause an exception.
 
-  * Removed the 2.5 hour session length choice for IETF 103, since there 
+  * Removed the 2.5 hour session length choice for IETF 103, since there
     will be no Friday sessions that meeting.
 
-  * Updated the personal information notice email text based on advice from 
+  * Updated the personal information notice email text based on advice from
     councel (Tom Zych).
 
  -- Henrik Levkowetz   28 Sep 2018 23:50:01 +0000
@@ -5375,44 +5448,44 @@ ietfdb (6.84.0) ietf; urgency=medium
   There are also a few bugfixes and features not related to the GDPR, see
   below:
 
-  * Merged in the latest GDPR changes.  This refines the handling of the 
-    consent checkbox on the account page; refines the Consent Needed warning 
-    given on login if consent is needed; tweaks several models to set the 
-    on_deletion fields for FK to User and Person appropriately; adds a 
-    Person.needs_consent() method to capture the logic of which fields require 
-    consent; refines the Person.plain_name() method and the user.log.log() 
-    function; and adds 2 management commands to send out consent requests and 
+  * Merged in the latest GDPR changes.  This refines the handling of the
+    consent checkbox on the account page; refines the Consent Needed warning
+    given on login if consent is needed; tweaks several models to set the
+    on_deletion fields for FK to User and Person appropriately; adds a
+    Person.needs_consent() method to capture the logic of which fields require
+    consent; refines the Person.plain_name() method and the user.log.log()
+    function; and adds 2 management commands to send out consent requests and
     delete non-consent information, respectively.
 
-  * Refined utils.log.log() to flush stdout before logging if we're writing 
+  * Refined utils.log.log() to flush stdout before logging if we're writing
     log messages to stderr.
 
-  * Moved document methods rfc_number() and rfcnum() to the abstract parent 
-    class to have them available also for historical document records.  Should 
+  * Moved document methods rfc_number() and rfcnum() to the abstract parent
+    class to have them available also for historical document records.  Should
     fix the recent server 500 on /doc/draft-ietf-aaa-diameter/17/.
 
   * Merged in [15448] from rjsparks@nostrum.com:
-    Add CORS headers for the api and views that serve json. Fixes #2546, 
-    #2551, and #2552.  
+    Add CORS headers for the api and views that serve json. Fixes #2546,
+    #2551, and #2552.
 
-  * Added a bit of javascript and styling to make it possible to use URL 
-    fragment identifiers to link to position-specific tabs on the nomocom 
+  * Added a bit of javascript and styling to make it possible to use URL
+    fragment identifiers to link to position-specific tabs on the nomocom
     requirements and questionnaire pages.
 
   * Merged in [15446] from rjsparks@nostrum.com:
-    Use unversioned links in ics agendas. Partially fixes #2542.  
+    Use unversioned links in ics agendas. Partially fixes #2542.
 
   * Merged in [15444] from rjsparks@nostrum.com:
-    Review assignment email includes a link to the review request that 
-    ensures the reviewer is logged in. Fixes #2543.  
+    Review assignment email includes a link to the review request that
+    ensures the reviewer is logged in. Fixes #2543.
 
-  * Added a 'Mailing list discussion' link to the 'Additional URLs' section 
+  * Added a 'Mailing list discussion' link to the 'Additional URLs' section
     of the status page for drafts with doc.group and doc.group.list_archive set.
 
   * Merged in [15441] from peter@akayla.com:
-    Fixed 2 trivial spelling errors in NomCom tools.  Fixes issue #2569.   
+    Fixed 2 trivial spelling errors in NomCom tools.  Fixes issue #2569.
 
-  * Fixed a problem with fetching the mysql release signing key from a gpg 
+  * Fixed a problem with fetching the mysql release signing key from a gpg
     keyserver.
 
   * Added more hint information when patch actions in ietf/checks.py fail.
@@ -5420,8 +5493,8 @@ ietfdb (6.84.0) ietf; urgency=medium
   * Rewrote docker/run to work around a missing switch in BSD 'xargs'.
 
   * Merged in [15435] from rjsparks@nostrum.com:
-    Include area groups in the request for minutes. Do not include sessions 
-    that have been canceled.  Fixes #2568. 
+    Include area groups in the request for minutes. Do not include sessions
+    that have been canceled.  Fixes #2568.
 
  -- Henrik Levkowetz   18 Sep 2018 14:07:27 +0000
 
@@ -5433,23 +5506,23 @@ ietfdb (6.83.1) ietf; urgency=medium
   * Replaced some cases of using person.plain_name when linking to a person's
     profile with person.name, as the link using plain_name can fail.
 
-  * Generalized the log.assertion() function a bit to be able to provide 
+  * Generalized the log.assertion() function a bit to be able to provide
     more information on assertion failure.
 
   * Merged in [15423] from rcross@amsl.com:
-    Removed WG milestone management from secretariat groups app.   
+    Removed WG milestone management from secretariat groups app.
 
   * Removed youtube video url import, which is not needed any more given the
     /api/meeting/session/video/url API endpoint.  This also prevents duplicate
     video URLs.
 
-  * Changed the menu listing of review dirs and their display on the 
-    Directorates page back to what it was before the 'reviews' group type was 
+  * Changed the menu listing of review dirs and their display on the
+    Directorates page back to what it was before the 'reviews' group type was
     split out.  Added a 'Reviews' column to the Directoratges page.
 
   * Added a guard against comparing email origin with username of None.
 
-  * Added a None guard for the person merge last_login date comparison.  
+  * Added a None guard for the person merge last_login date comparison.
     Fixes issue #2562
 
  -- Henrik Levkowetz   14 Aug 2018 12:31:32 +0000
@@ -5477,15 +5550,15 @@ ietfdb (6.83.0) ietf; urgency=medium
 
   From the commit log:
 
-  * Show links to personal profile pages from group photo pages also when no 
-    photo is available -- the profile pages now contains more than just the 
+  * Show links to personal profile pages from group photo pages also when no
+    photo is available -- the profile pages now contains more than just the
     photo.
 
   * Merged in [15399] from rjsparks@nostrum.com:
-    Use factories for ietf.ietfauth.tests.  
+    Use factories for ietf.ietfauth.tests.
 
   * Merged in [15395] from rjsparks@nostrum.com:
-    Allow the IRTF stream to set shepherds and shepherd writeups. Fixes #1993.  
+    Allow the IRTF stream to set shepherds and shepherd writeups. Fixes #1993.
 
   * Merged in [15387] from rjsparks@nostrum.com:
     Use factories for ietf.iesg.tests.
@@ -5503,25 +5576,25 @@ ietfdb (6.83.0) ietf; urgency=medium
     parse everything in column as numbers, and if there is anything that is
     not numebr it will fail, and only sorts the column once. This is bit ugly
     but I do not think we want to add yet another jquery meta tool. Fixes
-    #2089, and #2151.  
+    #2089, and #2151.
 
   * Added a missing migration (for review unavailable-period reason)
 
   * Merged in [15357] from mahoney@nostrum.com:
-    Added anchors for working group rows. Still needs some work since the 
-    anchor ends up being under the menu bar. Partially addresses issue #1481.  
+    Added anchors for working group rows. Still needs some work since the
+    anchor ends up being under the menu bar. Partially addresses issue #1481.
 
   * Merged in [15356] from ben@nostrum.com:
-    Changed newlines to commas in to contacts for new liaison email 
-    notification. Fixes issue 2525.  
+    Changed newlines to commas in to contacts for new liaison email
+    notification. Fixes issue 2525.
 
   * Merged in [15355] from rjsparks@nostrum.com:
-    Used factories for ietf.group.tests_info.  
+    Used factories for ietf.group.tests_info.
 
-  * Tweaked a test to prevent failures when looking for a specific string 
+  * Tweaked a test to prevent failures when looking for a specific string
     in line-wrapped text.
 
-  * Added a tiny utility function unwrap() to unwrap wrapped text for 
+  * Added a tiny utility function unwrap() to unwrap wrapped text for
     matching expected strings in tests.
 
   * Merged in [15354] from kivinen@iki.fi:
@@ -5533,89 +5606,89 @@ ietfdb (6.83.0) ietf; urgency=medium
     requested to and then document authors might have updated the document).
     Also mark the document versions that are earlier than the review request
     date with red background and those which are newer with green background.
-    Fixes #2125.  
+    Fixes #2125.
 
   * Merged in [15353] from peter@akayla.com:
     Add a sidebar to display feedback section names and simplify navigation.
-    Could use some visual improvements but otherwise works.  Fixes #2431.  
+    Could use some visual improvements but otherwise works.  Fixes #2431.
 
   * Merged in [15351] from rcross@amsl.com:
-    Update secr/drafts/tests_views to align with view logic.  Fixes #2480.  
+    Update secr/drafts/tests_views to align with view logic.  Fixes #2480.
 
   * Merged in [15349] from kivinen@iki.fi:
     Removed the requirement for review_content field to be mandatory when
-    using \'link\' method. This partially addresses #2520. 
+    using \'link\' method. This partially addresses #2520.
 
   * Merged in [15347] from kivinen@iki.fi:
     Add review request date to the top. Add tooltips for drafts versions
-    providing the date they were sumbmitted. Fixes #2218. 
+    providing the date they were sumbmitted. Fixes #2218.
 
-  * Limited the document name for uploaded slides to use 128 slugified 
-    characters from the slideset title as part of the name.  Fixes a possible 
+  * Limited the document name for uploaded slides to use 128 slugified
+    characters from the slideset title as part of the name.  Fixes a possible
     server 500 issue.
 
   * Merged in [15345] from rcross@amsl.com:
-    Remove duplicate functionality in secr/drafts.  Fixes #2540.   
+    Remove duplicate functionality in secr/drafts.  Fixes #2540.
 
   * Merged in [15344] from mahoney@nostrum.com:
-    email confirming interim meeting request now says 'the Area Director of 
-    the ' instead of ' Area Director'. Fixes issue #2522.  
+    email confirming interim meeting request now says 'the Area Director of
+    the ' instead of ' Area Director'. Fixes issue #2522.
 
   * Added additional checks to the meeting_session_video_url api test.
 
-  * Fixed api_set_session_video_url() to update the external video url if 
+  * Fixed api_set_session_video_url() to update the external video url if
     given a new value.
 
   * Merged in [15342] from peter@akayla.com:
-    Added optional reviewer unavailability reason support.  Fixes issue #2146.   
+    Added optional reviewer unavailability reason support.  Fixes issue #2146.
 
   * Merged in [15335] from rcross@amsl.com:
     Fixed the ordering of meeting select in secr/meetings.  Fixes #2539.
 
-  * Adjusted some timezones in test code to use permitted time zones after 
-    the previous changes in listed timezones.  Added a migration for the 
+  * Adjusted some timezones in test code to use permitted time zones after
+    the previous changes in listed timezones.  Added a migration for the
     changed timezone list.
 
-  * Fixed display of xml2rfc exceptions when processing draft submission in 
+  * Fixed display of xml2rfc exceptions when processing draft submission in
     xml form.
 
-  * Modified the list of timezones available when setting a meeting 
-    timezone so as to not show timezones that are links.  (Also edited the 102 
-    meeting timezone in the database to avoid this).  Fixes issues #2531 and 
+  * Modified the list of timezones available when setting a meeting
+    timezone so as to not show timezones that are links.  (Also edited the 102
+    meeting timezone in the database to avoid this).  Fixes issues #2531 and
     #2534.
 
   * Merged in [15338] from fenton@bluepopcorn.net:
     Adds _required_ parameter to search widget. Fixes #1832.
 
   * Merged in [15331] from housley@vigilsec.com:
-    Add test for downref in Last Call announcement 
+    Add test for downref in Last Call announcement
 
   * Merged in [15329] from rcross@amsl.com:
-    Add important dates link to proceedings.  Fixes #2538.   
+    Add important dates link to proceedings.  Fixes #2538.
 
   * Merged in [15328] from rcross@amsl.com:
-    Give secretariat the ability to cancel non-working group sessions. 
-    Fixes #2537.   
+    Give secretariat the ability to cancel non-working group sessions.
+    Fixes #2537.
 
-  * Updated a test to give predictable results (no future meeting dates) 
+  * Updated a test to give predictable results (no future meeting dates)
     for commit [15361].
 
-  * Fixed an issue where /meeting/ showed the materials page of an earlier 
+  * Fixed an issue where /meeting/ showed the materials page of an earlier
     meeting, rather than the current.
 
   * Merged in [15327] from mahoney@nostrum.com:
-    Clarified description in the search form, removing the etc since you 
-    can't search on author names. Fixes issue #1159.  
+    Clarified description in the search form, removing the etc since you
+    can't search on author names. Fixes issue #1159.
 
   * Merged in [15321] from rjsparks@nostrum.com:
-    Converted ietf.group.tests to factories.  
+    Converted ietf.group.tests to factories.
 
   * Merged in [15320] from rjsparks@nostrum.com:
     The cookie tests were all calling make_test_data, but not using anything
-    it created. Removed the calls.  
+    it created. Removed the calls.
 
   * Merged in [15314] from rjsparks@nostrum.com:
-    Converted the community app tests to use factories.  
+    Converted the community app tests to use factories.
 
  -- Henrik Levkowetz   25 Jul 2018 19:08:41 +0000
 
@@ -5650,22 +5723,22 @@ ietfdb (6.82.0) ietf; urgency=medium
 
   Additional changes:
 
-  * Added exception logging for ietf/bin/rfc-editor-queue-updates.  Changed 
-    the logging in the ietf/bin/rfc-editor-* scripts to use 
+  * Added exception logging for ietf/bin/rfc-editor-queue-updates.  Changed
+    the logging in the ietf/bin/rfc-editor-* scripts to use
     ietf.utils.log.log().  Reordered some imports.
 
-  * Replaced the use of a deprecated Django field attribute with the 
+  * Replaced the use of a deprecated Django field attribute with the
     sanctioned replacement.
 
   * Merged in [15282] from housley@vigilsec.com:
     Set reply-to for I-D Announcements that include a CC to a mail list.
-    Fixes #2530. 
+    Fixes #2530.
 
   * Added support for patent 'kind codes' as part of patent numbers.
 
   * Tweaked the rsync arguments for IANA YANG models.
 
-  * Upped the permitted number of search results for the /stream/ise/ page 
+  * Upped the permitted number of search results for the /stream/ise/ page
     (and friends) from 200 to 1000.  Fixes issue #2527.
 
  -- Henrik Levkowetz   14 Jul 2018 16:47:58 +0000
@@ -5677,22 +5750,22 @@ ietfdb (6.81.3) ietf; urgency=medium
   From the commit log:
 
   * Merged in [15266] from rcross@amsl.com:
-    Updated the blue sheet template.  Replaced start time / end time with date.  
+    Updated the blue sheet template.  Replaced start time / end time with date.
 
   * Merged in [15267] from rcross@amsl.com:
-    Fixed an issue with a decorator on utils.html.remove_tags().   
+    Fixed an issue with a decorator on utils.html.remove_tags().
 
-  * Tweaked the 'Related documents' part of the Document admin page to more 
+  * Tweaked the 'Related documents' part of the Document admin page to more
     intuitively show the relationships.
 
   * Tweaked unidecode_name() to avoid double-quotes in the ascii string.
 
   * Merged in [15248] from rjsparks@nostrum.com:
     Improvements to tests after converting to factories suggested by studying
-    coverage_changes.  
+    coverage_changes.
 
   * Merged in [15247] from rjsparks@nostrum.com:
-    Tweaked the color palette for the agenda editor.  
+    Tweaked the color palette for the agenda editor.
 
   * Removed two instances of log.assertion(); we have enough data on these
     now.
@@ -5704,28 +5777,28 @@ ietfdb (6.81.3) ietf; urgency=medium
 
   * Merged in [15238] from rjsparks@nostrum.com:
     Use factories for ietf.doc.tests_status_change. Repair previous commit
-    errors in ietf.doc.tests_material.  
+    errors in ietf.doc.tests_material.
 
   * Merged in [15228] from rjsparks@nostrum.com:
-    Use factories for ietf.doc.tests_downref.  
+    Use factories for ietf.doc.tests_downref.
 
   * Merged in [15227] from rjsparks@nostrum.com:
-    Use factories for ietf.doc.tests_conflict_review.  
+    Use factories for ietf.doc.tests_conflict_review.
 
   * Merged in [15226] from rjsparks@nostrum.com:
-    Use factories for ietf.doc.tests_charter.  
+    Use factories for ietf.doc.tests_charter.
 
-  * Tweaked unidecode_name() to not produce single-letter ascii surnames 
-    from non-ascii codepoints.  The unidecode transliteration is in any case 
-    somewhat arbitrary, and in most cases a real person will tweak the ascii 
-    name of his account.  When running tests, however, this tweak avoids some 
-    false test failures.  And no, it's not simple to fix the draft 
+  * Tweaked unidecode_name() to not produce single-letter ascii surnames
+    from non-ascii codepoints.  The unidecode transliteration is in any case
+    somewhat arbitrary, and in most cases a real person will tweak the ascii
+    name of his account.  When running tests, however, this tweak avoids some
+    false test failures.  And no, it's not simple to fix the draft
     author-extraction heuristics to deal well with single-letter surnames.
 
   * Added a guard against trying to access attributes of a None object.
 
   * Merged in [15225] from rjsparks@nostrum.com:
-    Use factories for ietf.doc.tests_draft.  
+    Use factories for ietf.doc.tests_draft.
 
  -- Henrik Levkowetz   20 Jun 2018 21:47:42 +0000
 
@@ -5747,38 +5820,38 @@ ietfdb (6.81.2) ietf; urgency=medium
   * Merged in [15219] from rjsparks@nostrum.com:
     Use factories for ietf.doc.tests_ballots. Fixed a long-hidden bug in
     test_edit_verify_permissions where non-existing usernames were used and
-    passed the tests accidently. Added list_email to the GroupFactory.  
+    passed the tests accidently. Added list_email to the GroupFactory.
 
   * Merged in [15217], [15205], [15204], [15203], [15202], and [15201] from
     rjsparks@nostrum.com:
     Converted ietf.doc.tests to use object Factories. Created draft type
-    specific factories.  
+    specific factories.
 
-  * Fixed the logic of gathering which personal information needs consent 
+  * Fixed the logic of gathering which personal information needs consent
     confirmation in the code that requests consent on login.
 
-  * Added a request to give consent for non-LI information on user login.  
+  * Added a request to give consent for non-LI information on user login.
     Addresses issue #2505.
 
   * Fixed a bug in a form clean method.
 
-  * Added a missing related object to the person information export.  
+  * Added a missing related object to the person information export.
     Related to issue #2501.
 
   * Tweaked the language on the user account page.  Related to issue #2501.
 
-  * Added a recursive object to JSON serializer and a view which will let 
-    any logged-in user download a JSON serialized copy of the datatracker 
-    information related to his person record.  Added information about this, 
+  * Added a recursive object to JSON serializer and a view which will let
+    any logged-in user download a JSON serialized copy of the datatracker
+    information related to his person record.  Added information about this,
     and a link, to the account page.  Related to issue #2501.
 
-  * Added a requirement of oauth2client, needed by google-api-python-client 
+  * Added a requirement of oauth2client, needed by google-api-python-client
     but not always automatically pulled in.
 
-  * Added a link to the overall IETF Statement concerning personal data to 
+  * Added a link to the overall IETF Statement concerning personal data to
     the datatracker personal-information page.
 
-  * Added some text about BOF requests to the important-dates page for the 
+  * Added some text about BOF requests to the important-dates page for the
     session request opens dates, on request from the IESG.
 
  -- Henrik Levkowetz   08 Jun 2018 16:05:15 +0000
@@ -5804,7 +5877,7 @@ ietfdb (6.81.0) ietf; urgency=medium
   **GDPR updates part 1**
 
   This is the first in a small series of releases to address compliance with
-  with the European GDPR (General Data Protection Regulation).  
+  with the European GDPR (General Data Protection Regulation).
 
   This release provides necessary GUI and internal changes, but lacks some
   admin utilities, and also data migration routines which takes some time to
@@ -5813,56 +5886,56 @@ ietfdb (6.81.0) ietf; urgency=medium
 
   From the commit log:
 
-  * Updated the personal information page with reviewed text from legal 
+  * Updated the personal information page with reviewed text from legal
     counsel.  Fixes issue #2503.
 
-  * Removed the Person.address field, which is not being used.  This was a 
+  * Removed the Person.address field, which is not being used.  This was a
     legacy from the 2001 perl-based datatracker tables.  Fixes issue #2504.
 
-  * Added django-simple-history and replaced the old (and unused) 
-    PersonHistory class with a history=HistoricalRecords() field on Person.  
-    Added the needed migrations and changes to admin, resources, and settings.  
+  * Added django-simple-history and replaced the old (and unused)
+    PersonHistory class with a history=HistoricalRecords() field on Person.
+    Added the needed migrations and changes to admin, resources, and settings.
     Related to issues #2505 and #2507.
 
-  * Added a new field name_from_draft to Person, to hold the name field 
-    equivalent as captured from drafts, in case name has been modified by the 
-    user and we're asked to remove that info under GDPR.  Added history for 
-    Email, and also an origin field to capture from where we got an email 
-    address (draft name, username, meeting registration, etc.)  Added a 
-    log.assertion() to Email.save() in order to ensure we don't create any 
+  * Added a new field name_from_draft to Person, to hold the name field
+    equivalent as captured from drafts, in case name has been modified by the
+    user and we're asked to remove that info under GDPR.  Added history for
+    Email, and also an origin field to capture from where we got an email
+    address (draft name, username, meeting registration, etc.)  Added a
+    log.assertion() to Email.save() in order to ensure we don't create any
     email without setting origin.
 
-  * Added origin information to all places where we create email address 
+  * Added origin information to all places where we create email address
     entries.
 
   * Removed all references to the removed Person.affiliation field.
 
   * Added email origin information to some function calls that needed it.
 
-  * Overwrite earlier email origin when we've picked up the address from a 
+  * Overwrite earlier email origin when we've picked up the address from a
     submission.
 
   * Added a consent field to the Person model.
 
-  * Disallow profile changes without consent given.  Together with previous 
+  * Disallow profile changes without consent given.  Together with previous
     commits this fixes issues #2505 and #2507.
 
-  * Added another category of personal information to the 
-    personal-information page, after review of personal information in the 
+  * Added another category of personal information to the
+    personal-information page, after review of personal information in the
     code.  Completes issue #2501.
 
-  * Added a dagger at the end of some fields in the account data forms to 
+  * Added a dagger at the end of some fields in the account data forms to
     signify consent-based fields, and made the consent field required.
 
   * Simplified the email.origin assignment code for outgoing liaisons.
 
   * Fixed a long-standing bug in the liaison.name() code.
 
-  * Added assingment of the person.name_from_draft field on draft 
+  * Added assingment of the person.name_from_draft field on draft
     submission.
 
 
-  * Updated the edit_profile template with information about consent-based 
+  * Updated the edit_profile template with information about consent-based
     fields.  Fixes issue #2502.
 
  -- Henrik Levkowetz   29 May 2018 11:10:28 +0000
@@ -5882,18 +5955,18 @@ ietfdb (6.80.1) ietf; urgency=medium
   * Merged in [15153] from rjsparks@nostrum.com:
     Changed how the mail utilities handle lists in their override and extra
     arguments. Added a test for send_mail_preformatted exercising override and
-    extra.  
+    extra.
 
   * Merged in [15152] from rjsparks@nostrum.com:
     Send email when the responsible AD for a conflict review is changed.
     Include the stream manager and stream steering group when the responsible
-    AD changes or when the telechat date changes. Fixes #2497.  
+    AD changes or when the telechat date changes. Fixes #2497.
 
   * Merged in [15151] from rjsparks@nostrum.com:
-    Provide an email group button for WG and RG documents. Fixes #2512.  
+    Provide an email group button for WG and RG documents. Fixes #2512.
 
   * Merged in [15145] from rjsparks@nostrum.com:
-    Secretariat requested tweak to the request for minutes template.  
+    Secretariat requested tweak to the request for minutes template.
 
   * Updated the non-WG mailing list page to include advertised lists for
     closed WGs, on request from the secretariat.
@@ -5908,14 +5981,14 @@ ietfdb (6.80.0) ietf; urgency=medium
 
   * Merged in [15125] from rjsparks@nostrum.com:
     Added a view that generates the 'send minutes' email for the secretariat.
-    Fixes #2493.  
+    Fixes #2493.
 
   * Merged in [15124] from rjsparks@nostrum.com:
-    Provide a __unicode__ member for ImportantDate.  
+    Provide a __unicode__ member for ImportantDate.
 
   * Merged in [15123] from rjsparks@nostrum.com:
     Use importantdates for material submisssion cutoff and revision if they
-    exist. Fixes #2514.  
+    exist. Fixes #2514.
 
   * Merged in [15119] and [15120] from rjsparks@nostrum.com:
     Change stream state to replaced when an ISE, IAB, or IRTF document is
@@ -5928,18 +6001,18 @@ ietfdb (6.80.0) ietf; urgency=medium
   * Merged in [15113] from rjsparks@nostrum.com:
     Removed the already disabled 'Make RFC' functionality from /secr/drafts.
     Fixes #2513.
-    
+
     Merged in [15112] from rjsparks@nostrum.com:
     Removed the 'announce' functionality from /secr/drafts. Addresses part of
     #2513.
 
   * Merged in [15111] from rjsparks@nostrum.com:
-    Removed the \'replaces\' functionality from /secr/drafts. Addresses 
-    part of #2513.  
+    Removed the \'replaces\' functionality from /secr/drafts. Addresses
+    part of #2513.
 
   * Merged in [15110] from rjsparks@nostrum.com:
-    Made settings.URL_REGEXPS.name non-greedy. Added a test to exercise the 
-    bug at #2429. Fixes #2429.  
+    Made settings.URL_REGEXPS.name non-greedy. Added a test to exercise the
+    bug at #2429. Fixes #2429.
 
   * Fixed an incorrect file name in a log message.
 
@@ -5957,18 +6030,18 @@ ietfdb (6.79.1) ietf; urgency=medium
   * Merged in [15084] from rjsparks@nostrum.com:
     Corrected the implementation of clear_ballot. Added a test for it.
     Restored functionality to ballot popups that was missing because a
-    template variable was not passed in.  
+    template variable was not passed in.
 
   * Added a 'recent drafts' page, showing drafs submitted the last 7 days.
 
   * Merged in [15083] from rjsparks@nostrum.com:
-    Removed memoize from latest_event.  
+    Removed memoize from latest_event.
 
   * Merged in [15080] from rjsparks@nostrum.com:
-    Marked a couple of functions as unreachable.  
+    Marked a couple of functions as unreachable.
 
-  * Reverted a change to UserFactory to avoid nepalese names.  The issue is 
-    bigger, and needs a different resulution.  Changed the url pattern that 
+  * Reverted a change to UserFactory to avoid nepalese names.  The issue is
+    bigger, and needs a different resulution.  Changed the url pattern that
     used \w to match names to instead use a more inclusive regex.
 
   * Fixed a PyQuery property access that should have been a method call.
@@ -5976,21 +6049,21 @@ ietfdb (6.79.1) ietf; urgency=medium
   * Merged in [15076] from rjsparks@nostrum.com:
     Added a test for meeting/requests.
 
-  * Tweaked the IPR factory to be less likely to produce invalid patent 
+  * Tweaked the IPR factory to be less likely to produce invalid patent
     info.
 
   * Merged in [15075] from rjsparks@nostrum.com:
-    Improved testing for docs_for_ad. 
+    Improved testing for docs_for_ad.
 
   * Merged in [15074] from rjsparks@nostrum.com:
-    Simplified docs_in_iesg_process. Added a test for it. 
+    Simplified docs_in_iesg_process. Added a test for it.
 
   * Merged in [15073] from rjsparks@nostrum.com:
-    Rearranged ietf/doc/urls.py to allow matching some special pages under 
-    /doc without a trailing slash. Adjusted several of those special URLs to 
-    work without the trailing slash. 
+    Rearranged ietf/doc/urls.py to allow matching some special pages under
+    /doc without a trailing slash. Adjusted several of those special URLs to
+    work without the trailing slash.
 
-  * Added permission for a document shepherd to request publication.  Fixes 
+  * Added permission for a document shepherd to request publication.  Fixes
     issue #2509.
 
  -- Henrik Levkowetz   02 May 2018 10:42:26 +0000
@@ -6024,35 +6097,35 @@ ietfdb (6.79.0) ietf; urgency=medium
 
   * Merged in [15055] from rcross@amsl.com:
     Fixed an issue where user can make two session request submissions,
-    corrupting data.  Also, ignore deleted session requests in edit view.  
+    corrupting data.  Also, ignore deleted session requests in edit view.
 
   * Merged in [15047] from rcross@amsl.com:
-    Reduced the get_meeting buffer to handle earlier shceduling requests date.   
+    Reduced the get_meeting buffer to handle earlier shceduling requests date.
 
-  * Added origin indication to a group of stats templates to make it easier 
+  * Added origin indication to a group of stats templates to make it easier
     to find the origin of stats configurations.
 
-  * Added group links to the past meetings page, and also important dates 
+  * Added group links to the past meetings page, and also important dates
     links to IETF meetings with important-date pages.
 
-  * Added IETF to past meetings filter pane, in order to be able to filter 
+  * Added IETF to past meetings filter pane, in order to be able to filter
     out interims.
 
-  * Fixed a problem with the expire-ids code, and added logging to catch 
+  * Fixed a problem with the expire-ids code, and added logging to catch
     future problems.
 
-  * Modified the IESG position setting API to send email messages about 
+  * Modified the IESG position setting API to send email messages about
     positions set.
 
   * Tweaked the wording of coverage_changes output.
 
-  * Fixed an issue where simplified sorting of DocEvents resulted in some 
+  * Fixed an issue where simplified sorting of DocEvents resulted in some
     ballot icons not being shown on the IESG agenda documents page.
 
-  * Changed incorrect use of 404 status code in api to 400.  Fixes issue 
+  * Changed incorrect use of 404 status code in api to 400.  Fixes issue
     #2498.
 
-  * Removed what could be a misleading 'RFC' from  the stream indication in 
+  * Removed what could be a misleading 'RFC' from  the stream indication in
     document search results.
 
  -- Henrik Levkowetz   23 Apr 2018 12:28:57 +0000
@@ -6069,23 +6142,23 @@ ietfdb (6.78.0) ietf; urgency=medium
   and a number of bugfixes, as follows:
 
   * Merged in [15012] from ford@isoc.org:
-    Added IRTF State option to Additional Search Criteria pulldown.  
+    Added IRTF State option to Additional Search Criteria pulldown.
 
-  * Included django.utils.html.escape() in the linkify() code, and removed 
-    it from various templates, to make sure escape is consistently applied 
+  * Included django.utils.html.escape() in the linkify() code, and removed
+    it from various templates, to make sure escape is consistently applied
     before linkify.  Fixes issue #2492.
 
-  * Tweaked the error return from Document.get_document_content() to be 
+  * Tweaked the error return from Document.get_document_content() to be
     more helpful during development.
 
   * Fixed various html issues.
 
   * Added more information about personal API keys to the API help page.
 
-  * Tweaked the test runner to more consistently force the test coverage 
+  * Tweaked the test runner to more consistently force the test coverage
     tests to be run last.
 
-  * Changed calls to .related_that*() and .relations_that*() to use tuples 
+  * Changed calls to .related_that*() and .relations_that*() to use tuples
     rather than lists (a slight optimization).
 
   * Silenced another deprecation warning from a library.
@@ -6095,7 +6168,7 @@ ietfdb (6.78.0) ietf; urgency=medium
     tweak to pinpoint the desired search result is better than a long wait and
     then maybe having to tweak the search terms anyway.
 
-  * Use .assertIn(...) in tests instead of .assertTrue(x in y) as the 
+  * Use .assertIn(...) in tests instead of .assertTrue(x in y) as the
     failure messages are much more informative
 
   * Changed the signature of some document methods to not accept lists (but
@@ -6104,46 +6177,46 @@ ietfdb (6.78.0) ietf; urgency=medium
 
   * Added another prefetch to search doc query results.
 
-  * Imposed sort order (most recent docs first) on document search results, 
+  * Imposed sort order (most recent docs first) on document search results,
     in order to retain the most recent docs in case we have to chop the result
     list due too many hits.
 
-  * Tweaked the django_cprofile_middleware patch to use a query arg of 
+  * Tweaked the django_cprofile_middleware patch to use a query arg of
     psort instead of sort, to avoid conflict with app query args 'sort'.
 
-  * Added back the on-agenda calendar links to document lists, now in an 
+  * Added back the on-agenda calendar links to document lists, now in an
     implementation with better performance characteristics.
 
   * Updated minimum requirements for bootstrap3, to work with django 1.11
 
-  * Fixed an issue where the change of slide naming between IETF 96 and 97 
-    caused the datatracker to not provide correct link to pre-IETF-97 
+  * Fixed an issue where the change of slide naming between IETF 96 and 97
+    caused the datatracker to not provide correct link to pre-IETF-97
     materials.  Thanks to tjw.ietf@gmail.com for the heads-up.
 
   * Merged in [14970] from rjsparks@nostrum.com:
-    Factories for the ipr app. Coverage of ietf.ipr.views.ajax_search, and 
-    a factory-driven test of ietf.ipr.views.edit.  
+    Factories for the ipr app. Coverage of ietf.ipr.views.ajax_search, and
+    a factory-driven test of ietf.ipr.views.edit.
 
-  * Enhanced debug.py: made the mark() function indicate file and line 
-    number it was called from.  Added if debug: conditions around some other 
+  * Enhanced debug.py: made the mark() function indicate file and line
+    number it was called from.  Added if debug: conditions around some other
     function actions.
 
-  * Another round of iesg page optimizations.  Reduced additional instances 
-    of individual lookups to a single lookup followed by annotation of document 
-    objects.  Reduced several instances of repeating the same work multiple 
+  * Another round of iesg page optimizations.  Reduced additional instances
+    of individual lookups to a single lookup followed by annotation of document
+    objects.  Reduced several instances of repeating the same work multiple
     times (queries for telechat documents, queries for telechat dates).
 
   * Fixed a number of tests to deal correctly with model method caching.
 
-  * Changed the ballot_icon template tag to use an already found ballot if 
+  * Changed the ballot_icon template tag to use an already found ballot if
     available, rather than doing lookups to find it (twice!).
 
-  * Added a patch for debug mode, to add a filtering option to the 
+  * Added a patch for debug mode, to add a filtering option to the
     django-cprofile-middleware.
 
-  * Be more specific with bootstrap's layout classes for small devices in 
-    the base template, to avoid the bottom links and footer overlaying the 
-    bottom of the content area.  Fixes a problem with entering login 
+  * Be more specific with bootstrap's layout classes for small devices in
+    the base template, to avoid the bottom links and footer overlaying the
+    bottom of the content area.  Fixes a problem with entering login
     information on small devices.
 
  -- Henrik Levkowetz   10 Apr 2018 16:33:46 +0000
@@ -6178,7 +6251,7 @@ ietfdb (6.77.1) ietf; urgency=medium
     repeated (costly) filtering through the telechat_page_count template
     filter in the template, which caused new, redundant document lookups every
     time.  Removed the telechat_page_count template filter altogether, due to
-    its cost. 
+    its cost.
 
   * Tweaked some lookups in fill_in_document_table_attributes().
 
@@ -6220,38 +6293,38 @@ ietfdb (6.76.2) ietf; urgency=medium
   This release fixes a number of blemishes and cleans the slate for merging
   in a meetecho API branch.
 
-  * Fixed an issue which could result in server 500 errors for paths like 
+  * Fixed an issue which could result in server 500 errors for paths like
     /meeting/99/session/plenary.
 
-  * Removed superfluous stats pages headers which would be repeated with 
+  * Removed superfluous stats pages headers which would be repeated with
     different layout on the next line, as part of the graphs.
 
   * Added a test for IPR edit.
 
-  * Filled in the IPR edit form, section V, with patent information derived 
+  * Filled in the IPR edit form, section V, with patent information derived
     from the patent_info field, the same way we do for the IPR update form.
 
   * Added a pip version restriction to requirements.txt, as there seems to be
     issues with pip 9.0.2 and 9.0.3; they seem to leave dross when down- and
     upgrading packages.
 
-  * Don't show links to individual meeting stats pages when there's no 
+  * Don't show links to individual meeting stats pages when there's no
     content (meeting 71 and earlier currently has no attendance records).
 
   * Added meeting dates to the meeting stats overview graph.
 
-  * Changed the name of a loop variable so as not to obscure a previous 
+  * Changed the name of a loop variable so as not to obscure a previous
     local variable.
 
   * Don't show future meetings in the meeting stats overview.
 
-  * Changed settings so that cache keys used by memcached includes the 
-    release version, in order to avoid stale and incorrect cache content on new 
-    release deployment.  Made it easier to pick out cache key composition by 
-    normalizing the variable name.  Adjusted cache prefix and the composition 
+  * Changed settings so that cache keys used by memcached includes the
+    release version, in order to avoid stale and incorrect cache content on new
+    release deployment.  Made it easier to pick out cache key composition by
+    normalizing the variable name.  Adjusted cache prefix and the composition
     of some keys to have a unique and consistent cache key prefix.
 
-  * Use the actual defaults from settings.py when showing the defaults on 
+  * Use the actual defaults from settings.py when showing the defaults on
     /accounts/settings/.
 
  -- Henrik Levkowetz   28 Mar 2018 20:54:53 +0000
@@ -6273,8 +6346,8 @@ ietfdb (6.76.1) ietf; urgency=medium
 
   From the commit log:
 
-  * Fixed some issues with agenda and proceedings code for meetings 
-    numbered 64 and below, actualized by the introduction of meeting records 
+  * Fixed some issues with agenda and proceedings code for meetings
+    numbered 64 and below, actualized by the introduction of meeting records
     for such meetings for stats purposes.
 
   * The template filter 'keep_spacing' can interact badly with 'wordwrap'.
@@ -6282,53 +6355,53 @@ ietfdb (6.76.1) ietf; urgency=medium
     consistent.  Fixes issue #2481.
 
   * Merged in [14902] from rjsparks@nostrum.com:
-    Test coverage improvements for ietf/secr/telechat/views.  
+    Test coverage improvements for ietf/secr/telechat/views.
 
   * Merged in [14900] from rjsparks@nostrum.com:
-    Improvements to test coverage for ietf/secr/drafts/views.py.  
+    Improvements to test coverage for ietf/secr/drafts/views.py.
 
   * Merged in [14899] from rjsparks@nostrum.com:
-    Cleaner charter factory simplifies test code.  
+    Cleaner charter factory simplifies test code.
 
-  * Added submenu to the Statistics menu entry, pointing at the individual 
+  * Added submenu to the Statistics menu entry, pointing at the individual
     stats pages, and entries for NomComs and Releases.
 
   * Merged in [14896] from rjsparks@nostrum.com:
-    Improved test coverage for ietf/doc/views_charter.py.  
+    Improved test coverage for ietf/doc/views_charter.py.
 
-  * Fixed the base template to have id='content' for the content also when 
+  * Fixed the base template to have id='content' for the content also when
     not showing the left-hand menu.
 
   * Updated the cookies tests to match the new left_menu default.
 
-  * Changed the default setting for the datatracker left-hand menu to 
+  * Changed the default setting for the datatracker left-hand menu to
     'off'.  The top menu is always present, and works well.
 
-  * Tweaked the document list iCalendar links to not show for presentations 
+  * Tweaked the document list iCalendar links to not show for presentations
     on days in the past.
 
   * Merged in [14884] from adam@nostrum.com:
-    Adding page count to last call page.  
+    Adding page count to last call page.
 
   * Merged in [14883] from adam@nostrum.com:
-    Adding link to documents in last call to the AD dashboard side menu.  
+    Adding link to documents in last call to the AD dashboard side menu.
 
   * Merged in [14849] from ben@nostrum.com:
-    Give ADs the red Clear Ballot button 
+    Give ADs the red Clear Ballot button
 
   * Merged in [14880] from rjsparks@nostrum.com:
     Added a Draft test suite.
 
   * Merged in [14879] from kivinen@iki.fi:
-    Backfilled IETF meetings starting from 1 and backfilled the attendee 
-    numbers for them. Modified the overview attendee statistics page to use 
-    different colors for different venue continents.  
+    Backfilled IETF meetings starting from 1 and backfilled the attendee
+    numbers for them. Modified the overview attendee statistics page to use
+    different colors for different venue continents.
 
-  * Tweaked the meeting registratoin import to deal more gracefully with 
-    too long names and email addresses, and to fill in the total attendees 
+  * Tweaked the meeting registratoin import to deal more gracefully with
+    too long names and email addresses, and to fill in the total attendees
     number for the meeting.
 
-  * Tweaked mergeready to accept an additional hold-for-merge file outside 
+  * Tweaked mergeready to accept an additional hold-for-merge file outside
     the repository.
 
  -- Henrik Levkowetz   26 Mar 2018 13:38:04 +0000
@@ -6347,11 +6420,11 @@ ietfdb (6.76.0) ietf; urgency=medium
   Many thanks to everyone who contributed!
 
   * Merged in [14864] from rjsparks@nostrum.com:
-    Improved test coverage for ietf.meeting.views.  
+    Improved test coverage for ietf.meeting.views.
 
   * Updated Note Well.  Fixes issue #2474.
 
-  * Tweaked person factory ascii name generation to not include periods 
+  * Tweaked person factory ascii name generation to not include periods
     inside names.
 
   * Tweaked a factory to make duplicate mailing list names less likely in tests
@@ -6359,51 +6432,51 @@ ietfdb (6.76.0) ietf; urgency=medium
   * Test data template tweak.
 
   * Merged in [14863] from rjsparks@nostrum.com:
-    Improved test coverage for ietf.utils.draft.  
+    Improved test coverage for ietf.utils.draft.
 
   * Merged in [14862] from rcross@amsl.com:
-    Add view for merge person records.   
+    Add view for merge person records.
 
   * Merged in [14855] from rjsparks@nostrum.com:
-    Improved test coverage for ietf.meeting.views.  
+    Improved test coverage for ietf.meeting.views.
 
   * Added a test case for reference extraction.
 
   * Merged in [14854] from rjsparks@nostrum.com:
-    Improved test coverage over meeting.views.  
+    Improved test coverage over meeting.views.
 
   * Merged in [14851] from housley@vigilsec.com:
-    Improve parser for references in Internet-Drafts. Fixes #2360 
+    Improve parser for references in Internet-Drafts. Fixes #2360
 
   * Merged in [14850] from rjsparks@nostrum.com:
-    Improvements to test coverage in ietf.meeting.views 
+    Improvements to test coverage in ietf.meeting.views
 
-  * Removed premature save of upload document state (doing it after 
-    verifying that the save to file worked instead).  Tweaked materials 
-    documents revision extraction regexes.  Added a test on no change of 
-    materials rev after failed upload.  Corrected the naming of materials in 
+  * Removed premature save of upload document state (doing it after
+    verifying that the save to file worked instead).  Tweaked materials
+    documents revision extraction regexes.  Added a test on no change of
+    materials rev after failed upload.  Corrected the naming of materials in
     make_meeting_test_data.  Refined the test crawl of meeting materials pages.
 
-  * Added a couple of meeting material crawls to check that internal 
+  * Added a couple of meeting material crawls to check that internal
     material links aren't broken.
 
   * Check attribute isn't None before accessing sub-attributes.
 
   * Merged in [14845] from rcross@amsl.com:
-    Remove unused roles/forms.py.   
+    Remove unused roles/forms.py.
 
   * Merged in [14844] from adam@nostrum.com:
     Fixing 'href' field for
-    https://datatracker.ietf.org/meeting//json.  
+    https://datatracker.ietf.org/meeting//json.
 
   * Fixed some materials docname-with-rev regexes that were too narrow.
 
   * Merged in [14843] from adam@nostrum.com:
-    Updated (deprecated, unregistered) 'text/json' with 'application/json' 
-    everwhere.  
+    Updated (deprecated, unregistered) 'text/json' with 'application/json'
+    everwhere.
 
   * Merged in [14842] from rcross@amsl.com:
-    Add check for deleted session when scheduling.  Fixes #2450.   
+    Add check for deleted session when scheduling.  Fixes #2450.
 
   * Fixed a bug in a RegexValidator error message string interpolation.
 
@@ -6422,36 +6495,36 @@ ietfdb (6.75.2) ietf; urgency=medium
   * Merged in [14830] from rjsparks@nostrum.com:
     Simple coverage tests for ietf/secr/drafts/reports.py.
 
-  * Tweaked the document sanitizer to insert a charset meta tag after 
+  * Tweaked the document sanitizer to insert a charset meta tag after
     sanitization.
 
   * Fixed a mistaken change in session urls.
 
   * Tweaked a test case to make it easier to get at failures.
 
-  * Made the materials_document() view function more robust in handling 
+  * Made the materials_document() view function more robust in handling
     various materials document names.
 
-  * Gave the 404 message a class which will make it easier to pick out the 
+  * Gave the 404 message a class which will make it easier to pick out the
     message during testing.
 
-  * Updated the meeting materials document view to handle urls with 
+  * Updated the meeting materials document view to handle urls with
     revisions.
 
-  * Updated the meeting document href patterns in settings.py to reflect 
+  * Updated the meeting document href patterns in settings.py to reflect
     that we now have versioned agendas, minutes, and slides.
 
-  * Added session ical links to document lists (WG docs, search results, 
-    etc.) for documents on upcoming meeting agendas.  Reduced the query and 
-    rendering times of document lists some more through additional 
+  * Added session ical links to document lists (WG docs, search results,
+    etc.) for documents on upcoming meeting agendas.  Reduced the query and
+    rendering times of document lists some more through additional
     prefetch_related().
 
   * Added result caching for the Person.email() method.
 
   * Added result caching for a couple of Document methods.
 
-  * Added a missing tag to the sanitizer whitelist (telling lxml's Cleaner 
-    to not clean style with style=False is apparently not always enough).  
+  * Added a missing tag to the sanitizer whitelist (telling lxml's Cleaner
+    to not clean style with style=False is apparently not always enough).
     Fixes issue #2470.
 
   * Added a debug import.
@@ -6473,17 +6546,17 @@ ietfdb (6.75.1) ietf; urgency=medium
   with the new upload code, and introduces saving of uploaded files in a
   consistent encoding (UTF-8).  From the commitlog:
 
-  * Added handling for when file magic doesn't return a definitive encoding 
+  * Added handling for when file magic doesn't return a definitive encoding
     for a file.  Added a test case to excercise upload error cases.
 
-  * Changed the meeting materials uploads to use the upload file encoding 
-    found by file-magic when decoding the upload content, and also return 
-    errors to the user if decoding the upload fails.  Fixes issue #2469.  This 
-    will also have the benefit (since we're saving with utf-8 encoding after 
+  * Changed the meeting materials uploads to use the upload file encoding
+    found by file-magic when decoding the upload content, and also return
+    errors to the user if decoding the upload fails.  Fixes issue #2469.  This
+    will also have the benefit (since we're saving with utf-8 encoding after
     decoding) of having meeting materials consistently stored with a the same
     encoding on the server.
 
-  * Added a new argument encoding= to handle_upload_file() in order to be 
+  * Added a new argument encoding= to handle_upload_file() in order to be
     able to deal better with various upload encodings.
 
   * Tweaked the mime type validator so it can be called also when there's no
@@ -6497,8 +6570,8 @@ ietfdb (6.75.1) ietf; urgency=medium
   * Return encoding information to the FileUploadForm when doing mime type
     validation, for later use in decoding.
 
-  * Changed html cleaning to differentiate between fragment cleaning and 
-    document cleaning.  Added an lxml-based cleaner for document cleaning, also 
+  * Changed html cleaning to differentiate between fragment cleaning and
+    document cleaning.  Added an lxml-based cleaner for document cleaning, also
     permitting