Index: appengine/monorail/tracker/spam_helpers.py |
diff --git a/appengine/monorail/tracker/spam_helpers.py b/appengine/monorail/tracker/spam_helpers.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e6dfffd8904bac45f1e03abac8d2492115ab53f3 |
--- /dev/null |
+++ b/appengine/monorail/tracker/spam_helpers.py |
@@ -0,0 +1,44 @@ |
+# Copyright 2016 The Chromium Authors. All rights reserved. |
+# Use of this source code is govered by a BSD-style |
+# license that can be found in the LICENSE file or at |
+# https://developers.google.com/open-source/licenses/bsd |
+ |
+"""Set of helpers for constructing spam-related pages. |
+""" |
+from framework import template_helpers |
+from third_party import ezt |
+ |
+from datetime import datetime |
+ |
+def DecorateModerationQueue( |
+ cnxn, issue_service, spam_service, user_service, moderation_items): |
+ issue_ids = [item.issue_id for item in moderation_items] |
+ issues = issue_service.GetIssues(cnxn, issue_ids) |
+ issue_map = {} |
+ for issue in issues: |
+ issue_map[issue.issue_id] = issue |
+ |
+ flag_counts = spam_service.LookUpFlagCounts(cnxn, issue_ids) |
+ |
+ reporter_ids = [issue.reporter_id for issue in issues] |
+ reporters = user_service.GetUsersByIDs(cnxn, reporter_ids) |
+ comments = issue_service.GetCommentsForIssues(cnxn, issue_ids) |
+ |
+ items = [] |
+ for item in moderation_items: |
+ issue=issue_map[item.issue_id] |
+ first_comment = comments.get(item.issue_id, ["[Empty]"])[0] |
+ |
+ items.append(template_helpers.EZTItem( |
+ issue=issue, |
+ summary=template_helpers.FitUnsafeText(issue.summary, 80), |
+ comment_text=template_helpers.FitUnsafeText(first_comment.content, 80), |
+ reporter=reporters[issue.reporter_id], |
+ flag_count=flag_counts.get(issue.issue_id, 0), |
+ is_spam=ezt.boolean(item.is_spam), |
+ verdict_time=item.verdict_time, |
+ classifier_confidence=item.classifier_confidence, |
+ reason=item.reason, |
+ )) |
+ |
+ return items |