* feat: add session recordings
* feat: add session recordings
* feat: deleting recordings
* feat: deleting recordings and initial form values
* feat: use meeting date rather than today for initial title field. Fix delete recording
* feat: confirm delete recordings modal. fix server utils delete recording
* fix: removing debug console.log
* feat: change button name from 'Ok' to 'Delete' for confirm deletion to be clearer
* feat: UTC time in string and delete modal text
* fix: django html validation tests
* fix: django html validation tests
* fix: django html validation tests
* refactor: Work with SessionPresentations
* fix: better ordering
* chore: drop rev, hide table when empty
* test: test delete_recordings method
* fix: debug delete_recordings
* test: test add_session_recordings view
* fix: better permissions handling
* fix: only delete recordings for selected session
* refactor: inline script -> js module
* chore: remove accidental import
*shakes fist at pycharm*
* fix: consistent timestamp format
plus slight rephrase
* style: Black
* chore: remove comment
* test: update test to match
* fix: reversible url pattern for materials
Tests were perturbed in a way that led to a test
getting an interim instead of an IETF meeting.
This exposed a bug reversing the URL for the
materials_document() view. This splits it into
two patterns that are equivalent to the original.
---------
Co-authored-by: Jennifer Richards <jennifer@staff.ietf.org>
* fix: prefer PDF in materials_document(); refactor
* style: Black
* refactor: split urls entry into simpler pair
It seems Django cannot reverse a URL pattern that uses "|" to
combine options when one inclues a named variable and the other
does not.
* test: test extension choice
* fix: fix test failures
* refactor: get rid of io.open()
* refactor: reunite url patterns
Adds option for a trailing "/" when using an extension,
which was not previously supported but should be somewhere
between harmless and a feature.
* 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>
* fix: Let csv.writer handle encoding for agenda_csv view
* style: Use 'is None' instead of '== None'
* feat: Display times in meeting time for agenda.csv
* feat: Provide agenda-utc.csv view
* test: Test agenda.csv time zone and agenda-utc.csv endpoint
* fix: Format times in display timezone in agenda.txt template
* chore: Remove unused and non-timezone-friendly TimeSlot.time_desc()
* feat: Dispatch agenda-utc.txt URL
* refactor: Use None to indicate lack of utc parameter to view
* feat: Show display timezone in agenda.txt template
* refactor: Combine URL regexes for the agenda.txt to a single entry
* test: Update tests for agenda.txt/agenda-csv.txt
* fix: Remove ':' added to time formats in agenda.txt template
* feat: move IETF Activity reports from external text based to HTML pages
* fix: use date_today(), fix fencepost problem
* fix: use is_meeting_report template variable instead of is_monthly_report
* 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
Allow cancellation of individual sessions of multi-session interim meeting. Fixes#2959.
- Legacy-Id: 18757
Note: SVN reference [18724] has been migrated to Git commit 79971e14c7
the possible agendas list for a meeting.
The new page incorporates the editing functionality otherwise
accessible from
/secr/meetings/<meeting>/<schedule>/miscsessions/
/secr/meetings/<meeting>/<schedule>/regularsessions/
/meeting/<meeting>/timeslots/edit
in a time vs. room grid that gives a better overview of what's going
on each day and allows adding and editing time slots and sessions.
Regular sessions must be scheduled in the other schedule editor, but
it's possible to add regular timeslots and edit agenda notes on
scheduled regular sessions.
- Legacy-Id: 18379
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
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
basic version with timeslots in a fixed grid and drag and drop for
assigning and unassigning. Compared to the existing JS based view, it
is missing session details (attendences etc.), conflicts and other
warnings, toggling of sessions in areas, area coloring, extending to
next timeslot and probably more.
Add new auxiliary view to copy a schedule for the new schedule editor.
- Legacy-Id: 17389
* 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