* feat: Allow reviewer to accept a review they're previously rejected
* feat: Add a reviewer who has previously rejected a review to the list of suggested reviewers.
This largely un-does d105f8b, at the request of at least one team secretary.
* fix: Went a little overboard on the previous commit
one_assignment still has to exclude reviewers who rejected the assignment,
or they could end up being the suggested reviewer.
* fix: Actually do the assignment
* fix: If there's an existing assignment, don't create a new one
* style: Restructure conditional for clarity
* test: Add test cases for accepting or assigning a review assignment after rejecting it
* Added check that if there is already review request for the document
in question, ignore the automatic suggestion for that document.
Fixes#3211.
* fix: dont block on open requests for a previous version. Add tests
---------
Co-authored-by: Nicolas Giard <github@ngpixel.com>
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* Specific email subject + requester/secretary in cc
* Send the deadline in the subject
* Use unicode rather than ASCII for reviewer's name
* More log info in the test
* Fix the closing parenthesis
* Fix the email test when review is assigned
* chore: address review comment
---------
Co-authored-by: Robert Sparks <rjsparks@nostrum.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
Send secretary's review reminders to secretary instead of assignee.
Send unconfirmed assignment reminders based on assignment age and CC secretaries.
Correctly separate open review reminders by review team.
Fixes#3482. Fixes#3324. Commit ready for merge.
- Legacy-Id: 19848
Add the 'msg' variable for interpolation on reviewer availability change emails, and reformat the add-a-period email. Fixes#2891.
- Legacy-Id: 17799
Note: SVN reference [17794] has been migrated to Git commit 96bc71f51f150cec7043aca60d0156d35847019b
This abstracts queue management, making it possible to implement different
policies for each team. It provides two concrete policies:
RotateAlphabeticallyReviewerQueuePolicy, which rotates an alphabetically
ordered reviewer list with consideration for skip indications, and is the
default policy; and LeastRecentlyUsedReviewerQueuePolicy, a simple
least-recently-used policy. Also see issues #2721 and #2656.
- Legacy-Id: 17121
Fix#2278 - Notify secretary when a review request is closed.
The assigned reviewer was already notified, but secretaries were always
excluded.
- Legacy-Id: 17108
Note: SVN reference [17085] has been migrated to Git commit 56003f66d8
Fix#2074, fix#2358 - Add history for assignments, requests and unavailability.
- Legacy-Id: 17104
Note: SVN reference [17069] has been migrated to Git commit 65d84155b6
Fix#2119 - Allow specifying review type for suggested reviews in LC and telechat
If a review is suggested on the 'manage unassigned reviews' page, and
the document is in both last call and telechat, the assign form now asks
for the type of review that should be assigned.
This commit also fixes two bugs in this process:
- Comparisons in some cases between strings and integers
(group/views.py:1485/1487)
- Rejections when assigning suggested reviews, as they could be
considered a newly opened request due to not having a pk
(group/views.py:1508)
- Legacy-Id: 16951
Note: SVN reference [16933] has been migrated to Git commit ee4bc0cb07
Flipped a sense to put the grace period on the right side of 'today' when sending review overdue reminders to team secretaries. Fixes#2816.
- Legacy-Id: 16940
Note: SVN reference [16926] has been migrated to Git commit 7560e116bf
If a review is suggested on the "manage unassigned reviews" page, and
the document is in both last call and telechat, the assign form now asks
for the type of review that should be assigned.
This commit also fixes two bugs in this process:
- Comparisons in some cases between strings and integers
(group/views.py:1485/1487)
- Rejections when assigning suggested reviews, as they could be
considered a newly opened request due to not having a pk
(group/views.py:1508)
Commit ready for merge.
- Legacy-Id: 16933
Fix#2123 - Use a DBTemplate when a review assignment is mailed.
The message sent to a reviewer when a new review is assigned to them,
is now taken from a DBTemplate, allowing it to be customised
per team. This includes a migration to create a default template,
which looks the same as before.
- Legacy-Id: 16928
Note: SVN reference [16921] has been migrated to Git commit 9df5839874
The message sent to a reviewer when a new review is assigned to them,
is now taken from a DBTemplate, allowing it to be customised
per team. This includes a migration to create a default template,
which looks the same as before.
Commit ready for merge.
- Legacy-Id: 16921
Remove some pre-ReviewAssignment refactor logic, and simplify what remains while still allowing a group secretary to not assign a row on the unassigned requests form after touching the control to assign a reviewer. Fixes#2812.
- Legacy-Id: 16900
Note: SVN reference [16854] has been migrated to Git commit b158807134e2d26b3e013b6414b6fcbaa0e39f77
Fix#2475 - Send opt-in reminders for unconfirmed review assignments.
If enabled for a team, reminders will be sent every X days to reviewers
for review assignments they have not accepted or rejected.
- Legacy-Id: 16846
Note: SVN reference [16792] has been migrated to Git commit 486b6daa29
Refs #2277 - Send daily reminders of overdue reviews to secretaries
- Legacy-Id: 16839
Note: SVN reference [16765] has been migrated to Git commit cc64992204
Fix#2337 - Send periodic reminders of open reviews every X days (opt-in)
The interleaved_migrations_test currently fails due to the various
migrations that have been added for individual tickets/commits (unless
--permit-mixed-migrations is set). I think this is better fixed in a
later cleanup, as doing it now could cause confusion when merging
individual commits, and more migrations are likely to be added soon.
- Legacy-Id: 16823
Note: SVN reference [16705] has been migrated to Git commit ec56a03ec6
Fix#2231 - Send reminders before long UnavailabilityPeriods expire
A notification is sent to the team secretary and reviewer, if an
unavailability period lasting 30 days or more will end in 3 days.
- Legacy-Id: 16822
Note: SVN reference [16704] has been migrated to Git commit 179c151f9e
Fix#2328 - Use mailtriggers to find destinations in review app
As the review app has several conditionals that don't fit
entirely well within mailtriggers, the templates use a bit
of extra context to figure out who exactly to include. This also
extends the tests for review, to check for correct recipients.
It also adds a tiny feature to mailtrigger to entirely exclude
certain addresses, as required by the review-generated mails.
- Legacy-Id: 16793
Note: SVN reference [16672] has been migrated to Git commit 88b7b45b0e
If enabled for a team, reminders will be sent every X days to reviewers
for review assignments they have not accepted or rejected.
Commit ready for merge.
- Legacy-Id: 16792
The interleaved_migrations_test currently fails due to the various
migrations that have been added for individual tickets/commits (unless
--permit-mixed-migrations is set). I think this is better fixed in a
later cleanup, as doing it now could cause confusion when merging
individual commits, and more migrations are likely to be added soon.
Commit ready for merge.
- Legacy-Id: 16705