|
a/Allura/allura/controllers/site_admin.py |
|
b/Allura/allura/controllers/site_admin.py |
|
... |
|
... |
59 |
stats = sorted(stats.iteritems(), key=lambda x:-x[1]['total'])
|
59 |
stats = sorted(stats.iteritems(), key=lambda x:-x[1]['total'])
|
60 |
return dict(
|
60 |
return dict(
|
61 |
agg_timings=agg_timings,
|
61 |
agg_timings=agg_timings,
|
62 |
stats=stats[:int(limit)])
|
62 |
stats=stats[:int(limit)])
|
63 |
|
63 |
|
64 |
@expose('jinja:allura:templates/site_admin_cpa_stats.html')
|
|
|
65 |
@without_trailing_slash
|
|
|
66 |
@validate(dict(since=fev.DateConverter(if_empty=datetime(2011,1,1))))
|
|
|
67 |
def cpa_stats(self, since=None, **kw):
|
|
|
68 |
stats = M.CPA.stats(since)
|
|
|
69 |
if getattr(c, 'validation_exception', None):
|
|
|
70 |
flash(str(c.validation_exception), 'error')
|
|
|
71 |
return dict(stats=stats, since=since)
|
|
|
72 |
|
|
|
73 |
@expose('jinja:allura:templates/site_admin_api_tickets.html')
|
64 |
@expose('jinja:allura:templates/site_admin_api_tickets.html')
|
74 |
def api_tickets(self, **data):
|
65 |
def api_tickets(self, **data):
|
75 |
import json
|
66 |
import json
|
76 |
import dateutil.parser
|
67 |
import dateutil.parser
|
77 |
if request.method == 'POST':
|
68 |
if request.method == 'POST':
|