Skip to content

Commit a071d9a

Browse files
author
stephanie
committed
update add point form
1 parent 8e9b140 commit a071d9a

5 files changed

Lines changed: 34 additions & 51 deletions

File tree

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/logicCellEdit.py

Lines changed: 5 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ 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):
@@ -55,8 +55,8 @@ def fetchQualityCodeChoices(self):
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/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/odmdata/memory_database.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ def addPoints(self, points):
212212
# todo: Add annotations
213213
}
214214
if point[8]:
215-
self.updateFlag(point[1], self.series_service.get_annotation_by_code(point[8].split(':')[0]).AnnotationID)
215+
self.updateFlag(point[1], self.series_service.get_annotation_by_id(point[8]).AnnotationID)
216216

217217
setSchema(self.mem_service._session_factory.engine)
218218
self.mem_service._session.execute(stmt, vals)

odmtools/odmservices/series_service.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -686,7 +686,7 @@ def update_values(self, updates):
686686
# update_list = {'value':updates["datavalue"].tolist(), 'id':updates.index.to_pydatetime().tolist()}
687687
vals = self.create._session.execute(stmt, update_list)
688688

689-
689+
690690
# def create_new_series(self, data_values, site_id, variable_id, method_id, source_id, qcl_id):
691691
# """
692692
#
@@ -870,7 +870,8 @@ def get_quality_code(self):
870870

871871
def get_annotation_by_code(self, code):
872872
return self.read.getAnnotations(codes=[code])[0]
873-
873+
def get_annotation_by_id (self, id):
874+
return self.read.getAnnotations(ids=[id])[0]
874875
def get_all_annotations(self):
875876
return self.read.getAnnotations(type=None)
876877

0 commit comments

Comments
 (0)