Skip to content

Commit eb28383

Browse files
author
stephanie
committed
merge save_issue
2 parents e31fedd + a3f93c0 commit eb28383

21 files changed

+233
-115
lines changed

odmtools/controller/frmSeriesSelector.py

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,9 @@ def refreshTableSeries(self, db):
8585
8686
:return:
8787
"""
88+
chcklist= self.tblSeries.GetCheckedObjects()
89+
90+
8891
self.memDB.set_series_service(db)
8992
object = self.series_service.get_all_series()
9093
#checkedObjs = self.tblSeries.GetCheckedObjects()
@@ -94,6 +97,11 @@ def refreshTableSeries(self, db):
9497
if x.id not in idList:
9598
self.tblSeries.AddObject(x)
9699

100+
101+
for c in chcklist:
102+
self.tblSeries.SetCheckState(c, True)
103+
104+
97105
#for x in checkedObjs:
98106
# super(FastObjectListView, self.tblSeries).SetCheckState(x, True)
99107

@@ -102,11 +110,22 @@ def refreshSeries(self):
102110
103111
:return:
104112
"""
113+
chcklist= self.tblSeries.GetCheckedObjects()
105114
self.series_service = None
115+
106116
self.series_service = self.parent.Parent.createService()
107117
#self.refreshTableSeries(self.dbservice)
108118
self.resetDB(self.series_service)
109-
logger.info("Repopulate Series Selector")
119+
120+
for c in chcklist:
121+
for val in self.tblSeries.GetObjects():
122+
if c == val:
123+
self.tblSeries.SetCheckState(val, True)
124+
break
125+
126+
logger.debug("Repopulate Series Selector")
127+
128+
110129

111130
def initSVBoxes(self):
112131
"""
@@ -557,14 +576,19 @@ def onReadyToEdit(self):
557576

558577
def stopEdit(self):
559578
"""When edit button is untoggled, the editing feature closes
560-
561579
:return:
562580
"""
581+
563582
self.isEditing = False
583+
chcklist= self.tblSeries.GetCheckedObjects()
584+
564585
self.tblSeries.RefreshObject(self.tblSeries.editingObject)
565-
self.tblSeries.editingObject = None
586+
for c in chcklist:
587+
self.tblSeries.SetCheckState(c, True)
588+
566589
self.memDB.stopEdit()
567590

591+
568592
def isEditing(self):
569593
"""
570594

odmtools/controller/pageExisting.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
########################################################################
1515
class pageExisting(wiz.WizardPageSimple):
16-
def __init__(self, parent, title, service_man, site):
16+
def __init__(self, parent, title, series_service , site):
1717
"""Constructor"""
1818
wiz.WizardPageSimple.__init__(self, parent)
1919

@@ -30,7 +30,7 @@ def __init__(self, parent, title, service_man, site):
3030
#pos=wx.Point(536, 285), size=wx.Size(439, 357),
3131
#style=wx.TAB_TRAVERSAL)#, sm = service_man, series = series)
3232
self.sizer.Add(self.pnlExisting, 85, wx.ALL, 5)
33-
self._init_data(service_man.get_series_service(), site.id)
33+
self._init_data(series_service, site.id)
3434

3535

3636
self.pnlExisting.olvSeriesList.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnOLVItemSelected)

odmtools/gui/frmODMTools.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,7 @@ def stopEdit(self, event):
446446
self.dataTable.stopEdit()
447447
self.pnlPlot.stopEdit()
448448
Publisher.sendMessage("toggleEdit", checked=False)
449+
self.memDB.reset_edit()
449450
self.record_service = None
450451
self._ribbon.toggleEditButtons(False)
451452

odmtools/gui/mnuPlotToolbar.py

Lines changed: 4 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ def __init__(self, plotCanvas, multPlots=False, allowselect=False):
134134

135135
self.msg = wx.StaticText(self, -1, "")
136136
self.AddControl(self.msg)
137-
self.canvas.mpl_connect('scroll_event', self.on_scroll_zoom)
137+
138138
self.Realize()
139139

140140
def editSeries(self, xys, edit):
@@ -151,6 +151,8 @@ def stopEdit(self):
151151
self.xys = None
152152
self.editCurve = None
153153
self.lassoAction = None
154+
# untoggle select button
155+
self.ToggleTool(self.select_tool.Id, False)
154156
# disable select button
155157
self.select_tool.Enable(False)
156158
self.zoom_to_data.Enable(False)
@@ -159,7 +161,7 @@ def stopEdit(self):
159161
#self.ToggleTool(self.select_tool.Id, False)
160162

