From b8d6efc5fc4684b87a0901d7e18d39e3c389281a Mon Sep 17 00:00:00 2001 From: Patrick McDonagh Date: Mon, 13 Feb 2017 21:05:08 -0600 Subject: [PATCH] retrieve latest tag values on dashboard --- www/pocwww/pocwww/templates/cardsingle.jinja2 | 15 ++++++++---- www/pocwww/pocwww/templates/dashboard.jinja2 | 7 +++++- www/pocwww/pocwww/views.py | 23 +++++++++++++++++-- 3 files changed, 37 insertions(+), 8 deletions(-) diff --git a/www/pocwww/pocwww/templates/cardsingle.jinja2 b/www/pocwww/pocwww/templates/cardsingle.jinja2 index ebeb9f1..cbcf29f 100644 --- a/www/pocwww/pocwww/templates/cardsingle.jinja2 +++ b/www/pocwww/pocwww/templates/cardsingle.jinja2 @@ -3,7 +3,7 @@ {% block content %}
-

{{card.timestamp | date}}

+

{{card.timestamp | datetime('long')}}

@@ -19,6 +19,9 @@ var downhole_data = [ { label: "Downhole Card", x: {{card.downhole_position}}, y: {{card.downhole_load}} } ] ; + +var all_position =surface_data[0]['x'].concat(downhole_data[0]['x']) + var xy_chart = d3_xy_chart() .width(960) .height(500) @@ -49,13 +52,15 @@ function d3_xy_chart() { var x_scale = d3.scale.linear() .range([0, innerwidth]) - .domain([ d3.min(datasets, function(d) { return d3.min(d.x); }), - d3.max(datasets, function(d) { return d3.max(d.x); }) ]) ; + // .domain([ d3.min(datasets, function(d) { return d3.min(d.x) ; }), + // d3.max(datasets, function(d) { return d3.max(d.x); }) ]) ; + .domain([ d3.min(all_position) - 10, + d3.max(all_position) + 10 ]) ; var y_scale = d3.scale.linear() .range([innerheight, 0]) - .domain([ d3.min(datasets, function(d) { return d3.min(d.y); }), - d3.max(datasets, function(d) { return d3.max(d.y); }) ]) ; + .domain([ d3.min(datasets, function(d) { return d3.min(d.y); }) - 1000, + d3.max(datasets, function(d) { return d3.max(d.y); }) + 1000 ]) ; var color_scale = d3.scale.category10() .domain(d3.range(datasets.length)) ; diff --git a/www/pocwww/pocwww/templates/dashboard.jinja2 b/www/pocwww/pocwww/templates/dashboard.jinja2 index c2cfd98..b331606 100644 --- a/www/pocwww/pocwww/templates/dashboard.jinja2 +++ b/www/pocwww/pocwww/templates/dashboard.jinja2 @@ -3,6 +3,11 @@ {% block content %}

Henry Pump POC

- +

Latest Tag Values

+
+    {% for t in tag_values %}
+        {{t._id}} = {{t.lastTagValue}} @ {{t.lastTagStamp}}
+    {% endfor %}
+    
{% endblock content %} diff --git a/www/pocwww/pocwww/views.py b/www/pocwww/pocwww/views.py index 769626a..4561fbf 100644 --- a/www/pocwww/pocwww/views.py +++ b/www/pocwww/pocwww/views.py @@ -38,10 +38,29 @@ class Pagination(object): yield num last = num +def get_lastest_tag_values(request): + latest_tag_values = [] + latesttag_agg = request.db['wellData'].aggregate([ + { + '$sort': {"tagname": 1, "timestamp": 1} + }, + { + '$group': { + '_id': "$tagname", + 'lastTagStamp': {'$last': "$timestamp"}, + 'lastTagValue': {'$last': "$currentValue"} + } + } + ]) + for t in latesttag_agg: + latest_tag_values.append(t) + return {'tag_values': latest_tag_values} + @view_config(route_name='home', renderer='templates/dashboard.jinja2') def my_view(request): - return {'project': 'POC Web Interface', 'navgroup': 'dashboard'} + ltv = get_lastest_tag_values(request) + return {'project': 'POC Web Interface', 'navgroup': 'dashboard', 'tag_values': ltv['tag_values']} def card_page(request): @@ -82,7 +101,7 @@ def cards(request): "count": {"$sum": 1} }}, {"$sort": {"_id": 1}} - ], useCursor=False) + ]) for d in dateagg: datelist.append({'count': d['count'], 'date': datetime.strptime(d['_id'], "%Y-%m-%d").date()}) return {'datelist': list(datelist), 'navgroup': 'cards'}