summaryrefslogtreecommitdiffstats
path: root/Tools/QueueStatusServer/handlers
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/QueueStatusServer/handlers')
-rw-r--r--Tools/QueueStatusServer/handlers/queuestatus.py25
1 files changed, 24 insertions, 1 deletions
diff --git a/Tools/QueueStatusServer/handlers/queuestatus.py b/Tools/QueueStatusServer/handlers/queuestatus.py
index e5dc95f..9eaef6f 100644
--- a/Tools/QueueStatusServer/handlers/queuestatus.py
+++ b/Tools/QueueStatusServer/handlers/queuestatus.py
@@ -26,6 +26,7 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+import datetime
import itertools
from google.appengine.ext import webapp
@@ -58,11 +59,29 @@ class QueueStatus(webapp.RequestHandler):
def _fetch_statuses(self, queue, bot_id):
statuses = queuestatus.QueueStatus.all()
- statuses = statuses.filter("queue_name =", queue.name())
+ statuses.filter("queue_name =", queue.name())
if bot_id:
statuses.filter("bot_id =", bot_id)
return statuses.order("-date").fetch(15)
+ def _fetch_last_message_matching(self, queue, bot_id, message):
+ statuses = queuestatus.QueueStatus.all()
+ statuses.filter("queue_name =", queue.name())
+ if bot_id:
+ statuses.filter("bot_id =", bot_id)
+ statuses.filter("message =", message)
+ return statuses.order("-date").get()
+
+ def _fetch_trailing_days_pass_count(self, queue, bot_id, days):
+ statuses = queuestatus.QueueStatus.all()
+ statuses.filter("queue_name =", queue.name())
+ days_ago = datetime.datetime.now() - datetime.timedelta(days=days)
+ statuses.filter("date >", days_ago)
+ if bot_id:
+ statuses.filter("bot_id =", bot_id)
+ statuses.filter("message =", "Pass")
+ return statuses.count()
+
def _page_title(self, queue, bot_id):
title = "%s Messages" % queue.display_name()
if bot_id:
@@ -82,5 +101,9 @@ class QueueStatus(webapp.RequestHandler):
"work_item_rows": self._rows_for_work_items(queue),
"status_groups": self._build_status_groups(statuses),
"bot_id": bot_id,
+ "last_pass": self._fetch_last_message_matching(queue, bot_id, "Pass"),
+ "last_boot": self._fetch_last_message_matching(queue, bot_id, "Starting Queue"),
+ "trailing_month_pass_count": self._fetch_trailing_days_pass_count(queue, bot_id, 30),
+ "trailing_week_pass_count": self._fetch_trailing_days_pass_count(queue, bot_id, 7),
}
self.response.out.write(template.render("templates/queuestatus.html", template_values))