Skip to content

Commit 9637600

Browse files
author
Francisco Arrieta
committed
Fixed the existing series not getting the selected series. Resolved some of the todos in the finished method in wizSave.py
1 parent 40b7118 commit 9637600

4 files changed

Lines changed: 42 additions & 36 deletions

File tree

odmtools/controller/pageExisting.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ def __init__(self, parent, title, series_service , site):
1919
sizer = wx.BoxSizer(wx.VERTICAL)
2020
self.sizer = sizer
2121
self.SetSizer(sizer)
22+
self.site = site
23+
self.series_service = series_service
2224
#self.series_service = series_service
2325

2426
title = wx.StaticText(self, -1, title)
@@ -66,9 +68,10 @@ def enableButtons(self, isEnabled):
6668
self.pnlExisting.rbOriginal.Enable(isEnabled)
6769
self.pnlExisting.lblOverlap.Enable(isEnabled)
6870

69-
def getSeries(self):
71+
def get_selected_series(self):
7072
selectedObject = self.pnlExisting.olvSeriesList.GetSelectedObject()
71-
return selectedObject.method, selectedObject.quality_control_level, selectedObject.variable
73+
result = self.series_service.get_series(selectedObject.ResultID)
74+
return result.FeatureActionObj.ActionObj.MethodObj, result.ProcessingLevelObj, result.VariableObj
7275

7376
def initTable(self, dbservice, site_id):
7477
"""Set up columns and objects to be used in the objectlistview to be visible in the series_service selector"""

odmtools/gui/wizSave.py

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ def get_metadata(self):
262262

263263
elif self.pgIntro.pnlIntroduction.rbSaveExisting.GetValue():
264264
# selected an existing series
265-
method, processing_level, variable = self.pgExisting.getSeries()
265+
method, processing_level, variable = self.pgExisting.get_selected_series()
266266

267267
# Create action
268268
action = Actions()
@@ -451,42 +451,34 @@ def on_wizard_finished(self, event):
451451
else:
452452
result = self.record_service.saveAs(Variable, Method, QCL, True)
453453
'''
454-
455-
456-
#TODO: move all of this stuff into the edit_service file
457-
# Create action
458-
new_result = self.series_service.getResult(var=variable, meth=method, proc=proc_level)
459-
460-
# action = self.series_service.create.createAction(action)
461-
462454
affiliation = self.action_page.get_affiliation()
463455

464-
new_action_by = ActionBy()
465-
new_action_by.ActionID = action.ActionID
466-
new_action_by.RoleDescription = self.action_page.action_view.role_description_text_box.GetValue()
467-
new_action_by.AffiliationID = affiliation.AffiliationID
468-
new_action_by.AffiliationObj = affiliation
456+
action_by = ActionBy()
457+
action_by.ActionID = action.ActionID
458+
action_by.RoleDescription = self.action_page.action_view.role_description_text_box.GetValue()
459+
action_by.AffiliationID = affiliation.AffiliationID
460+
action_by.AffiliationObj = affiliation
469461

470-
#TODO end
462+
# result = self.series_service.getResult(var=variable, meth=method, proc=proc_level, action=action, actionby=action_by)
463+
result = self.record_service._edit_service.getResult(var=variable, meth=method, proc=proc_level, action=action, actionby=action_by)
471464

472465
try:
473466
if rbSave:
474467
result = self.record_service.save()
475468
elif rbSaveAsNew:
476-
#TODO send in Action, and Actionby
477-
result = self.record_service.save_as(variable, method, proc_level)
469+
result = self.record_service.saveAs(variable=variable, method=method, proc_level=proc_level,
470+
action=action, action_by=action_by)
478471
elif rbSaveAsExisting:
479472
if overwrite:
480-
#TODO send in just the result
481-
result = self.record_service.save_existing(variable, method, proc_level)
473+
result = self.record_service.saveExisting(result=result)
482474
elif append:
483475
#TODO send in just the result
484476
#def save_appending(self, var = None, method =None, qcl = None, overwrite = False):
485477
#TODO if i require that original or new is selected I can call once with overwrite = original
486478
if original:
487-
result = self.record_service.save_appending(variable, method, proc_level, overwrite = False)
479+
result = self.record_service.saveAppend(result=result, overwrite=False)
488480
elif new:
489-
result = self.record_service.save_appending(variable, method, proc_level, overwrite = True)
481+
result = self.record_service.saveAppend(result=result, overwrite=True)
490482

491483
Publisher.sendMessage("refreshSeries")
492484

odmtools/odmservices/edit_service.py

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import pandas as pd
1010
import datetime
1111
import numpy as np
12+
from odm2api.ODM2.models import *
1213

1314
import logging
1415
from odmtools.common.logger import LoggerTool
@@ -549,28 +550,38 @@ def saveExisting(self, result):
549550
self.add_annotations(self.memDB.annotation_list)
550551
return result
551552

552-
553553
def getResult(self, var, meth, proc, action, actionby):
554554

555555
# copy old
556556
result = self.memDB.series_service.get_series(self.memDB.df["resultid"][0])
557-
self.memDB.series_service._session.expunge(result)
557+
sampling_feature = result.FeatureActionObj.SamplingFeatureObj
558+
# self.memDB.series_service._session.expunge(result)
558559

559560
# change var, meth proc, in df #intend ts, agg stat
561+
if var:
562+
result.VariableID = var.VariableID
563+
result.VariableObj = var
560564

561-
result.VariableID = var.VariableID
562-
result.VariableObj = var
563-
result.ProcessingLevelID = proc.ProcessingLevelID
564-
result.ProcessingLevelObj = proc
565+
if proc:
566+
result.ProcessingLevelID = proc.ProcessingLevelID
567+
result.ProcessingLevelObj = proc
565568

566-
#if result does not exist
569+
if meth:
570+
result.FeatureActionObj.ActionObj.MethodID = meth.MethodID
571+
result.FeatureActionObj.ActionObj.MethodObj = meth
567572

573+
#if result does not exist
568574
if self.memDB.series_service.resultExists(result):
569-
pass
570-
#create Action : of type "derivation"
571-
#create Actionby
572-
#create FeatureAction( using current sampling feature id
573-
#create TimeSeriesResult- this should also contain all of the stuff for the Result
575+
action.ActionTypeCV = "derivation"
576+
# create Actionby done
577+
578+
# create FeatureAction (using current sampling feature id)
579+
feature_action = FeatureActions()
580+
feature_action.SamplingFeatureID = sampling_feature.SamplingFeatureID
581+
feature_action.SamplingFeatureObj = sampling_feature
582+
583+
# create TimeSeriesResult - this should also contain all of the stuff for the Result
584+
series = TimeSeriesResults()
574585

575586

576587

odmtools/odmservices/series_service.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def get_series(self, series_id=None):
8888
# print e
8989
# return None
9090
setSchema(self._session_factory.engine)
91-
return self.read.getResults(ids=[series_id])[0]
91+
return self.read.getResults(ids=[str(series_id)])[0]
9292

9393
# Query result objects for data purposes
9494
def get_result_dates(self, result_id):

0 commit comments

Comments
 (0)