* 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
* fix: prevent creation of duplicate MeetingRegistration records
* fix: use get_or_create to prevent duplicate MeetingRegistrations
---------
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* 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>
* 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
On the stats page, a single stacked bar graph is now shown which
combines in time and late reviews, replacing the separate graphs for
these statistics.
Tests for the charts are also expanded to validate the actual
graph content for both stacked and non-stacked charts.
Commit ready for merge.
- Legacy-Id: 16852
Remove some clutter from I-D upload page. The information was mived to the Instructions tab, but a higligh to the Note Well and BCP 78 was added. Fixes#2057.
- Legacy-Id: 16151
Note: SVN reference [16144] has been migrated to Git commit 37851b9742
improved coverage for several tests.
- Legacy-Id: 15600
Note: SVN reference [15596] has been migrated to Git commit 6f18ae882532433ba86322b33c34f5f1b0350cb9
Converted stats, submit, sync. and utils/test to use factories. Excluded utils/test_data from coverage checks.
- Legacy-Id: 15599
Note: SVN reference [15595] has been migrated to Git commit 39e76a836996ec9ed8ea449c92bdfae91c3dbaae
- added tests
- reverted 'obj' to 'object'
- removed check for valid email
- identifing person by Email.person rather than Person.user__username
- used a simpler form of unidecode logic. TBD: the previous code was stolen from elsewhere in the code which should also be simplified.
- Person.name now uses firstname + lastname rather than email.
- Legacy-Id: 13969
case we can't parse it and it's not empty, add page with list of
countries (to be able to refer people to it), add ISO codes as country
aliases - the country alias code is now more intelligent with respect
to case so it's easier to keep these aliases explicitly
- Legacy-Id: 12862
to the draft parser (incorporating patch from trunk), store the
extracted country instead of trying to turn it into an ISO country
code, add country and continent name models and add initial data for
those, add helper function for cleaning the countries, add author
country and continent charts, move the affiliation models to
stats/models.py, fix a bunch of bugs.
- Legacy-Id: 12846
Also add a model for registering an alias for an affiliation so that
we can group affiliations that are considered the same for statistical
purposes, and a model for registering unimportant endings like Inc.
and GmbH.
Affiliation grouping is done through three means: stripping
uninteresting endings, merging entries that only differ in case and
aliases that map from case-insensitive alias to name.
Stripping endings and merging based on case seem to reduce the number
of needed manually maintained aliases greatly.
- Legacy-Id: 12785