Commit graph

170 commits

Author SHA1 Message Date
Robert Sparks 27fccc6ba0
feat: move to postgresql (#4744)
* feat: move to postgresql

* fix: repair fractional replace statement

* fix: use pathlib to manipulate settings_local

Co-authored-by: Jennifer Richards <jennifer@painless-security.com>

* fix: do two string replacements, not one followed by another that throws away the first.

Co-authored-by: Jennifer Richards <jennifer@painless-security.com>

* fix: use pathlib again to manipulate settings_local

Co-authored-by: Jennifer Richards <jennifer@painless-security.com>

* fix: properly use assert (1/2)

Co-authored-by: Jennifer Richards <jennifer@painless-security.com>

* fix: properly use assert (2/2)

Co-authored-by: Jennifer Richards <jennifer@painless-security.com>

Co-authored-by: Jennifer Richards <jennifer@painless-security.com>
2022-11-11 11:01:01 +00: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
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
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 def13a872a
chore: catchup with pytz country (#3933) 2022-05-03 20:54:02 -05:00
Jennifer Richards 83f5c7e9b6 Remove "before" versions of migrations that were renumbered during merge
- Legacy-Id: 19595
2021-11-09 18:03:06 +00:00
Jennifer Richards 0706f8519f Update migrations and fix a few failing tests. Branch ready for merge.
- Legacy-Id: 19571
2021-11-09 02:40:54 +00:00
Jennifer Richards 2b1864f5a0 Fix merge errors in preceding commits
- Legacy-Id: 19556
2021-11-08 16:35:23 +00:00
Jennifer Richards 7b35c09c40 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
- Legacy-Id: 19550
2021-11-04 17:06:06 +00:00
Jennifer Richards 3dfce7b850 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
- Legacy-Id: 19549
2021-11-04 17:01:32 +00:00
Jennifer Richards 1054f90873 Snapshot of dev work to add session purpose annotation
- Legacy-Id: 19415
2021-10-12 17:08:58 +00:00
Robert Sparks 0906ac217f Updated timezone names
- Legacy-Id: 19403
2021-10-08 16:13:50 +00:00
Robert Sparks 10e84fb7b0 Add migration capturing change to logo validation.
- Legacy-Id: 19345
2021-09-06 15:45:25 +00:00
Robert Sparks d5b0bc6ccc Reordered migrations. Updated name fixture.
- Legacy-Id: 19336
2021-09-04 15:33:53 +00:00
Jennifer Richards 2060173f3a Improve proceedings display with new title block, configurable host logos, and additional PDF or URL materials. Fixes #3147. Commit ready for merge.
- Legacy-Id: 19306
2021-08-30 17:02:49 +00:00
Robert Sparks 45abea06d9 Convert IETF111 Constraints
- Legacy-Id: 19285
2021-08-05 22:03:30 +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 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 b5d264bdc8 Updated timezone choices
- Legacy-Id: 18810
2021-02-01 15:12:41 +00:00
Henrik Levkowetz 088033d843 Added matching indexes to a number of models with ordering by multiple keys.
- Legacy-Id: 18664
2020-11-09 19:41:12 +00:00
Henrik Levkowetz 9b6c5735c9 Change the length of the schedule name field from 16 to 64, to avoid running into lenght issues for schedule names auto-generated from person name or email.
- Legacy-Id: 18566
2020-10-08 11:58:46 +00:00
Henrik Levkowetz 35ee99afa0 Added a missing migration for a change in the Schedule.base field.
- Legacy-Id: 18472
2020-09-08 10:38:00 +00:00
Henrik Levkowetz f9b3e2e477 Merged in ^/branch/iola/meeting-improvement-r18382@18466. This provides a beta-level snapshot of the new schedule editor work. All known issues should be fixed, but there might be adjustments needed after experience with using the new edit view.
- Legacy-Id: 18467
2020-09-04 14:28:25 +00:00
Henrik Levkowetz 2603bf4a23 Merged in [18371] from mark@painless-security.com:
Track slide submissions even after acceptance or rejection.  Fixes #2835.
 - Legacy-Id: 18421
Note: SVN reference [18371] has been migrated to Git commit 21ba67fb79
2020-08-26 16:47:35 +00:00
Henrik Levkowetz 45eaa18c77 Fixed a broken reverse migration
- Legacy-Id: 18409
2020-08-25 09:45:29 +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
Mark J. Donnelly 21ba67fb79 Track slide submissions even after acceptance or rejection. Fixes #2835. Commit ready for merge.
- Legacy-Id: 18371
2020-08-13 13:48:01 +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
Ole Laursen 824b1b627b Add Schedule.origin to enable tracking where a schedule was copied
from. Add utility function and view for diff'ing two arbitrary
schedules, and modify the schedule list page to show the number of
differences between the origin of a schedule, linking to the diff, to
make it easy to see what's changed between work-in-progress schedules.
 - Legacy-Id: 18337
2020-08-04 17:26:50 +00:00
Robert Sparks 715be93f1b Add the migration intended to go with r18206. Commit ready for merge.
- Legacy-Id: 18207
2020-07-20 21:13:39 +00:00
Ole Laursen ae515e6a27 Add notes field to Schedule.
Rearrange schedules in schedule list and be more consistent in the
naming. Add edit properties link to the meeting schedule editor.

Reword the Schedule.visible and .public help texts to try to better
explain what setting the fields results in.
 - Legacy-Id: 18111
2020-07-01 10:14:14 +00:00
Ole Laursen 45ed2c5a2c Add support in the new meeting schedule editor for making a tombstone
session when rescheduling a session after the schedule is made the
official meeting schedule.

Show both cancelled and rescheduled sessions as tombstones in the new
meeting schedule editor.

Add support for showing rescheduled tombstones in the meeting agenda
views.

Adjust the Secretariat session tool so that it's not possible to
(re)cancel cancelled or rescheduled tombstones.
 - Legacy-Id: 18108
2020-06-30 16:55:24 +00:00
Sasha Romijn 9dd0035a19 Fix migrations after rebase.
- Legacy-Id: 17994
2020-06-15 20:51:46 +00:00
Sasha Romijn 6e026926f0 Rebase automatic-scheduler-2 onto 7.3.2.dev0
- Legacy-Id: 17990
2020-06-15 12:29:39 +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 c8e0a83b47 Add new model for business logic meeting constraint costs, update existing constraint costs, and small improvements in tests
- Legacy-Id: 17894
2020-05-29 12:03:50 +00:00
Henrik Levkowetz b3733de346 Added a migration for updated timezone names and added validation for sechedule names.
- Legacy-Id: 17713
2020-05-01 08:45:43 +00:00
Henrik Levkowetz f2b883d2bb Merged in ^/trunk@17617.
- Legacy-Id: 17618
2020-04-14 17:11:51 +00:00
Henrik Levkowetz b143dd407f Merged in ^/branch/dash/automatic-scheduler@17395, which adds groundwor for
upcoming automatic scheduling assistance:

 . Added a management command to create a dummy IETF 999 meeting.

 . Added display of new constraints and joint sessions to agenda builder
   interface.

 . The new timerange, time_relation and wg_adjacent constraints, along with
   the joint_with_groups option, are now reflected in the special requests
   field.  This allows them to be taken into account while scheduling
   sessions.

 . Clarified the wording in the session request form regarding conflicts with
   BOFs.

 . Added support for structured entry and storage of joint sessions in
   meetings:

   - Also adds additional tests for the SessionForm
   - Fixes a javascript error in session requests for non-WG groups,
     that could cause incorrect form behaviour.
   - Expands the tests added in [17289] a bit.

 . Added support for the timerange, wg_adjacent and time_relation constraints.
   This adds three new constraints to the database and relevant UIs:

   - timerange: "This WG can't meet during these timeframes"
   - wg_adjacent: "Schedule adjacent to another WG (directly following,
     no breaks, same room)"
   - time_relation: schedule the two sessions of one WG on subsequent
     days or with at least one day seperation
 - Legacy-Id: 17605
Note: SVN reference [17289] has been migrated to Git commit a227813dc5
2020-04-08 20:41:29 +00:00
Henrik Levkowetz f10ddadc0e Merged in changes from trunk up to r17584.
- Legacy-Id: 17593
2020-04-07 16:02:52 +00:00
Ryan Cross 931c5ce6cd Add migration to cancel 107 sessions
- Legacy-Id: 17466
2020-03-19 17:48:03 +00:00
Sasha Romijn e0f90fe579 Add missing migration content to existing meeting 0026 migration.
- Legacy-Id: 17394
2020-03-06 12:26:12 +00:00
Henrik Levkowetz 726fcbf27d Removed all __future__ imports.
- Legacy-Id: 17391
2020-03-05 23:53:42 +00:00
Sasha Romijn a227813dc5 Add support for the timerange, wg_adjacent and time_relation constraints.
This adds three new constraints to the database and relevant UIs:
- timerange: "This WG can't meet during these timeframes"
- wg_adjacent: "Schedule adjacent to another WG (directly following,
  no breaks, same room)"
