Commit graph

11630 commits

Author SHA1 Message Date
Peter Yee eee6d0180c
Fix: #4320 (htmlized version of RFC has bad errata link) (#4699)
* Remove &rec_status=0 from "Errata exist" links for HTMLized RFCs

Corrects Issue #4320:

https://github.com/ietf-tools/datatracker/issues/4320

This is done by modifying the RFC_EDITOR_ERRATA_URL in ietf/settings.py
so that the errant "&rfc_status=0" is removed.

* Update ietf/settings.py

Removes commented out RFC_EDITOR_ERRATA_URL line from original submission.

Co-authored-by: Lars Eggert <lars@eggert.org>

Co-authored-by: Lars Eggert <lars@eggert.org>
2022-11-05 17:42:50 +00:00
Lars Eggert b6b48ec8f9
fix: Only allow a single newline in when URLizing RFC tags (#4710)
Fixes #4705
2022-11-05 17:22:56 +00:00
Robert Sparks fbd9509db7
chore: silence interleaved migration warning (#4687) 2022-11-02 14:33:09 -03:00
Jennifer Richards 91635de968
test: fix tests broken in recent commits (#4685)
* chore: remove unused import in timezone.py

* test: fix test_view_request, broken by recent work
2022-11-01 16:30:42 -03:00
Jennifer Richards 3008c4904e
feat: add 'cancel session' button to meeting schedule editor (#4682)
* feat: add 'cancel session' button to meeting schedule editor

* fix: only show edit/cancel session buttons for secretariat

Other users cannot access these views.

* feat: refuse to cancel a canceled session; give feedback to user

* test: test cancel_session view

* test: test that sessions have edit/cancel buttons
2022-11-01 14:41:50 -03:00
Jennifer Richards 1841d15104
feat: allow secretariat to edit/cancel sreqs when the tool is locked (#4676)
* feat: allow secretariat to edit/cancel sreqs when the tool is locked

* chore: remove unused template var
2022-10-28 18:19:38 -03:00
Jennifer Richards 9752fabf85
test: fix timezone_not_near_midnight not to use pytz (#4678) 2022-10-28 18:19:08 -03:00
Jennifer Richards 41882f2ac7
test: remove syntax error introduced in merge 2022-10-28 16:52:03 -03:00
Jennifer Richards 0caf946e48
Merge branch 'feat/tzaware' into dev/main-for-tzaware-merge 2022-10-28 14:40:04 -03:00
Jennifer Richards a124eb8073
chore: update create_dummy_meeting to specify session purposes (#4654) 2022-10-28 14:36:35 -03:00
Jennifer Richards 3bf997ba03
chore: rename management commands to avoid non-inclusive language (#4656)
* chore: rename create_dummy_meeting to create_test_meeting

* chore: reword comments to match renamed command

* chore: rename make_dummy_nomcom to create_test_nomcom

Avoids non-inclusive language and better matches other command naming.

* chore: reword comments to match renamed command
2022-10-28 11:01:00 -05:00
Robert Sparks de3dbdca04
fix(nomcom-ui): Use pre instead of relying on now-missing pasted styling (#4658) 2022-10-28 10:58:38 -05:00
Robert Sparks 8e04feb498
fix: reference correct template in dbtemplate views (#4667) 2022-10-28 10:57:46 -05:00
Robert Sparks 48aa9b04c2
fix(nomcom): restore ability to classify pending feedback (#4668) 2022-10-28 10:57:28 -05:00
Nicolas Giard 9f8fd90287
feat: agenda fallback link to plaintext version (#4663) 2022-10-28 09:03:42 -05:00
Jennifer Richards a5f0259072
fix: stabilize sorts of upcoming meetings (#4661)
* fix: stabilize upcoming meeting sort

* fix: stabilize upcoming meeting ical sort
2022-10-27 13:03:14 -05:00
Jennifer Richards a3673f25cb
fix: sort higher capacity rooms first in schedule editor (#4653)
* fix: handle rooms with capacity = None in schedule editor

* fix: sort higher capacity rooms ahead of lower

Sort was incorrect, this matches intent and comments.
2022-10-27 09:58:51 -05:00
Jennifer Richards f42016d8fb
Merge branch 'feat/tzaware' into dev/main-merge-to-tzaware 2022-10-27 11:58:32 -03:00
Jennifer Richards e290d9e499
test: avoid local times near midnight for test_past_swap_days_buttons() (#4642)
* test: avoid local times near midnight for test_past_swap_days_buttons()

* test: use timezone_options variable consistently

* test: add test of timezone_not_near_midnight() method

* fix: ensure that timezone_not_near_midnight() always exits
2022-10-26 09:42:50 -05:00
Jennifer Richards cbc6d159a5
fix: convert LastCallDocEvent.expires to DEADLINE_TZINFO to get date 2022-10-25 10:03:18 -03:00
Jennifer Richards d55280d0b1
Merge pull request #4638 from ietf-tools/main
chore: merge main into feat/tzaware
2022-10-24 12:57:11 -03:00
Jennifer Richards a331fb6d2a
fix: fix tz handling in ics files (#4630)
* fix: render upcoming.ics timestamps correctly

Both correctly display timestamps in the claimed time zones and format
the date-times in correct iCalendar format.

* refactor: also render DTSTAMP using ics_date_time tag

* fix: render valid date-times in agenda.ics

* fix: render valid date-time in important_dates_for_meeting.ics

Only touching the DTSTAMP here. The DTSTART has VALUE=DATE so the tag
does not handle it.

* test: test ics_date_time tag
2022-10-24 12:54:52 -03:00
Lars Eggert d34e88dfd9
fix: Set an aria-label on freetext pronouns field (#4633) 2022-10-22 15:26:11 -05:00
Robert Sparks d08815d8da
fix: find raw chatlog and polls for interims (#4628) 2022-10-21 15:58:54 -05:00
Jennifer Richards aba9c2ae12
fix: include outbound constraints in sreq update notification email (#4620)
* fix: include outbound constraints in sreq update notification email

* style: clean up whitespace
2022-10-21 11:18:19 -05:00
Lars Eggert 565707f804
feat: Add "IESG dashboard" to menu (#4624)
Fixes #4570
2022-10-21 11:05:33 -05:00
Robert Sparks 3c191909ca
fix: stable and correct ordering of agenda items (#4621)
* fix: align session sorting across functions

* fix: sessions of a group can have different types
2022-10-21 11:04:27 -05:00
Lars Eggert 5ac3874ce9
fix: Format NomCom feedback table per suggestion of @richsalz (#4625)
Also makes table header alignment the same as for columns, site-wide.

Fixes #4529
2022-10-21 11:04:10 -05:00
Robert Sparks 26e2e23418
fix: reduce agenda data calculation time (#4622)
* fix: reduce agenda data calculation time

* doc: improve docstring for preprocess_assingments_for_agenda
2022-10-21 11:03:11 -05:00
Lars Eggert b1bafff2fb
fix: Add value attributes back to buttons to make the logic work (#4617) 2022-10-20 11:57:36 -05:00
Jennifer Richards 000e8431c2
Merge pull request #4615 from painless-security/jennifer/materials-tz
fix: use UTC for materials/proceedings cutoff checks
2022-10-20 11:39:10 -03:00
Lars Eggert 160ca9286a
fix: Don't say that IESG processing has started (#4609)
* fix: Don't say that IESG processing has started

Fixes #4286

* Update ietf/doc/views_draft.py

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

* Update ietf/doc/views_draft.py

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

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2022-10-20 09:02:09 -05:00
Jennifer Richards fb644d7b50
fix: use UTC for materials/proceedings cutoff checks 2022-10-20 09:32:20 -03:00
Jennifer Richards 0346271578
refactor: simplify I-D cutoff calculations and make TZ more explicit 2022-10-19 17:47:07 -03:00
Lars Eggert 76b88b1658
fix: Replace some deprecated jQuery with recommended replacements (#4607) 2022-10-19 14:36:15 -05:00
Lars Eggert cf033352b4
fix: Tweak text as suggested by @richsalz (#4606)
Fixes #4531
2022-10-19 13:01:39 -05:00
Lars Eggert 0cc0281fe8
fix: Fix table sort functionality for tables with colspan attributes (#4605)
Fixes #4555
2022-10-19 11:59:09 -05:00
Jennifer Richards 320d9c3706
chore: renumber migrations 2022-10-18 17:22:37 -03:00
Jennifer Richards 69447d0ba0
Merge branch 'feat/tzaware' into jennifer/main-for-tzaware-merge
# Conflicts:
#	ietf/name/fixtures/names.json
#	ietf/utils/management/commands/send_gdpr_consent_request.py
2022-10-18 16:57:42 -03:00
Robert Sparks 9b4903e2e6
fix: Fix incorrect "GDPR" features/terminology. Fixes #4521. (#4587)
* fix: remove help/personal-information and the prompt-for-consent email management command.

* fix: remove gdpr treatment except for consent checkbox. Rename Submit.

* fix: drom the consent column from Person and Person.History

* fix: remove the consent boolean. Reorganize the account info form.

* chore: reorder migrations
2022-10-18 13:27:19 -05:00
Jennifer Richards 8101b4f057
chore: remove unused imports 2022-10-18 12:50:07 -03:00
Jennifer Richards 2d875d534d
chore: migrate fields whose defaults changed to date_today 2022-10-18 12:46:14 -03:00
Jennifer Richards 3220bf3c40
chore: replace last few datetime.date.today() calls with date_today() 2022-10-18 12:45:47 -03:00
Jennifer Richards 5b5e2dd9f0
chore: use settings.TIME_ZONE for datetime_today() default tz 2022-10-18 12:25:55 -03:00
Jennifer Richards dfe1147e7c
chore: switch a few datetime_today() calls to date_today() 2022-10-18 12:25:25 -03:00
Lars Eggert 66533827e1
fix: Fix status change form (#4598)
* fix: Fix status change form

Also make it so that select2 search fields get focus when they open.

* Remove feat
2022-10-18 09:59:04 -05:00
Jennifer Richards 1804727432
test: use date_today() instead of datetime_today() 2022-10-18 11:54:09 -03:00
Lars Eggert 5f7c585252
feat: Auto-focus select2 search fields when they open (#4599) 2022-10-18 09:42:00 -05:00
Robert Sparks cbb8da73c8
fix: regenerate correct shepherd template. Fixes #4558 (#4595)
* fix: regenerate correct shepherd template

* chore: remove unnecessary extra whitespace

* fix: improve readability of code per review comments
2022-10-18 07:57:08 -05:00
Jennifer Richards fffe0c1991
feat: disallow '/' from Person.name (#4594)
* feat: disallow '/' from Person.name

* chore: migrate Person/HistoricalPerson to include new name validator

* test: test name validation
2022-10-17 15:41:39 -05:00
Jennifer Richards bf6e0af2c9
chore: use settings.TIME_ZONE as default for date_today() 2022-10-17 17:36:47 -03:00
Jennifer Richards da70acfdff
Merge branch 'feat/tzaware' into jennifer/yet-more-tz-fixes
# Conflicts:
#	ietf/ietfauth/utils.py
#	ietf/meeting/tests_views.py
#	ietf/stats/tests.py
2022-10-17 16:39:45 -03:00
Robert Sparks 57b30fb967
chore: bring the names test fixture into alignment with the current database (#4583) 2022-10-14 17:53:04 -05:00
Jennifer Richards 354b3ef311
chore: add '-Z' suffix to timestamps in names.json 2022-10-14 16:55:40 -03:00
Jennifer Richards bef7492eda
chore: renumber migrations 2022-10-14 16:51:43 -03:00
Jennifer Richards 44f09ca457
chore: remove files left empty by git merge process 2022-10-14 16:38:42 -03:00
Jennifer Richards f3bdbf0ed4
Merge branch 'feat/tzaware' into jennifer/main-for-tzaware-merge
# Conflicts:
#	ietf/meeting/tests_js.py
#	ietf/meeting/tests_models.py
#	ietf/meeting/tests_views.py
#	ietf/meeting/views.py
#	ietf/name/fixtures/names.json
#	ietf/templates/meeting/agenda.html
#	ietf/templates/meeting/session_buttons_include.html
#	ietf/templates/meeting/timeslot_start_end.html
2022-10-14 16:35:57 -03:00
Jennifer Richards 83db95c4b3
test: extend simulateDragDrop to support dataTransfer.types interface (#4571) 2022-10-13 10:58:20 -05:00
Robert Sparks 6dd6165444
fix: correct meeting attendance calculations (#4536)
* fix: correct meeting attendance calculations

* test: change meetingregistration factory defaults

* test: Setup stats tests to verify counts honor meeting.Attended

But the tests aren't actually looking to see what numbers get generated yet.

* test: add test for attendance cross-talk between meetings

* fix: limit attendance count query to single meeting

* refactor: rename attendance.online to .remote

* fix: only count a given person as onsite or remote, but never both

* test: align tests with cleanup

Co-authored-by: Jennifer Richards <jennifer@painless-security.com>
2022-10-13 10:55:57 -05:00
Robert Sparks 50668c97cd
feat: apis for attaching chatlogs and polls to session materials (#4488)
* feat: apis for attaching chatlogs and polls to session materials

* fix: anticipate becoming tzaware, and improve guard against attempts to provide docs for sessions that have no official timeslot assignment.

* fix: get chatlog upload to actually work

Modifications to several initial implementation decisions.
Updates to the fixtures.

* fix: test polls upload

Refactored test to reduce duplicate code

* fix: allow api keys to be created for the new endpoints

* feat: add ability to view chatlog and polls documents. Show links in session materials.

* fix: commit new template

* fix: typo in migration signatures

* feat: add main doc page handling for polls. Improve tests.

* feat: chat log vue component + embedded vue loader

* feat: render polls using Vue

* fix: address pug syntax review comments from Nick.

* fix: repair remaining mention of chat log from copymunging

* fix: use double-quotes in html attributes

* fix: provide missing choices update migration

* test: silence html validator empty attr warnings

* test: fix test_runner config

* fix: locate session when looking at a dochistory object for polls or chatlog

Co-authored-by: Nicolas Giard <github@ngpixel.com>
2022-10-13 09:20:36 -05:00
Jennifer Richards 0ad293d6e9
feat: add slides / session materials links to session details modal (#4535)
* feat: add propose/upload slides button to session details modal

* refactor: remove unneeded chaining operator

* test: fix quotes around template string

* feat: link to meeting materials page from AgendaDetailsModal

* refactor: compute session details URL in JS instead of view

* chore: restyle materials page link

* test: fix test case to match changes to session modal
2022-10-12 16:07:23 -05:00
Nicolas Giard 6f2114fb0c
feat: replace old agenda with agenda-neue (#4406)
* feat: remove old agenda (django-side)

* fix: bring in latest commits

* test: remove -neue from playwright tests

* test: remove agenda selenium js tests

* test: remove agenda views tests

* fix: remove deprecated agenda views (week-view, agenda-by, floor-plan)

* test: fix failing python tests

* test: remove more deprecated tests

* chore: remove deprecated templates

* test: remove unused import

* feat: handle agenda personalize with filter + move agenda specific stuff out of root component

* fix: redirect deprecated urls to agenda / floorplan

* feat: agenda - open picker mode when from personalize path

* fix: safari doesn't support device-pixel-content-box property on ResizeObserver

* test: move floor plan test into main agenda test

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2022-10-12 15:46:28 -05:00
Jennifer Richards 8560bec09c
fix: remove spurious year after nominee name (#4565) 2022-10-12 13:29:08 -05:00
Robert Sparks c1556a3bc5
fix: revert photo-on-menubar enhancement (#4564)
* fix: revert photo-on-menubar enhancement

* fix: revert styling added for menubar photo.
2022-10-12 13:25:47 -05:00
Jennifer Richards 7b1b7f5273
Merge branch 'feat/tzaware' into dev/tzaware-main-merge 2022-10-11 14:57:34 -03:00
Jennifer Richards 9709dbdf1c
fix: work around dataTransfer.getData limitation in agenda editor (#4553)
* fix: work around dataTransfer.getData limitation in agenda editor

* refactor: be slightly more careful checking dataTransfer type

* chore: remove debug statement
2022-10-10 08:48:23 -05:00
Lars Eggert eed58c9753
ui: Add rounded-pill to a few more badges (#4539) 2022-10-10 08:37:58 -05:00
Robert Sparks 97d21800d0
feat: include checkins at the registration desk in nomcom eligibility calculations (#4519)
* chore: rename utility functions to reflect rfc guiding them

* feat: include new checkedin flag in nomcom calculations

* fix: reflect history a bit more accurately.

* fix: address review comment on readability

* fix: finish what c44000d started
2022-10-07 16:17:28 -05:00
Jennifer Richards cb9e576fb4
fix: return False from has_role() when role_names is the empty list (#4541)
* fix: return False from has_role() when role_names is the empty list

* chore: add comments clarifying the effect of Q()
2022-10-07 16:05:37 -05:00
Lars Eggert 15a1d3e379
chore: Update deps (bs to 5.2.2, various others) (#4537)
Also fix html-validate, which now wants a `.json` suffix on config files.
2022-10-07 16:05:04 -05:00
Lars Eggert 43e4a26ca0
fix: Don't show ADs as part of "bethere" contraints. (#4540)
Also tweak some minor UI stuff while I'm here.
2022-10-07 16:02:29 -05:00
Jennifer Richards 0bdfb25c47
feat: include proposed WGs on meeting requests page (#4551) 2022-10-07 15:56:43 -05:00
Jennifer Richards 6cc2fb94a3
fix: update DraftYangChecker for xym 0.6 changes (#4546)
* fix: update DraftYangChecker for xym 0.6 changes

* chore: update xym requirements to >=0.6
2022-10-06 18:03:18 -05:00
Lars Eggert 8a6ff176af
fix: Add reminder to not include ADs in "people who must be present" (#4527)
* fix: Add reminder to not include ADs in "people who must be present"

* Fix typo.
2022-09-30 12:55:36 -05:00
Robert Sparks 2058522a0c
feat: stop setting MeetingRegistration.attended on MeetEcho login. (#4526)
* feat: stop setting MeetingRegistration.attended on MeetEcho login.

We capture attendence through MeetEcho using meeting.Attended now.

* chore: remove unused import

* chore: remove unused import
2022-09-30 10:46:49 -05:00
Jennifer Richards f043797742
fix: include IRTF and BoF groups on meeting requests page (#4528)
* fix: include IRTF and BoF groups on meeting requests page

* test: test bof/irtf groups on the meeting requests page

* chore: remove some accidentally committed changes

* style: improve formatting of requests.html template
2022-09-30 10:08:11 -05:00
Lars Eggert 3e2b1fc92e
feat: Add a bug report link to the menu bar (#4525)
This required making some horizontal room for it, mostly by showing a
user photo or shorter tag when they are logged in.
2022-09-30 09:20:43 -05:00
Robert Sparks 9b896e5869
fix: avoid emptying nomcom session key when openssl complains about derivation (#4524) 2022-09-30 08:05:01 -05:00
Lars Eggert feab9fb385
fix: Fix state order in AD dashboard and colorize some more trends (#4518) 2022-09-29 15:10:51 -05:00
Jennifer Richards 31d55f1d37
fix: remove unused imports 2022-09-28 17:45:11 -03:00
Jennifer Richards a653582cf7
fix: timezone fixes from last few comparisons with tzaware-obe 2022-09-28 13:21:50 -03:00
Jennifer Richards 448cfbb13d
fix: more timezone fixes in liaisons/meeting/message apps 2022-09-27 15:50:10 -03:00
Robert Sparks 9162302941
fix: don't include liaison attachments in main page searches. Fixes #4373. (#4502) 2022-09-27 10:27:50 -05:00
Lars Eggert 2b5a7c0447
ui: Improve the display of information on /meeting/requests (#4493) 2022-09-26 16:54:41 -05:00
Jennifer Richards 2eb5723574
fix: more timezone fixes 2022-09-23 17:12:06 -03:00
Jennifer Richards 981f22a5ee
fix: get LiaisonModelForm initial value at run-time, not load-time 2022-09-23 17:08:29 -03:00
Jennifer Richards 56505147e0
fix: handle timezones in a bunch of places 2022-09-23 16:11:49 -03:00
Jennifer Richards 2e3686b08e
refactor: simplify getting timedelta.days 2022-09-23 12:26:31 -03:00
Jennifer Richards c5e5a00ff3
fix: fill in tzinfo for datetime.fromtimestamp() calls
Unix timestamp is defined to be UTC and fromtimetamp correctly turns
it into whatever timezone you request. In most cases, just need to
specify *something* to avoid creating naive datetimes.
2022-09-22 12:36:35 -03:00
Jennifer Richards ca1320f303
chore: merge main into feat/tzaware
chore: merge main into feat/tzaware
2022-09-22 12:21:38 -03:00
Jennifer Richards 63a1baf116
fix: more small timezone-aware fixes (#4489)
* fix: use meeting timezone for agenda_by_(room|type)

* refactor: use timezone.override instead of timezone.activate/deactivate

* fix: add timezone info in create-charter-newrevisiondocevents

* fix: use meeting timezone for recording.html template

* fix: use meeting timezone for slide submission timeslot display

* fix: use meeting timezone for schedule diff template

* fix: use meeting timezone for edit_meeting_timeslots_and_misc_sessions

* fix: use meeting timezone for materials() view

* fix: use meeting timezone for proceedings() view

* refactor: force timestamps to utc in important_dates_for_meeting.ics

Has no effect now, but guarantees consistency with template's assertion
that its timestamps are in UTC.

* fix: use meeting timezone for a couple interim meeting templates

* fix: use meeting timezone for propose_session_slides template

* fix: use meeting timezone for upload_session_*.html

* fix: use meeting timezone for a couple session templates
2022-09-22 12:19:56 -03:00
Jennifer Richards d7bdffc89d
chore: import jquery so dynamic_inlines.js source map works (#4482) 2022-09-21 12:04:39 -05:00
Jennifer Richards 00cf7cf8ca
fix: use settings.TIME_ZONE for draft date in bibxml_for_draft() (#4487) 2022-09-21 11:49:35 -03:00
Jennifer Richards 1280422e1c
fix: create timeslots in new meeting TZ when duplicating (#4485) 2022-09-20 14:59:35 -03:00
Robert Sparks 5c8545eecb
feat: use hmac, sha256, and a better secret for published nomcom hashes. (#4475)
* feat: use hmac, sha256, and a better secret for published nomcom hashes.

* fix: avoid using django secret key for a different secret context

* fix: Only strip the newline

* fix: improve readability by using rstrip
2022-09-20 12:09:11 -05:00
Jennifer Richards fe7fc4b871
fix: miscellaneous tz fixes (#4481)
* fix: use meeting timezone for date comparison in agenda.html

* fix: use meeting timezone in interim_meeting_cancellation_notice.txt

* fix: use meeting timezone in interim_session_cancellation_notice.txt

* fix: use meeting timezone for secr misc sessions tab

* fix: use meeting tz for editing misc sessions

* fix: handle times with day outside usual choices in secr app

* fix: handle TZ correctly for reg sessions and timeslots in secr app

* fix: handle timezone in session_schedule_notification.txt

* fix: fix broken references in interim session cancellation template

* test: use meeting timezone as element id for meeting/timeslot editing
2022-09-20 13:18:05 -03:00
Jennifer Richards cbb639cd58
Merge branch 'feat/tzaware' into dev/jennifer/main-merge 2022-09-20 10:19:31 -03:00
Robert Sparks 7bc6f2b6b2
fix: return same bibxml for versioned and versionless references (#4470)
* fix: return same bibxml for versioned and versionless references

Fixes #4384.

Refactors bibxml production to remove repeated logic.

Abandons the half-implemented idea that returning information
from the Submission object might be better than the Document or
DocHistory objects.

* fix: test for None with `is not` and simplify choice from multiple qs objects

Addresses review comments.
2022-09-19 10:38:57 -05:00
Jennifer Richards a8d4bec70a
chore: remove stray debug statement (#4469) 2022-09-16 16:04:22 -03:00
Jennifer Richards 4dd220b980
fix: restore "add another" button on secr rooms and rolodex edit pages (#4467)
* fix: replace inline JS for "Add another" on secr rooms page

* fix: update rolodex edit page to re-enable "Add another" button

* refactor: use new class instead of reusing inline-related

The "inline-related" class has styling rules, etc. To avoid accidental
styling changes, use "dynamic-inline" as a class to indicate which tr
elements should be managed.
2022-09-16 12:35:32 -05:00
Lars Eggert 4a68b92c03
fix: Add <pre> to restore mailtrigger indentation (#4454)
* fix: Add <pre> to restore mailtrigger indentation

Fixes #4452

* Switch tag order
2022-09-15 12:28:08 -05:00
Jennifer Richards 3cbcfde475
fix: use meeting-local times for agenda editor (#4458)
* fix: use meeting-local times for agenda editor

* test: test agenda editor timezone handling
2022-09-15 13:18:49 -03:00
Jennifer Richards 1366b6de38
Merge branch 'feat/tzaware' into jennifer/main-to-tzaware-conflicts 2022-09-14 12:36:33 -03:00
Ryan Cross 5b6695a04c
fix: save MeetingRegistration.checkedin as boolean value (#4446) 2022-09-14 09:55:08 -05:00
Jennifer Richards 22b87a2b08
chore: fix errors breaking tests (#4448) 2022-09-14 10:22:48 -03:00
Jennifer Richards 0ca02aad1f
refactor: accept tz name in timezone util methods and refactor iana-changes-updates script (#4444)
* refactor: accept tz name strings in ietf.utils.timezone methods

* refactor: use explicitly tz-aware math for iana-changes-updates script

* chore: remove unused "local_timezone_to_utc()" method helper
2022-09-13 13:16:36 -03:00
Lars Eggert 79bf320acc
fix: Only show ADs when assigning ADs for groups (#4440)
* fix: Only show ADs when assigning ADs for groups

Fixes #4302

* Fix test failure
2022-09-13 09:54:12 -05:00
Lars Eggert 5fcf2aa44a
ui: Hyphenate table headers, and optionally force-wrap them (#4441) 2022-09-13 09:07:21 -05:00
Jennifer Richards 54c57e0419
test: refactor tests to avoid shadowing meeting.date with a datetime (#4430) 2022-09-12 11:36:58 -03:00
Jennifer Richards dcb6da947e
fix: use tz-aware meeting datetime to decide when to show ical link (#4429)
* refactor: reimplement Meeting.end_datetime() using datetime_from_date helper

* fix: use tz-aware meeting datetime to decide when to show ical link
2022-09-12 11:35:01 -03:00
Robert Sparks d3f25a67b5
test: address data type issue in reg api tests. (#4428) 2022-09-09 10:34:59 -05:00
Lars Eggert 64b5bdffa7
chore: Update deps (#4383)
* chore: Update dependencies

* Handle new html-validate tests
2022-09-09 08:56:53 -05:00
Ryan Cross ad08ccad27
feat: add checkedin to api_new_meeting_registration() (#4424) 2022-09-09 08:56:13 -05:00
Jennifer Richards 155b3a1e31
fix: refactor ad_workload view so it works when USE_TZ is False (#4423) 2022-09-08 17:11:56 -05:00
Lars Eggert 9db1958bdd
feat: Add column sums to /doc/ad dashboard (#4415)
* feat: Add column sums to /doc/ad dashboard

* Tweak template a bit

* Add trend indicators when logged in as AD

* Shorten column headings more; put full heading into tooltip

* Fix trend colors; add table dividers

* Add note about trend indicators

* Wording fix

* Show which docs make up the delta if there is a trend change

* Fix missing stats

* More space before headings

* Better popover formatting

* Make popover trigger clickable, and add links to docs in the delta

* Improve trends

* Fix tests and shorten headers

* Add button to IESG dashboard to AD dashboards.

* fix: use tz-aware calculations for ad_workload view

Co-authored-by: Jennifer Richards <jennifer@painless-security.com>
2022-09-08 14:00:18 -05:00
Robert Sparks 57fd099ea0
feat: add ability to ignore reduction in coverage to the testrunner (#4422) 2022-09-08 13:19:07 -05:00
Jennifer Richards 4084d7d557
fix: record and interpret RFC pub dates in correct timezone (#4421)
* fix: use PST8PDT for published_rfc event timestamps

* fix: find RFCs by PST8PDT year in RfcFeed

* refactor: add const RPC_TZINFO to represent RFC publication timezone

* chore: remove (rather than fix) unused template tags

* fix: always return RPC_TZINFO-local date from Document.pub_date()

* refactor: convert 'published' flag to a Boolean to reflect its usage

* fix: display doc publication dates in correct time zones

* fix: fix various small issues breaking tests
2022-09-08 14:51:19 -03:00
Lars Eggert 228b496662
ui: Add table dividers (#4417)
* ui: Add table dividers

And add some &shy; hyphens while we're here.

* Remove &shy;
2022-09-08 08:57:19 -05:00
Jennifer Richards d0383c7cf1
fix: convert pre-1970 timestamps when migrating to UTC (#4419)
* fix: convert pre-1970 timestamps when migrating to UTC

* fix: simplify migration code and fix typo
2022-09-07 15:17:30 -03:00
Nicolas Giard 9d055f8dd8
test: add agenda-neue cypress tests (#4293)
* fix: move vue app to parent dir

* test: prepare vue for cypress testing

* test: add basic cypress test for vue app

* test: add agenda-neue header tests

* test: meeting generator for cypress tests (wip)

* test: agenda-neue meeting nav + settings button

* test: agenda-neue check settings button position against viewport size

* test: agenda-neue fix viewport + add schedule list header tests

* test: agenda-neue timezone tests + future meeting template

* test: agenda-neue add test floor plan image fixtures

* test: floor-plan-neue - handle floor plan images

* test: floor-plan-neue room selection + pin drop tests

* test: floor-plan-neue - test all viewports

* test: floor-plan-neue add missing header tests

* test: agenda-neue - generate areas + groups

* test: agenda-neue - test filter areas + groups dialog

* test: agenda-neue code cleanup + generate schedule (wip)

* test: agenda-neue - generate schedule (wip)

* test: agenda-neue - generate schedule + test settings dialog (wip)

* test: agenda-neue - settings timezone controls

* test: agenda-neue - settings toggles + agenda table headers tests

* test: agenda-neue - table events + memory fixes

* test - agenda-neue - table events remaining columns tests

* test: agenda-neue - meeting materials dialog + future schedule list table buttons

* test: agenda-neue - remove skips

* test: agenda-neue - search

* test: agenda-neue - remove skips

* test: agenda-neue - use random seed for deterministic results

* test: agenda-neue - set constant clock

* test: add percy to cypress + upgrade cypress

* test: agenda-neue - jump to day tests

* test: agenda-neue - add to calendar tests

* test: agenda-neue - add pick sessions tests

* test: agenda-neue - calendar view tests

* test: agenda-neue - color assignment tests

* test: agenda-neue - skip test not supported in firefox/safari

* test: agenda-neue - live sessions tests

* test: agenda-neue - smaller screens tests

* chore: update workflows to handle modern + legacy cypress tests

* test: fix legacy agenda weekview test + cypress legacy config
2022-09-07 14:14:12 -04:00
Robert Sparks d18b941462
fix: show group meeting dates and weekdays in each meeting's timezone. (#4405) 2022-09-06 15:58:32 -03:00
Jennifer Richards 3e5c1c6365
chore: run timezone.now migrations before converting timestamps to UTC (#4404) 2022-09-06 15:54:03 -03:00
Lars Eggert baf67d1cd5
fix: Use new schedule editor icons picked by @flynnliz (#4407)
Also clean up the related layout somewhat.

Fixes #4378
2022-09-06 12:11:59 -05:00
Jennifer Richards 3cc208c05f
fix: compare last revision and doc timestamps in display TZ (#4418) 2022-09-06 12:48:09 -03:00
Jennifer Richards 32054111df
fix: fix failing tests and eliminate naive datetime warnings (#4402)
* test: fix timestamp construction in several doc tests

* refactor: rename date2datetime to datetime_from_date and clarify code

* chore: helper to get tzinfo for PRODUCTION_TIMEZONE

* fix: fix timezone handling in make_last_call()

* test: fix datetime generation in doc.tests_charter

* refactor: remove PRODUCTION_TIMEZONE setting

Replaces the PRODUCTION_TIMEZONE setting with a constant,
DEADLINE_TZINFO, in ietf.utils.timezone.

* test: be more careful about timezone in tests_charter.py

* test: be more careful about timezone in doc/tests.py

* fix: fix timezone handling affecting doc.tests_draft

* fix: fix timezone handling affecting tests_irsg_ballot.py

* fix: fix timezone handling affecting tests_review.py

* fix: fix timezone handling affecting last ietf.doc tests

* fix: fix timezone handling affecting last ietf.group tests

* fix: fix timezone handling affecting ietf.iesg tests

* fix: handle timezones in get_8989_eligibility_querysets

* fix: handle timezones affecting ietfauth tests

* fix: return tz-aware datetime from utc_from_string

* fix: specify timezone for constants in ipr_rfc_number()

* fix: specify tz for ipr deadlines

* fix: handle timezones affecting liaisons tests

* fix: treat leap day in get_8989_eligibility_querysets()

Manual cherry-pick of 248d6474

* test: treat leap day properly in nomcom tests

* fix: fix timezone handling affecting nomcom tests

* test: fix timezone handling in review tests

* fix: fix timezone handling affecting secr.meetings tests

* fix: handle both pytz and zoneinfo timezones in ietf.utils.timezone

* fix: fix timezone handling affecting secr.proceedings tests

* refactor: use make_aware() helper in secr.meetings tests

* test: fix timezone handling in secr.telechat tests

* fix: fix timezone handling affecting stats tests

* fix: eliminate tz-naive helpers affecting sync email parsing

* fix: include timezone data when serializing DeletedEvent data

* fix: fix timezone handling affecting sync tests

* style: remove unused import
2022-09-01 13:07:28 -03:00
Robert Sparks a4ecccb061
fix: pytz manipulation of dumptime
* fix: pytz manipulation of dumptime

* fix: use pytz correctly. Add test for api/version dumpinfo time.

* fix: actually use pytz correctly
2022-09-01 12:31:06 -03:00
Jennifer Richards b85ecce89f
fix: treat leap day properly in nomcom eligibility calc (#4393)
* fix: treat leap day in get_8989_eligibility_querysets()

* test: treat leap day properly in nomcom tests
2022-08-31 16:03:38 -05:00
Robert Sparks f7f0ca99d3
fix: don't migrate dumpinfo. automate migrations and setting USE_TZ. (#4389)
* fix: don't migrate dumpinfo - it's already in UTC.

* chore: leave mode bits alone

* fix: migrate the container db, automating setting USE_TZ.
2022-08-31 12:38:48 -03:00
Jennifer Richards c2c17cfeb1
chore: enforce USE_TZ setting expectations in migrations (#4386)
* chore: enforce USE_TZ setting expectations in migrations

* chore: keep USE_TZ=False until changed manually
2022-08-30 12:10:59 -03:00
Lars Eggert 79a34e2f4d
fix: Static paths don't need to be prefixed with the base URL (#4382) 2022-08-29 18:03:31 -05:00
Robert Sparks 795415e673
fix: generate aliases for rfcedtyp groups. Fixes #4362. (#4374) 2022-08-29 17:52:59 -05:00
Jennifer Richards a3550c1920
fix: show()/hide() timeslots/sessions on schedule editor (#4385) 2022-08-29 17:52:33 -05:00
Robert Sparks af780e6800
fix: allow shepherds for editorial stream documents. Fixes #4333 (#4379)
* fix: allow shepherds for editorial stream documents. Fixes #4333

* Revert "fix: allow shepherds for editorial stream documents. Fixes #4333"

This reverts commit b089a1099c947a1bf5b72b79fb786478d10e3601.

* fix: allow shepherds for editorial stream documents. Fixes #4333
2022-08-29 17:47:18 -05:00
Jennifer Richards 8b52d27b02
refactor: refactor timestamp handling so tests in meeting app pass (#4371)
* 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: add migration to change timestamps to UTC

* refactor: move tz instantiation/caching from TimeSlot to Meeting

* fix: assume utc if meeting.time_zone is blank

* chore: make datetime.combine() calls tz aware in the meeting app

* ci: correctly use meeting.tz in TimeSlotFactory

* chore: compute TimeSlot utc / local times assuming tz-aware times

* chore: use tzaware math for agenda editor timeslot layout

* chore: fill in Meeting.time_zone where it is blank

Nearly all interim meetings on or before 2016-07-01 have blank
time_zone values. This migration fills these in with PST8PDT.

* chore: disallow blank Meeting.time_zone value

* refactor: no need to handle blank time_zone case in TZ migration

* refactor: remove now-unnecessary checks that meeting has time_zone

* chore: fix timezone handling in agenda.ics and Meeting.updated()

* chore: fix tz handling in interim_request_details, exercise in tests

* chore: fix timezone handling for test_interim_send_announcement

* chore: fix timezone handling in agenda_json()

* chore: fix timezone handling in old agenda

* chore: fix timezone handling for EditTimeslotsTests

* refactor: refactor a few fixes for more consistent timezone handling

* chore: add timezone info to timestamps in fixtures

* chore: remove naive datetime warnings found in meetings.tests_views

* chore: fix a few more test failures in meetings.tests_views

All tests in meetings.tests_views now passing

* chore: remove unused import

* chore: fix timezone handling in test_schedule_generator.py

* chore: fix timezone handling affecting meeting.tests_js

* chore: fix timeslot test bug when local date != UTC date

* test: fix a few failing tests, all meetings tests now pass

(for me, anyway)

* chore: renumber migrations

* chore: update timestamp conversion migration

The django-celery-beat package introduces tables with timestamp
columns. These columns are stored in CELERY_TIMEZONE. Because we run with
this set to UTC, the migration ignores these columns.

* chore: fix pytz-related change in migration

* chore: remove duplicate migrations

* chore: remove CELERY_BEAT_TZ_AWARE setting now that USE_TZ is True

* test: avoid failure in test with bogus timezone
2022-08-26 16:53:19 -03:00
Lars Eggert 088d953e7e
fix: provide settings to render_to_string for IPR notification emails (#4357)
* Pass settings into the context

Fixes #4340

* fix: test changes to the ipr notification message content

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2022-08-26 14:27:37 -05:00
Lars Eggert e666894d55
fix: Fix CSS query selectors (#4372) 2022-08-26 12:51:27 -05:00
Jennifer Richards 42203d7a9c
chore: migrate timestamps for use with USE_TZ=True (#4370)
* chore: add migration to change timestamps to UTC

* chore: fill in Meeting.time_zone where it is blank

Nearly all interim meetings on or before 2016-07-01 have blank
time_zone values. This migration fills these in with PST8PDT.

* chore: disallow blank Meeting.time_zone value

* refactor: no need to handle blank time_zone case in TZ migration

* refactor: remove now-unnecessary checks that meeting has time_zone

* chore: renumber migrations

* chore: update timestamp conversion migration

The django-celery-beat package introduces tables with timestamp
columns. These columns are stored in CELERY_TIMEZONE. Because we run with
this set to UTC, the migration ignores these columns.

* chore: fix pytz-related change in migration

* chore: be explicit that Meeting.vtimezone can return None

* refactor: remove unnecessary save()
2022-08-26 13:03:19 -03:00
Jennifer Richards ebebdbed3e
refactor: replace datetime.now and datetime.today with timezone.now (#4211)
* 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
2022-08-25 13:45:16 -03:00
Lars Eggert 1dfd0cbf47
Fix the interim meeting request approval form (#4356)
Fixes #4355
2022-08-25 10:20:47 -05:00
Ryan Cross a94a87f336
fix: remove test so all deleted or swapped (onsite<->remote) registrations get removed from MeetingRegistrations (#4359) 2022-08-25 10:00:04 -05:00
Lars Eggert 6d585d2f4e
Fix BCP79 reference (#4369)
Fixes #4367
2022-08-25 09:43:04 -05:00
Jennifer Richards 727feabfff
chore: create stale submission cleanup task and other deployment tweaks (#4358)
* chore: disable beat container for dev

* chore: use init option with celery container

* chore: create cancel_stale_submissions task via migration

* chore: revert accidental change included in last commit

* chore: terminate celery docker-init.sh on failed command
2022-08-24 12:29:48 -05:00
Robert Sparks bd6d19efff
fix: replum settings so that production app configuration can be configured in settings_local (#4361) 2022-08-24 12:22:47 -05:00
Jennifer Richards e319a909b3
chore: suppress deprecation warning for urllib3[secure] extra (#4352) 2022-08-22 13:30:15 -05:00
Jennifer Richards 3705bedfcd
feat: Celery support and asynchronous draft submission API (#4037)
* ci: add Dockerfile and action to build celery worker image

* ci: build celery worker on push to jennifer/celery branch

* ci: also build celery worker for main branch

* ci: Add comment to celery Dockerfile

* chore: first stab at a celery/rabbitmq docker-compose

* feat: add celery configuration and test task / endpoint

* chore: run mq/celery containers for dev work

* chore: point to ghcr.io image for celery worker

* refactor: move XML parsing duties into XMLDraft

Move some PlaintextDraft methods into the Draft base class and
implement for the XMLDraft class. Use xml2rfc code from ietf.submit
as a model for the parsing.

This leaves some mismatch between the PlaintextDraft and the Draft
class spec for the get_author_list() method to be resolved.

* feat: add api_upload endpoint and beginnings of async processing

This adds an api_upload() that behaves analogously to the api_submit()
endpoint. Celery tasks to handle asynchronous processing are added but
are not yet functional enough to be useful.

* perf: index Submission table on submission_date

This substantially speeds up submission rate threshold checks.

* feat: remove existing files when accepting a new submission

After checking that a submission is not in progress, remove any files
in staging that have the same name/rev with any extension. This should
guard against stale files confusing the submission process if the
usual cleanup fails or is skipped for some reason.

* refactor: make clear that deduce_group() uses only the draft name

* refactor: extract only draft name/revision in clean() method

Minimizing the amount of validation done when accepting a file. The
data extraction will be moved to asynchronous processing.

* refactor: minimize checks and data extraction in api_upload() view

* ci: fix dockerfiles to match sandbox testing

* ci: tweak celery container docker-compose settings

* refactor: clean up Draft parsing API and usage

  * remove get_draftname() from Draft api; set filename during init
  * further XMLDraft work
    - remember xml_version after parsing
    - extract filename/revision during init
    - comment out long broken get_abstract() method
  * adjust form clean() method to use changed API

* feat: flesh out async submission processing

First basically working pass!

* feat: add state name for submission being validated asynchronously

* feat: cancel submissions that async processing can't handle

* refactor: simplify/consolidate async tasks and improve error handling

* feat: add api_submission_status endpoint

* refactor: return JSON from submission api endpoints

* refactor: reuse cancel_submission method

* refactor: clean up error reporting a bit

* feat: guard against cancellation of a submission while validating

Not bulletproof but should prevent

* feat: indicate that a submission is still being validated

* fix: do not delete submission files after creating them

* chore: remove debug statement

* test: add tests of the api_upload and api_submission_status endpoints

* test: add tests and stubs for async side of submission handling

* fix: gracefully handle (ignore) invalid IDs in async submit task

* test: test process_uploaded_submission method

* fix: fix failures of new tests

* refactor: fix type checker complaints

* test: test submission_status view of submission in "validating" state

* fix: fix up migrations

* fix: use the streamlined SubmissionBaseUploadForm for api_upload

* feat: show submission history event timestamp as mouse-over text

* fix: remove 'manual' as next state for 'validating' submission state

* refactor: share SubmissionBaseUploadForm code with Deprecated version

* fix: validate text submission title, update a couple comments

* chore: disable requirements updating when celery dev container starts

* feat: log traceback on unexpected error during submission processing

* feat: allow secretariat to cancel "validating" submission

* feat: indicate time since submission on the status page

* perf: check submission rate thresholds earlier when possible

No sense parsing details of a draft that is going to be dropped regardless
of those details!

* fix: create Submission before saving to reduce race condition window

* fix: call deduce_group() with filename

* refactor: remove code lint

* refactor: change the api_upload URL to api/submission

* docs: update submission API documentation

* test: add tests of api_submission's text draft consistency checks

* refactor: rename api_upload to api_submission to agree with new URL

* test: test API documentation and submission thresholds

* fix: fix a couple api_submission view renames missed in templates

* chore: use base image + add arm64 support

* ci: try to fix workflow_dispatch for celery worker

* ci: another attempt to fix workflow_dispatch

* ci: build celery image for submit-async branch

* ci: fix typo

* ci: publish celery worker to ghcr.io/painless-security

* ci: install python requirements in celery image

* ci: fix up requirements install on celery image

* chore: remove XML_LIBRARY references that crept back in

* feat: accept 'replaces' field in api_submission

* docs: update api_submission documentation

* fix: remove unused import

* test: test "replaces" validation for submission API

* test: test that "replaces" is set by api_submission

* feat: trap TERM to gracefully stop celery container

* chore: tweak celery/mq settings

* docs: update installation instructions

* ci: adjust paths that trigger celery worker image  build

* ci: fix branches/repo names left over from dev

* ci: run manage.py check when initializing celery container

Driver here is applying the patches. Starting the celery workers
also invokes the check task, but this should cause a clearer failure
if something fails.

* docs: revise INSTALL instructions

* ci: pass filename to pip update in celery container

* docs: update INSTALL to include freezing pip versions

Will be used to coordinate package versions with the celery
container in production.

* docs: add explanation of frozen-requirements.txt

* ci: build image for sandbox deployment

* ci: add additional build trigger path

* docs: tweak INSTALL

* fix: change INSTALL process to stop datatracker before running migrations

* chore: use ietf.settings for manage.py check in celery container

* chore: set uid/gid for celery worker

* chore: create user/group in celery container if needed

* chore: tweak docker compose/init so celery container works in dev

* ci: build mq docker image

* fix: move rabbitmq.pid to writeable location

* fix: clear password when CELERY_PASSWORD is empty

Setting to an empty password is really not a good plan!

* chore: add shutdown debugging option to celery image

* chore: add django-celery-beat package

* chore: run "celery beat" in datatracker-celery image

* chore: fix docker image name

* feat: add task to cancel stale submissions

* test: test the cancel_stale_submissions task

* chore: make f-string with no interpolation a plain string

Co-authored-by: Nicolas Giard <github@ngpixel.com>
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2022-08-22 13:29:31 -05:00
Robert Sparks 17786527d4
fix: allow 90m session requests. Prompt for cannot meet at time reasoning. (#4345)
* fix: allow 90m session requests. Prompt for cannot meet at time reasoning.

* test: adjust tests to match new acts_like_wg default.
2022-08-19 09:11:44 -05:00
Nicolas Giard 822a572589
feat: diff crawl docker tool (#4310)
* feat: diff docker tool (wip)

* feat: diff docker tool - download + extract from github

* feat: diff docker tool - pull + create + shutdown containers

* feat: diff docker tool - start app containers + execute prepare script

* fix: many fixes + run target instance server

* feat: diff docker tool - run crawl + options

* fix: diff docker tool - various fixes

* feat: diff docker tool - add tag + commit fetch options

* feat: diff docker tool - handle log save + more options

* feat: diff docker tool - F10 quit option + better exec display + checklist fixes

* fix: diff docker tool - remove latest release option
2022-08-18 12:28:47 -05:00
Kesara Rathnayake 1869d375c4
fix: Update idnits service URL (#4330)
This change introduces a new configuration option: `IDNITS_SERVICE_URL`
to configure idnits service URL.
2022-08-18 12:25:44 -05:00
Robert Sparks c0f1fd2395
chore: update to pytz 2022.2.1 (#4342) 2022-08-18 11:40:51 -05:00
Robert Sparks aa2f843725
chore: track updates to pytz (#4319) 2022-08-12 15:14:46 -05:00