* refactor: always use console log handler
* refactor: json for k8s, plain otherwise
* chore: remove syslog from wsgi.py
* chore: remove debug.log()
* chore: drop syslog from settings.py
* refactor: use log.log() in person.utils
* refactor: fetch_meeting_attendance->log.log()
* chore: gunicorn logs as JSON (wip)
* feat: better json log formatting
* refactor: improve log config
* feat: gunicorn access log fields
* fix: remove type hints
The gunicorn logger plays tricks with the
LogRecord args parameter to let it have string
keys instead of being a simple tuple.
The mypy tests rightly flag this. Rather
than fighting the typing, just remove the
hints and leave a comment warning not to
use the gunicorn-specific formatter with
other loggers.
* 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>
* test: Test rfc_editor_index_update_task
* chore: Add docstring to test
* fix: Reuse stats instead of fetching twice
* test: Test fetch_meeting_attendance_task
* chore: Remove outdated tasks
* Revert "chore: Add docstring to test"
This reverts commit 0395410d665c0d310248fd151386f013357c5d13.
* Revert "test: Test rfc_editor_index_update_task"
This reverts commit 4dd9dd131723497db3d2aa76166169fd32c42fdd.
* test: Test rfc_editor_index_update_task
This time without reformatting the entire file...
* chore: Remove accidentally committed fragment
* test: Annotate function to satisfy mypy
* chore: Remove unused imports
* refactor: Factor out helper from fetch_meeting_attendance.py
* feat: Define fetch_meeting_attendance_task task
Equivalent to the fetch_meeting_attendance management command
* chore: Disable fetch_meeting_attendance in bin/daily
* feat: Log errors in fetch_meeting_attendance_task
* feat: Enable a result backend for celery
Ignore results by default, but enable the backend so we
can manage tasks
* feat: Define daily task in ietf.utils.tasks
* refactor: Make bin/send-review-reminders into a task
* refactor: Make bin/send-scheduled-mail into a task
* chore: Update copyright years
* refactor: Make bin/rfc-editor-index-updates into a task
* refactor: Accept date type in rfc index update fn
* chore: Update comment
* fix: Annotate param as Optional
* fix: Revert treating skip_older_than_date as str
Misunderstood the comment, "fixed" a non-bug. Oops.
* feat: mgmt command to create periodic tasks
* feat: add summary of tasks to mgmt cmd
* style: black
* fix: Remove debug statements
* feat: Enable/disable tasks
* chore: Disable periodic tasks by default
* chore: Revert changes to daily and every15m
* fix: Call intended function
* chore: Add task descriptions
* fix: prevent creation of duplicate MeetingRegistration records
* fix: use get_or_create to prevent duplicate MeetingRegistrations
---------
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* refactor: Remove all existing migrations
* refactor: Create clean set of migrations
* chore: Skip check_statetype_slugs when DB is not yet populated
* fix: Do not cache active_groups_menu on module import
* fix: Do not patch timezone awareness out of oidc-provider
* refactor: Migrate to create postgres schema, only use pgloader for data
* ci: Use migration scripts from feat/pg-migrations branch
* Revert "ci: Use migration scripts from feat/pg-migrations branch"
This reverts commit c82f64c614241ccede4865a50d494725c8a47c15.
* ci: Run check before migrate
* fix: Remove redundant migration caused by merge error
* chore: Add casts/ALTER TABLEs to eliminate pgloader errors/warnings
* chore: Change schema name to match docker image assumptions
* chore: Clear out schema so we get a clean start in case of a retry
* 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
* 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>
* chore: rename utility functions to reflect rfc guiding them
* feat: include new checkedin flag in nomcom calculations
* fix: reflect history a bit more accurately.
* fix: address review comment on readability
* fix: finish what c44000d started
* fix: use PST8PDT for published_rfc event timestamps
* fix: find RFCs by PST8PDT year in RfcFeed
* refactor: add const RPC_TZINFO to represent RFC publication timezone
* chore: remove (rather than fix) unused template tags
* fix: always return RPC_TZINFO-local date from Document.pub_date()
* refactor: convert 'published' flag to a Boolean to reflect its usage
* fix: display doc publication dates in correct time zones
* fix: fix various small issues breaking tests
* 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
* feat: add field MeetingRegistration.checkedin to track onsite checkin
* feat: add handling of ticket_type, checkedin to get_meeting_registation_data. Fixes#3672
* Registration API Update
- change MeetingRegistration.reg_type field to hold only one type
- allow multiple MeetingRegistration records per person/meeting
(one for each reg_type)
* Fix scope claims
* Add meeting 114 to MeetingRegistration migration
* fix: update stats views for MeetingRegistration model use changes
* refactor: remove unused imports
* chore: Replace flot with highcharts
Since flot hasn't been updated since 2014 and was only used in one
place. Simplify how highcharts is initialized and used, and re-enable
pre-bs5 export functionality.
* Fix tests
* Remove some console.log statements