- time_relation: schedule the two sessions of one WG on subsequent
  days or with at least one day seperation
 - Legacy-Id: 17289
2020-02-12 10:42:38 +00:00
Henrik Levkowetz 06fe583351 Merged /branch/iola/meeting-improvement-r16992@17152 from olau@iola.dk:
* Renamed Meeting.agenda to Meeting.schedule together with a bunch of related
   internal things

* Moved Session.status, .requested, and .requested_by to a new SchedulingEvent.

* Turned sessions into regular sessions and non-sessions into misc.
  sessions in the UI and code to avoid ambiguity.

  This doesn't change the data in the DB except for uses of
  TimeSlotTypeName where 'session' is now 'regular'.
 - Legacy-Id: 17153
2019-12-17 23:43:07 +00:00
Ole Laursen 568670c060 Turn sessions into regular sessions and non-sessions into misc.
sessions in the UI and code to avoid ambiguity.

This doesn't change the data in the DB except for uses of
TimeSlotTypeName where 'session' is now 'regular'.
 - Legacy-Id: 17128
2019-12-06 20:02:26 +00:00
Ole Laursen 3957743b85 Move Session.status, .requested, and .requested_by to a new SchedulingEvent
- Legacy-Id: 17122
2019-12-05 12:41:09 +00:00