Completes POCONSOLE-46. Events page working. Need to link event data to tag data

This commit is contained in:
Patrick McDonagh
2016-11-16 15:53:47 -06:00
parent 6f1aedd13d
commit a3d8b3c95e
5 changed files with 160 additions and 27 deletions

View File

@@ -38,7 +38,7 @@
<li ng-class="{active: Page.page() == 'tags'}"><a href="/#/tags"><i class="fa fa-tags"></i> Tags</a></li>
<li ng-class="{active: Page.page() == 'gaugeoff'}"><a href="/#/gaugeoff"><i class="fa fa-folder-open-o"></i> Gauge Off</a></li>
<li ng-class="{active: Page.page() == 'welltest'}"><a href="/#/welltest"><i class="fa fa-folder-open-o"></i> Well Test</a></li>
<li ng-class="{active: Page.page() == 'docs'}"><a href="/#/docs"><i class="fa fa-folder-open-o"></i> Events</a></li>
<li ng-class="{active: Page.page() == 'events'}"><a href="/#/events"><i class="fa fa-folder-open-o"></i> Events</a></li>
<li ng-class="{active: Page.page() == 'docs'}"><a href="/#/docs"><i class="fa fa-folder-open-o"></i> Notes</a></li>
<li ng-class="{active: Page.page() == 'docs'}"><a href="/#/docs"><i class="fa fa-folder-open-o"></i> Docs</a></li>
@@ -89,6 +89,7 @@
<script src="js/cards.controller.js"></script>
<script src="js/gaugeoff.controller.js"></script>
<script src="js/welltest.controller.js"></script>
<script src="js/events.controller.js"></script>
</body>

View File

@@ -0,0 +1,48 @@
poconsole.controller('eventsCtrl', function($scope, $q, $http, Page) {
Page.setTitle('Events');
Page.setPage('events');
var getEventsDataPage = function(page_number){
var deferred = $q.defer();
$http.get('/api/events?q={"order_by":[{"field":"created_on","direction":"desc"}]}&page=' + page_number).success(function(data) {
deferred.resolve(data);
});
return deferred.promise;
};
$scope.loadEventPageData = function(page_number){
var getData = getEventsDataPage(page_number);
getData.then(function(d){
for(var j = 0; j < d.objects.length; j++){
// console.log({'Date Before':d.objects[j].created_on});
d.objects[j].created_on = Date.create(d.objects[j].created_on + "Z", { fromUTC: true });
// console.log({'Date After':d.objects[j].created_on});
}
$scope.event_data = d.objects;
$scope.num_pages = d.total_pages;
$scope.page_list = [];
$scope.page_num = d.page;
if ($scope.page_num < $scope.num_pages){
$scope.page_num_next = $scope.page_num + 1;
} else {
$scope.page_num_next = $scope.num_pages;
}
if ($scope.page_num > 1){
$scope.page_num_prev = $scope.page_num - 1;
} else {
$scope.page_num_prev = 1;
}
for(var i = 1; i <= $scope.num_pages; i++){
$scope.page_list.push(i);
}
});
};
$scope.loadEventPageData(1);
});

View File

