From dc3e8ee8109b933d28c53d89ad0e4d631b8b00af Mon Sep 17 00:00:00 2001 From: Tero Kivinen Date: Sat, 14 Jul 2018 21:54:04 +0000 Subject: [PATCH] Added default to review completion draft version number. If the reviewer is filling in the review form himself the default will be the latest version of the draft. If it is someone else filling in the review then the version number is the latest version at the point when review was assigned (i.e., it assumes reviewer did review on version he was requested to and then document authors might have updated the document). Also mark the document versions that are earlier than the review request date with red background and those which are newer with green background. Fixes #2125. Commit ready for merge. - Legacy-Id: 15354 --- ietf/doc/views_review.py | 37 +++++++++++++++++++++++++++++------ ietf/static/ietf/css/ietf.css | 9 +++++++++ 2 files changed, 40 insertions(+), 6 deletions(-) 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 > * {