diff --git a/ietf/doc/views_review.py b/ietf/doc/views_review.py index 438f0245e..ad5acecb5 100644 --- a/ietf/doc/views_review.py +++ b/ietf/doc/views_review.py @@ -373,7 +373,7 @@ class CompleteReviewForm(forms.Form): completion_time = forms.TimeField(widget=forms.HiddenInput, initial=datetime.time.min) cc = MultiEmailField(required=False, help_text="Email addresses to send to in addition to the review team list") - def __init__(self, review_req, *args, **kwargs): + def __init__(self, review_req, is_reviewer, *args, **kwargs): self.review_req = review_req super(CompleteReviewForm, self).__init__(*args, **kwargs) @@ -390,9 +390,33 @@ class CompleteReviewForm(forms.Form): for slug, label in self.fields["state"].choices ] - self.fields["reviewed_rev"].help_text = mark_safe( - " ".join("{0}".format(*r) - for r in known_revisions)) + if 'initial' in kwargs: + reviewed_rev_class = [] + for r in known_revisions: + last_version = r[0] + if r[1] < review_req.time: + kwargs["initial"]["reviewed_rev"] = r[0] + reviewed_rev_class.append('reviewer-doc-past') + else: + reviewed_rev_class.append('reviewer-doc-ok') + + # After this the ones in future are marked with green, but we + # want also to mark the oldest one before the review was assigned + # so shift list one step. + reviewed_rev_class.pop(0) + reviewed_rev_class.append('reviewer-doc-ok') + + # If it is users own review, then default to latest version + if is_reviewer: + kwargs["initial"]["reviewed_rev"] = last_version + + self.fields["reviewed_rev"].help_text = mark_safe( + " ".join("{1}".format(reviewed_rev_class[i], *r) + for i, r in enumerate(known_revisions))) + else: + self.fields["reviewed_rev"].help_text = mark_safe( + " ".join("{1}".format('', *r) + for i, r in enumerate(known_revisions))) self.fields["result"].queryset = self.fields["result"].queryset.filter(reviewteamsettings__group=review_req.team) @@ -463,7 +487,8 @@ def complete_review(request, name, request_id): (to, cc) = gather_address_lists('review_completed',review_req = review_req) if request.method == "POST": - form = CompleteReviewForm(review_req, request.POST, request.FILES) + form = CompleteReviewForm(review_req, is_reviewer, + request.POST, request.FILES) if form.is_valid(): review_submission = form.cleaned_data['review_submission'] @@ -626,7 +651,7 @@ def complete_review(request, name, request_id): except TemplateDoesNotExist: pass - form = CompleteReviewForm(review_req, initial=initial) + form = CompleteReviewForm(review_req, is_reviewer, initial=initial) mail_archive_query_urls = mailarch.construct_query_urls(review_req) diff --git a/ietf/static/ietf/css/ietf.css b/ietf/static/ietf/css/ietf.css index 0f9ae9635..04d966683 100644 --- a/ietf/static/ietf/css/ietf.css +++ b/ietf/static/ietf/css/ietf.css @@ -590,6 +590,15 @@ table.simple-table td:last-child { background-color: #F0F0F0; } + +.reviewer-doc-past { + background-color: #800000; +} + +.reviewer-doc-ok { + background-color: #008000; +} + /* === Statistics =========================================================== */ .stats-options > * {