Completes POCONSOLE-46. Well Test entry, edit, and deletion are working.
This commit is contained in:
@@ -13,8 +13,8 @@ manager.create_api(Tag, methods=['GET', 'POST', 'DELETE', 'PUT'], results_per_pa
|
||||
manager.create_api(Tag_val, methods=['GET', 'POST', 'DELETE'], allow_delete_many=True)
|
||||
manager.create_api(Card, methods=['GET', 'POST', 'DELETE'], allow_delete_many=True)
|
||||
manager.create_api(GaugeOffVal, methods=['GET', 'POST', 'DELETE'], allow_delete_many=True)
|
||||
manager.create_api(WellTest, methods=['GET', 'POST', 'DELETE'], allow_delete_many=True)
|
||||
manager.create_api(Note, methods=['GET', 'POST', 'DELETE'], allow_delete_many=True)
|
||||
manager.create_api(EventConfig, methods=['GET', 'POST', 'DELETE'], allow_delete_many=True)
|
||||
manager.create_api(WellTest, methods=['GET', 'POST', 'DELETE', 'PUT'], allow_delete_many=True)
|
||||
manager.create_api(Note, methods=['GET', 'POST', 'DELETE', 'PUT'], allow_delete_many=True)
|
||||
manager.create_api(EventConfig, methods=['GET', 'POST', 'DELETE', 'PUT'])
|
||||
manager.create_api(Event, methods=['GET', 'POST', 'DELETE'], allow_delete_many=True)
|
||||
manager.create_api(RunStatus, methods=['GET', 'POST', 'DELETE'], allow_delete_many=True)
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
poconsole.controller('wellTestCtrl', function($scope, $route, $http, $routeParams, Page, wellTest) {
|
||||
poconsole.controller('wellTestCtrl', function($scope, $route, $http, $routeParams, Page, WellTest) {
|
||||
Page.setTitle('Well Tests');
|
||||
Page.setPage('welltest');
|
||||
|
||||
$scope.loadWellTestData = function(page_number){
|
||||
var getData = wellTest.getWellTestPage(page_number);
|
||||
var getData = WellTest.getWellTestPage(page_number);
|
||||
getData.then(function(d){
|
||||
for(var j = 0; j < d.objects.length; j++){
|
||||
// console.log({'Date Before':d.objects[j].created_on});
|
||||
@@ -11,9 +11,6 @@ poconsole.controller('wellTestCtrl', function($scope, $route, $http, $routeParam
|
||||
// console.log({'Date After':d.objects[j].created_on});
|
||||
}
|
||||
$scope.well_test_vals = d.objects;
|
||||
|
||||
console.log($scope.well_test_vals);
|
||||
|
||||
$scope.num_pages = d.total_pages;
|
||||
$scope.page_list = [];
|
||||
$scope.page_num = d.page;
|
||||
@@ -38,5 +35,66 @@ poconsole.controller('wellTestCtrl', function($scope, $route, $http, $routeParam
|
||||
|
||||
$scope.loadWellTestData(1);
|
||||
|
||||
$scope.startCreateWellTest = function(){
|
||||
$scope.newWellTest = {
|
||||
'duration_hours': 24,
|
||||
'volume_h2o_actual': 0,
|
||||
'volume_oil_actual': 0,
|
||||
'volume_gas_actual': 0,
|
||||
'volume_h2o_projected': 0,
|
||||
'volume_oil_projected': 0,
|
||||
'volume_gas_projected': 0,
|
||||
'api_gravity_oil': 2.0,
|
||||
'spc_gravity_h2o': 1.011,
|
||||
'created_on': Date.create()
|
||||
};
|
||||
};
|
||||
|
||||
$scope.submitNewWellTest = function(){
|
||||
var temp_date = Date.create($scope.newWellTest.created_on);
|
||||
$scope.newWellTest.created_on = temp_date.utc().format('{yyyy}-{MM}-{dd}T{HH}:{mm}:00.00000');
|
||||
var createWellTest = WellTest.createWellTest($scope.newWellTest);
|
||||
createWellTest.then(function(response_data){
|
||||
console.log("Response from API");
|
||||
console.log(response_data);
|
||||
$scope.loadWellTestData(1);
|
||||
});
|
||||
};
|
||||
|
||||
$scope.startEditWellTest = function(id){
|
||||
var getEditWellTestData = WellTest.getWellTest(id);
|
||||
getEditWellTestData.then(function(d){
|
||||
$scope.editWellTest = d;
|
||||
$scope.editWellTest.created_on = Date.utc.create($scope.editWellTest.created_on);
|
||||
});
|
||||
};
|
||||
|
||||
$scope.submitEditWellTest = function(){
|
||||
var temp_date = Date.create($scope.editWellTest.created_on);
|
||||
$scope.editWellTest.created_on = temp_date.utc().format('{yyyy}-{MM}-{dd}T{HH}:{mm}:00.00000');
|
||||
var updateWellTest = WellTest.updateWellTest($scope.editWellTest);
|
||||
updateWellTest.then(function(response_data){
|
||||
console.log("Response from API");
|
||||
console.log(response_data);
|
||||
$scope.loadWellTestData(1);
|
||||
});
|
||||
};
|
||||
|
||||
$scope.openDeleteWellTest = function(id){
|
||||
var getDeleteWellTestData = WellTest.getWellTest(id);
|
||||
getDeleteWellTestData.then(function(d){
|
||||
$scope.deleteWellTest = d;
|
||||
});
|
||||
};
|
||||
|
||||
$scope.submitDeleteWellTest = function(){
|
||||
var deleteSelectedWellTest = WellTest.deleteWellTest($scope.deleteWellTest._id);
|
||||
deleteSelectedWellTest.then(function(data){
|
||||
$scope.loadWellTestData(1);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
poconsole.factory('wellTest',function($q, $http, $log, dateConversion){
|
||||
poconsole.factory('WellTest',function($q, $http, $log, dateConversion){
|
||||
var getWellTestPage = function(page_number) {
|
||||
var deferred = $q.defer();
|
||||
$http.get('/api/well_test_vals?q={"order_by":[{"field":"created_on","direction":"desc"}]}&page=' + page_number).success(function(data) {
|
||||
@@ -7,50 +7,57 @@ poconsole.factory('wellTest',function($q, $http, $log, dateConversion){
|
||||
return deferred.promise;
|
||||
};
|
||||
|
||||
var createWellTest = function(tag){
|
||||
$http.post('/api/tags', {
|
||||
tag: tag.tag,
|
||||
name: tag.name,
|
||||
tag_class_id: parseInt(tag.tag_class_id),
|
||||
device_id: parseInt(tag.device_id),
|
||||
units: tag.units,
|
||||
min_expected: tag.min_expected,
|
||||
max_expected: tag.max_expected,
|
||||
guarantee_sec: tag.guarantee_sec,
|
||||
change_threshold: tag.change_threshold,
|
||||
description: tag.description,
|
||||
data_type_id: parseInt(tag.data_type_id)
|
||||
}).success(function(data){
|
||||
return data;
|
||||
var getWellTest = function(id){
|
||||
var deferred = $q.defer();
|
||||
$http.get('/api/well_test_vals/' + id).success(function(data) {
|
||||
deferred.resolve(data);
|
||||
});
|
||||
return deferred.promise;
|
||||
};
|
||||
|
||||
var updateWellTest = function(tag){
|
||||
$log.info("updateTag called with "+ JSON.stringify(tag));
|
||||
var put_obj = {
|
||||
tag: tag.tag,
|
||||
name: tag.name,
|
||||
tag_class_id: parseInt(tag.tag_class_id),
|
||||
device_id: parseInt(tag.device_id),
|
||||
units: tag.units,
|
||||
min_expected: tag.min_expected,
|
||||
max_expected: tag.max_expected,
|
||||
guarantee_sec: tag.guarantee_sec,
|
||||
change_threshold: tag.change_threshold,
|
||||
description: tag.description,
|
||||
data_type_id: parseInt(tag.data_type_id)
|
||||
var createWellTest = function(t){
|
||||
var deferred = $q.defer();
|
||||
var well_test = {
|
||||
'duration_hours': t.duration_hours,
|
||||
'volume_h2o_actual': t.volume_h2o_actual,
|
||||
'volume_oil_actual': t.volume_oil_actual,
|
||||
'volume_gas_actual': t.volume_gas_actual,
|
||||
'volume_h2o_projected': t.volume_h2o_projected,
|
||||
'volume_oil_projected': t.volume_oil_projected,
|
||||
'volume_gas_projected': t.volume_gas_projected,
|
||||
'api_gravity_oil': t.api_gravity_oil,
|
||||
'spc_gravity_h2o': t.spc_gravity_h2o,
|
||||
'created_on': t.created_on
|
||||
};
|
||||
console.log({id: tag._id, put_obj: put_obj});
|
||||
$http.put('/api/tags/'+ tag._id, data=put_obj).success(function(data){
|
||||
return data;
|
||||
}).error(function(err){
|
||||
$log.warn("updateTag Error: " + err);
|
||||
$http.post('/api/well_test_vals', well_test).success(function(data){
|
||||
deferred.resolve(data);
|
||||
});
|
||||
return deferred.promise;
|
||||
};
|
||||
|
||||
var updateWellTest = function(t){
|
||||
var deferred = $q.defer();
|
||||
var well_test = {
|
||||
'duration_hours': t.duration_hours,
|
||||
'volume_h2o_actual': t.volume_h2o_actual,
|
||||
'volume_oil_actual': t.volume_oil_actual,
|
||||
'volume_gas_actual': t.volume_gas_actual,
|
||||
'volume_h2o_projected': t.volume_h2o_projected,
|
||||
'volume_oil_projected': t.volume_oil_projected,
|
||||
'volume_gas_projected': t.volume_gas_projected,
|
||||
'api_gravity_oil': t.api_gravity_oil,
|
||||
'spc_gravity_h2o': t.spc_gravity_h2o,
|
||||
'created_on': t.created_on
|
||||
};
|
||||
$http.put('/api/well_test_vals/'+ t._id, data=well_test).success(function(data){
|
||||
deferred.resolve(data);
|
||||
});
|
||||
return deferred.promise;
|
||||
};
|
||||
|
||||
var deleteWellTest = function(id){
|
||||
var deferred = $q.defer();
|
||||
var url = '/api/tags/' + id;
|
||||
var url = '/api/well_test_vals/' + id;
|
||||
$http.delete(url).success(function(data) {
|
||||
deferred.resolve({
|
||||
data: data
|
||||
@@ -63,6 +70,7 @@ poconsole.factory('wellTest',function($q, $http, $log, dateConversion){
|
||||
|
||||
return {
|
||||
getWellTestPage: getWellTestPage,
|
||||
getWellTest: getWellTest,
|
||||
createWellTest: createWellTest,
|
||||
deleteWellTest: deleteWellTest,
|
||||
updateWellTest: updateWellTest
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<pre>{{editTag}}</pre>
|
||||
<!-- <pre>{{editTag}}</pre> -->
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||
|
||||
@@ -1,3 +1,165 @@
|
||||
<div class="modal fade" id="addModal">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title">Add a New Well Test...</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="well" ng-if="message"><h3 class="text-danger">{{message}}</h3></div>
|
||||
<form>
|
||||
<h2>Actual Volumes</h2>
|
||||
<div class="form-group">
|
||||
<label for="volume_oil_actual">Volume Oil (BBL)</label>
|
||||
<input type="number" ng-model="newWellTest.volume_oil_actual" class="form-control" id="volume_oil_actual" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="volume_h2o_actual">Volume Water (BBL)</label>
|
||||
<input type="number" ng-model="newWellTest.volume_h2o_actual" class="form-control" id="volume_h2o_actual" />
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="volume_gas_actual">Volume Gas (MMCF)</label>
|
||||
<input type="number" ng-model="newWellTest.volume_gas_actual" class="form-control" id="volume_gas_actual" />
|
||||
</div>
|
||||
<hr />
|
||||
<h2>Projected Volumes</h2>
|
||||
<div class="form-group">
|
||||
<label for="volume_oil_projected">Volume Oil (BBL)</label>
|
||||
<input type="number" ng-model="newWellTest.volume_oil_projected" class="form-control" id="volume_oil_projected" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="volume_h2o_projected">Volume Water (BBL)</label>
|
||||
<input type="number" ng-model="newWellTest.volume_h2o_projected" class="form-control" id="volume_h2o_projected" />
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="volume_gas_projected">Volume Gas (MMCF)</label>
|
||||
<input type="number" ng-model="newWellTest.volume_gas_projected" class="form-control" id="volume_gas_projected" />
|
||||
</div>
|
||||
<hr />
|
||||
<h2>Fluid Parameters</h2>
|
||||
<div class="form-group">
|
||||
<label for="api_gravity_oil">Oil API Gravity</label>
|
||||
<input type="number" ng-model="newWellTest.api_gravity_oil" class="form-control" id="api_gravity_oil" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="spc_gravity_h2o">Water Specific Gravity</label>
|
||||
<input type="number" ng-model="newWellTest.spc_gravity_h2o" class="form-control" id="spc_gravity_h2o" />
|
||||
</div>
|
||||
<hr />
|
||||
<div class="form-group">
|
||||
<label for="created_on">Test Start</label>
|
||||
<br />
|
||||
<quick-datepicker id="created_on" ng-model='newWellTest.created_on'></quick-datepicker>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="duration_hours">Test Duration (Hours)</label>
|
||||
<input type="number" ng-model="newWellTest.duration_hours" class="form-control" id="duration_hours" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||
<button type="button" class="btn btn-primary" ng-click="submitNewWellTest();" data-dismiss="modal">Submit Well Test</button>
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
|
||||
<div class="modal fade" id="editModal">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title">Edit a Tag...</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="well" ng-if="message"><h3 class="text-danger">{{message}}</h3></div>
|
||||
<form>
|
||||
<h2>Actual Volumes</h2>
|
||||
<div class="form-group">
|
||||
<label for="volume_oil_actual">Volume Oil (BBL)</label>
|
||||
<input type="number" ng-model="editWellTest.volume_oil_actual" class="form-control" id="volume_oil_actual" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="volume_h2o_actual">Volume Water (BBL)</label>
|
||||
<input type="number" ng-model="editWellTest.volume_h2o_actual" class="form-control" id="volume_h2o_actual" />
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="volume_gas_actual">Volume Gas (MMCF)</label>
|
||||
<input type="number" ng-model="editWellTest.volume_gas_actual" class="form-control" id="volume_gas_actual" />
|
||||
</div>
|
||||
<hr />
|
||||
<h2>Projected Volumes</h2>
|
||||
<div class="form-group">
|
||||
<label for="volume_oil_projected">Volume Oil (BBL)</label>
|
||||
<input type="number" ng-model="editWellTest.volume_oil_projected" class="form-control" id="volume_oil_projected" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="volume_h2o_projected">Volume Water (BBL)</label>
|
||||
<input type="number" ng-model="editWellTest.volume_h2o_projected" class="form-control" id="volume_h2o_projected" />
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="volume_gas_projected">Volume Gas (MMCF)</label>
|
||||
<input type="number" ng-model="editWellTest.volume_gas_projected" class="form-control" id="volume_gas_projected" />
|
||||
</div>
|
||||
<hr />
|
||||
<h2>Fluid Parameters</h2>
|
||||
<div class="form-group">
|
||||
<label for="api_gravity_oil">Oil API Gravity</label>
|
||||
<input type="number" ng-model="editWellTest.api_gravity_oil" class="form-control" id="api_gravity_oil" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="spc_gravity_h2o">Water Specific Gravity</label>
|
||||
<input type="number" ng-model="editWellTest.spc_gravity_h2o" class="form-control" id="spc_gravity_h2o" />
|
||||
</div>
|
||||
<hr />
|
||||
<div class="form-group">
|
||||
<label for="created_on">Test Start</label>
|
||||
<br />
|
||||
<quick-datepicker id="created_on" ng-model='editWellTest.created_on'></quick-datepicker>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="duration_hours">Test Duration (Hours)</label>
|
||||
<input type="number" ng-model="editWellTest.duration_hours" class="form-control" id="duration_hours" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||
<button type="button" class="btn btn-primary" ng-click="submitEditWellTest();" data-dismiss="modal">Submit Well Test Edits</button>
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
|
||||
<div class="modal fade" id="deleteModal">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title">Are you sure?</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="well" ng-if="message"><h3 class="text-danger">{{message}}</h3></div>
|
||||
<h3>Are you sure you want to delete the Well Test at {{deleteWellTest.created_on}}?</h3>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-primary" data-dismiss="modal">NO!!!!!!</button>
|
||||
<button type="button" class="btn btn-danger" ng-click="submitDeleteWellTest(deleteWellTest._id);" data-dismiss="modal">Yes, delete it!</button>
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
|
||||
|
||||
|
||||
<div class='container'>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
@@ -8,6 +170,9 @@
|
||||
|
||||
<div class='row'>
|
||||
<div class='col-md-12'>
|
||||
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#addModal">
|
||||
New Well Test
|
||||
</button>
|
||||
<div ng-if="num_pages>1" style="text-align:center;">
|
||||
<ul class="pagination">
|
||||
<li>
|
||||
@@ -37,6 +202,8 @@
|
||||
<th>Proj. Vol. Gas</th>
|
||||
<th>API Grav. Oil</th>
|
||||
<th>Specific Grav. Water</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -52,6 +219,8 @@
|
||||
<td nowrap>{{ test.volume_gas_projected }} mmcf</td>
|
||||
<td nowrap>{{ test.api_gravity_oil }}</td>
|
||||
<td nowrap>{{ test.spc_gravity_h2o }}</td>
|
||||
<td><button data-toggle="modal" data-target="#editModal" ng-click="startEditWellTest(test._id)" class="btn btn-primary">Edit</button></td>
|
||||
<td><button data-toggle="modal" data-target="#deleteModal" ng-click="openDeleteWellTest(test._id)" class="btn btn-danger">Delete</button></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
Reference in New Issue
Block a user