@@ -28,6 +28,9 @@ tagserver.config([
}).when('/welltest', {
templateUrl: '/templates/welltest.html',
controller: 'wellTestCtrl'
}).when('/events', {
templateUrl: '/templates/events.html',
controller: 'eventsCtrl'
}).when('/', {
templateUrl: '/templates/dashboard.html',
controller: 'dashboardCtrl'

View File

@@ -0,0 +1,46 @@
<div class='container'>
<div class="row">
<div class="col-md-12">
<h1>Event History</h1>
<div ng-if="num_pages>1" style="text-align:center;">
<ul class="pagination">
<li>
<a ng-click="loadEventPageData(page_num_prev)" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
<li ng-repeat="p in page_list" ng-class="{'active':p==page_num}"><a ng-click="loadEventPageData(p)">{{p}}</a></li>
<li>
<a ng-click="loadEventPageData(page_num_next)" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class='row'>
<div class='col-md-12'>
<table class="table table-striped">
<thead>
<tr>
<th>Date</th>
<th>Device Name</th>
<th>Type</th>
<th>Condition</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="e in event_data">
<td nowrap>{{ e.created_on | date:'medium'}}</td>
<td nowrap>{{ e.event.name }}</td>
<td nowrap>{{ e.event_type }}</td>
<td nowrap>{{ e.event_condition }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>

View File

@@ -134,37 +134,72 @@ def get_data(db_table, obj_id):
# self.assertTrue(test_gauge_date[x] == go_in_db[x])
class TestWellTest(unittest.TestCase):
# class TestWellTest(unittest.TestCase):
# def test_insert(self):
# # duration_hours = db.Column(db.Float)
# # volume_h2o_actual = db.Column(db.Float)
# # volume_oil_actual = db.Column(db.Float)
# # volume_gas_actual = db.Column(db.Float)
# # volume_h2o_projected = db.Column(db.Float)
# # volume_oil_projected = db.Column(db.Float)
# # volume_gas_projected = db.Column(db.Float)
# # api_gravity_oil = db.Column(db.Float)
# # spc_gravity_h2o = db.Column(db.Float)
# test_well_test = {
# 'duration_hours': 24,
# 'volume_h2o_actual': 1000.0,
# 'volume_oil_actual': 900.0,
# 'volume_gas_actual': 3500.0,
# 'volume_h2o_projected': 1200.0,
# 'volume_oil_projected': 700.0,
# 'volume_gas_projected': 3495.5,
# 'api_gravity_oil': 1.4,
# 'spc_gravity_h2o': 1.001
# }
#
# id_added = insert_data("well_test_vals", test_well_test)
# print("Added well test at _id {}".format(id_added))
#
# if id_added > 0:
# data_in_db = get_data("well_test_vals", id_added)
# for x in test_well_test:
# print("testing {}: {} == {}".format(x, test_well_test[x], data_in_db[x]))
# self.assertTrue(test_well_test[x] == data_in_db[x])
class TestEvents(unittest.TestCase):
def test_insert(self):
# duration_hours = db.Column(db.Float)
# volume_h2o_actual = db.Column(db.Float)
# volume_oil_actual = db.Column(db.Float)
# volume_gas_actual = db.Column(db.Float)
# volume_h2o_projected = db.Column(db.Float)
# volume_oil_projected = db.Column(db.Float)
# volume_gas_projected = db.Column(db.Float)
# api_gravity_oil = db.Column(db.Float)
# spc_gravity_h2o = db.Column(db.Float)
test_well_test = {
'duration_hours': 24,
'volume_h2o_actual': 1000.0,
'volume_oil_actual': 900.0,
'volume_gas_actual': 3500.0,
'volume_h2o_projected': 1200.0,
'volume_oil_projected': 700.0,
'volume_gas_projected': 3495.5,
'api_gravity_oil': 1.4,
'spc_gravity_h2o': 1.001
# event_id = db.Column(db.Integer, db.ForeignKey('event_configs._id'))
# event_type = db.Column(db.String(64))
# event_condition = db.Column(db.String(64))
test_analog_event = {
'event_id': 1,
'event_type': 'Alarm',
'event_condition': 'High Alarm'
}
id_added = insert_data("well_test_vals", test_well_test)
print("Added well test at _id {}".format(id_added))
id_added = insert_data("events", test_analog_event)
print("Added event at _id {}".format(id_added))
if id_added > 0:
data_in_db = get_data("well_test_vals", id_added)
for x in test_well_test:
print("testing {}: {} == {}".format(x, test_well_test[x], data_in_db[x]))
self.assertTrue(test_well_test[x] == data_in_db[x])
data_in_db = get_data("events", id_added)
for x in test_analog_event:
print("testing {}: {} == {}".format(x, test_analog_event[x], data_in_db[x]))
self.assertTrue(test_analog_event[x] == data_in_db[x])
test_bit_event = {
'event_id': 16,
'event_type': 'Info',
'event_condition': 'Unit Start'
}
id_added = insert_data("events", test_bit_event)
print("Added event at _id {}".format(id_added))
if id_added > 0:
data_in_db = get_data("events", id_added)
for x in test_bit_event:
print("testing {}: {} == {}".format(x, test_bit_event[x], data_in_db[x]))
self.assertTrue(test_bit_event[x] == data_in_db[x])