161163

162-
# pan the graph to the left
164+
# pan the graph to the left
163165
def _on_custom_pan_left(self, evt):
164166
ONE_SCREEN = 7 # we default to 1 week
165167
axes = self.canvas.figure.axes[0]
@@ -250,8 +252,6 @@ def on_toggle_zoom_data_tool(self, event):
250252
self.canvas.draw()
251253

252254

253-
254-
255255
#must add these methods for mac functionality
256256
def release_zoom(self, event):
257257
super(self.__class__, self).release_zoom(event)
@@ -268,37 +268,3 @@ def forward(self, event):
268268
def home(self, event):
269269
super(self.__class__, self).home(event)
270270
self.canvas.draw()
271-
272-
273-
274-
275-
def on_scroll_zoom(self, event):
276-
axes = self.canvas.figure.axes[0]
277-
base_scale = 1.2
278-
# get the current x and y limits
279-
cur_xlim = axes.get_xlim()
280-
cur_ylim = axes.get_ylim()
281-
cur_xrange = (cur_xlim[1] - cur_xlim[0])*.5
282-
cur_yrange = (cur_ylim[1] - cur_ylim[0])*.5
283-
xdata = event.xdata # get event x location
284-
ydata = event.ydata # get event y location
285-
if event.button == 'up':
286-
# deal with zoom in
287-
scale_factor = 1/base_scale
288-
elif event.button == 'down':
289-
# deal with zoom out
290-
scale_factor = base_scale
291-
else:
292-
# deal with something that should never happen
293-
scale_factor = 1
294-
print event.button
295-
# set new limits
296-
axes.set_xlim([xdata - cur_xrange*scale_factor,
297-
xdata + cur_xrange*scale_factor])
298-
axes.set_ylim([ydata - cur_yrange*scale_factor,
299-
ydata + cur_yrange*scale_factor])
300-
self.canvas.draw() # force re-draw
301-
302-
# fig = ax.get_figure() # get the figure of interest
303-
# attach the call back
304-

odmtools/gui/pageMethod.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ def _init_ctrls(self, prnt):
7070

7171

7272

73-
def __init__(self, parent, id, pos, size, style, name, sm, method):
74-
self.series_service = sm.get_series_service()
73+
def __init__(self, parent, id, pos, size, style, name, ss, method):
74+
self.series_service = ss
7575
self.prev_val = method
7676
self._init_ctrls(parent)
7777

@@ -114,10 +114,10 @@ def getMethod(self):
114114
m = Method()
115115
if self.rbGenerate.Value:
116116
genmethod = "Values derived from ODM Tools Python"
117-
118-
try:
119-
m= self.series_service.get_method_by_description(genmethod)
120-
except:
117+
m= self.series_service.get_method_by_description(genmethod)
118+
if m is None:
119+
logger.debug("assigning new method description")
120+
m = Method()
121121
m.description = genmethod
122122

123123
elif self.rbSelect.Value:
@@ -130,5 +130,6 @@ def getMethod(self):
130130

131131

132132
elif self.rbCreateNew.Value:
133+
logger.debug("assigning new method description")
133134
m.description = self.txtMethodDescrip.GetValue()
134135
return m

odmtools/gui/pageQCL.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ def _init_ctrls(self, prnt):
8585
label=u'Explanation:', name=u'lblExplanation', parent=self,
8686
pos=wx.Point(16, 248), size=wx.Size(61, 13), style=0)
8787

88-
def __init__(self, parent, id, pos, size, style, name, sm, qcl):
89-
self.series_service = sm.get_series_service()
88+
def __init__(self, parent, id, pos, size, style, name, ss, qcl):
89+
self.series_service = ss
9090
self.prev_val = qcl
9191
self._init_ctrls(parent)
9292

odmtools/gui/pageSummary.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ def _init_ctrls(self, prnt):
3535

3636
self._init_sizers()
3737

38-
def __init__(self, parent, id, size, style, name, sm, pos= (0,0)):
39-
self.series_service = sm.get_series_service()
38+
def __init__(self, parent, id, size, style, name, ss, pos= (0,0)):
39+
self.series_service = ss
4040
self._init_ctrls(parent)
4141

4242

odmtools/gui/plotHistogram.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ def _createPlot(self, oneSeries, rows, cols, index):
101101
ax = self.figure.add_subplot(repr(rows) + repr(cols) + repr(index))
102102

