2121
2222from ietf .doc .models import (Document , NewRevisionDocEvent , State , DocAlias ,
2323 LastCallDocEvent , ReviewRequestDocEvent , DocumentAuthor )
24- from ietf .name .models import ReviewRequestStateName , ReviewResultName , DocTypeName
25- from ietf .review .models import ReviewRequest
24+ from ietf .name .models import ReviewRequestStateName , ReviewAssignmentStateName , ReviewResultName , DocTypeName
25+ from ietf .review .models import ReviewRequest , ReviewAssignment
2626from ietf .group .models import Group
2727from ietf .ietfauth .utils import is_authorized_in_doc_stream , user_is_person , has_role
2828from ietf .message .models import Message
2929from ietf .message .utils import infer_message
3030from ietf .person .fields import PersonEmailChoiceField , SearchablePersonField
3131from ietf .review .utils import (active_review_teams , assign_review_request_to_reviewer ,
3232 can_request_review_of_doc , can_manage_review_requests_for_team ,
33- email_review_request_change , make_new_review_request_from_existing ,
34- close_review_request_states , close_review_request ,
35- setup_reviewer_field )
33+ email_review_assignment_change , email_review_request_change ,
34+ make_new_review_request_from_existing , close_review_request_states ,
35+ close_review_request , setup_reviewer_field )
3636from ietf .review import mailarch
3737from ietf .utils .fields import DatepickerDateField
3838from ietf .utils .text import strip_prefix , xslugify
@@ -281,7 +281,7 @@ def __init__(self, review_req, *args, **kwargs):
281281@login_required
282282def assign_reviewer (request , name , request_id ):
283283 doc = get_object_or_404 (Document , name = name )
284- review_req = get_object_or_404 (ReviewRequest , pk = request_id , state__in = ["requested" , "accepted " ])
284+ review_req = get_object_or_404 (ReviewRequest , pk = request_id , state__in = ["requested" , "assigned " ])
285285
286286 if not can_manage_review_requests_for_team (request .user , review_req .team ):
287287 return HttpResponseForbidden ("You do not have permission to perform this action" )
@@ -307,58 +307,55 @@ class RejectReviewerAssignmentForm(forms.Form):
307307 message_to_secretary = forms .CharField (widget = forms .Textarea , required = False , help_text = "Optional explanation of rejection, will be emailed to team secretary if filled in" , strip = False )
308308
309309@login_required
310- def reject_reviewer_assignment (request , name , request_id ):
310+ def reject_reviewer_assignment (request , name , assignment_id ):
311311 doc = get_object_or_404 (Document , name = name )
312- review_req = get_object_or_404 (ReviewRequest , pk = request_id , state__in = ["requested " , "accepted" ])
312+ review_assignment = get_object_or_404 (ReviewAssignment , pk = assignment_id , state__in = ["assigned " , "accepted" ])
313313
314- if not review_req .reviewer :
315- return redirect (review_request , name = review_req . doc .name , request_id = review_req .pk )
314+ if not review_assignment .reviewer :
315+ return redirect (review_request , name = review_assignment . review_request . doc .name , request_id = review_assignment . review_request .pk )
316316
317- is_reviewer = user_is_person (request .user , review_req .reviewer .person )
318- can_manage_request = can_manage_review_requests_for_team (request .user , review_req .team )
317+ is_reviewer = user_is_person (request .user , review_assignment .reviewer .person )
318+ can_manage_request = can_manage_review_requests_for_team (request .user , review_assignment . review_request .team )
319319
320320 if not (is_reviewer or can_manage_request ):
321321 return HttpResponseForbidden ("You do not have permission to perform this action" )
322322
323323 if request .method == "POST" and request .POST .get ("action" ) == "reject" :
324324 form = RejectReviewerAssignmentForm (request .POST )
325325 if form .is_valid ():
326- # reject the request
327- review_req .state = ReviewRequestStateName .objects .get (slug = "rejected" )
328- review_req .save ()
329-
330- ReviewRequestDocEvent .objects .create (
331- type = "closed_review_request" ,
332- doc = review_req .doc ,
333- rev = review_req .doc .rev ,
334- by = request .user .person ,
335- desc = "Assignment of request for {} review by {} to {} was rejected" .format (
336- review_req .type .name ,
337- review_req .team .acronym .upper (),
338- review_req .reviewer .person ,
339- ),
340- review_request = review_req ,
341- state = review_req .state ,
342- )
343-
344- # make a new unassigned review request
345- new_review_req = make_new_review_request_from_existing (review_req )
346- new_review_req .save ()
326+ # reject the assignment
327+ review_assignment .state = ReviewAssignmentStateName .objects .get (slug = "rejected" )
328+ review_assignment .save ()
329+
330+ # TODO: this needs to be reworked as a ReviewAssignmentDocEvent
331+ #ReviewRequestDocEvent.objects.create(
332+ # type="closed_review_request",
333+ # doc=review_req.doc,
334+ # rev=review_req.doc.rev,
335+ # by=request.user.person,
336+ # desc="Assignment of request for {} review by {} to {} was rejected".format(
337+ # review_req.type.name,
338+ # review_req.team.acronym.upper(),
339+ # review_req.reviewer.person,
340+ # ),
341+ # review_request=review_req,
342+ # state=review_req.state,
343+ #)
347344
348345 msg = render_to_string ("review/reviewer_assignment_rejected.txt" , {
349346 "by" : request .user .person ,
350347 "message_to_secretary" : form .cleaned_data .get ("message_to_secretary" )
351348 })
352349
353- email_review_request_change (request , review_req , "Reviewer assignment rejected" , msg , by = request .user .person , notify_secretary = True , notify_reviewer = True , notify_requested_by = False )
350+ email_review_assignment_change (request , review_assignment , "Reviewer assignment rejected" , msg , by = request .user .person , notify_secretary = True , notify_reviewer = True , notify_requested_by = False )
354351
355- return redirect (review_request , name = new_review_req . doc .name , request_id = new_review_req .pk )
352+ return redirect (review_request , name = review_assignment . review_request . doc .name , request_id = review_assignment . review_request .pk )
356353 else :
357354 form = RejectReviewerAssignmentForm ()
358355
359356 return render (request , 'doc/review/reject_reviewer_assignment.html' , {
360357 'doc' : doc ,
361- 'review_req' : review_req ,
358+ 'review_req' : review_assignment . review_request ,
362359 'form' : form ,
363360 })
364361
0 commit comments