Files
POC-Java-www/pocwww/gauge_off.py
2017-04-21 17:50:59 -05:00

45 lines
1.8 KiB
Python

from pyramid.view import view_config
@view_config(route_name="gaugeoff_all", renderer="templates/gaugeoff_all.jinja2")
@view_config(route_name="gaugeoff_all_json", renderer="prettyjson")
def gaugeoff_all(request):
gaugeoff_list = []
dateagg = list(request.db['gaugeOff'].aggregate(
[
{
'$project': {
'yearMonthDay': {'$dateToString': {'format': "%Y-%m-%d", 'date': "$timestamp"}},
'tagname': 1,
'dailyTotal': 1,
'dailyAverage': 1,
'maxDailyValue': 1,
'minDailyValue': 1,
'currentValue': 1
}
},
{
'$group': {
'_id': "$yearMonthDay",
'tags': {'$push': {'name': "$tagname"}},
'totals': {'$push': {'total': "$dailyTotal"}},
'averages': {'$push': {'average': "$dailyAverage"}},
'max': {'$push': {'max': "$maxDailyValue"}},
'min': {'$push': {'min': "$minDailyValue"}},
'last': {'$push': {'last': "$currentValue"}}
}
}
]))
for d in dateagg:
newGO = {'date': datetime.strptime(d["_id"], '%Y-%m-%d'), 'tags': {}}
for i in range(0, len(d['tags'])):
newTagObj = {
"max": d['max'][i]['max'],
"min": d['min'][i]['min'],
"last": d['last'][i]['last'],
"total": d['totals'][i]['total'],
"average": d['averages'][i]['average'],
}
newGO['tags'][d['tags'][i]['name']] = newTagObj
gaugeoff_list.append(newGO)
return {'navgroup': 'gaugeoff', 'data': gaugeoff_list}