* feat: Easy extraction of qualified volunteer list for nomcom chair
* fix: tune test setup to years where eligibility calculations can return nonempty
* chore: revert unintended change
* feat: default string when no affiliation is provided
* 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 TelechatAgendaContent model and related support
* feat: Add UI for managing TelechatAgendaContents
* refactor: Rename _view view to _manage
* feat: Add a view to dump the TelechatAgendaContent as text/plain
* refactor: Point agenda_data() helpers at content in the DB
* refactor: Replace references to settings URLs/paths with new plumbing
* chore: Remove now-obsolete settings from settings.py
* feat: Link to telechat_agenda_content_manage view from iesg agenda
* fix: Use correct view name
* feat: Link from agenda content management page to IESG agenda view
* chore: Create resources
* chore: Add new names to names.json
* chore: Renumber migration after rebase
* chore: Remove unused import
* fix: Clean up partially removed code
* chore: Add admin model for TelechatAgendaContent
* chore: Simplify __str__ method for TelechatAgendaContent
* test: Add TelechatAgendaContentFactory
* test: Test the fill_in_agenda_administrivia() function
* test: Test that agenda contains action_items content
* test: Test that sensitive agenda links are restricted by role
* test: Test the telechat_agenda_content_view view
* test: Add test of telechat_agenda_content_edit view
* fix: Add type attribute to button to satisfy html validator
* test: Filter TelechatAgendaSectionName to used=True for tests
* test: More thoroughly test for likely(ish) permission errors
* fix: Fix typo in "tablist" role
* test: Test telechat_agenda_content_manage view
* style: Put back newlines at EOF
* chore: Add admin for TelechatAgendaSectionName
* chore: Renumber migrations
* fix: Depend on the correct migration
Forgot to update the number, but was also depending on the wrong
migration.
* fix: Do not add user to the top of queue after reject (fixes#4505)
Added a checkbox in the reject review dialog to ask whether user
wants to be added to the top of the queue or not. Default is off.
* Do not change request_assignment_next if wants_to_be_next is not True.
Set the request_assignment_next also in LeastRecentlyUsedReviewerQueuePolicy
so it can be used to override the assignment policy rules (i.e., if
someone has once per month, but he rejects review with wants_to_be_next set
to true, he will get new assignment immediately, not after one month).
* Added wants_to_be_next to test cases too.
* Fixed test function prototypes, they can't have any parameters, only
self. Added test cases for test_return_reviewer_to_rotation_top both
for RotateAlphabeticallyReviewerQueuePolicyTest and
LeastRecentlyUsedReviewerQueuePolicyTest.
* 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>
* fix(doc): Use text badges for email status
BI's envelope icons with status icons are difficult to read.
Use text labels instead (keeping the same tooltip).
Fixes#3855.
* test(doc): Fix failing ballot message tests
Some ballot message changes have been modified to correctly identify
what type of document this ballot is for.
Works on #3855
* test(doc): Remove debugging statement
Accidental inclusion of debug statement.
Works on #3855
* 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: Prefill the abstract, shepherd and AD info into a ballot writeup
* Suggestions from @rjsparks
* Remove instructions to add IANA Expert template.
* Make "notes" fields for various bodies conditioned on the doc stream
* feat: Add group stats sunburst plots to active WG page
* Cleanups
* Sort/color areas consistently
* Move graphs to area page
* Move sunbursts
* Add test
* Move most sunbursts to modals
* Remove parametrization from URLs
* Fix test
* Make `only_active` a bool
* Reformat
* Reformat more
* 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