103103
logger.debug("HISTOGRAM: %s"% ax)
104+
logger.debut("rows: %s cols: %s, index: %s"%(rows, cols, index))
104105

105106
# oneSeries.filteredData.hist(ax= ax, color='k', alpha=0.5, bins=50)
106107

odmtools/gui/pnlPlot.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,11 +165,12 @@ def redrawPlots(self):
165165
logger.debug("Plot Boxwhisker")
166166
self.pltBox.Plot(self._seriesPlotInfo)
167167

168+
logger.debug("Plot Timeseries")
169+
self.pltTS.Plot(self._seriesPlotInfo)
170+
168171
logger.debug("Plot Histogram")
169172
self.pltHist.Plot(self._seriesPlotInfo)
170173

171-
logger.debug("Plot Timeseries")
172-
self.pltTS.Plot(self._seriesPlotInfo)
173174

174175
self.onShowLegend(event=None, isVisible=self.legendVisible)
175176
maxStart, maxEnd, currStart, currEnd = self._seriesPlotInfo.getDates()

odmtools/gui/wizSave.py

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
########################################################################
2727
class QCLPage(wiz.WizardPageSimple):
28-
def __init__(self, parent, title, service_man, qcl):
28+
def __init__(self, parent, title, series_service, qcl):
2929
"""Constructor"""
3030
wiz.WizardPageSimple.__init__(self, parent)
3131

@@ -40,10 +40,10 @@ def __init__(self, parent, title, service_man, qcl):
4040
sizer.Add(wx.StaticLine(self, -1), 5, wx.EXPAND | wx.ALL, 5)
4141
self.panel = pageQCL.pnlQCL(self, id=wxID_PNLQCL, name=u'pnlQCL',
4242
pos=wx.Point(536, 285), size=wx.Size(439, 357),
43-
style=wx.TAB_TRAVERSAL, sm=service_man, qcl=qcl)
43+
style=wx.TAB_TRAVERSAL, ss=series_service, qcl=qcl)
4444
self.sizer.Add(self.panel, 85, wx.ALL, 5)
45-
series_service = service_man.get_series_service()
46-
self._init_data(series_service)
45+
46+
self._init_data(self.panel.series_service)
4747

4848
def _init_data(self, series):
4949
qcl = series.get_all_qcls()
@@ -62,7 +62,7 @@ def _init_data(self, series):
6262

6363
########################################################################
6464
class VariablePage(wiz.WizardPageSimple):
65-
def __init__(self, parent, title, service_man, var):
65+
def __init__(self, parent, title, service_manager, var):
6666
"""Constructor"""
6767
wiz.WizardPageSimple.__init__(self, parent)
6868

@@ -77,10 +77,10 @@ def __init__(self, parent, title, service_man, var):
7777
sizer.Add(wx.StaticLine(self, -1), 5, wx.EXPAND | wx.ALL, 5)
7878
self.panel = pageVariable.pnlVariable(self, id=wxID_PNLVARIABLE, name=u'pnlVariable',
7979
pos=wx.Point(536, 285), size=wx.Size(439, 357),
80-
style=wx.TAB_TRAVERSAL, sm=service_man, var=var)
80+
style=wx.TAB_TRAVERSAL, sm=service_manager, var=var)
8181
self.sizer.Add(self.panel, 85, wx.ALL, 5)
82-
series_service = service_man.get_series_service()
83-
self._init_data(series_service)
82+
83+
self._init_data(self.panel.series_service)
8484

8585
def _init_data(self, series_service):
8686
vars = series_service.get_all_variables()
@@ -109,7 +109,7 @@ def _init_data(self, series_service):
109109

110110
########################################################################
111111
class MethodPage(wiz.WizardPageSimple):
112-
def __init__(self, parent, title, service_man, method):
112+
def __init__(self, parent, title, series_service, method):
113113
"""Constructor"""
114114
wiz.WizardPageSimple.__init__(self, parent)
115115

@@ -124,10 +124,10 @@ def __init__(self, parent, title, service_man, method):
124124
sizer.Add(wx.StaticLine(self, -1), 5, wx.EXPAND | wx.ALL, 5)
125125
self.panel = pageMethod.pnlMethod(self, id=wxID_PNLMETHOD, name=u'pnlMethod',
126126
pos=wx.Point(536, 285), size=wx.Size(439, 357),
127-
style=wx.TAB_TRAVERSAL, sm=service_man, method=method)
127+
style=wx.TAB_TRAVERSAL, ss=series_service, method=method)
128128
self.sizer.Add(self.panel, 85, wx.ALL, 5)
129-
series_service = service_man.get_series_service()
130-
self._init_data(series_service)
129+
130+
self._init_data(self.panel.series_service)
131131

