* refactor: avoid shadowing type()
* style: Black
* feat: is_blanket_disclosure field
* feat: add field to form
* feat: js to mark field required/not required
* feat: blanket disclosure = royalty-free license
* feat: manage licensing radio buttons
* fix: adjust wording/format of disclosure page
* fix: point at RFC 8179 in checkbox label
* test: test blanket disclosure licensing restrictions
* fix: conditionally render is_blanket_disclosure
* test: refactor test case
* test: patent details optional for blanket ipr
* fix: Include missing related drafts in IPR searches
* refactor: extract drafts, sort docs
* chore: indent loop and conditionals to improve readability
* test: handle whitespaces added to IPR search result page
---------
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* fix: Reject nul characters in ipr search parameters
Really ought to rework this as a form, but in the meantime
this should prevent 500s. Could probably reduce the number
of places we check the value.
* fix: Guard against absent parameters
* fix: Remove stray junk
* fix: Use correct response code (400, not 405)
* test: Test handling of null chars in IPR search
* refactor: Simplify branch statements
This helps my code validator see that "start" is
always set.
* fix: Use case insensitive match for group acronym in doc search
* fix: Use case insensitive match for doc.search_by_name view
* fix: Use case insensitive match for doc names in ipr.search view
* test: Test case insensitivity in doc search/search_for_name
* chore: Remove commented-out template content
* fix: Correctly number newly added draft_form inputs on IPR edit form
* fix: Initialize select2 when adding a new field instance
* Pass settings into the context
Fixes#4340
* fix: test changes to the ipr notification message content
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* refactor: replace datetime.now with timezone.now
* refactor: migrate model fields to use timezone.now as default
* refactor: replace datetime.today with timezone.now
datetime.datetime.today() is equivalent to datetime.datetime.now(); both
return a naive datetime with the current local time.
* refactor: rephrase datetime.now(tz) as timezone.now().astimezone(tz)
This is effectively the same, but is less likely to encourage accidental
use of naive datetimes.
* refactor: revert datetime.today() change to old migrations
* refactor: change a missed datetime.now to timezone.now
* chore: renumber timezone_now migration
* chore: renumber migrations
* chore: remove more tools.ietf.org server only related things.
* chore: remove use of tools.ietf.org floorplans\n\nThe data will move into the FloorPlan models instead.
in order to autogenerate dotted path url pattern names. Updated a number
of url reverses to use dotted path, and removed explicit url pattern names
as needed.
Changed some imports to prevent import of ietf.urls before django
initialization was complete.
Changed 3 cases of form classes being curried to functions; django 1.10
didn't accept that.
Started converting old-style middleware classes to new-style middleware
functions (incomplete).
Tweaked a nomcom decorator to preserve function names and attributes, like
a good decorator should.
Replaced the removed django templatetag 'removetags' with our own version
which uses bleach, and does sanitizing in addition to removing explicitly
mentionied html tags.
Rewrote the filename argument handling in a management command which had
broken with the upgrade.
- Legacy-Id: 12818