Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import webapp2 | 5 import webapp2 |
| 6 | 6 |
| 7 from shared.utils import minutes_per_day | 7 from shared.utils import minutes_per_day, read_access |
|
Sergiy Byelozyorov
2016/07/01 17:13:06
for consistency with other files, please rewrite a
tandrii(chromium)
2016/07/01 18:56:55
Done.
| |
| 8 | 8 |
| 9 period_config = { | 9 period_config = { |
| 10 '15-minutely': { | 10 '15-minutely': { |
| 11 'interval_minutes': 15, | 11 'interval_minutes': 15, |
| 12 'window_length': minutes_per_day / 15, | 12 'window_length': minutes_per_day / 15, |
| 13 'data_points': 2 * minutes_per_day / 15, | 13 'data_points': 2 * minutes_per_day / 15, |
| 14 }, | 14 }, |
| 15 'hourly': { | 15 'hourly': { |
| 16 'interval_minutes': 60, | 16 'interval_minutes': 60, |
| 17 'window_length': 48, | 17 'window_length': 48, |
| 18 'data_points': 7 * 24, | 18 'data_points': 7 * 24, |
| 19 }, | 19 }, |
| 20 'daily': { | 20 'daily': { |
| 21 'interval_minutes': minutes_per_day, | 21 'interval_minutes': minutes_per_day, |
| 22 'window_length': 14, | 22 'window_length': 14, |
| 23 'data_points': 4 * 30, | 23 'data_points': 4 * 30, |
| 24 }, | 24 }, |
| 25 'weekly': { | 25 'weekly': { |
| 26 'interval_minutes': 7 * minutes_per_day, | 26 'interval_minutes': 7 * minutes_per_day, |
| 27 'window_length': 4, | 27 'window_length': 4, |
| 28 'data_points': 104, | 28 'data_points': 104, |
| 29 }, | 29 }, |
| 30 } | 30 } |
| 31 | 31 |
| 32 class StatsViewer(webapp2.RequestHandler): # pragma: no cover | 32 class StatsViewer(webapp2.RequestHandler): # pragma: no cover |
| 33 @read_access | |
| 33 def get(self, project, period): | 34 def get(self, project, period): |
| 34 assert period in period_config | 35 assert period in period_config |
| 35 config = period_config[period] | 36 config = period_config[period] |
| 36 data_points = self.request.get('data_points') or config['data_points'] | 37 data_points = self.request.get('data_points') or config['data_points'] |
| 37 self.response.write(open('templates/stats_viewer.html').read() % { | 38 self.response.write(open('templates/stats_viewer.html').read() % { |
| 38 'project': project, | 39 'project': project, |
| 39 'period': period, | 40 'period': period, |
| 40 'interval_minutes': config['interval_minutes'], | 41 'interval_minutes': config['interval_minutes'], |
| 41 'window_length': config['window_length'], | 42 'window_length': config['window_length'], |
| 42 'data_points': data_points, | 43 'data_points': data_points, |
| 43 }) | 44 }) |
| OLD | NEW |