Skip to content

Commit 7b89db1

Browse files
committed
Take a different approach to avoiding the crash when a team secretary uses the bulk assignment form to unassign a request. Reverts r14570. Fixes ietf-tools#2443. Commit ready for merge.
- Legacy-Id: 14623
1 parent 6d1ac04 commit 7b89db1

4 files changed

Lines changed: 17 additions & 3 deletions

File tree

ietf/group/forms.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ class ManageReviewRequestForm(forms.Form):
219219

220220
action = forms.ChoiceField(choices=ACTIONS, widget=forms.HiddenInput, required=False)
221221
close = forms.ModelChoiceField(queryset=close_review_request_states(), required=False)
222-
reviewer = PersonEmailChoiceField(empty_label=None, required=False, label_with="person")
222+
reviewer = PersonEmailChoiceField(empty_label="(None)", required=False, label_with="person")
223223
add_skip = forms.BooleanField(required=False)
224224

225225
def __init__(self, review_req, *args, **kwargs):

ietf/group/tests_review.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,19 @@ def test_manage_review_requests(self):
296296
self.assertEqual(settings.skip_next,1)
297297
self.assertEqual(review_req3.state_id, "requested")
298298

299+
r = self.client.post(assigned_url, {
300+
"reviewrequest": [str(review_req2.pk)],
301+
"r{}-existing_reviewer".format(review_req2.pk): review_req2.reviewer_id or "",
302+
"r{}-action".format(review_req2.pk): "assign",
303+
"r{}-reviewer".format(review_req2.pk): "",
304+
"r{}-add_skip".format(review_req2.pk) : 0,
305+
"action": "save",
306+
})
307+
self.assertEqual(r.status_code, 302)
308+
review_req2 = reload_db_objects(review_req2)
309+
self.assertEqual(review_req2.state_id, "requested")
310+
self.assertEqual(review_req2.reviewer, None)
311+
299312
def test_email_open_review_assignments(self):
300313
doc = make_test_data()
301314
review_req1 = make_review_data(doc)

ietf/group/views.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1475,7 +1475,8 @@ def manage_review_requests(request, acronym, group_type=None, assignment_status=
14751475

14761476
assignments_by_person = dict()
14771477
for r in reqs_to_assign:
1478-
assignments_by_person[r.form.cleaned_data["reviewer"].person] = r
1478+
if r.form.cleaned_data["reviewer"]:
1479+
assignments_by_person[r.form.cleaned_data["reviewer"].person] = r
14791480

14801481
# Make sure the any assignments to the person at the head
14811482
# of the rotation queue are processed first so that the queue

ietf/review/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -699,7 +699,7 @@ def setup_reviewer_field(field, review_req):
699699
field.initial = review_req.reviewer_id
700700

701701
choices = make_assignment_choices(field.queryset, review_req)
702-
if not field.required and not field.empty_label is None:
702+
if not field.required:
703703
choices = [("", field.empty_label)] + choices
704704

705705
field.choices = choices

0 commit comments

Comments
 (0)