Skip to content

Commit daffdbe

Browse files
committed
Merge branch 'use_api2' of https://github.com/ODM2/ODMToolsPython into use_api2
2 parents 00af92d + f519169 commit daffdbe

File tree

12 files changed

+283
-202
lines changed

12 files changed

+283
-202
lines changed

odmtools/controller/WizardActionController.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ def get_affiliation(self):
4646
return self.affiliations[index]
4747

4848

49+
50+
4951
if __name__ == '__main__':
5052
app = wx.App(False)
5153
controller = WizardActionController(None, None)

odmtools/controller/frmAddPoints.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ def onInfoBtn(self, event):
123123
:return:
124124
"""
125125
self.checkIfEditing()
126-
126+
#todo fran: update this for odm2 info.
127127
message = "DataValue: FLOAT\n" \
128128
"Date: YYYY-MM-DD\n" \
129129
"Time: HH:MM:SS\n" \
@@ -233,8 +233,9 @@ def parseTable(self):
233233
row[4] = point.censorCode
234234
row[5] = point.qualityCodeCV
235235
row[6] = point.timeAggInterval
236-
row[7] = point.timeAggregationUnitID
237-
row[8] = point.annotation
236+
# row[7] = point.timeAggregationUnitID
237+
row[7] = self.olv.cellEdit.timeAggretaionUnitChoices[point.timeAggregationUnitID]
238+
row[8] = self.olv.cellEdit.qualifierChoices[ point.annotation] if point.annotation != 'NULL' else point.annotation
238239

239240
row.extend([site_id, variable_id, method_id, organization_id, process_id])
240241

odmtools/controller/frmSeriesSelector.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,8 @@ def OnTableRightDown(self, event):
188188
# TODO @jmeline needs to fix edit, it doesn't unedit when a plot is being edited
189189
self.Bind(wx.EVT_MENU, self.onRightEdit, editItem)
190190
# TODO @jmeline will refresh and clear selected as an enhancement
191-
#self.Bind(wx.EVT_MENU, self.onRightRefresh, popup_menu.Append(popup_series_refresh, 'Refresh'))
192-
#self.Bind(wx.EVT_MENU, self.onRightClearSelected, popup_menu.Append(popup_series_refresh, 'Clear Selected'))
191+
192+
193193

194194
popup_menu.AppendSeparator()
195195
self.Bind(wx.EVT_MENU, self.onRightExData, popup_menu.Append(popup_export_data, 'Export Data'))

odmtools/controller/logicCellEdit.py

Lines changed: 7 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,17 @@ def __init__(self, parent, serviceManager, recordService):
3030
self.annotationChoices = [NULL] + ['SampleAnnotation1'] + ['SampleAnnotation2'] + ['SampleAnnotation3']
3131

3232
def fetch_annotations(self):
33-
qualifierChoices = OrderedDict((x.AnnotationCode + ':' + x.AnnotationText, x.AnnotationID)
33+
self.qualifierChoices = OrderedDict((x.AnnotationCode + ':' + x.AnnotationText, x.AnnotationID)
3434
for x in self.series_service.get_all_qualifiers() if x.AnnotationCode and x.AnnotationText)
35-
qualifierCodeChoices = [NULL] + qualifierChoices.keys() + [NEW]
35+
qualifierCodeChoices = [NULL] + self.qualifierChoices.keys() + [NEW]
3636
return qualifierCodeChoices
3737

3838
def fetchCensorCodeChoices(self):
3939
if not self.serviceManager:
4040
return [NULL]
4141

4242
series_service = self.serviceManager.get_series_service()
43-
return [NULL] + [x.Term for x in series_service.get_censor_code_cvs()]
43+
return [NULL] + [x.Name for x in series_service.get_censor_code_cvs()]
4444

4545
def fetchQualityCodeChoices(self):
4646
"""
@@ -50,13 +50,13 @@ def fetchQualityCodeChoices(self):
5050
return [NULL]
5151

5252
series_service = self.serviceManager.get_series_service()
53-
return [NULL] + [x.Term for x in series_service.get_quality_code()]
53+
return [NULL] + [x.Name for x in series_service.get_quality_code()]
5454

5555
def fetchTimeUnitChoices(self):
5656
if not self.serviceManager:
5757
return [NULL]
58-
units = self.series_service.read.getUnits()
59-
return [NULL] + [unit.UnitsName for unit in units]
58+
units = self.series_service.read.getUnits(type='time')
59+
return {unit.UnitsName:unit.UnitsID for unit in units}
6060

