Commit graph

176 commits

Author SHA1 Message Date
Robert Sparks d9cc26be96
feat: replace references to User with references to Person (#6024)
* refactor: change references from User to Person (#5821)

* refactor: Change CommunityList reference from User to Person

* refactor: Convert more user references to person

* refactor: Change augment_docs_and_user_with_user_info to person

* refactor: Change Nomination and Feedback references from User to Person

* refactor: Change a few test case function signatures to be more pythonic

* refactor: Harmonize how profile and photo views look up email_or_name

* refactor: Rework community views to operate on Person instead of User (#5859)

* test: Update tests to try all of the person's emails and aliases

* fix: Recode a test case to avoid an exception if there's Unicode in the URL

This only happens using the form-filling and submission feature of
WebTest, which is only used in this one test case, so just it rip out.

* test: Add duplicate-person tests

* fix: If there are multiple matching users, prefer the logged-in one.

* chore: We no longer use WebTest, so don't include it.

* fix: Address review comments

* fix: case-insensitive person name or email matching (#6096)

* chore: Renumber migrations

* fix: Update merged code so tests pass (#6887)

* fix: Use refactored method

* fix: Don't assume user has person

* fix: Use new view param name

* chore: Drop community lists w/o person; cleanup (#6896)

* fix: Don't assume user has person

* fix: user->person in update_community_list_index.py

* feat: Remove CommunityLists without Person

* refactor: Speed up nomcom migrations

---------

Co-authored-by: Paul Selkirk <paul@painless-security.com>
Co-authored-by: Jennifer Richards <jennifer@staff.ietf.org>
2024-01-24 11:00:19 -06:00
Robert Sparks ca664c4162
fix: don't create a volunteer object when a person has already volunt… (#6809)
* fix: don't create a volunteer object when a person has already volunteered

* fix: safer create

* refactor: use shorthand from django

* fix: also protect volunteer from datatracker from race
2023-12-18 16:49:27 -06:00
Rich Salz bb8cf21bd1
fix: show nomcoms by convening year only (#6585)
* ci: Update build-base-app.yml workflow

* fix: Relabel NomCom to show start year, not range

Show just the year that a NomCom started, because showing
the start/end years is confusing.

Fixes: #3419

* fix: Shwo Nomcoms year convened only

Fix the main nomcom index page and the announcement archive page

---------

Co-authored-by: Nicolas Giard <github@ngpixel.com>
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2023-11-07 09:57:19 +01:00
Robert Sparks 486a4f5370
Merge pull request #6345 from larseggert/fix-6343
fix: Add link to public pages to private NomCom pages
2023-09-29 10:13:58 -05:00
Lars Eggert c2c02273c3
fix: Allow filtering for nominees who have not declined (#6382)
* fix: Allow filtering for nominees who have not declined

Fixes #6380

* Update views.py

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>

---------

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2023-09-27 08:21:36 -05:00
Lars Eggert e76201103f
Fix pyflake 2023-09-21 18:15:12 +03:00
Lars Eggert 9391985cbb
fix: Add link to public pages to private NomCom pages
Fixes #6343

Also fix highlighting of the active tab in the nav tab bar while I'm here.
2023-09-21 17:20:38 +03:00
Paul Selkirk 73c2a6aa8b
feat: Download questionnaire responses (#6111)
* feat: Download questionnaire responses (#4981)

* style: Expand "questio" to "questionnaire"
2023-08-14 16:06:23 -05:00
Paul Selkirk 06c9f06d55
feat: Reclassify nomcom feedback (#6002)
* fix: Clean up view_feedback_pending

- Remove "Unclassified" column header, which caused misalignment in the table body.

- Show the message author - previously displayed as `(None)`.

* feat: Reclassify nomcom feedback (#4669)

- There's a new `Chair/Advisor Tasks` menu item `Reclassify feedback`.

- I overloaded `view_feedback*` URLs with a `?reclassify` parameter.

- This adds a checkbox to each feedback message, and a `Reclassify` button
at the bottom of each feedback page.

- "Reclassifying" basically de-classifies the feedback, and punts it back
to the "Pending emails" view for reclassification.

- If a feedback has been applied to multiple nominees, declassifying it
from one nominee removes it from all.

* fix: Remove unused local variables

* fix: Fix some missing and mis-nested html

* test: Add tests for reclassifying feedback

* refactor: Substantial redesign of feedback reclassification

- Break out reclassify_feedback* as their own URLs and views,
  and revert changes to view_feedback*.html.

- Replace checkboxes with a Reclassify button on each message.

* fix: Remember to clear the feedback associations when reclassifying

* feat: Add an 'Overcome by events' feedback type

* refactor: When invoking reclassification from a view-feedback page, load the corresponding reclassify-feedback page

* fix: De-conflict migration with 0004_statements

Also change the coding style to match, and add a reverse migration.

* fix: Fix a test case to account for new feedback type

* fix: 842e730 broke the Back button

* refactor: Reclassify feedback directly instead of putting it back in the work queue

* fix: Adjust tests to new workflow

* refactor: Further refine reclassification to avoid redirects

* refactor: Impose a FeedbackTypeName ordering

Also add FeedbackTypeName.legend field, rather than synthesizing it every
time we classify or reclassify feedback.

In the reclassification forms, only show the relevant feedback types.

* refactor: Merge reclassify_feedback_* back into view_feedback_*

This means the "Reclassify" button is always present, but eliminates some
complexity.

* refactor: Add filter(used=True) on FeedbackTypeName querysets

* refactor: Add the new FeedbackTypeName to the reclassification success message

* fix: Secure reclassification against rogue nomcom members
2023-08-08 12:33:17 -05:00
Rich Salz ebad9489b8
fix: Clarify Questionnaire label (#4688) (#6017)
When filtering nominees, `Questionnaire` implies `Accepted == yes`
so fix the dropdown test tosay that.

Fixes: #4688
2023-07-22 16:40:24 -07:00
Paul Selkirk 0693a4357d
feat: Add "generate email" to action on nominees page (#4893) (#5959)
* feat: Add "generate email" to action on nominees page (#4893)

* fix: Use bare email address for now
2023-07-17 16:00:16 -05:00
Paul Selkirk 98bf7afeab
feat: Display and bulk-edit nomcom position flags (#4681) (#5878)
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.
2023-06-26 16:10:05 -05:00
Paul Selkirk 2ca4f7beaf
fix: Improve validation for form that accepts pasted email feedback (#5761)
* test: Test paste-email-feedback-form with missing headers and/or body

* fix: Don't crash if paste-email-feedback-form doesn't contain a Subject line

* test: Test that paste-email-feedback-form requires headers

* fix: If email headers are missing, prompt the user to try again

* chore: retrigger PR checks
2023-06-08 13:56:24 -05:00
Jennifer Richards 5f0e1a524b
chore: Display errors if nomcom private key encoding fails 2023-05-23 11:30:14 -03:00
Jennifer Richards 07e26dd52e
refactor: Replace deprecated force_text with force_str 2023-05-09 15:21:50 -03:00
Robert Sparks 3bbd5149de
feat: Easy extraction of qualified volunteer list for nomcom chair (#5578)
* 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
2023-05-05 15:33:47 -05:00
Jennifer Richards a653582cf7
fix: timezone fixes from last few comparisons with tzaware-obe 2022-09-28 13:21:50 -03:00
Jennifer Richards ca1320f303
chore: merge main into feat/tzaware
chore: merge main into feat/tzaware
2022-09-22 12:21:38 -03:00
Robert Sparks 5c8545eecb
feat: use hmac, sha256, and a better secret for published nomcom hashes. (#4475)
* feat: use hmac, sha256, and a better secret for published nomcom hashes.

* fix: avoid using django secret key for a different secret context

* fix: Only strip the newline

* fix: improve readability by using rstrip
2022-09-20 12:09:11 -05:00
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 087265118d
feat: csv export of nomcom volunteers. Fixes #4127. (#4146) 2022-07-06 14:13:41 -05:00
Lars Eggert de7ff7e84e
test: fix more validation issues (#3975)
* fix: Avoid numeric IDs on NomCom pages

* fix: Correctly group last names with lowercase/i18n parts

* Remove some unneeded CSS

* fix: Remove extra div closing tag
2022-05-18 10:58:39 -05:00
Jennifer Richards 6c260a5b7e Merge 7.45.1.dev0 into Bootstrap 5 update branch. Made a first pass at reconciling differences.
- Legacy-Id: 19945
2022-02-17 20:09:49 +00:00
Lars Eggert 335a39d4fc More fixes.
- Legacy-Id: 19884
2022-01-28 13:00:47 +00:00
Lars Eggert c68446ae93 More select2 and test fixes.
- Legacy-Id: 19781
2021-12-14 18:19:12 +00:00
Jennifer Richards 8759955597 Allow nomcom chair to edit liaisons as well as members and generate GroupEvents when changed. Share code between group and nomcom for this purpose. Fixes #3376. Commit ready for merge.
- Legacy-Id: 19710
2021-11-24 16:40:05 +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 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 f4b90c0dc8 Nomcom topic responses didn't save respondent because of a missing form creation parameter. Fixed.
- Legacy-Id: 18652
2020-10-31 19:49:56 +00:00
Jim Fenton 431a112bf1 Added NomCom membership history page. Fixes issue #3006. Branch ready for merge.
- Legacy-Id: 18601
2020-10-12 02:36:16 +00:00
Henrik Levkowetz 0bc492afaf Fixed a bytes/unicode issue for echoed-back nomcom questionnaire text.
- Legacy-Id: 18523
2020-09-28 11:06:55 +00:00
Henrik Levkowetz 57938b039d Converted many cases of plain-text 403 messages to use a properly styled page instead, with a login link when appropriate. Also changed some API endpoint 400 responses to a more correct 403.
- Legacy-Id: 18339
2020-08-06 10:59:52 +00:00
Henrik Levkowetz efcdc4d917 Updated meeting attendance and nomcom eligibility calculations to take the MeetingRegistration.attendance flag into account.
- Legacy-Id: 17955
2020-06-09 21:00:07 +00:00
Henrik Levkowetz ac52ce6595 Updated the NomCom eligibility calculation to use the last 5 in-person meetings, in accordance with draft-iesg-nomcom-eligibility-2020-03 which has now been approved for publication. The code will need revisiting when the long-term policy is available.
- Legacy-Id: 17859
2020-05-20 19:41:25 +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
Robert Sparks b387599dac Follow RFC8713 section 4.15 for roles that disqualify for nomcom. Fixes #2944. Commit ready for merge.
- Legacy-Id: 17649
2020-04-15 21:39:58 +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
Robert Sparks 7aa57e9f57 Restrict comments total on nomcom private index to comments on positions. Fixes #2792. Commit ready for merge.
- Legacy-Id: 16759
2019-09-26 21:49:55 +00:00
Henrik Levkowetz a5e31c3f40 Py2/3 compatibility: Added __future__ import.
- Legacy-Id: 16452
2019-07-15 15:52:18 +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 d7f5c84182 Initial 2to3 patch with added copyright statement updates.
- Legacy-Id: 16309
2019-06-27 14:40:54 +00:00
Henrik Levkowetz f54d6cd23d Merged in [16092] from rcross@amsl.com:
Remove ability to cancel a break session.  Fixes #2703.
 - Legacy-Id: 16105
Note: SVN reference [16092] has been migrated to Git commit b5850d5c7f
2019-03-26 15:53:41 +00:00
Robert Sparks 6118975620 Added an explicit ID-Exists state for the IESG state machine. Reworked code so that the IESG state machine always has a state. Added the ability to release a document from a working group, research group, or the independent stream. Releasing a document removes all stream state, and sets the document to have no stream.
- Legacy-Id: 15809
2018-12-11 22:38:05 +00:00
Henrik Levkowetz fcddc86447 Fixed some incorrect topic audience id slugs, to make the topic availability filtering work correctly.
- Legacy-Id: 15598
2018-10-19 12:53:16 +00:00
Henrik Levkowetz b984422471 Added pagination to the nomcom pending-feedback page, to reduce load time.
- Legacy-Id: 15534
2018-10-08 11:51:21 +00:00