| Index: appengine_apps/trooper_o_matic/appengine_module/trooper_o_matic/tree_status.py
|
| diff --git a/appengine_apps/trooper_o_matic/appengine_module/trooper_o_matic/tree_status.py b/appengine_apps/trooper_o_matic/appengine_module/trooper_o_matic/tree_status.py
|
| deleted file mode 100644
|
| index fa852f89cc09b48bfb13d094fd2daec0a529949b..0000000000000000000000000000000000000000
|
| --- a/appengine_apps/trooper_o_matic/appengine_module/trooper_o_matic/tree_status.py
|
| +++ /dev/null
|
| @@ -1,92 +0,0 @@
|
| -# Copyright (c) 2014 The Chromium Authors. All rights reserved.
|
| -# Use of this source code is governed by a BSD-style license that can be
|
| -# found in the LICENSE file.
|
| -
|
| -import json
|
| -import os
|
| -
|
| -import webapp2
|
| -import jinja2
|
| -
|
| -from google.appengine.ext import ndb
|
| -
|
| -from appengine_module.trooper_o_matic import models
|
| -from appengine_module.trooper_o_matic import timezones
|
| -
|
| -
|
| -JINJA_ENVIRONMENT = jinja2.Environment(
|
| - loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__),
|
| - 'templates')),
|
| - extensions=['jinja2.ext.autoescape'],
|
| - autoescape=True)
|
| -
|
| -
|
| -class TreeStatusHandler(webapp2.RequestHandler):
|
| -
|
| - @staticmethod
|
| - def _FormatGoogleChartsDateTime(dt):
|
| - pt = timezones.UtcToPacific(dt)
|
| - return 'Date(%d, %d, %d, %d, %d, %d)' % (
|
| - pt.year, pt.month - 1, pt.day, pt.hour, pt.minute, pt.second)
|
| -
|
| - def get(self, project):
|
| - project_key = ndb.Key(models.Project, project)
|
| - data_1 = models.TreeOpenStat.query(
|
| - models.TreeOpenStat.num_days == 1, ancestor=project_key).order(
|
| - -models.TreeOpenStat.timestamp).fetch(limit=3000)
|
| - data_1.reverse()
|
| - cols_1 = [
|
| - {'id': 'timestamp', 'label': 'Time', 'type': 'datetime'},
|
| - {'id': '1', 'label': 'Percent open last 24 hours', 'type': 'number'},
|
| - ]
|
| - rows_1 = [{
|
| - 'c': [
|
| - {'v': self._FormatGoogleChartsDateTime(stat.timestamp)},
|
| - {'v': stat.percent_open},
|
| - ]} for stat in data_1]
|
| - graph_1 = {'cols': cols_1, 'rows': rows_1}
|
| - data_7 = models.TreeOpenStat.query(
|
| - models.TreeOpenStat.num_days == 7, ancestor=project_key).order(
|
| - -models.TreeOpenStat.timestamp).fetch(limit=3000)
|
| - data_7.reverse()
|
| - cols_7 = [
|
| - {'id': 'timestamp', 'label': 'Time', 'type': 'datetime'},
|
| - {'id': '7', 'label': 'Percent open last 24 hours', 'type': 'number'}
|
| - ]
|
| - rows_7 = [{
|
| - 'c': [
|
| - {'v': self._FormatGoogleChartsDateTime(stat.timestamp)},
|
| - {'v': stat.percent_open}
|
| - ]} for stat in data_7]
|
| - graph_7 = {'cols': cols_7, 'rows': rows_7}
|
| -
|
| - data_gauge = [
|
| - ['Label', 'Value'],
|
| - ['1 Day', round(data_1[-1].percent_open, 0)],
|
| - ['7 Days', round(data_7[-1].percent_open, 0)],
|
| - ]
|
| -
|
| - template = JINJA_ENVIRONMENT.get_template('tree_status.html')
|
| - self.response.write(template.render({
|
| - 'days_1': graph_1,
|
| - 'days_7': graph_7,
|
| - 'data_gauge': data_gauge,
|
| - }))
|
| -
|
| -class TreeStatusJSONHandler(webapp2.RequestHandler):
|
| - def get(self, project):
|
| - days = int(self.request.get('days', 1))
|
| -
|
| - project_key = ndb.Key(models.Project, project)
|
| - latest = models.TreeOpenStat.query(
|
| - models.TreeOpenStat.num_days == days, ancestor=project_key).order(
|
| - -models.TreeOpenStat.timestamp).get()
|
| -
|
| - data = {}
|
| - data['timestamp'] = latest.timestamp.isoformat()
|
| - data['num_days'] = latest.num_days
|
| - data['percent_open'] = latest.percent_open
|
| -
|
| - self.response.headers['Content-Type'] = 'application/json'
|
| - self.response.headers['Access-Control-Allow-Origin'] = '*'
|
| - self.response.write(json.dumps(data))
|
|
|