6161
"""
6262
--------------------
@@ -172,26 +172,7 @@ def imgGetterUTCOFFset(self, point):
172172

173173
return "error"
174174

175-
def imgGetterValueAcc(self, point):
176-
value = point.valueAccuracy
177-
point.validValueAcc = False
178-
if not value:
179-
return "error"
180-
181-
if value == NULL:
182-
point.validValueAcc = True
183-
return "check"
184175

185-
if isinstance(value, basestring):
186-
for type in [int, float]:
187-
try:
188-
value = type(value)
189-
if isinstance(value, type):
190-
point.validValueAcc = True
191-
return "check"
192-
except ValueError:
193-
continue
194-
return "error"
195176

196177
def imgGetterOffSetType(self, point):
197178
point.validOffSetType = False
@@ -336,7 +317,7 @@ def setComboForQualityCodeColumn(self, olv, rowIndex, subItemIndex):
336317
return odcb
337318

338319
def setComboForTimeAggregationUnitIDCreator(self, olv, rowIndex, subItemIndex):
339-
customCombo = CustomComboBox(olv, choices=self.timeAggretaionUnitChoices, style=wx.CB_READONLY)
320+
customCombo = CustomComboBox(olv, choices=self.timeAggretaionUnitChoices.keys(), style=wx.CB_READONLY)
340321
customCombo.Bind(wx.EVT_KEY_DOWN, olv._HandleChar)
341322
return customCombo
342323

odmtools/controller/logicEditTools.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ def restore(self):
222222
self._script("edit_service.restore()\n", 'black')
223223
Publisher.sendMessage("scroll")
224224

225-
def saveFactory(self, var=None, method=None, qcl=None):
225+
def saveFactory(self, var=None, method=None, qcl=None, action= None, actionby= None):
226226
"""
227227
228228
:param var:
@@ -236,7 +236,7 @@ def saveFactory(self, var=None, method=None, qcl=None):
236236
values['method'] = ("new_method" if method else None)
237237
values['qcl'] = ("new_qcl" if qcl else None)
238238
#values['override'] = override
239-
return values['var'], values['method'], values['qcl']#, values['isSave']
239+
return values['var'], values['method'], values['qcl'], action, actionby#, values['isSave']
240240

241241

242242
def save(self, var=None, method=None, qcl=None):
@@ -257,7 +257,7 @@ def save(self, var=None, method=None, qcl=None):
257257
Publisher.sendMessage("scroll")
258258
return result
259259

260-
def save_as(self, var=None, method=None, qcl=None):
260+
def save_as(self, variable=None, method=None, proc_level=None, action = None, action_by = None):
261261
"""
262262
263263
:param var:
@@ -266,16 +266,16 @@ def save_as(self, var=None, method=None, qcl=None):
266266
:param override:
267267
:return:
268268
"""
269-
result = self._edit_service.save_as(var=var, method=method, qcl=qcl)
269+
result = self._edit_service.save_as(variable=variable, method=method, proc_level=proc_level, action = action, action_by = action_by)
270270
if self._record:
271271
self._script(
272-
"edit_service.save_as(%s, %s, %s)\n" % (self.saveFactory(var, method, qcl)),
272+
"edit_service.save_as(%s, %s, %s, %s, %s)\n" % (self.saveFactory(variable, method, proc_level, action, action_by)),
273273
'black')
274274
#self._script("edit_service.save(%s, %s, %s, saveAs=%s)\n" % (var, method, qcl, isSave), 'black')
275275
Publisher.sendMessage("scroll")
276276
return result
277277

278-
def save_appending(self, var = None, method =None, qcl = None, overwrite = False):
278+
def save_appending(self, result = None, overwrite = False):
279279
"""
280280
281281
:param var:
@@ -284,14 +284,14 @@ def save_appending(self, var = None, method =None, qcl = None, overwrite = False
284284
:param override:
285285
:return:
286286
"""
287-
result = self._edit_service.save_appending(var=var, method=method, qcl=qcl, overwrite= overwrite)
287+
result = self._edit_service.save_appending(result= result, overwrite= overwrite)
288288
if result:
289289
print "Save worked!"
290290

291291
if self._record:
292292

