Skip to content

Commit bea2e0c

Browse files
author
Francisco Arrieta
committed
flag form shows up on add point when selecting new annotation
Also set the default radio button for proc_level in save wizard.
1 parent daeff4b commit bea2e0c

File tree

6 files changed

+49
-18
lines changed

6 files changed

+49
-18
lines changed

odmtools/controller/NewFlagValuesController.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,24 @@
11
import wx
22
from odmtools.view.NewFlagValuesView import NewFlagValuesView
3+
import odmtools.controller.olvAddPoint
34

45

56
class NewFlagValuesController(NewFlagValuesView):
67
def __init__(self, parent, series_service, qualifier_choice, record_service):
78

89
NewFlagValuesView.__init__(self, parent)
10+
self.parent = parent
911
self.series_service = series_service
1012
self.qualifer_choice = qualifier_choice
1113
self.record_service = record_service
1214
self.__new_annotation = "New Annontation"
1315

14-
annotations = self.series_service.get_all_annotations()
15-
self.append_items_to_annotation(annotations)
16-
self.annotation_combo.SetSelection(0)
16+
if self.qualifer_choice:
17+
annotations = self.series_service.get_all_annotations()
18+
self.append_items_to_annotation(annotations)
19+
1720
self.annotation_combo.Append(self.__new_annotation)
21+
self.annotation_combo.SetSelection(0)
1822

1923
self.cancel_button.Bind(wx.EVT_BUTTON, self.on_cancel)
2024
self.Bind(wx.EVT_CLOSE, self.on_cancel)
@@ -32,7 +36,9 @@ def append_items_to_annotation(self, annotations):
3236
def on_cancel(self, event):
3337
self.MakeModal(False)
3438
self.Destroy()
35-
event.Skip()
39+
40+
if event:
41+
event.Skip()
3642

3743
def on_ok(self, event):
3844
selection = self.annotation_combo.GetValue()
@@ -46,6 +52,9 @@ def on_ok(self, event):
4652
annotation = self.series_service.get_annotation_by_code(code)
4753
self.record_service.flag(annotation.AnnotationID)
4854

55+
if isinstance(self.parent, odmtools.controller.olvAddPoint.OLVAddPoint):
56+
self.parent.refresh_annotations()
57+
4958
self.on_cancel(event)
5059

5160
if __name__ == '__main__':

odmtools/controller/logicCellEdit.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import wx
44
import wx.combo
55
from wx.lib import masked
6+
from odmtools.controller.NewFlagValuesController import NewFlagValuesController
67

78
__author__ = 'Jacob'
89

@@ -324,8 +325,27 @@ def setComboForTimeAggregationUnitIDCreator(self, olv, rowIndex, subItemIndex):
324325
def setComboForAnnotation(self, olv, rowIndex, subItemIndex):
325326
customCombo = CustomComboBox(olv, choices=self.annotationChoices, style=wx.CB_READONLY)
326327
customCombo.Bind(wx.EVT_KEY_DOWN, olv._HandleChar)
328+
customCombo.Bind(wx.EVT_COMBOBOX, self.on_annotation_combo_change)
327329
return customCombo
328330

331+
def on_annotation_combo_change(self, event):
332+
if not event:
333+
return
334+
335+
combo = event.GetEventObject()
336+
if combo.GetValue() == NEW:
337+
self.__show_flag_controller()
338+
339+
event.Skip()
340+
341+
def __show_flag_controller(self):
342+
add_flag_controller = NewFlagValuesController(self.parent, series_service=self.series_service,
343+
qualifier_choice=None,
344+
record_service=self.recordService)
345+
346+
add_flag_controller.collapsible_panel.expand_panel()
347+
add_flag_controller.Show()
348+
329349

