* feat: Use session.id to specify session for api_set_session_video_url
* feat: Use session.id to specify session for api_upload_bluesheet
* refactor: Add audio/video stream and onsite tool URLs to Session model
* refactor: Get onsite tool/stream URLs for agenda from Session
* refactor: Use Session methods for onsite tool/stream a few more places
* refactor: Move hard-coded meetecho URLs into settings.py
* feat: Add has_onsite_flag to Session
* chore: Set has_onsite_tool for sessions that had meetecho UrlResources
* fix: Only show onsite tool URLs when Session.has_onsite_tool is True
* test: Update test_api_upload_bluesheet to test deprecated version
* fix: Fix test failure in api_upload_bluesheet view
* test: Add test of new api_upload_bluesheet view
* style: Apply Black style to test_api_upload_bluesheet
* fix: Fix test failures in api_upload_bluesheet()
* test: Update test_api_set_session_video_url to test deprecated version
* fix: Fix test failure in api_set_session_video_url view
* test: Add test of new api_set_session_video_url view
* style: Apply Black styling to new test
* fix: Fix test failures in api_set_session_video_url view
* test: Fix test_meeting_agenda; set has_onsite_tool in SessionFactory
* feat: Add has_onsite_tool to Session list in admin
* feat: Add has_onsite_tool flag to SessionDetailsForm
* feat: Add has_onsite_tool flag to sreq
* feat: Show has_onsite_tool flag on secr view for a submitted request
* feat: Only prompt for has_onsite_tool in sreq for non-wg type groups
* fix: Clean up styling of sreq view a bit
* chore: Renumber migrations
* feat: Add summary data to meeting/requests
* feat: Add Group Type and Purpose tables to requests summary
* fix: use self.assertXX instead of raw assert
---------
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* test: More carefully test event syntax in ical file
* test: Test agenda.ics view with all meeting sessions
* fix: Render complete iCalendar event when show_location is False
* chore: Fix confusing comment
* refactor: remove import_audio_files() and related code
* refactor: move functions from proc_utils to meeting/utils
* refactor: remove secr/proceedings
* 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 remote_instructions for sessions to agenda.ics
* feat: Add webex/meetecho/remote_instructions to upcoming.ics
* fix: Remove location-based details from interims in upcoming.ics
Interim sessions don't ever seem to have locations, so they won't use
the new code anyway. Leave in the remote-instructions.
* test: Test inclusion/exclusion of remote_instructions in upcoming.ics
* test: Test inclusion/exclusion of remote_instructions in agenda.ics
* feat: Include onsite tool link in agenda.ics
* test: Test inclusion of meetecho onsite and remote URLs in agenda.ics
* fix: Return to the expected schedule after editing session dteails
* style: Avoid confusing nested double-quotes in html template
* feat: When possible, add "back to agenda" button to edit_timeslots
* chore: Propagate 'sched' to links/includes in timeslot_edit.html
* chore: Propagate 'sched' to links/includes in edit_timeslot() view
* chore: Propagate 'sched' to links/includes in create_timeslot() view
* test: Test sched param propagation in timeslot edit views
* test: Test sched param propagation in session edit view
* test: Fix URL in test_edit_meeting_schedule
* chore: Remove unused template parameter from {%include%}
* feat: Add "Meeting tools" section to group session details panel
* feat: Use better label for recordings section after session has ended
* feat: Define template tag to store timezone.now in the render context
* fix: Use get_now tag in session_buttons_include.html
* fix: Update session_details_panel.html to use get_now tag
* refactor: Inject timezone_now from a context processor instead of tag
* chore: Remove unused imports
* chore: Remove unused {%load%}
* chore: Revert renaming of dateformat.py
* feat: Add agenda_note to the SessionDetailsForm
* fix: Add hidden agenda_note field to session_details_form.html
* fix: Stop using agenda_note to filter sessions in import_audio_files()
* chore: Migrate sessions with agenda_note='CANCELED' to canceled state
* refactor: Update call to deprecated add_event_info_to_session_qs
* feat: Gather proceedings sessions in the view, grouped by name
* feat: Begin using new session data format in templates (WIP)
* feat: Show non-meeting groups (WIP)
Non-meeting groups (all sessions are notmeet) now show up on the proceedings.
Session materials associated with these groups are not shown, need to restore
that functionality.
* refactor: Rework template data, show materials for notmeet groups (WIP)
* fix: Restore "No agenda", etc, when meeting materials are not present
* chore: Remove commented out old code
* fix: Restore contents in non-area sections of proceedings
* chore: Remove commented-out stale code
* fix: Suppress duplicate agendas for a group on proceedings
* refactor: Generalize agenda deduplication and apply to minutes
* refactor: Format multiple items per session; apply to bluesheets
* refactor: Apply _format_materials to recordings, slides, and drafts
* chore: Add comment about limitations of test_proceedings() test
* test: Test separation of named sessions in the proceedings
* chore: Use codespell to fix typos in code.
Second part of replacement of #4651
@rjsparks, I probably need to revert some things here, and I also
still need to add that new migration - how do I do that?
* Revert migrations
* Migrate "Whitelisted" to "Allowlisted"
* TEST_COVERAGE_MASTER_FILE -> TEST_COVERAGE_MAIN_FILE
* Fix permissions
* Add suggestions from @jennifer-richards
* feat: add 'IETF Meetings' filter to upcoming meetings page
* feat: apply 'ietf-meetings' filter to upcoming.ics
* fix: also filter upcoming IETF meetings in the graphical calendar
* test: update tests to match changes
Includes fixing an error in test_upcoming_view_filter_hide_type().
Due to a copy/paste error, it claimed to be testing with a type
both shown and hidden but was not actually hiding a type at all.
* test: be more careful with timezone arithmetic
Drops a test case (other day, other time) that was an unlikely corner
case. It was an easy check to include with the old code but is less
so with the rewrite.
* fix: use consistent timezone for IDs in timeslot editor
* chore: remove stray testing/debug code
* refactor: clarify handling what groups looked like at past session times
* feat: add row of button-links to group meetings and meeting session views
* fix: remove unneeded `with` clause
* fix: replace missed instance of historic_parent reference
* fix: reflect that group_at_the_time always returns something
* chore: update copyright lines
* refactor: clarify handling what groups looked like at past session times
* fix: replace missed instance of historic_parent reference
* fix: reflect that group_at_the_time always returns something
* chore: update copyright lines
* 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
* 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
* 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>