Commit graph

86 commits

Author SHA1 Message Date
Jennifer Richards 32054111df
fix: fix failing tests and eliminate naive datetime warnings (#4402)
* test: fix timestamp construction in several doc tests

* refactor: rename date2datetime to datetime_from_date and clarify code

* chore: helper to get tzinfo for PRODUCTION_TIMEZONE

* fix: fix timezone handling in make_last_call()

* test: fix datetime generation in doc.tests_charter

* refactor: remove PRODUCTION_TIMEZONE setting

Replaces the PRODUCTION_TIMEZONE setting with a constant,
DEADLINE_TZINFO, in ietf.utils.timezone.

* test: be more careful about timezone in tests_charter.py

* test: be more careful about timezone in doc/tests.py

* fix: fix timezone handling affecting doc.tests_draft

* fix: fix timezone handling affecting tests_irsg_ballot.py

* fix: fix timezone handling affecting tests_review.py

* fix: fix timezone handling affecting last ietf.doc tests

* fix: fix timezone handling affecting last ietf.group tests

* fix: fix timezone handling affecting ietf.iesg tests

* fix: handle timezones in get_8989_eligibility_querysets

* fix: handle timezones affecting ietfauth tests

* fix: return tz-aware datetime from utc_from_string

* fix: specify timezone for constants in ipr_rfc_number()

* fix: specify tz for ipr deadlines

* fix: handle timezones affecting liaisons tests

* fix: treat leap day in get_8989_eligibility_querysets()

Manual cherry-pick of 248d6474

* test: treat leap day properly in nomcom tests

* fix: fix timezone handling affecting nomcom tests

* test: fix timezone handling in review tests

* fix: fix timezone handling affecting secr.meetings tests

* fix: handle both pytz and zoneinfo timezones in ietf.utils.timezone

* fix: fix timezone handling affecting secr.proceedings tests

* refactor: use make_aware() helper in secr.meetings tests

* test: fix timezone handling in secr.telechat tests

* fix: fix timezone handling affecting stats tests

* fix: eliminate tz-naive helpers affecting sync email parsing

* fix: include timezone data when serializing DeletedEvent data

* fix: fix timezone handling affecting sync tests

* style: remove unused import
2022-09-01 13:07:28 -03:00
Robert Sparks fe1f51aede
fix: Compute 8989 eligibility using actual attendance data. (#4236) 2022-07-21 12:58:32 -05:00
Robert Sparks b988850985
fix: avoid mutables as defaults. Compute date default arguments at runtime rather than loadtime. (#4144) 2022-07-06 14:39:36 -05:00
Robert Sparks 087265118d
feat: csv export of nomcom volunteers. Fixes #4127. (#4146) 2022-07-06 14:13:41 -05:00
Robert Sparks 07bfa68a75
feat: explicitly model session attendance (#4025)
* feat: add model to track session attendance

* feat: add model to track session attendance

* feat: add api to set session attendees

* fix: use user pk instead off person pk in the attended api.

* feat: calculate three of five from attended

* feat: management utility to populate Attended model history

* docs: document why nomcom calculations don't use Attended yet.

* fix: add migration to add new personalapikey endpoint to choices

* test: verify very old last login prevents api key use,

* chore: address review nits

* chore: comment on some idiosyncracies of the expected input to populate_attended

* fix: add unique_together constraint for the Attended model

* fix: correctly handle empty querysets passed to three_of_five_eligible functions.
2022-06-20 10:46:36 -05:00
Robert Sparks 181da11a5c Use rfc8989 for 2022 nomcom eligibility. Fixes #3442. Commit ready for merge.
- Legacy-Id: 19621
2021-11-10 14:59:33 +00:00
Robert Sparks 06f6b12b18 Refine volunteer list view. Show rfc8989 paths. Commit ready for merge.
- Legacy-Id: 19139
2021-06-22 20:09:40 +00:00
Robert Sparks 86102b9980 Allow people to volunteer for NomCom via the datatracker. Commit ready for merge.
- Legacy-Id: 19104
2021-06-10 20:35:50 +00:00
Robert Sparks fe82f4d696 connect the new calculations to the UI. Clean flakes.
- Legacy-Id: 18974
2021-05-06 19:00:58 +00:00
Robert Sparks bcc280fe9b tightened edge for group office rule
- Legacy-Id: 18972
2021-05-06 13:51:29 +00:00
Robert Sparks 216ec499df Checkpointing. Remaining work: convert meetingregistation fixup to a migration and a mgmt comment. Flesh out testing of 8989 rule 2 and fix the known edge case bug. Remove old implementation and connect UI to the new implementation.
- Legacy-Id: 18971
2021-05-01 19:57:04 +00:00
Robert Sparks 3697180cc1 Reverted merge of timezone-aware migration efforts.
- Legacy-Id: 18792
2021-01-12 16:54:20 +00:00
Henrik Levkowetz 774e752a54 Snapshot of timezone-aware datatracker code. Tests pass, and the test-crawler shows only expected differences. Trunk changes merged in up to r18768.
- Legacy-Id: 18770
2020-12-16 23:53:37 +00:00
Henrik Levkowetz eaf9546d0e Fixed a bug in the charset handling of individual parts in multipart email messages in ietf.nomcom.get_body()
- Legacy-Id: 18615
2020-10-13 10:57:23 +00:00
Henrik Levkowetz f557708ce0 Fixed another py2/py3 issue with the nomcom mail processing script.
- Legacy-Id: 18602
2020-10-12 11:24:15 +00:00
Henrik Levkowetz bc05e7a8d0 Refactored many instances of msg.get_payload(decode=True).decode('utf-8') and similar to get_payload_text(msg), which uses msg.get_charset() to get the actual charset to do the decoding, in a consistent manner. Also removed some instances of force_str, but more remain.
- Legacy-Id: 17807
2020-05-16 20:20:05 +00:00
Robert Sparks d981076432 Refactor disqualifying roles into one place. Commit ready for merge.
- Legacy-Id: 17650
2020-04-15 22:34:44 +00:00
Henrik Levkowetz f10ddadc0e Merged in changes from trunk up to r17584.
- Legacy-Id: 17593
2020-04-07 16:02:52 +00:00
Henrik Levkowetz dc4c05ec5b Changed the object factory instances of nomcom private key and cert to be byte objects (matching the production settings), and fixed the issue with nomcom key handling under Py3 found by fenton@bluepopcorn.net. Did some renaming in nomcom/tests.py to better match setup/teardown function names to functionality.
- Legacy-Id: 17536
2020-03-25 13:36:29 +00:00
Henrik Levkowetz 726fcbf27d Removed all __future__ imports.
- Legacy-Id: 17391
2020-03-05 23:53:42 +00:00
Henrik Levkowetz 566971a6ae Removed further six usage.
- Legacy-Id: 17386
2020-03-05 15:10:33 +00:00
Henrik Levkowetz a33f9724af Merged in [17201] from rjsparks@nostrum.com:
Make it easier for the nomcom chair to manage generic IESG requirements. Fixes #2794.
 - Legacy-Id: 17216
Note: SVN reference [17201] has been migrated to Git commit c9d944b312
2020-01-10 16:16:31 +00:00
Robert Sparks c9d944b312 Make it easier for the nomcom chair to manage generic IESG requirements. Fixes #2794. Commit ready for merge.
- Legacy-Id: 17201
2020-01-08 19:51:14 +00:00
Henrik Levkowetz bdc73e771a Python2/3 compatibility: replaced six.ensure_text() with either six.text_type or django's force_text(), depending on the case, and fixed a variable scope issue.
- Legacy-Id: 16461
2019-07-16 13:20:05 +00:00
Henrik Levkowetz 8c6eb3a30a Python2/3 compatibility: Changed the use of open() and StringIO to io.open() etc.
- Legacy-Id: 16458
2019-07-15 19:14:04 +00:00
Henrik Levkowetz 1e115539c4 The previous nomcom.fields.EncryptedTextField relied on initial cleartext content having the same type as ciphertext. Under Python3, that's not the case (ciphertext has type bytes). Rewrote the nomcom app and tests to handle capture of comments and encryption to the Feedback.comments ciphertext differently.
- Legacy-Id: 16350
2019-07-01 11:59:59 +00:00
Henrik Levkowetz 36cac48063 Fixed a bunch of str/bytes issues.
- Legacy-Id: 16341
2019-06-30 20:54:09 +00:00
Henrik Levkowetz d7f5c84182 Initial 2to3 patch with added copyright statement updates.
- Legacy-Id: 16309
2019-06-27 14:40:54 +00:00
Henrik Levkowetz 4049b31026 Added normalization of the email addresses returned by ietf.nomcom.utils.parse_email, in order to not treat feedback from the same person as coming from different sources due to email name+address variations.
- Legacy-Id: 15731
2018-11-06 11:47:11 +00:00
Henrik Levkowetz 4f2f843a55 A string.Template with a unicode template must be given unicode dictionary values if the values contain unicode codepoints. Providing values that are objects with __str__() methods, or utf-8 encoded strings doesn't work. Fixes an issue with nomcom template interpolation for nominees with non-ascii names.
- Legacy-Id: 15481
2018-09-24 21:25:20 +00:00
Henrik Levkowetz 6c3ec5b18e Added Email origin to Email record creation throughout the codebase.
- Legacy-Id: 15149
2018-05-17 16:56:26 +00:00
Henrik Levkowetz 5f37a71889 Added origin information to all places where we create email address entries.
- Legacy-Id: 15127
2018-05-05 12:40:30 +00:00
Henrik Levkowetz 53c4ac36db Removed the Person.address field, which is not being used. This was a legacy from the 2001 perl-based datatracker tables. Fixes issue #2504.
- Legacy-Id: 15095
2018-04-27 14:00:33 +00:00
Henrik Levkowetz 166c7531f9 Changed the nomcom code to permit nomcom year interpolation in the nomcom from-address and in nomcom templates. Changed the nomcom from-address setting to 'nomcom-chair-{year}@ietf.org'.
- Legacy-Id: 14175
2017-09-27 21:20:59 +00:00
Henrik Levkowetz 2c1438c240 Moved unidecode_name from utils.text to person.name.
Modified UserFactory to use a new locale for each new user, instead of the
same locale for a whole test run.  This (almost) ensures the exercise of
code to deal with non-ascii names, something which would not happen if a
locale with ascii names was chosen at the start of a run.

Modified name.initials() to not use non-word characters as initials.

Modified unidecode_name() to do more normalization, to conform to the
conventions used in internet-drafts.

Added saving of the factory-boy random state in order to be able to re-run
a test suite with the same pseudo-random sequence as in a previous failed
run.

Fixed an issue with email formatting in test_api_submit_ok().

Modified the draft author extraction code to deal better with names with
embedded apostrophes.
 - Legacy-Id: 14141
2017-09-20 15:36:30 +00:00
Henrik Levkowetz 33b275b04f Added ietf.utils.text.unidecode_name() and replaced various uses of unidecode() with it, in order to normalize the generation of ascii versions of names, to avoid different practices in space stripping and space normalization in different parts of the code.
- Legacy-Id: 14128
2017-09-17 15:12:18 +00:00
Henrik Levkowetz b42f1cbeb5 Replaced the use of unaccent.asciify(), which has similar functionality to unidecode.unidecode(). Changed the draft parser to work exclusively with unicode text, which both makes the removal of unaccent easier, and takes us closer to Py35 compatibility. Adjusted callers of the draft parser to send in unicode.
- Legacy-Id: 13673
2017-06-18 18:23:18 +00:00
Robert Sparks 4813177086 Allow the nomcom to collect feedback on arbitrary topics. Fixes #2256 and #1846. Commit ready for merge.
- Legacy-Id: 13474
2017-05-30 19:54:31 +00:00
Lars Eggert 8a70e9773d Fix various "RemovedInDjango20Warning" warnings. Commit ready for merge.
- Legacy-Id: 13112
2017-03-25 19:16:45 +00:00
Henrik Levkowetz e5f889764c Fixed a problem with stability of test_accept_reject_nomination_edges(), and made some changes to make debugging this easier.
- Legacy-Id: 12829
2017-02-13 15:55:55 +00:00
Henrik Levkowetz ec684e1b4e Added a pylint rc-file, and fixed or silenced a number of issues found by pylint using the settings .pylintrc (which enable only error checking).
- Legacy-Id: 11941
2016-09-08 14:48:59 +00:00
Robert Sparks aadcf2d056 Added selecting existing people to the workflow for chair classification of nominations. Renamed some utility functions to be slightly more self-documenting.
- Legacy-Id: 10620
2015-12-22 04:32:48 +00:00
Robert Sparks 8261507e80 Added forms for the exceptional "create a new person for this nomination" workflow. Checkpointing before a round of simplification refactors.
- Legacy-Id: 10610
2015-12-18 23:11:24 +00:00
Robert Sparks 6bf4227974 Checkpoint: main nomination forms use SearchableEmailField
- Legacy-Id: 10609
2015-12-18 20:38:17 +00:00
Robert Sparks 7d120da9ef Removed the type from the template pathname for the requirements templates. Made the requiremetns view work for both template types plain and rst. Changed the default for the requirements template for new nomcoms to rst. Migrated 2015 requirements to rst (except for the IAB position, which would require a significant edit)
- Legacy-Id: 10587
2015-12-12 03:49:23 +00:00
Robert Sparks e81b473282 Expose views for concluded nomcoms. Close feedback and nomination. Initial work on factory-boy based testing. Partially addresses #1856
- Legacy-Id: 10520
2015-11-25 22:17:41 +00:00
Robert Sparks f5b6465e81 mailtoken becomes mailtrigger
- Legacy-Id: 10090
2015-09-17 20:03:45 +00:00
Robert Sparks 90c3426e2f updated mailtoken utilities to match the model refactor. Morphed all the code using the utilities to match. Added paths to get Cc through as needed. Next up: Recipient selection form for the iesg save-and-send-email workflow
- Legacy-Id: 10040
2015-08-23 18:15:06 +00:00
Robert Sparks 65be4190a7 Done with the first pass instrumenting all mail points. There is one spot in the ipr code that's complicated and will require some refactor before instrumenting. There are a few places to add explicit messages (templates and all) to replace the simple use of email_ad. The next pass will be to make sure every spot that sends mail is covered by a test, and that the tests look at the headers sensibly. That will be followed by a moderately heavy refactor of MailToken and the gather_address utilities. Then pages showing the expansions of a token for a given document/group. Long way to go, but this is working well, and I think it will make things much easier later.
- Legacy-Id: 10030
2015-08-19 21:53:02 +00:00
Henrik Levkowetz 8905ac1789 If the author of a nomcom nomination is unknown, use 'Anonymous' and no email address in outgoing messages, instead of ''.
- Legacy-Id: 9627
2015-05-13 16:55:53 +00:00