Index: codereview/urls.py diff --git a/codereview/urls.py b/codereview/urls.py index bd12dd79931eea60a9df142b4e0e7e0f3818e81d..52ce35d911d13c6219eee73e7c1e963e67970b1f 100644 --- a/codereview/urls.py +++ b/codereview/urls.py @@ -33,6 +33,7 @@ urlpatterns = patterns( (r'^$', 'index'), (r'^all$', 'all'), (r'^mine$', 'mine'), + (r'^overview', 'overview'), (r'^starred$', 'starred'), (r'^new$', 'new'), (r'^upload$', 'upload'), Index: codereview/views.py diff --git a/codereview/views.py b/codereview/views.py index 7abed8c5bd63668bb88b598f17d4c822ea38434c..fef9c6b23a1c66fb564ac40d7fc2b02731fb3eef 100644 --- a/codereview/views.py +++ b/codereview/views.py @@ -598,6 +598,24 @@ def _optimize_draft_counts(issues): issue._num_drafts = 0 +def overview(request): + """/overview - show a list of reviewable issues for a set of users.""" + emails = request.GET.getlist('email') + if len(emails)> 20: # Arbitrary limit just to avoid excessive hammering. + raise Http404 + + users = [] + for email in emails: + review_issues = list(db.GqlQuery( + 'SELECT * FROM Issue ' + 'WHERE closed = FALSE AND reviewers = :1 ORDER BY modified DESC', + email)) + _optimize_draft_counts(review_issues) + users.append({'email': email, 'review_issues': review_issues}) + + return respond(request, 'overview.html', {'users': users}) + + @login_required def mine(request): """/mine - Show a list of issues created by the current user.""" Index: templates/overview.html diff --git a/templates/overview.html b/templates/overview.html new file mode 100644 index 0000000000000000000000000000000000000000..6dc20589988a65d38e27f63b07134f4b81702244 --- /dev/null +++ b/templates/overview.html @@ -0,0 +1,31 @@ +{%extends "issue_base.html"%} +{%block title1%}Review queue overview -{%endblock%} +{%block body%} +

Review queue overview

+{%for user in users%} +
+ + +
+ +

Issues Reviewable by {{user.email|nickname}} ({{user.review_issues|length}})

+ +
+ {%if not user.review_issues%} +
+ + (None) + +
+ {%else%} + {%include "issue_heading.html"%} + {%for issue in user.review_issues%} + {%include "issue_row.html"%} + {%endfor%} + {%endif%} + + +
+

+{%endfor%} +{%endblock%}

AltStyle によって変換されたページ (->オリジナル) /