* fix: More small dark mode fixes
* "badge rounded-pill bg-" -> "badge rounded-pill text-bg-"
This sets the text color correctly for more readable badges.
* Same for cards
* Fix tests
* refactor: Remove is_rfc() - test type_id instead
* fix: Guard against unknown pub_date
This should not ever come up - we have a published_rfc event for
every rfc. Should investigate fixing pub_date() to always return a val.
* fix: Fix friendly_state() for drafts in rfc state
* refactor: Change became-rfc to became_rfc for consistency
* refactor: Begin handling RFCs separatly in document_main
WIP
* chore: Hide reviews and conflict reviews for RFCs
* chore: Remove irrelevant fields from rfc doc view
* chore: Remove unused variables
* chore: Remove "Versions" field from document_rfc.html
* chore: Hide "Nits" button for RFC documents
* fix: Do not show "rev" column for rfc document history
* style: Reformat document_history() using Black
* refactor: Use "is not None" instead of "!= None"
* refactor: Convert dict() to dict literal
* fix: Migrate group, stream, and ad from draft to rfc Document
* feat: Link rfc/draft history pages
This adds a table to show the state of all nomcom positions, and lets the
chair set or un-set multiple state flags at the same time.
As a consequence, it moves the email templates to the "Edit position" form.
* fix: Correctly indicate "auto" theme is default
* fix: .pnp.js changes were missing
* fix: Use a "-subtle" background color for the menu bar
Because those change correctly with theme changes. That the
non-"-subtle" ones may be a bs5 bug, but enough people complained
about the yellow background in dev mode in dark mode that this change
may be worth it.
* fix: Try and recolor black colors in SVGs for dark mode
* Apply suggestions from @martinthomson
* fix: Enforce naming of charter docs in submit()
* style: Reformat submit() with Black
* refactor: Remove redundant check of charter name
* style: Reformat charter_with_milestones_txt with Black
* refactor: Drop canonical_name, use Path in charter_with_milestones_txt
* style: Reformat review_announcement_text() with Black
* style: Reformat action_announcement_text() with Black
* refactor: Change uses of charter.canonical_name() to charter.name
* refactor: Skip docialias when retrieving charter
* refactor: Change canonical_name() to name in utils_charter.py
* refactor: Use Path in read_charter_text()
* refactor: Drop canonical_name, minor refactor of tests_charter.py
* refactor: charter.name instead of canonical_name in milestones.py
* refactor: charter.name instead of canonical_name in tests_info.py
* refactor: Remove unused functions in ietf/secr/utils/groups.py
* refactor: charter.canonical_name -> charter.name in templates
* refactor: Remove charter handling from canonical_name
Temporarily raise an exception for testing
* refactor: Refactor get_charter_text() without canonical_name
* refactor: Remove raise when canonical_name called on a charter
* fix: Add back missing ".txt" extension
* test: Test rejection of invalid charter names
* 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
* feat: Quietly check submission status before reloading
* chore: Remove misleading "time since" display
* feat: Back off submission status poll frequency
* chore: Fix code comment
* fix: Use relative URL for submission status link
* refactor: Refactor/rename process_uploaded_submission async task
* feat: Add async task to process but not accept a submission
* feat: Replace upload_submission() with an async implementation (WIP)
* fix: Do not put Submission in "uploaded" state if an error occured
* refactor: Improve text/XML draft processing flow
* feat: Extract authors from text in async processing
* fix: Fix call signatures and abort submission on failed validation
* feat: Validate submission name format
* fix: Correctly validate emails from text submission
* fix: Clean up submission validation
* fix: Better display errors on upload_submission page
* feat: Reload submission status page when awaiting validation
* test: Fix call signatures; remove unused imports
* chore: Add type hint
* test: Update tests to match renamed task
* fix: Fix typo in error message
* test: Fix failing Api- and AsyncSubmissionTests
* Rename process_uploaded_submission to process_and_accept_...
* Remove outdated tests
Does not yet test new behavior.
* refactor: Break up submission_file() helper
* test: Refactor tests to run the async processing (wip)
* test: Drop test of bad PDF submission
The PDF submission field was removed, so no need to test it.
* test: Update more tests
* test: Bring back create_and_post_submission() and fix more tests
* fix: Drop to manual, don't cancel, on revision inconsistency
Fixes remaining failing SubmitTest tests
* style: Restyle upload_submission() with black
* test: Verify that async submission processing is invoked on upload
* test: Bring back old do_submission and fix tests
Properly separating the upload and async processing stages of submission
is a bigger refactoring than will fit right now. This better exercises
the submission pipeline.
* fix: Accept only XML for API submissions
* test: Test submission processing utilities
* feat: Improve status display for "validating" submissions
* chore: Remove obsolete code
* test: Update test to match amended text
---------
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* 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
* 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
* feat: enable editorial stream adoption and balloting
* fix: bring tests into line with refactor
* feat: force intended_std_level to Informational when adopting into a non-ietf stream.
* fix: improve blocking position labels and email content
* fix: simplify pointer to group on doc main page for rswg docs
* fix: recover from merge typos
* fix: correct defer and clear ballot behavior
* fix: improve publication request access logic
* fix: clean up broken editorial state
* fix: adjust test to match migrations
* 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
* Limit the width of the document selectors to the width of the parent.
It's unfortunately not responsive (select2 limitation), but better
than being too long.
* Force "text-overflow: ellipsis" to hide the beginning of a doc name
* fix: Let charter revisions be variable length in the version paginator
Fixes#4988
* Address review comments. Also make major charter revisions bold for readability.
* chore: Remove commented-out template content
* fix: Correctly number newly added draft_form inputs on IPR edit form
* fix: Initialize select2 when adding a new field instance
* fix: Fix layout issue in ballot modals on narrow screens
Fixes#4902
* Also apply change to old positions
* Fix tests
* Use badge to indicate former ADs
* feat: Diff arbitrary versions from new HTMLization page
Fixes#4859
* Rework this based on @rjsparks' suggestion. Not quite done yet.
* Progress
* Fix HTML
* Don't show compare buttons if there aren't at least two versions
* Remove spurious title attribute
* Use and style select2 for the version diff dropdowns
* Roll in code review suggestions
* Some tests!
* 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.
* feat: Use bs5 for htmlized doc (#4082)
Co-authored-by: Martin Thomson <mt@lowentropy.net>
* fix: Various fixes to HTMLized document view (#4501)
* fix: Pref labels were switched
* fix: Fix ToC for htmlized docs
* Replace datatracker button with document name link to datatracker
* ui: Make fonts even larger on larger window widths
* fix: Document format buttons open new tabs
* fix: Various suggestions from Jay
* fix: Don't show "htmlized" self-link under formats
* ui: Font size fix for iOS
* ui: More little tweaks
* feat/htmlize fixes and improvements (#4506)
* fix: Don't open htmlized view in new tab
* fix: Tests were failing
* feat: Add pref settings to cap max font size
* feat: Add ability to hide side panel
* fix: And more `feat/htmlize` fixes (#4511)
* fix: Remove superfluous scrollbars
* fix: Show email links for authors
* fix: Only show "email authors" button for latest reversion
* fix: Remove duplicate code, fix nav scrolling
* feat: Add RFCs to revision lists
* feat: Add pref option to control dependency inlining
* fix: Add analytical tags
* feat: Notify user of rendering inconsistencies
* feat: Split out bootstrap-icons when not inlining dependencies
* fix: Revision list and minor other fixes
* feat: Show stream logo when possible (#4516)
* fix: Remove superfluous scrollbars
* fix: Show email links for authors
* fix: Only show "email authors" button for latest reversion
* fix: Remove duplicate code, fix nav scrolling
* feat: Add RFCs to revision lists
* feat: Add pref option to control dependency inlining
* fix: Add analytical tags
* feat: Notify user of rendering inconsistencies
* feat: Split out bootstrap-icons when not inlining dependencies
* fix: Revision list and minor other fixes
* feat: Show stream logos when possible
* fix: Pick up CSS changes from https://github.com/martinthomson/rfc-txt-html (#4520)
* fix: Remove superfluous scrollbars
* fix: Show email links for authors
* fix: Only show "email authors" button for latest reversion
* fix: Remove duplicate code, fix nav scrolling
* feat: Add RFCs to revision lists
* feat: Add pref option to control dependency inlining
* fix: Add analytical tags
* feat: Notify user of rendering inconsistencies
* feat: Split out bootstrap-icons when not inlining dependencies
* fix: Revision list and minor other fixes
* feat: Show stream logos when possible
* fix: Pick up CSS changes from https://github.com/martinthomson/rfc-txt-html
* chore: add debug script to replicate GitHub Actions test environment
* chore: cleanup from merge of main
* fix: Fix PDFixation crash due to referencing renamed CSS asset (#4665)
* fix: Rename some CSS classes to handle recent xml2rfc changes (#4791)
* Merge main
* fix: Rename some CSS classes to handle recent xml2rfc changes
Fixes#4784.
* chore: repair merge damage
* chore: more merge corrections
* chore: one more merge correction
* fix: npm dependencies
* fix: Change default font size (#4817)
* Fix dependency issues
* Cap fontsize at 12pt by default
Co-authored-by: Nicolas Giard <github@ngpixel.com>
Co-authored-by: Lars Eggert <lars@eggert.org>
Co-authored-by: Martin Thomson <mt@lowentropy.net>
Co-authored-by: Nicolas Giard <github@ngpixel.com>
* 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: Only show IPR search form when not showing search results
Put it into a collapsible that is only expanded by default when not
showing search results.
Fixes#4569
* Don't use example target name
Fixes#4711 i.e., allows using control-click or context menu to open items in the top right search list to open multiple documents in different tabs.
Authored by @kivinen
* 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