330350
class DatePicker(wx.DatePickerCtrl):
331351
"""

odmtools/controller/olvAddPoint.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,9 @@ def __init__(self, *args, **kwargs):
107107
self.oddRowsBackColor = wx.Colour(191, 239, 255)
108108
self.cellEditMode = self.CELLEDIT_DOUBLECLICK
109109

110+
def refresh_annotations(self):
111+
self.cellEdit.annotationChoices = self.cellEdit.fetch_annotations()
112+
110113
def buildOlv(self):
111114
columns = [
112115
ColumnDefn(title="DataValue",

odmtools/odmservices/edit_service.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -566,18 +566,17 @@ def getResult(self, var, meth, proc, action, action_by):
566566

567567
if meth:
568568
action.MethodID = meth.MethodID
569-
result.FeatureActionObj.ActionObj.MethodID = meth.MethodID
569+
action.MethodObj = meth.MethodObj
570570

571571
#if result does not exist
572572
if not self.memDB.series_service.resultExists(result):
573573
try:
574574
#create Action
575575
action.ActionID = None
576-
#action.MethodObj = None
577576
action.ActionTypeCV = "Derivation"
578577
self.memDB.series_service.read._session.expunge(action.MethodObj.OrganizationObj)
579578
self.memDB.series_service.read._session.expunge(action.MethodObj)
580-
action = self.memDB.series_service.create.create(action)
579+
action = self.memDB.series_service.create.createAction(action) # it times out. find out why
581580
print action
582581

583582

odmtools/view/NewFlagValuesView.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ def __init__(self, parent):
1717
content_panel.SetupScrolling()
1818

1919
annotation_title = wx.StaticText(content_panel, label="Annotation")
20-
collapsible_panel = CustomCollapsiblePanel(content_panel, title="Panel 1", expand=0, use_combo=True, combo_trigger_item="New Annontation")
21-
self.annotation_combo = collapsible_panel.interactive_item
20+
self.collapsible_panel = CustomCollapsiblePanel(content_panel, title="Panel 1", expand=0, use_combo=True, combo_trigger_item="New Annontation")
21+
self.annotation_combo = self.collapsible_panel.interactive_item
2222

23-
code_title = wx.StaticText(collapsible_panel, label="Code")
24-
self.code_textbox = wx.TextCtrl(collapsible_panel, size=(100, -1))
25-
text_title = wx.StaticText(collapsible_panel, label="Text")
26-
self.text_textbox = wx.TextCtrl(collapsible_panel)
27-
link_text = wx.StaticText(collapsible_panel, label="Link")
28-
self.link_textbox = wx.TextCtrl(collapsible_panel)
23+
code_title = wx.StaticText(self.collapsible_panel, label="Code")
24+
self.code_textbox = wx.TextCtrl(self.collapsible_panel, size=(100, -1))
25+
text_title = wx.StaticText(self.collapsible_panel, label="Text")
26+
self.text_textbox = wx.TextCtrl(self.collapsible_panel)
27+
link_text = wx.StaticText(self.collapsible_panel, label="Link")
28+
self.link_textbox = wx.TextCtrl(self.collapsible_panel)
2929

3030
sizer = wx.BoxSizer(wx.VERTICAL)
3131
content_panel_sizer = wx.BoxSizer(wx.VERTICAL)
@@ -36,10 +36,10 @@ def __init__(self, parent):
3636
content_panel_sizer.Add(link_text, 0, wx.EXPAND | wx.ALL ^ wx.BOTTOM, 10)
3737
content_panel_sizer.Add(self.link_textbox, 0, wx.EXPAND | wx.LEFT | wx.RIGHT, 10)
3838

39-
collapsible_panel.finish_layout()
39+
self.collapsible_panel.finish_layout()
4040

4141
sizer.Add(annotation_title, 0, wx.EXPAND | wx.ALL ^ wx.BOTTOM, 10)
42-
sizer.Add(collapsible_panel, 1, wx.EXPAND | wx.LEFT | wx.RIGHT, 10)
42+
sizer.Add(self.collapsible_panel, 1, wx.EXPAND | wx.LEFT | wx.RIGHT, 10)
4343
content_panel.SetSizer(sizer)
4444

4545
##########################################

odmtools/view/WizardProcessLevelView.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ def __init__(self, parent):
2727
font = wx.Font(18, wx.SWISS, wx.NORMAL, wx.BOLD)
2828
header_text.SetFont(font)
2929
self.SetupScrolling()
30+
self.existing_process_radio.SetValue(True)
3031
self.existing_process_table.SetSingleStyle(wx.LC_SINGLE_SEL, add=True)
3132

32-
3333
# Add components to sizer
3434
table_sizer = wx.BoxSizer(wx.VERTICAL)
3535
table_sizer.Add(self.existing_process_table, 0, wx.EXPAND | wx.ALL, 0)

0 commit comments

Comments
 (0)