Commit graph

86 commits

Author SHA1 Message Date
Jennifer Richards fa56223939
feat: API to replace email alias generation commands (#7012)
* feat: DraftAliasGenerator class

Encapsulates logic from generate_draft_aliases.py

* refactor: Avoid circular imports

* feat: Add draft_aliases API endpoint

* feat: Add @requires_api_token decorator

Stolen from feat/rpc-api

* feat: Add token auth to draft_aliases endpoint

* feat: draft-aliases-from-json.py script

Parses output from the draft_aliases API call

* chore: Remove unused cruft

* refactor: Avoid shadowing "draft" name

* fix: Suppress empty lists from DraftAliasGenerator

* refactor: Use a GET instead of POST

* feat: GroupAliasGenerator class

* feat: group aliases API view

* fix: Handle domains array correctly

* fix: Suppress empty group aliases

* refactor: Generalize aliases-from-json.py script

* refactor: Same output fmt for draft and group alias apis

* feat: Sort addresses for stability

* fix: Add "anything" virtual alias

* test: Test requires_api_token decorator

* feat: Harden is_valid_token against misconfig

* test: Test is_valid_token

* test: Test draft_aliases view

* test: Test group_aliases view

* test: Test DraftAliasGenerator

* fix: ise group is type "ise" in test data

* test: Fix logic in testManagementCommand

The test was incorrect - and fails when fixed. :-(

* test: Test GroupAliasGenerator

Test currently fails

* fix: Suppress empty -ads alias

* test: Fix group acronym copy/paste error

I *think* this must be what had been intended. The
code does not look like it ever dealt with GroupHistory,
so I'm pretty sure it wasn't meant to have the same
acronym used by two different Groups at different
times.

* test: Check draft .notify alias generation

* test: Cover get_draft_notify_emails()
2024-02-07 10:15:50 -06:00
Robert Sparks 4fa8bfa543
fix: use correct doc types and states for rfcs (#6639) 2023-11-15 10:08:39 -04:00
Robert Sparks f9c9644263
chore: merge main and fix conflicts 2023-08-30 16:35:20 -05:00
Jennifer Richards 48d4072eeb
Merge branch 'feat/rfc' into main-merge
# Conflicts:
#	ietf/doc/factories.py
#	ietf/doc/tests_status_change.py
#	ietf/name/fixtures/names.json
#	ietf/templates/doc/document_info.html
2023-08-03 18:34:06 -03:00
Robert Sparks dbe1749438
feat: IAB statements (#5940)
* feat: support iab and iesg statements. Import iab statements. (#5895)

* feat: infrastructure for statements doctype

* chore: basic test framework

* feat: basic statement document view

* feat: show replaced statements

* chore: black

* fix: state help for statements

* fix: cleanout non-relevant email expansions

* feat: import iab statements, provide group statements tab

* fix: guard against running import twice

* feat: build redirect csv for iab statements

* fix: set document state on import

* feat: show published date on main doc view

* feat: handle pdf statements

* feat: create new and update statements

* chore: copyright block updates

* chore: remove flakes

* chore: black

* feat: add edit/new buttons for the secretariat

* fix: address PR #5895 review comments

* fix: pin pydantic until inflect catches up (#5901) (#5902)

* chore: re-un-pin pydantic
2023-07-23 11:00:24 -07:00
Jennifer Richards c8dcda0fae
refactor: Do not use canonical_name() for charters (#5818)
* fix: Enforce naming of charter docs in submit()

* style: Reformat submit() with Black

* refactor: Remove redundant check of charter name

* style: Reformat charter_with_milestones_txt with Black

* refactor: Drop canonical_name, use Path in charter_with_milestones_txt

* style: Reformat review_announcement_text() with Black

* style: Reformat action_announcement_text() with Black

* refactor: Change uses of charter.canonical_name() to charter.name

* refactor: Skip docialias when retrieving charter

* refactor: Change canonical_name() to name in utils_charter.py

* refactor: Use Path in read_charter_text()

* refactor: Drop canonical_name, minor refactor of tests_charter.py

* refactor: charter.name instead of canonical_name in milestones.py

* refactor: charter.name instead of canonical_name in tests_info.py

* refactor: Remove unused functions in ietf/secr/utils/groups.py

* refactor: charter.canonical_name -> charter.name in templates

* refactor: Remove charter handling from canonical_name

Temporarily raise an exception for testing

* refactor: Refactor get_charter_text() without canonical_name

* refactor: Remove raise when canonical_name called on a charter

* fix: Add back missing ".txt" extension

* test: Test rejection of invalid charter names
2023-06-14 08:32:21 -05:00
Valery Smyslov a5f27b0a5b
feat: show expired WG/RG drafts at WG/RG Documents page (#4252)
* Show expired WG/RG drafts.

* Update 0009_add_group_exp_rule_to_groups.py

fix dependency on migration file name

* Update forms.py

Simplify condition statements

* Update views.py

Fix - remove erroneous check (never happen)

* Added tests for expired WG drafts filtering rule
2022-07-26 12:02:09 -05:00
Jennifer Richards 4f34c0478e
fix: Authorize interim session requests using data-driven group roles (#4120)
* fix: only use non-empty Q object as interim group filter

* refactor: add with_meetings queryset to GroupManager

* test: users can only request interims for managed groups

* fix: find managed groups from groupman_roles/authroles

* feat: let chair manage directorate groups

* test: remove debug statements and unused imports

* test: remove do-nothing code from test
2022-06-22 14:00:44 -05:00
Lars Eggert 5598762608
fix: add more HTML validation & fixes (#3891)
* Update vnu.jar

* Fix py2 -> py3 issue

* Run pyupgrade

* test: Add default-jdk to images

* test: Add option to also validate HTML with vnu.jar

Since it's already installed in bin. Don't do this by default, since it
increases the time needed for tests by ~50%.

* fix: Stop the urlizer from urlizing in linkified mailto: text

* More HTML fixes

* More HTML validation fixes

* And more HTML fixes

* Fix floating badge

* Ignore unicode errors

* Only URLize docs that are existing

* Final fixes

* Don't URLize everything during test-crawl

* Feed HTML into vnu using python rather than Java to speed things up

* Allow test-crawl to start vnu on a different port

* Increase retry count to vnu. Restore batch size to 30.

* More HTML validation fixes

* Use urllib3 to make requests to vnu, since overriding requests_mock is tricky

* Undo commit of unmodified file

* Also urlize ftp links

* Fix matching of file name

* More HTML fixes

* Add `is_valid_url` filter

* weekday -> data-weekday

* urlencode URLs

* Add and use vnu_fmt_message. Bump vnu max buffer.

* Simplify doc_exists

* Don't add tab link to mail archive if the URL is invalid

* Run urlize_ietf_docs before linkify

Reduces the possibility of generating incorrect HTML

* Undo superfluous change

* Runner fixes

* Consolidate vnu message filtering into vnu_filter_message

* Correctly handle multiple persons with same name

* Minimze diff

* Fix HTML nits

* Print source snippet in vnu_fmt_message

* Only escape if there is something to escape

* Fix snippet

* Skip crufty old IPR declarations

* Only include modal when needed. Add handles.

* Fix wordwrap+linkification

* Update ietf/doc/templatetags/ietf_filters.py

* Update ietf/doc/templatetags/tests_ietf_filters.py

* Don't right-align second column
2022-05-03 13:55:48 -05:00
Jennifer Richards 8759955597 Allow nomcom chair to edit liaisons as well as members and generate GroupEvents when changed. Share code between group and nomcom for this purpose. Fixes #3376. Commit ready for merge.
- Legacy-Id: 19710
2021-11-24 16:40:05 +00:00
Robert Sparks cd748cd760 Update internal references to trac.tools.ietf.org to point to trac.ietf.org. Remove several links into tools.ietf.org. Commit ready for merge.
- Legacy-Id: 19422
2021-10-13 21:43:44 +00:00
Jennifer Richards 2060173f3a Improve proceedings display with new title block, configurable host logos, and additional PDF or URL materials. Fixes #3147. Commit ready for merge.
- Legacy-Id: 19306
2021-08-30 17:02:49 +00:00
Robert Sparks d637a4bd83 Merged in [19254], [19256], [19258], [19259] from rjsparks@nostrum.com:\n Improvements to group-role authorization:\n Show groupman_authroles in the GroupFeatures admin list.\n Rename ietf.group.utils.can_manage_group_type to can_manage_all_groups_of_type to improve code readability where it is used.\n Changed the signature of can_manage_all_groups_of_type to only take a type_id. Removed the logic that tried to distinguish permissions for teams by parent - that should be modeled as separate type_ids instead.\n Changed implementation of can_manage_all_groups_of_type to use GroupFeatures.groupman_authroles.
- Legacy-Id: 19273
Note: SVN reference [19254] has been migrated to Git commit c01fea3920

Note: SVN reference [19256] has been migrated to Git commit 7ede0942d0

Note: SVN reference [19258] has been migrated to Git commit 359889c1f7

Note: SVN reference [19259] has been migrated to Git commit a29480703f
2021-08-04 20:49:28 +00:00
Robert Sparks 2b10465aa7 Convert IRTF area groups into their own group type rather than attempting to overload AG. Fixes #3027. Commit ready for merge.
- Legacy-Id: 18298
2020-07-28 18:54:44 +00:00
Robert Sparks fb8e5c6842 Allow IAB programs to use normal meeting mechanics. Fixes #2970. Commit ready for merge.
- Legacy-Id: 17764
2020-05-08 21:11:25 +00:00
Henrik Levkowetz f10ddadc0e Merged in changes from trunk up to r17584.
- Legacy-Id: 17593
2020-04-07 16:02:52 +00:00
Henrik Levkowetz 19fcb37b31 Merged in [17483] from peter@akayla.com:
Changed so that only WGs/RGs can be closed, per RJS.  Fixes #1578.
 - Legacy-Id: 17503
Note: SVN reference [17483] has been migrated to Git commit 4737f0588e
2020-03-22 13:01:30 +00:00
Peter E. Yee 4737f0588e Changed so that only WGs/RGs can be closed, per RJS. Fixes #1578. Commit ready for merge.
- Legacy-Id: 17483
2020-03-21 17:17:25 +00:00
Henrik Levkowetz 726fcbf27d Removed all __future__ imports.
- Legacy-Id: 17391
2020-03-05 23:53:42 +00:00
Henrik Levkowetz 6f8263eb6e Added fallback handling from utf-8 to latin1 when reading charter text files.
- Legacy-Id: 17126
2019-12-06 14:17:22 +00:00
Valery Smyslov 182dae28a8 Fixes issue #2612. Commit ready for merge.
- Legacy-Id: 17044
2019-11-18 08:48:15 +00:00
Henrik Levkowetz 8c6eb3a30a Python2/3 compatibility: Changed the use of open() and StringIO to io.open() etc.
- Legacy-Id: 16458
2019-07-15 19:14:04 +00:00
Henrik Levkowetz d7f5c84182 Initial 2to3 patch with added copyright statement updates.
- Legacy-Id: 16309
2019-06-27 14:40:54 +00:00
Henrik Levkowetz f4e2352eed Fixed the 'Request closing group' button incorrectly showing for group chairs. Fixes issue #2724.
- Legacy-Id: 16233
2019-06-05 14:16:14 +00:00
Henrik Levkowetz 5def83ef16 Removed links to the old MHonArc mail archives, and related view.
- Legacy-Id: 16179
2019-05-01 21:24:41 +00:00
Henrik Levkowetz 8726e74709 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.
- Legacy-Id: 16177
2019-04-30 16:54:06 +00:00
Henrik Levkowetz 3ec9d7b678 Updated the role handling to use GroupFeatures.groupman_roles consistently for group management access. Fixes a IRTF RG delegate permissions issue.
- Legacy-Id: 16160
2019-04-25 13:19:30 +00:00
Henrik Levkowetz bb4fe3fbbf Undid previous commit
- Legacy-Id: 16153
2019-04-22 19:22:42 +00:00
Henrik Levkowetz cfcefc2e32 Merged in [16144] from housley@vigilsec.com:
Remove some clutter from I-D upload page.  The information was mived to the Instructions tab, but a higligh to the Note Well and BCP 78 was added. Fixes #2057.
 - Legacy-Id: 16151
Note: SVN reference [16144] has been migrated to Git commit 37851b9742
2019-04-22 17:39:26 +00:00
Robert Sparks a4db66564c Checkpoint. Ended up chasing group.views_review before stats.
- Legacy-Id: 16030
2019-03-13 22:02:10 +00:00
Henrik Levkowetz 4fd9247bc4 Tweaks to group_features_group_filter()
- Legacy-Id: 16015
2019-03-07 23:35:47 +00:00
Henrik Levkowetz 9e36246a91 Rewrote a function to be more readable and actually do the right thing. This moved some filtering from database into code, but it seems acceptable here.
- Legacy-Id: 16013
2019-03-07 23:22:14 +00:00
Henrik Levkowetz b57ad67041 Updated code and templates to use the new docman and groupman group features.
- Legacy-Id: 15922
2019-01-30 15:59:00 +00:00
Henrik Levkowetz c87d3741f3 Added 2 utility functions to help create group features query filters, and applied them in 3 places in order to move group feature role list code back into DB queries.
- Legacy-Id: 15911
2019-01-23 18:40:39 +00:00
Henrik Levkowetz 57a4c9f41f Added 9 new group features, and changed list-like char fields to json fields, to get better support for using the values as lists. Modified code to use the group features instead of explicit lists of group types in many places in the code.
- Legacy-Id: 15908
2019-01-22 18:11:46 +00:00
Henrik Levkowetz 2daef52bea This commit replaces the code defined group features with features held
in a database table:

- Added a GroupFeatures model to the group models, and removed the old 
  features.py
- Added a agenda type for future use in showing different group types on
  different agendas.
- Renamed the group feature has_materials to has_nonsession_materials.
- Added API resources and admin support for the new tables.
- Added a Directorate (with reviews) group type as complement to
  Directorate, to distinguish between directorates with and without reviews.
- Adjusted tests as needed.
- Updated the fixtures, and fixed the generate_fixtures script to include
  the new AgendaTypeName objects.

There still exists about 70 instances of code comparing the group type
with a list of types; most of these should probably be replaced with new
features, instead, to make it possible to add new group types through the
database table, rather than having to edit the code.  That was the purpose
of this refactoring from the start, but the presence of this large number
of comparisons of group type against lists of types defeats the goal until
we add appropriate features and replace the group type list comparisons.
 - Legacy-Id: 15316
2018-07-12 10:51:48 +00:00
Tero Kivinen 7c7e9ae698 Moved email open assignment summary from subpage to the main review request page. Fixes #2091. Commit ready for merge
- Legacy-Id: 14356
2017-11-11 06:29:05 +00:00
Peter E. Yee 0d2e3cd32e Allows ADs to manage meeting materials from the meeting/##/materials page. Fixes #2213. Commit ready for merge.
- Legacy-Id: 13900
2017-07-15 12:40:13 +00:00
Robert Sparks 2c92aa213d Treat Area Groups similar to Working Groups and Research Groups where it makes sense to do so. Commit ready for merge.
- Legacy-Id: 13832
2017-07-11 19:12:21 +00:00
Henrik Levkowetz b4e2081009 Added a log assertion for calls to can_manage_group_type.
- Legacy-Id: 13782
2017-07-06 13:59:00 +00:00
Henrik Levkowetz ce1b655fa2 Code reorganization, doing away with multiple urls_* and views_ files in ietf.group. No intentional functionality changes.
- Legacy-Id: 13709
2017-06-22 15:18:08 +00:00
Henrik Levkowetz f5298d7bb8 Fixed a bug in which operations were available on the /group/chartering/ 'Chartering or re-chartering' page, so that not only operations on groups in a chartering state is shown, but also the options to start chartering. Fixes issue #2312.
- Legacy-Id: 13584
2017-06-12 19:25:39 +00:00
Henrik Levkowetz d82b8bf036 Reverted one of the changes in [13296], and added a comment explaining the relationship between the role list in roles_for_group_type() and the fields in the following GroupForm.
- Legacy-Id: 13297
Note: SVN reference [13296] has been migrated to Git commit a59331dd63
2017-05-10 13:22:16 +00:00
Henrik Levkowetz a59331dd63 Align the roles edit buttons on a group's about page with the roles that the group edit GroupForm will accept. Avoids edit forms without any fields and some server 500 errors.
- Legacy-Id: 13296
2017-05-10 13:05:51 +00:00
Lars Eggert 8a70e9773d Fix various "RemovedInDjango20Warning" warnings. Commit ready for merge.
- Legacy-Id: 13112
2017-03-25 19:16:45 +00:00
Henrik Levkowetz 5f053ad21a Cleaned up the remaining explicit url names, using dotted-paths to view
functions instead.  In all almost 700 changes.
 - Legacy-Id: 12923
2017-02-26 23:21:49 +00:00
Henrik Levkowetz 23ebe5d35d This addresses ease of editing various group attributes, and in particular is
intended to make it easier to see that you can edit things like the
external/additional URLs:

 - Added the ability to edit individual fields in a group's about page, and
   added edit buttons for editable fields on the about page, just as for
   documents (the ability to edit all editable fields already was available
   from the 'Edit group' button on the /group//about/ page).

 - Made the tab label for the group-about tab consistently say 'About',
   instead of 'Charter' for some groups.

 = Shifted the position of the about tab to the start of the tab line.

 - Removed the datatracker account requirement information at the top of the
   group edit page for users logged in to their account.

 - Tweaked the 'Show update' link on the 'Status Update' line.

 - Changed the label for the external URLs from 'More Info' to 'Additional
   URLs', which was already in use on the edit form.
 - Legacy-Id: 12904
2017-02-23 20:55:38 +00:00
Henrik Levkowetz fb6e24b6dd Changed the AD email list results from get_group_ad_emails() to make more sense when the group is an area, not a wg.
- Legacy-Id: 12900
2017-02-22 17:33:42 +00:00
Henrik Levkowetz 3fd890abbd Fixed a urlreverse kwargs bug.
- Legacy-Id: 12819
2017-02-11 14:48:55 +00:00
Henrik Levkowetz aa5e61d958 Updated all urlpatterns to use ietf.utils.urls.url() instead of django's,
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
2017-02-11 14:43:01 +00:00