132132
def _init_data(self, series):
133133
meth = series.get_all_methods()
@@ -147,7 +147,7 @@ def _init_data(self, series):
147147

148148
########################################################################
149149
class SummaryPage(wiz.WizardPageSimple):
150-
def __init__(self, parent, title, service_man):
150+
def __init__(self, parent, title, series_service):
151151
"""Constructor"""
152152
wiz.WizardPageSimple.__init__(self, parent)
153153
self.parent = parent
@@ -161,7 +161,7 @@ def __init__(self, parent, title, service_man):
161161
sizer.Add(wx.StaticLine(self, -1), 5, wx.EXPAND | wx.ALL, 5)
162162
self.panel = pageSummary.pnlSummary(self, id=wxID_PNLSUMMARY, name=u'pnlSummary',
163163
pos=wx.Point(536, 285), size=wx.Size(439, 357),
164-
style=wx.TAB_TRAVERSAL, sm=service_man)
164+
style=wx.TAB_TRAVERSAL, ss=series_service)
165165
self.sizer.Add(self.panel, 85, wx.ALL, 5)
166166

167167

@@ -216,34 +216,41 @@ def _init_ctrls(self, prnt):
216216
def get_metadata(self):
217217

218218
if self.pgIntro.pnlIntroduction.rbSaveAs.GetValue():
219+
logger.debug("SaveAs")
219220
method = self.pgMethod.panel.getMethod()
220221
qcl = self.pgQCL.panel.getQCL()
221222
variable = self.pgVariable.panel.getVariable()
222223
elif self.pgIntro.pnlIntroduction.rbSave.GetValue():
224+
logger.debug("Save")
223225
method = self.currSeries.method
224226
qcl = self.currSeries.quality_control_level
225227
variable = self.currSeries.variable
226228
elif self.pgIntro.pnlIntroduction.rbSaveExisting.GetValue():
229+
logger.debug("Existing")
227230
method, qcl, variable = self.pgExisting.getSeries()
228231
site = self.currSeries.site
229232
source = self.currSeries.source
230233
logger.debug("site: %s, variable: %s, method: %s, source: %s, qcl: %s" % (
231-
site.id, variable.id, method.id, source.id, qcl.id))
234+
str(site), str(variable), str(method), str(source), str(qcl)))
232235
return site, variable, method, source, qcl
233236

234-
def __init__(self, parent, service_man, record_service):
237+
def __init__(self, parent, service_manager, record_service):
235238
self._init_ctrls(parent)
236-
self.series_service = service_man.get_series_service()
239+
try:
240+
self.series_service = record_service._edit_service.memDB.series_service #service_man.get_series_service()
241+
except:
242+
#for testing
243+
self.series_service = record_service.memDB.series_service
237244
self.record_service = record_service
238245
# self.is_changing_series = False
239246
self.currSeries = record_service.get_series()
240247

241248
self.pgIntro = pageIntro.pageIntro(self, "Intro")
242-
self.pgMethod = MethodPage(self, "Method", service_man, self.currSeries.method)
243-
self.pgQCL = QCLPage(self, "Quality Control Level", service_man, self.currSeries.quality_control_level)
244-
self.pgVariable = VariablePage(self, "Variable", service_man, self.currSeries.variable)
245-
self.pgExisting = pageExisting.pageExisting(self, "Existing Series", service_man, self.currSeries.site)
246-
self.pgSummary = SummaryPage(self, "Summary", service_man)
249+
self.pgMethod = MethodPage(self, "Method", self.series_service, self.currSeries.method)
250+
self.pgQCL = QCLPage(self, "Quality Control Level", self.series_service, self.currSeries.quality_control_level)
251+
self.pgVariable = VariablePage(self, "Variable", service_manager, self.currSeries.variable)
252+
self.pgExisting = pageExisting.pageExisting(self, "Existing Series", self.series_service, self.currSeries.site)
253+
self.pgSummary = SummaryPage(self, "Summary", self.series_service)
247254

248255
self.FitToPage(self.pgIntro)
249256

0 commit comments

Comments
 (0)