Commit graph

12508 commits

Author SHA1 Message Date
Robert Sparks 370c3b24ed
chore: remove alreay used on-shot import commands (#7333) 2024-04-18 10:25:02 -05:00
Jennifer Richards 2fb550ffce
feat: add room_id param to createRoom API (#7308)
* feat: add room_id param to createRoom API

* test: update tests_helpers.py
2024-04-09 11:21:35 -05:00
Jennifer Richards 279fb8565a
fix: Split up API tokens (#7294) 2024-04-05 14:03:04 -05:00
Jennifer Richards 6b4a806e42
feat: API to list role-holder addresses (#7291)
* feat: API to list role-holder addresses

* test: Test new API endpoint

* fix: role_holder_addresses gets own API token

* refactor: Move role_holder_addresses to ietf.api.views

* test: test for group.utils.role_holder_emails

* test: Clean up test_role_holder_addresses

* fix: Missed a change in urls.py

* refactor: Remove old view

* chore: Remove unused import

* chore: Remove unused import
2024-04-05 14:02:40 -05:00
Robert Sparks 864b19f21a
chore: refactor ballot search query (#7290) 2024-04-04 10:59:16 -05:00
Robert Sparks ed5e4863b9
fix: handle probes for unknown ballot ids (#7289) 2024-04-03 16:59:52 -05:00
Robert Sparks 44a5dcb023
ci: bringe the test names fixture up to date (#7251) 2024-03-26 11:29:24 -05:00
Robert Sparks a00dfc0c27
chore: remove unused submit by email functionality (#7249) 2024-03-26 09:44:49 -05:00
Jim Fenton 891c0e975d
refactor: Move document state help to /doc (#7206)
* Redirect /help/state/draft/* to /doc/help/state/draft-*

* Adjust document state index to use /doc/help/state for URLs

* Move all state help to /doc. Fixes #3802

* Move state index redirect into urls file.
2024-03-22 15:03:10 -05:00
Jennifer Richards cf21b8f236
fix: Only POST to rfceditor in production (#7241)
* fix: Only POST to rfceditor in production

* test: Test server mode checking
2024-03-20 21:43:10 -05:00
Tero Kivinen 79416cfa0a
fix: Add history line when changing the review deadline. (fixes #6598) (#7194)
* Add history line when changing the review deadline.

* chore: reduce redundancy

---------

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2024-03-20 19:05:25 -05:00
Tero Kivinen cec0e0c9d8
Make review settings history usable. (#7205) 2024-03-20 19:04:37 -05:00
Eric Vyncke faa3efd136
fix: Missing button text for PostScript (#7200)
* ci: Update build-base-app.yml workflow

* Do not list PS in build_file_urls

* Update ietf/doc/utils.py

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>

---------

Co-authored-by: Nicolas Giard <github@ngpixel.com>
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2024-03-20 18:09:47 -05:00
Rich Salz 68c3e652e0
fix: Clarify non-WG mailing list title (#7189)
Add reference to the non-WG guidelines.
Change the title to make obvious that not implying "no work is done here."

Fixes: #7059
2024-03-20 17:39:30 -05:00
Jennifer Richards c696a715c0
chore: Drop alias generation mgmt commands (#7082)
* chore: Remove generate_draft_aliases.py

Also remove test and update some now-stale help strings.
These are not very helpful, but will not exist for long
in their updated incarnation.

* chore: Remove generate_group_aliases.py

... and its test.

* chore: Remove unused import

* chore: Remove unused import
2024-03-20 17:28:24 -05:00
Sangho Na 1a9a11176f
refactor: Drop dependency on decorator package (#7199) 2024-03-16 15:57:10 -05:00
Jennifer Richards 21f467f062
test: attendance uses plain_name() (#7198) 2024-03-16 00:46:32 -05:00
Robert Sparks 3bfb9303bc
fix: appropriate metadata for editorial stream docs (#7195) 2024-03-15 23:16:09 -05:00
Rich Salz b21706ef5c
fix: Fix typo (#7193)
Fixes: #6962
2024-03-15 23:13:09 -05:00
Rich Salz a637799795
feat: More clarity in nomcom feedback, and ... (#7191)
* feat: Remove trailing period from photo title, etc

For consistency, in email and photo tooltips, remove the trailing
period.

* feat: Remove email link in NomCom feedback

Seeing "User Name {envelope}" seems to confuse people; it's two links,
not one. So don't show the envelope-icon,

Also change text to say "current nomcom" when saying who gets it.

Fixes: #7032
2024-03-15 21:44:44 -05:00
Robert Sparks e6138ca126
feat: session apis (#7173)
* feat: Show bluesheets using Attended tables (#7094)

* feat: Show bluesheets using Attended tables (#6898)

* feat: Allow users to add themselves to session attendance (#6454)

* chore: Correct copyright year

* fix: Address review comments

* fix: Don't try to generate empty bluesheets

* refactor: Complete rewrite of bluesheet.html

* refactor: Fill in a few gaps, close a few holes

- Rename the live "bluesheet" to "attendance", add some explanatory text.
- Add attendance links in materials view and pre-finalized proceedings view.
- Don't allow users to add themselves after the corrections cutoff date.

* fix: Report file-save errors to caller

* fix: Address review comments

* fix: typo

* refactor: if instead of except; refactor gently

* refactor: Rearrange logic a little, add comment

* style: Black

* refactor: auto_now_add->default to allow override

* refactor: jsonschema to validate API payload

* feat: Handle new API data format

Not yet tested except that it falls back when the old
format is used.

* test: Split test into deprecated/new version

Have not yet touched the new version

* style: Black

* test: Test new add_session_attendees API

* fix: Fix bug uncovered by test

* refactor: Refactor affiliation lookup a bit

* fix: Order bluesheet by Attended.time

* refactor: Move helpers from views.py to utils.py

* test: Test that finalize calls generate_bluesheets

* test: test_bluesheet_data()

* fix: Clean up merge

* fix: Remove debug statement

* chore: comments

* refactor: Renumber migrations

---------

Co-authored-by: Paul Selkirk <paul@painless-security.com>

* chore: Remove unused import

* style: Black

* feat: Stub session update notify API

* feat: Add order & rev to slides JSON

* style: Black

* feat: Stub actual Meetecho slide deck mgmt API

* refactor: Limit reordering to type="slides"

* chore: Remove repository from meetecho API

(API changed on their end)

* feat: update Meetecho on slide reorder

* refactor: drop pytz from meetecho.py

* chore: Remove more repository refs

* refactor: Eliminate more pytz

* test: Test add_slide_deck api

* fix: Allow 202 status code / absent Content-Type

* test: Test delete_slide_deck api

* test: Test update_slide_decks api

* refactor: sessionpresentation_set -> presentations

* test: Test send_update()

* fix: Debug send_update()

* test: ajax_reorder_slides calls Meetecho API

* test: Test SldesManager.add()

* feat: Implement SlidesManager.add()

* test: Test that ajax_add_slides... calls API

* feat: Call Meetecho API when slides added to session

* test: Test SlidesManager.delete()

* feat: Implement SlidesManager.delete()

* test: ajax_remove_slides... calls Meetecho API

* feat: Call Meetecho API when slides removed

* chore: Update docstring

* feat: rudimentary debug mode for Meetecho API

* test: remove_sessionpresentation() calls Meetecho API

* feat: Call Meetecho API from remove_sessionpresentation()

* test: upload_slides() calls Meetecho API

* style: Black

* fix: Refactor/debug upload_session_slides

Avoids double-save of a SessionPresentation for the session
being updated and updates other sessions when apply_to_all
is set (previously it only created ones that did not exist,
so rev would never be updated).

* test: Fix test bug

* feat: Call Meetecho API when uploading session slides

* fix: Only replace slides actually linked to session

* fix: Delint

Removed some type checking rather than debugging it

* fix: Send get_versionless_href() as url for slides

* test: TZ-aware timestamps, please

* chore: Add comments

* feat: Call Meetecho API in edit_sessionpresentation

* feat: Call Meetecho API in remove_sessionpresentation

* feat: Call Meetecho API from add_sessionpresentation

* fix: Set order in add_sessionpresentation

* fix: Restrict API calls to "slides" docs

* feat: Call Meetecho API on title changes

* test: Check meetecho API calls in test_revise()

* fix: better Meetecho API "order" management

* fix: no PUT if there are no slides after DELETE

* feat: Catch exceptions from SlidesManager

Don't let errors in the MeetEcho slides API interfere with
the ability to modify slides for a session.

* feat: Limit which sessions we send notifications for

* fix: handle absence of request_timeout in api config

* test: always send slide notifications in tests

* fix: save slides before sending notification (#7172)

* fix: save slides before sending notification

* style: fix indentation

It's not a bug, it's a flourish!

---------

Co-authored-by: Jennifer Richards <jennifer@staff.ietf.org>
Co-authored-by: Paul Selkirk <paul@painless-security.com>
2024-03-12 10:22:24 -05:00
Jennifer Richards 3b67d9e0fd
chore: Bump version to 12 in a couple places (#6789)
* chore: Bump version to 12 in a couple places

* ci: use semver-action to set dev major version

* feat: Extract version at runtime for dev

* fix: Use version/branch/hash vars

---------

Co-authored-by: Nicolas Giard <github@ngpixel.com>
2024-03-11 15:54:38 -05:00
Paul Selkirk 528d697ac0
refactor: Clarify which mail archive is being searched (#7117)
* refactor: Clarify which mail archive is being searched (#6993)

* refactor: Revert views_review.py, get team email directly
2024-03-11 13:13:32 -05:00
Jennifer Richards 5e8b7ad71e
fix: Do not force showAgenda when agenda_note is set (#7142) 2024-03-05 11:56:34 -06:00
Jennifer Richards 3afd6ca42f
fix: Avoid validation crash when title parsing fails (#7131)
* fix: Add guards after failed submission validation

* fix: Avoid nulling submission.title
2024-03-05 09:14:44 -06:00
Robert Sparks 7287e98709
feat: upload narrative minutes (#7125)
* feat: upload narrative minutes

* chore: cover other new URL path
2024-03-04 16:48:02 -06:00
Jennifer Richards fb84f3240e
test: Tweak test to avoid Leap Day failure (#7119)
* test: Tweak test to avoid Leap Day failure

🎉

* chore: Rephrase comment

* chore: Remove debug code
2024-02-29 12:01:46 -06:00
Paul Selkirk 08e0c83324
refactor: Remove Google from document history search (#7093)
* refactor: Remove Google from document history search

"Search lists" dropdown menu devolves into a single button
(two buttons for ADs).

* refactor: Remove unused ARO search

---------

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2024-02-28 09:58:21 -06:00
Paul Selkirk 01a071962d
feat: Add Announcements link to nomcom home page (#7053)
* feat: Add Announcements link to nomcom home page

* refactor: Move announcements link to top of page, outside nomcom_content

* refactor: Don't code URL path into template
2024-02-28 08:54:08 -06:00
Paul Selkirk ce1571ee68
fix: Revert "Email authors" link for an RFC to the draft that it came from (#7077)
* fix: Revert "Email authors" link for RFCs to the draft that it came from (#6856)

* refactor: Move mailto_name calculation to the view

* fix: Fully revert document_draft.html
2024-02-28 08:52:38 -06:00
Jennifer Richards 3ddd8c9cce
fix: Fix/adjust periodic_tasks management command (#7108)
* fix: Skip midnight partial rfced sync

* fix: call iana protocols update task correctly
2024-02-28 08:15:04 -06:00
Robert Sparks bc963187f8
fix: redirect to the right app for statement docs (#7090) 2024-02-22 15:42:22 -06:00
Robert Sparks 0878c8e2ad
fix: emit bulk redirect configuration for iesg artifacts (#7086)
* fix: emit bulk redirect configuration for iesg artifacts

* chore: remove unintended debug statement
2024-02-22 13:15:29 -06:00
Jennifer Richards ecc823eae5
feat: Give better errors when docName is missing (#7083)
* feat: Give better error when docName is missing

* refactor: Make method static for easier testing

* test: Add test of XMLDraft.parse_docname()
2024-02-21 11:59:07 -06:00
Jennifer Richards 89d2a0c012
feat: API to retrieve active email addrs (#7035)
* feat: API to retrieve active email addrs

* test: Test active_email_list view

* chore: Remove debug statement

* fix: Return 405 on non-GET requests
2024-02-20 16:38:36 -06:00
Paul Selkirk 65cf001ecf
feat: Group admin form accepts acronyms starting with numbers for SDO groups (#7051)
* feat: Group admin form accepts acronyms starting with numbers for SDO groups (#6825)

* fix: Acronym can't start with hyphen

* fix: Restore some tests
2024-02-20 16:38:11 -06:00
Robert Sparks 8cb7f3dcae
feat: Import IESG artifacts into the datatracker (#6908)
* chore: remove unused setting

* feat: initial import of iesg minutes

* fix: let the meetings view show older iesg meetings

* feat: iesg narrative minutes

* feat: import bof coordination call minutes

* wip: import commands for iesg appeals and statements

* feat: import iesg statements.

* feat: import iesg artifacts

* feat: many fewer n+1 queries for the group meetings view

* fix: restore chain of elifs in views_doc

* fix: use self.stdout.write vs print in mgmt commands

* fix: use replace instead of astimezone when appropriate

* chore: refactor new migrations into one

* fix: transcode some old files into utf8

* fix: repair overzealous replace

* chore: black

* fix: address minro review comments

* fix: actually capture transcoding work

* fix: handle multiple iesg statements on the same day

* fix: better titles

* feat: pill badge replaced statements

* fix: consolodate source repos to one

* feat: liberal markdown for secretariat controlled content

* fix: handle (and clean) html narrative minutes

* feat: scrub harder

* fix: simplify and improve a scrubber

* chore: reorder migrations
2024-02-20 16:35:08 -06:00
Jennifer Richards 5fc0f6926b
feat: Show room functional name when editing timeslots (#7075)
* feat: Show functional name in str(Room)

* feat: Show func name in edit_timeslots.html

* test: Update test_location_options
2024-02-20 11:02:48 -06:00
Paul Selkirk 52a707628f
feat: Links to chatlogs and session recordings on proceedings page (#7042)
* feat: Links to chatlogs and session recordings on proceedings page (#6791)

* refactor: Add a url template and convenience function for session_recording url

* refactor: Avoid using the walrus operator
2024-02-20 09:40:31 -06:00
Paul Selkirk 9ab820fca9
fix: Expand and enforce Cancel Interim Meeting Request comments length to 512 (#7069)
* fix: Expand and enforce Cancel Interim Meeting Request comments length to 512 (#6998)

* fix: Verify comment text in generated email
2024-02-20 09:30:41 -06:00
Paul Selkirk 3ba39c956a
refactor: Remove BOF chairs from bofreq template, because BOF requesters shouldn't fill it in (#7065) 2024-02-15 09:43:39 -06:00
Jennifer Richards 547c515c07
chore: Fix incorrect docstring 2024-02-12 20:29:34 -04:00
Jennifer Richards 3157cf65d1
fix: Accept&ignore group_type for some views 2024-02-12 17:38:36 -04:00
Jennifer Richards 4c396e6645
fix: Add file ext to href for non-meeting slides (#7030) 2024-02-07 12:17:48 -06:00
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 ae01f6fb92
chore: clean away unused views/tests related to the Allowlisted model (#7027) 2024-02-06 09:39:09 -06:00
Robert Sparks efdaee3bb3
feat: decouple from mailman2 - explicitly model nonwg mailing lists (#7013)
* fix: remove synchronization with mailman2

* feat: manage non wg mailing lists explicitly

* chore: black

* fix: update tests for new nonwg view

* feat: drop unused models
2024-02-05 09:28:23 -06:00
Jennifer Richards b4cf04a09d
feat: celery tasks to replace ietf/bin scripts (#6971)
* refactor: Change import style for clarity

* feat: Add iana_changes_updates_task()

* chore: Squelch lint warning

My linter does not like variables defined outside
of __init__()

* feat: Add PeriodicTask for iana_changes_updates_task

* refactor: tasks instead of scripts on sync.views.notify()

* test: Test iana_changes_updates_task

* refactor: rename task for consistency

* feat: Add iana_protocols_update_task

* feat: Add PeriodicTask for iana protocols sync

* refactor: Use protocol sync task instead of script in view

* refactor: itertools.batched() not available until py312

* test: test iana_protocols_update_task

* feat: Add idindex_update_task()

Calls idindex generation functions and does the file
update dance to put them in place.

* chore: Add comments to bin/hourly

* fix: annotate types and fix bug

* feat: Create PeriodicTask for idindex_update_task

* refactor: Move helpers into a class

More testable this way

* refactor: Make TempFileManager a context mgr

* test: Test idindex_update_task

* test: Test TempFileManager

* fix: Fix bug in TestFileManager

yay testing

* feat: Add expire_ids_task()

* feat: Create PeriodicTask for expire_ids_task

* test: Test expire_ids_task

* test: Test request timeout in iana_protocols_update_task

* refactor: do not re-raise timeout exception

Not sure this is the right thing to do, but it's the
same as rfc_editor_index_update_task

* feat: Add notify_expirations_task

* feat: Add "weekly" celery beat crontab

* refactor: Reorder crontab fields

This matches the crontab file field order

* feat: Add PeriodicTask for notify_expirations

* test: Test notify_expirations_task

* test: Add annotation to satisfy mypy
2024-01-31 15:24:20 -06:00
Jennifer Richards 118b00d729
fix: Replace joint session field with instructions (#6997) 2024-01-30 14:34:09 -06:00
Robert Sparks 1e2a53e0e0
fix: restore explicit STATIC_ROOT (#6970) 2024-01-25 17:03:36 -06:00