293293
self._script(
294-
"edit_service.save_appending(%s, %s, %s, " % self.saveFactory(var, method, qcl)+str(overwrite )+")\n",
294+
"edit_service.save_appending(%s, %s)\n" % (result, str(overwrite )),
295295
'black')
296296
#self._script("edit_service.save(%s, %s, %s, saveAs=%s)\n" % (var, method, qcl, isSave), 'black')
297297
Publisher.sendMessage("scroll")
@@ -302,7 +302,7 @@ def save_appending(self, var = None, method =None, qcl = None, overwrite = False
302302
return result
303303

304304

305-
def save_existing(self, var=None, method=None, qcl=None):
305+
def save_existing(self, result=None):
306306
"""
307307
308308
:param var:
@@ -311,14 +311,14 @@ def save_existing(self, var=None, method=None, qcl=None):
311311
:param override:
312312
:return:
313313
"""
314-
result = self._edit_service.save_existing(var=var, method=method, qcl=qcl)
314+
result = self._edit_service.save_existing(result = result)
315315
if result:
316316
print "Save worked!"
317317

318318
if self._record:
319319

320320
self._script(
321-
"edit_service.save_existing(%s, %s, %s)\n" % (self.saveFactory(var, method, qcl)),
321+
"edit_service.save_existing(%s)\n" % (result),
322322
'black')
323323
#self._script("edit_service.save(%s, %s, %s, saveAs=%s)\n" % (var, method, qcl, isSave), 'black')
324324
Publisher.sendMessage("scroll")

odmtools/controller/olvAddPoint.py

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -60,41 +60,41 @@ def __init__(self, *args, **kwargs):
6060

6161
FastObjectListView.__init__(self, *args, **kwargs)
6262

63-
cellEdit = CellEdit(self, self.serviceManager, self.recordService)
63+
self.cellEdit = CellEdit(self, self.serviceManager, self.recordService)
6464

6565
self.checkedObjects = []
6666

6767
# # Custom Image Getters
68-
self.imgGetterDataValue = cellEdit.imgGetterDataValue
69-
self.imgGetterDate = cellEdit.imgGetterDate
70-
self.imgGetterTime = cellEdit.imgGetterTime
71-
self.imgGetterCensorCode = cellEdit.imgGetterCensorCode
72-
self.imgGetterUTCOffset = cellEdit.imgGetterUTCOFFset
73-
self.imgGetterQualityCode = cellEdit.imgGetterQualityCode
74-
self.imgGetterTimeAggInterval = cellEdit.imgGetterTimeAggregationInterval
75-
self.imgGetterTimeAggUnit = cellEdit.imgGetterTimeAggregationUnit
68+
self.imgGetterDataValue = self.cellEdit.imgGetterDataValue
69+
self.imgGetterDate = self.cellEdit.imgGetterDate
70+
self.imgGetterTime = self.cellEdit.imgGetterTime
71+
self.imgGetterCensorCode = self.cellEdit.imgGetterCensorCode
72+
self.imgGetterUTCOffset = self.cellEdit.imgGetterUTCOFFset
73+
self.imgGetterQualityCode = self.cellEdit.imgGetterQualityCode
74+
self.imgGetterTimeAggInterval = self.cellEdit.imgGetterTimeAggregationInterval
75+
self.imgGetterTimeAggUnit = self.cellEdit.imgGetterTimeAggregationUnit
7676

7777
## Custom Value Setters
7878
## Sets the value, can modify rules for setting value
79-
self.valueSetterDataValue = cellEdit.valueSetterDataValue
80-
self.valueSetterUTCOffset = cellEdit.valueSetterUTCOffset
79+
self.valueSetterDataValue = self.cellEdit.valueSetterDataValue
80+
self.valueSetterUTCOffset = self.cellEdit.valueSetterUTCOffset
8181

8282
## Custom String Converters
8383
## Changes how the string will appear in the cell after editing
84-
self.localtime2Str = cellEdit.strConverterLocalTime
85-
self.str2DataValue = cellEdit.strConverterDataValue
86-
self.utcOffSet2Str = cellEdit.strConverterUTCOffset
84+
self.localtime2Str = self.cellEdit.strConverterLocalTime
85+
self.str2DataValue = self.cellEdit.strConverterDataValue
86+
self.utcOffSet2Str = self.cellEdit.strConverterUTCOffset
8787
# self.offSetValue2Str = cellEdit.strConverterOffSetValue
8888

8989
## Custom CellEditors
9090
## Custom cell editors for each cell
91-
self.dateEditor = cellEdit.dateEditor
92-
self.timeEditor = cellEdit.localTimeEditor
93-
self.censorEditor = cellEdit.censorCodeEditor
94-
self.valueDateTimeEditorCreator = cellEdit.valueDateTimeEditor
95-
self.qualityCodeCreator = cellEdit.setComboForQualityCodeColumn
96-
self.timeAggregationUnitIDCreator = cellEdit.setComboForTimeAggregationUnitIDCreator
97-
self.annotationCreator = cellEdit.setComboForAnnotation
91+
self.dateEditor = self.cellEdit.dateEditor
92+
self.timeEditor = self.cellEdit.localTimeEditor
93+
self.censorEditor = self.cellEdit.censorCodeEditor
94+
self.valueDateTimeEditorCreator = self.cellEdit.valueDateTimeEditor
95+
self.qualityCodeCreator = self.cellEdit.setComboForQualityCodeColumn
96+
self.timeAggregationUnitIDCreator = self.cellEdit.setComboForTimeAggregationUnitIDCreator
97+
self.annotationCreator = self.cellEdit.setComboForAnnotation
9898

9999
self.SetEmptyListMsg("Add points either by csv or by adding a new row")
100100
self.AddNamedImages("error", x_mark_16.GetBitmap(), x_mark_32.GetBitmap())

odmtools/controller/pageExisting.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ def enableButtons(self, isEnabled):
7070

7171
def get_selected_series(self):
7272
selectedObject = self.pnlExisting.olvSeriesList.GetSelectedObject()
73-
result = self.series_service.get_series(selectedObject.ResultID)
74-
return result.FeatureActionObj.ActionObj.MethodObj, result.ProcessingLevelObj, result.VariableObj
73+
result = selectedObject.ResultObj#self.series_service.get_series(selectedObject.ResultID)
74+
return result.FeatureActionObj.ActionObj.MethodObj, result.ProcessingLevelObj, result.VariableObj, result
7575

7676
def initTable(self, dbservice, site_id):
7777
"""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: 10 additions & 7 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.get_selected_series()
265+
method, processing_level, variable, result = self.pgExisting.get_selected_series()
266266

267267
# Create action
268268
action = Actions()
@@ -272,6 +272,7 @@ def get_metadata(self):
272272
action.ActionFileLink = self.action_page.action_view.action_file_link_text_box.GetValue()
273273
action.MethodObj.OrganizationObj = affiliation.OrganizationObj
274274
action.BeginDateTime = self.currSeries.ResultDateTime
275+
action.BeginDateTimeUTCOffset = self.currSeries.ResultDateTimeUTCOffset
275276

276277
return site, variable, method, action, processing_level
277278

@@ -454,31 +455,33 @@ def on_wizard_finished(self, event):
454455
affiliation = self.action_page.get_affiliation()
455456

456457
action_by = ActionBy()
457-
action_by.ActionID = action.ActionID
458+
#action_by.ActionID = action.ActionID
458459
action_by.RoleDescription = self.action_page.action_view.role_description_text_box.GetValue()
459460
action_by.AffiliationID = affiliation.AffiliationID
460461
action_by.AffiliationObj = affiliation
461462

462463
# 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)
464+
result = self.pgExisting.pnlExisting.olvSeriesList.GetSelectedObject().ResultObj
465+
466+
#result = self.record_service._edit_service.getResult(var=variable, meth=method, proc=proc_level, action=action, actionby=action_by)
464467

465468
try:
466469
if rbSave:
467470
result = self.record_service.save()
468471
elif rbSaveAsNew:
469-
result = self.record_service.saveAs(variable=variable, method=method, proc_level=proc_level,
472+
result = self.record_service.save_as(variable=variable, method=method, proc_level=proc_level,
470473
action=action, action_by=action_by)
471474
elif rbSaveAsExisting:
472475
if overwrite:
473-
result = self.record_service.saveExisting(result=result)
476+
result = self.record_service.save_existing(result=result)
474477
elif append:
475478
#TODO send in just the result
476479
#def save_appending(self, var = None, method =None, qcl = None, overwrite = False):
477480
#TODO if i require that original or new is selected I can call once with overwrite = original
478481
if original:
479-
result = self.record_service.saveAppend(result=result, overwrite=False)
482+
result = self.record_service.save_appending(result=result, overwrite=False)
480483
elif new:
481-
result = self.record_service.saveAppend(result=result, overwrite=True)
484+
result = self.record_service.save_appending(result=result, overwrite=True)
482485

483486
Publisher.sendMessage("refreshSeries")
484487

odmtools/odmdata/memory_database.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ def chunking(self, data):
160160

161161

162162
#break into chunks to get around sqlite's restriction. allowing user to send in only 999 arguments at once
163-
#TODO update to work with odm2
163+
164164

165165
def updateFlag(self, ids, value):
166166

@@ -211,8 +211,9 @@ def addPoints(self, points):
211211
"resultid":self.df["resultid"][0]
212212
# todo: Add annotations
213213
}
214-
if point[8]:
215-
self.updateFlag(point[1], self.series_service.get_annotation_by_code(point[8].split(':')[0]).AnnotationID)
214+
if point[8] != 'NULL':
215+
print point[8]
216+
self.updateFlag([point[1]], [point[8]])
216217

217218
setSchema(self.mem_service._session_factory.engine)
218219
self.mem_service._session.execute(stmt, vals)

0 commit comments

Comments
 (0)