Commit graph

1573 commits

Author SHA1 Message Date
Rich Salz 0c8db80b18
fix: Show recordings for interims (#7197)
* fix: Show recordings for interims

Add methods uses_notes(), has_recordings(), and uses_chat_logs() to the
meeting object (with semantically correct tests) and use them consistently
throughout.  List the recordings if the "meeting numnber" starts with
"interim"

Fixes: #6543

* style: Use "is not" and "is" for None comparisons

* None comparison and non-IETF meetings

style: Use "is not None" instead of "!="
For non-IETF meetings assume chat logs exist

* fix: Restore useNotes for JS fields

* fix: uses_notes->useNotes (in JavaScript)

Also add comment about meeting number field in tests

* Missed a uses_notes->useNotes edit

* fix: useNotes->usesNotes

---------

Co-authored-by: Jennifer Richards <jennifer@staff.ietf.org>
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2024-08-07 11:23:18 -05:00
Jennifer Richards 4b912d55a5
fix: better handle "entered" agendas (#7721)
* fix: don't assume file has open method

The open method is specific to Django's uploaded
file classes, where it just calls seek(0)

* refactor: better upload/enter agenda abstraction
2024-08-07 10:14:39 -05:00
Sangho Na b90820eb7a
fix: Hide last modified field in agenda when unavailable (#7722)
* test: Update tests to check for Updated field in agenda.txt

* fix: Hide Updated in agenda.txt if too old

* test: Remove confusing tests on CSV agenda

* refactor: Make updated() return None when no valid timestamp found

* refactor: Remove walrus operator
2024-08-07 09:15:01 -05:00
Jim Fenton 9ef7bff77c
feat: Unify slide upload and proposal (#7787)
* attempt at optional approval

* Update of meeting slides propose/upload

* Fix tests and residual coding bugs

* Remove gratuitous blank lines
2024-08-06 10:03:37 -05:00
Russ Housley 63d13074d1
fix: use area-acronym-at-the-time in proceedings (#7723)
When generating IETF meeting proceedings, use the Area Acronym for each WG at the time of the meeting. Fixes #7706.
2024-08-05 11:03:17 -05:00
Jennifer Richards c7f6bdef0a
test: test missing file 2024-07-20 13:02:32 -07:00
Jennifer Richards 0555eef13a
fix: prevent error when no file selected 2024-07-20 12:47:43 -07:00
Jennifer Richards 20f183c948
feat: update meetecho slides on approval (#7633)
* feat: update meetecho slides on approval

* test: test slide management
2024-07-10 15:33:52 -05:00
Jennifer Richards 08e953995a
feat: better reject null characters in forms (#7472)
* feat: subclass ModelMultipleChoiceField to reject nuls

* refactor: Use custom ModelMultipleChoiceField

* fix: handle value=None
2024-05-28 10:34:55 -05:00
Jennifer Richards f58bbc3caa ci: parameterize / update settings (#7248)
* ci: parameterize gunicorn in datatracker-start.sh

* fix: typo

* ci: update settings_local for helm chart

* ci: Add todo comment

* ci: Drop redundant USE_TZ setting

* ci: Require secrets in production

* ci: fix indentation

* style: Black

* ci: memcached cfg from env in settings.py

* ci: set SITE_URL in settings.py

* refactor: /www/htpasswd -> /a/www/htpasswd

(it's a symlink on production)

* refactor: Remove obsolete SECR_ settings

* refactor: SECR_MAX_UPLOAD_SIZE -> DATATRACKER_...

* refactor: SECR_PPT2PDF_COMMAND -> PPT2PDF_COMMAND

* ci: Fix up helm/settings_local

* ci: Remove commented-out settings

* ci: Refactor/improve env var guards

* ci: More env refactoring / guards
2024-05-13 21:41:36 -04:00
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 21f467f062
test: attendance uses plain_name() (#7198) 2024-03-16 00:46:32 -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 5e8b7ad71e
fix: Do not force showAgenda when agenda_note is set (#7142) 2024-03-05 11:56:34 -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
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
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
Robert Sparks 7438a4e87a
chore: remove unused code (#6963) 2024-01-23 18:24:25 -06:00
Robert Sparks 473b84ef90
feat: color for wit in the schedule editor (#6930) 2024-01-17 15:39:28 -06:00
Jennifer Richards 81dc5554a8
test: unpin django-stubs and update mypy (#6901)
* chore: Unpin django-stubs / update mypy

* test: Use "app.model" for ManyToManyField

django-stubs requires "app.model" instead of just "model" for
ManyToManyField lazy model references.

See https://github.com/typeddjango/django-stubs/issues/1802
2024-01-10 09:53:43 -06:00
Robert Sparks 678feca759
fix: remove unneeded (and broken) redirect (#6866) 2024-01-04 12:08:06 -06:00
Paul Selkirk c1e40ff100
feat: Allow entering agenda text directly (#6792)
* feat: Allow entering agenda text directly (#6532)

* fix: Hide label as well as file/text input box

* refactor: Package javascript for static/dist

* fix: Fix test cases broken by view changes

* test: Add test case for entering agenda text

* refactor: assertRedirects
2023-12-20 16:40:13 -06:00
Paul Selkirk cfaf84f08f
refactor: Convert custom form template to bootstrap (#6763)
* refactor: Convert custom form template to bootstrap

* refactor: Match form fields to old version
2023-12-14 14:19:22 -06:00
Robert Sparks ce918c4d18
chore: remove management commands already removed in main 2023-12-05 13:14:52 -06:00
Robert Sparks 03e161bae9
chore: merge branch 'main' into feat/rfc 2023-12-05 09:12:11 -06:00
Jennifer Richards ddebdf0263
test: Add delay to upcoming mtg filter tests (#6707) 2023-11-29 16:02:27 -06:00
Jennifer Richards d1909fd0c3
fix: Combine Group and GroupHistory when counting (#6701)
* fix: Combine Group and GroupHistory when counting

* refactor: Use same symbol in parallel iterators

* fix: Handle group acronym changes in assertion

* refactor: Avoid reference to GroupHistory in assertions

* chore: Revert so assertion fails on changed acronym

The filtering and meeting displays disagree on how to handle this,
so let's get a notification if it comes up in production.
2023-11-28 14:06:36 -06:00
Lars Eggert 3d44825333
ci: Switch to using geckodriver (#6541)
* Switch to using geckodriver

* Switch to selenium 4

* Undo

* Remove comment

* Fixes

* Restore non-standard line endings to minimize diff

* Undo

* Remove comment

* test: Fix test_upcoming_view_time_zone_selection

The inputs are hidden and managed by JS, so click
the visible elements instead.

* test: Clumsy fix to test_upcoming_materials_modal

Waiting for the button to be clickable does not
work because the modal is still fading in, so does
not actually close. Would be better to check for it
responding, but I haven't found the right way to do
that yet.

* test: Fix test_add_author_forms

Sending '\n' does not seem to work as it did before,
so click the option instead.

Also reverted some fixme hacks that seem to be obe.

* ci: Update base.Dockerfile

* test: add resource limits to dev/tests/debug.sh env

* ci: add upload of geckodriver.log on failure

* ci: run tests as user 1001

* ci: run app-create-dirs as sudo

* ci: set home folder to root to run tests

---------

Co-authored-by: Jennifer Richards <jennifer@staff.ietf.org>
Co-authored-by: Nicolas Giard <github@ngpixel.com>
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2023-11-21 15:30:50 -06:00
Robert Sparks c1627ed011
fix: restore attendee dbtemplate for old meetings pending data correction (#6656)
* fix: restore attendee dbtemplate for old meetings pending data correction

* test: adjust attendees test to match workaround
2023-11-17 10:01:09 -06:00
Robert Sparks b89c44f443
chore: merge main and fix new views 2023-11-16 15:58:22 -06:00
Ryan Cross 2974e81624
fix: build proceedings attendee list from MeetingRegistration table. … (#6567)
* fix: build proceedings attendee list from MeetingRegistration table. Fixes #6265

* fix: move participants_for_meeting to meeting.utils

* fix: move test_participants_for_meeting to meeting tests
2023-11-07 13:09:19 +01:00
Peter Yee f1425e4a52
fix: move meeting management from base Docs to Meeting (#6586)
* fix: move meeting management from base Docs to Meeting

* fix: add permission check for ability to request an interim meeting

* fix: guard against no user being logged in

---------

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2023-11-06 17:45:07 +01:00
Tero Kivinen f8a06f663e
fix: Add history entry when approving the slides. (#6588)
* Added history entry when approving the slides.

Also changed os.rename to shutils.move as the submissions and
proceedings are on the separate filesystems on the docker image,
and this same thing might happen in the real environment in the
future.

* Add migrations for the docevents type.
2023-11-06 17:19:32 +01:00
Robert Sparks b78eb448a5
chore: remove some unused code 2023-11-06 09:12:40 +01:00
Robert Sparks 28c3e1bd5d
chore: merge branch 'main' into feat/rfc 2023-11-01 10:54:29 -05:00
Lars Eggert d246879069
Fix code review comments 2023-10-27 17:29:09 -07:00
Lars Eggert f5507daef1
feat: Render markdown agendas with bs5 styles
So that the look is consistent with the rest of the datatracker.
2023-10-23 18:55:31 +03:00
Paul Selkirk f6a2d8c534 refactor: More efficient mail construction/sending 2023-10-13 19:22:06 -04:00
Paul Selkirk 6f634a049a fix: Don't forget to empty_outbox 2023-10-12 16:28:26 -04:00
Paul Selkirk b04ffe1631 feat: Send mail when slides are approved (#5440) 2023-10-12 13:13:14 -04:00
Robert Sparks 5bbea70cb0
fix: repair many revision related issues with the main and htmlized views 2023-09-12 08:55:38 -05:00
Robert Sparks e0f27b9d52
ci: merge branch 'main' into feat/rfc 2023-09-05 12:02:07 -05:00
Robert Sparks 3c1fc3c0f9
chore: use factory-boy 3.3 (#6269) 2023-09-05 09:54:30 -05:00
Robert Sparks b5bf6789da
chore: remove one shot iab artifact importers (#6258) 2023-08-31 17:14:18 -05:00
Robert Sparks c8c1ebdf12
chore: remove unnecessary .gitignore files (#6262) 2023-08-31 17:12:01 -05:00
Robert Sparks ad1aabb4ad
chore: repair merge damage and adjust new files 2023-08-30 17:12:31 -05:00