Commit graph

73 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
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
Robert Sparks b5bf6789da
chore: remove one shot iab artifact importers (#6258) 2023-08-31 17:14:18 -05:00
Robert Sparks bce70e74bc
feat: import iab agendas from iab website (#6197)
* feat: import iab agendas from wiki

* chore: adjust command help text
2023-08-24 11:53:10 -05:00
Robert Sparks 518aedb0f0
chore: remove already run single-use management command (#5815) 2023-06-13 15:53:36 -05:00
Robert Sparks b75b560dea
feat: import IAB minutes from the IAB wordpress site (#5689)
* feat: import IAB minutes from the IAB wordpress site

Work in Progress

* fix: refactor as management commands

* fix: use datetime.timezone.utc for comparisons

* fix: coerce an argument. Command now runs

* chore: extend queryset in a better way

* fix: fetch kesara's repo and move files into place.

* fix: add a DocEvent explaining where the Documents came from

* fix: small optimizations and typo fixes

* fix: performance compromise for very old meetings

* fix: ensure variable is initialized

* fix: avoid operating on null by changing method signature - address review comments

* fix: repair html typo and address pyflake complaint

* chore: run black on a new and changed things
2023-06-09 17:07:31 -05:00
Robert Sparks 18941434c3
chore: remove unused mgmt commands 2023-06-06 16:12:35 -05:00
Robert Sparks f9322391dd
fix: change trac.ietf.org links to what they redirect to now (#5651) 2023-05-18 08:31:54 -05:00
Jennifer Richards 7e2b062f12
feat: Limit schedule generator by session purpose (#5055)
* feat: Limit schedule generator by session purpose

* feat: Raise exceptions if no sessions/timeslots are found
2023-01-31 12:59:21 -06:00
Jennifer Richards 364250a291
feat: Generate a partial schedule when there are more sessions than timeslots (#4950)
* refactor: move session/timeslot selection for sched editor to querysets

Purpose here is to make it easier to reuse the session and timeslot selection
logic between the schedule editor and the schedule generator. Additionally
resolves a todo-list item to unify the list of TimeSlotType ids in the
IGNORE_TIMESLOT_TYPES tuple and the SessionQuerySet.requests() method.

* refactor: use new helpers to select sessions/slots for sched generator

* refactor: eliminate some code lint

* feat: Split sched gen TimeSlot into scheduled/unscheduled variants

(work in progress)

* feat: First pass at supporting unscheduled timeslots

(work in progress)

* feat: Handle unscheduled timeslots in make_capacity_adjustments()

(work in progress)

* feat: Handle unscheduled timeslots in time-relation constraint check

(work in progress)

* feat: Reflect unsched timeslots in messages from by schedule generator

* fix: Prevent exception in pretty_print() if base schedule not assigned

* refactor: Avoid flood of time relation constraint warning messages

* test: update test_too_many_sessions
2023-01-06 11:13:58 -06:00
Lars Eggert 6eabd4a3a1
chore: Use codespell to fix typos in comments. (#4794)
First part of replacement of #4651
2022-11-28 10:36:36 -06: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
Jennifer Richards 8101b4f057
chore: remove unused imports 2022-10-18 12:50:07 -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 448cfbb13d
fix: more timezone fixes in liaisons/meeting/message apps 2022-09-27 15:50:10 -03: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
Robert Sparks c7c366fd41
chore: remove session_purpose_demo mgmt command. Fixes #4290. (#4309) 2022-08-04 11:25:57 -05:00
Robert Sparks add95d36eb
fix: correct json import error for 112 and 113 plenary sessions (#4234) 2022-07-21 11:19:26 -05:00
Robert Sparks 07bfa68a75
feat: explicitly model session attendance (#4025)
* feat: add model to track session attendance

* feat: add model to track session attendance

* feat: add api to set session attendees

* fix: use user pk instead off person pk in the attended api.

* feat: calculate three of five from attended

* feat: management utility to populate Attended model history

* docs: document why nomcom calculations don't use Attended yet.

* fix: add migration to add new personalapikey endpoint to choices

* test: verify very old last login prevents api key use,

* chore: address review nits

* chore: comment on some idiosyncracies of the expected input to populate_attended

* fix: add unique_together constraint for the Attended model

* fix: correctly handle empty querysets passed to three_of_five_eligible functions.
2022-06-20 10:46:36 -05:00
Robert Sparks f8c7be6df9 Merged in [19917] and [19930] from jennifer@painless-security.com:
Create/delete Meetecho conferences when requesting/canceling interim sessions. Fixes #3507. Fixes #3508.
 - Legacy-Id: 19934
Note: SVN reference [19917] has been migrated to Git commit 81cd64da2bc0122f733df02f7db634665c9b309a

Note: SVN reference [19930] has been migrated to Git commit c64297e495010f3c147726ad61c24ca436c324da
2022-02-14 19:08:10 +00:00
Jennifer Richards bcd37edfcd Merged from session_purpose_dev
Create dev branch for session purpose work (from revision [19414])
Snapshot of dev work to add session purpose annotation (from revision [19415])
Allow non-WG-like groups to request additional sessions/durations and bypass approval (from revision [19424])
Add 'closed' session purpose, assign purposes for nomcom groups, and update schedule editor to enforce timeslot type and allow blurring sessions by purpose (from revision [19427])
Add management command to set up timeslots/sessions for testing/demoing 'purpose' field (from revision [19430])
Update session purposes and group type -> purpose map to match notes page, change 'session' purpose to 'regular' (from revision [19433])
Redirect edit_schedule urls to edit_meeting_schedule view (from revision [19434])
Allow hiding/blurring sessions and timeslots based on TimeSlotType in the schedule editor (from revision [19438])
Disable session purpose/timeslot type hiding on schedule editor when only 0 or 1 options (from revision [19439])
Improvements to the timeslot and schedule editors (move new toggles to modals, handle overflowing session names, fix timeslot editor scrolling, add buttons to quickly create single timeslot, accept trailing slash on edit URL) (from revision [19449])
Update purpose/types after discussions, add on_agenda Session field, prevent session requests for groups with no allowed purpose, handle addition fields in session request, fix editing session requests, add session edit form/access from schedule editor, eliminate TimeSlotTypeName "private" field, add server-side timeslot type filtering to schedule editor (from revision [19549])
Eliminate the officehours timeslot type, update/renumber migrations, mark offagenda/reserved TimeSlotTypeNames as not used, add a 'none' SessionPurposeName and disallow null, update agenda filter keywords/filter helpers, fix broken tests and general debugging (from revision [19550])
Tear out old meeting schedule editor and related code (from revision [19551])
Fix merge errors in preceding commits (from revision [19556])
 - Legacy-Id: 19570
Note: SVN reference [19415] has been migrated to Git commit 1054f90873

Note: SVN reference [19424] has been migrated to Git commit 5318081608

Note: SVN reference [19427] has been migrated to Git commit 173e438aee

Note: SVN reference [19430] has been migrated to Git commit 7a2530a0a6

Note: SVN reference [19433] has been migrated to Git commit 3be50d6e39

Note: SVN reference [19434] has been migrated to Git commit 3e3d681e5f

Note: SVN reference [19438] has been migrated to Git commit b6ac3d4b1d

Note: SVN reference [19439] has been migrated to Git commit 446ac7a47e

Note: SVN reference [19449] has been migrated to Git commit 5cbe402036

Note: SVN reference [19549] has been migrated to Git commit 3dfce7b850

Note: SVN reference [19550] has been migrated to Git commit 7b35c09c40

Note: SVN reference [19551] has been migrated to Git commit d7f20342b6

Note: SVN reference [19556] has been migrated to Git commit 2b1864f5a0
2021-11-09 01:35:25 +00:00
Jennifer Richards 7a2530a0a6 Add management command to set up timeslots/sessions for testing/demoing 'purpose' field
- Legacy-Id: 19430
2021-10-16 20:09:00 +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 b88a695ad1 Allow generated schedules to inherit from a base schedule. Fixes #3170. Commit ready for merge.
- Legacy-Id: 19297
2021-08-10 14:22:06 +00:00
Jennifer Richards e31d360349 Update create_dummy_meeting to set start date / time zone. Related to #3166. Range 19295:19296 ready for merge.
- Legacy-Id: 19296
2021-08-09 20:46:13 +00:00
Jennifer Richards 336d762123 Allow configuration of group conflict types used for each meeting Fixes #2770. Commit ready for merge.
- Legacy-Id: 19266
2021-07-30 17:50:24 +00:00
Robert Sparks d577abf41e Merged in [19238] from jennifer@painless-security.com:
Find AD conflicts using AD person pk instead of role pk. Fixes #3354.
 - Legacy-Id: 19239
Note: SVN reference [19238] has been migrated to Git commit 73e0120eac
2021-07-16 15:55:22 +00:00
Jennifer Richards 73e0120eac Find AD conflicts using AD person pk instead of role pk. Fixes #3354. Commit ready for merge.
- Legacy-Id: 19238
2021-07-16 15:04:22 +00:00
Robert Sparks 805d1f4a7e Use BOF consistently.
- Legacy-Id: 19212
2021-07-14 17:33:14 +00:00
Jennifer Richards 66b9c41dcc Add ConstraintNames for chair, tech, and key participant conflicts. Replace temporary UI workaround with proper conflict type handling. Fixes #3083. Commit ready for merge.
- Legacy-Id: 19103
2021-06-09 19:36:27 +00:00
Robert Sparks 3697180cc1 Reverted merge of timezone-aware migration efforts.
- Legacy-Id: 18792
2021-01-12 16:54:20 +00:00
Henrik Levkowetz 774e752a54 Snapshot of timezone-aware datatracker code. Tests pass, and the test-crawler shows only expected differences. Trunk changes merged in up to r18768.
- Legacy-Id: 18770
2020-12-16 23:53:37 +00:00
Ole Laursen a39fa7f967 New branch from trunk @ r18382 for meeting improvements, with iola/meeting-improvement-r17835 merged in
- Legacy-Id: 18385
2020-08-20 09:36:41 +00:00
Ole Laursen c78ffbcd18 Introduce support for setting a base schedule on a schedule. All
assignments on the base schedule are shown in the pages for the
schedule, read-only.

This allows managing things like breaks and misc sessions separately
from the regular WG sessions.

Base schedules are not allowed to be the base of other base schedules
(the hierarchy can only be one level deep) to simplify the mental
model and the code.

Add link for creating new schedules instead of relying on copying
Empty-Schedule and change the meeting creation code to no longer
create the special Empty-Schedule. Instead a "base" schedule is
created and a first schedule with the name and permissions of the user
creating the meeting, using "base" as base.

Speed up a couple of the Secretariat/AD agenda views by adding
prefetches.
 - Legacy-Id: 18355
2020-08-11 17:34:32 +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
Henrik Levkowetz 3800c4b5e4 Removed debug statements.
- Legacy-Id: 18137
2020-07-03 13:01:21 +00:00
Henrik Levkowetz d5558f07e9 Fixed a string formatting directive.
- Legacy-Id: 18134
2020-07-03 12:32:50 +00:00
Henrik Levkowetz ef9c6e7ee0 Increased the generate_schedule optimiser run count to 160, and tweaked some output messages.
- Legacy-Id: 18133
2020-07-03 11:52:05 +00:00
Henrik Levkowetz 92aeb2f6da Tweaked an output statement for generate_schedule.
- Legacy-Id: 18116
2020-07-01 14:08:58 +00:00
Henrik Levkowetz b1bff0575e Additional small tweaks to the generate_schedule management command, maninly output.
- Legacy-Id: 18115
2020-07-01 11:45:24 +00:00
Henrik Levkowetz 0a7b3be977 Renamed the automatic schedule generator command from 'schedule_generator' to 'generate_schedule', to match our other 'generate_*' management commands. Added some switches to the command, and added more information to the default output, providing information about number of optimisation runs and time consumed. Added a default value for the meeting option. Made it possible to provide a name to use for the generated schedule, and changed the autogenerated names to be easier to remember and type for later manual work based on an autogenerated schedule.
- Legacy-Id: 18106
2020-06-30 14:27:07 +00:00
Sasha Romijn fe23d2f799 Modify dummy meeting script to match IETF 106 better.
- Legacy-Id: 17995
2020-06-15 20:53:00 +00:00
Sasha Romijn ec1ee89e89 - Increase penalty of timerange and area meeting overlap
- Fix incidental bug in schedule optimiser
- Fix unused import
 - Legacy-Id: 17988
2020-06-15 09:16:48 +00:00
Sasha Romijn d0386b8524 Add link to docs in automatic schedule builder.
- Legacy-Id: 17907
2020-06-02 17:39:25 +00:00
Sasha Romijn 69fbd46b27 Save automatic schedules as public=False visible=True
- Legacy-Id: 17906
2020-06-01 15:03:46 +00:00
Sasha Romijn a0b6c6dcfc Add capacity optimiser to automatic scheduler.
- Legacy-Id: 17905
2020-06-01 14:12:39 +00:00
Sasha Romijn fc2693370e Improved initial session scheduling for tight schedules
- Legacy-Id: 17904
2020-06-01 12:26:21 +00:00