More polish on manage review requests page: Add save and continue

editing button, reverse sort order so latest (and probably most
interesting) is at the top, disable save buttons when there are no
changes to save
 - Legacy-Id: 11843
This commit is contained in:
Ole Laursen 2016-08-23 12:12:24 +00:00
parent 90617c2b8e
commit 1f71268da1
6 changed files with 22 additions and 7 deletions

View file

@ -123,7 +123,7 @@ class ReviewTests(TestCase):
"r{}-action".format(review_req2.pk): "assign",
"r{}-reviewer".format(review_req2.pk): new_reviewer.pk,
"action": "save",
"action": "save-continue",
})
self.assertEqual(r.status_code, 200)
content = unicontent(r).lower()

View file

@ -649,7 +649,7 @@ def review_requests(request, acronym, group_type=None):
open_review_requests = list(ReviewRequest.objects.filter(
team=group, state__in=("requested", "accepted")
).prefetch_related("reviewer", "type", "state").order_by("time", "id"))
).prefetch_related("reviewer", "type", "state").order_by("-time", "-id"))
open_review_requests += suggested_review_requests_for_team(group)

View file

@ -72,7 +72,7 @@ def manage_review_requests(request, acronym, group_type=None):
review_requests = list(ReviewRequest.objects.filter(
team=group, state__in=("requested", "accepted")
).prefetch_related("reviewer", "type", "state").order_by("time", "id"))
).prefetch_related("reviewer", "type", "state").order_by("-time", "-id"))
review_requests += suggested_review_requests_for_team(group)
@ -104,7 +104,8 @@ def manage_review_requests(request, acronym, group_type=None):
newly_closed = newly_opened = newly_assigned = 0
if request.method == "POST":
saving = request.POST.get("action") == "save"
form_action = request.POST.get("action", "")
saving = form_action.startswith("save")
# check for conflicts
review_requests_dict = { unicode(r.pk): r for r in review_requests }
@ -151,8 +152,12 @@ def manage_review_requests(request, acronym, group_type=None):
kwargs = { "acronym": group.acronym }
if group_type:
kwargs["group_type"] = group_type
import ietf.group.views
return redirect(ietf.group.views.review_requests, **kwargs)
if form_action == "save-continue":
return redirect(manage_review_requests, **kwargs)
else:
import ietf.group.views
return redirect(ietf.group.views.review_requests, **kwargs)
return render(request, 'group/manage_review_requests.html', {
'group': group,

View file

@ -231,7 +231,7 @@ def suggested_review_requests_for_team(team):
res = [r for r in requests.itervalues()
if not any(blocks(e, r) for e in existing_requests[r.doc_id])]
res.sort(key=lambda r: (r.deadline, r.doc_id))
res.sort(key=lambda r: (r.deadline, r.doc_id), reversed=True)
return res
def extract_revision_ordered_review_requests_for_documents(queryset, names):

View file

@ -1,5 +1,10 @@
$(document).ready(function () {
var form = $("form.review-requests");
var saveButtons = form.find("[name=action][value^=\"save\"]");
function updateSaveButtons() {
saveButtons.prop("disabled", form.find("[name$=\"-action\"][value][value!=\"\"]").length == 0);
}
function setControlDisplay(row) {
var action = row.find("[name$=\"-action\"]").val();
@ -17,6 +22,8 @@ $(document).ready(function () {
row.find(".reviewer-controls,.close-controls").hide();
row.find(".assign-action,.close-action").show();
}
updateSaveButtons();
}
form.find(".assign-action button").on("click", function () {
@ -89,4 +96,6 @@ $(document).ready(function () {
var row = $(this).closest("tr");
setControlDisplay(row);
});
updateSaveButtons();
});

View file

@ -127,6 +127,7 @@
{% buttons %}
<a href="{% url "ietf.group.views.review_requests" group_type=group.type_id acronym=group.acronym %}" class="btn btn-default pull-right">Cancel</a>
<button class="btn btn-primary" type="submit" name="action" value="save">Save changes</button>
<button class="btn btn-primary" type="submit" name="action" value="save-continue">Save and continue editing</button>
<button class="btn btn-default" type="submit" name="action" value="refresh">Refresh (keeping changes)</button>
{% endbuttons %}
</form>