Skip to content

Commit b5d5daa

Browse files
author
sreeder
committed
merging test_util
2 parents 304d635 + 70eac3c commit b5d5daa

58 files changed

Lines changed: 7133 additions & 5467 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ODMTools.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,6 @@ def OnInit(self):
6060
app= self.frame
6161
return True
6262

63-
def runODM():
64-
app = wx.App(False)
65-
#frame = create(None)
66-
#frame.Show()
67-
app.MainLoop()
6863

6964
if __name__ == '__main__':
7065
logger.info("Welcome to ODMTools Python. Please wait as system loads")

doc/wxFormBuilder/clsIntro.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def __init__( self, parent ):
2929

3030
bSizer2 = wx.BoxSizer( wx.VERTICAL )
3131

32-
self.lblHow = wx.StaticText( self.m_panel2, wx.ID_ANY, u"How would you like to save the series?", wx.DefaultPosition, wx.DefaultSize, 0 )
32+
self.lblHow = wx.StaticText( self.m_panel2, wx.ID_ANY, u"How would you like to save the series_service?", wx.DefaultPosition, wx.DefaultSize, 0 )
3333
self.lblHow.Wrap( -1 )
3434
bSizer2.Add( self.lblHow, 0, wx.ALL, 15 )
3535

odmtools/common/taskServer.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,13 @@ def worker(cls, dispatcher):
131131
if task_type == "InitEditValues":
132132
connection = SeriesService("sqlite:///:memory:")
133133
df = task[1]
134+
<<<<<<< HEAD
134135
logger.debug("Load series from db")
135136
df.to_sql(name="DataValues", con=connection._connection.engine, flavor='sqlite', index = False, chunksize = 10000)
137+
=======
138+
logger.debug("Load series_service from db")
139+
df.to_sql(name="DataValues", con=connection._session_factory.engine, flavor='sqlite', index = False, chunksize = 10000)
140+
>>>>>>> origin/update_cvs
136141
logger.debug("done loading database")
137142
result = connection
138143
if task_type == "UpdateEditDF":
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
import wx
2+
from wx.wizard import WizardPageSimple
3+
from odmtools.view.WizardMethodView import WizardMethodView
4+
from odmtools.odmdata import Method
5+
6+
7+
class WizardMethodController(WizardPageSimple):
8+
def __init__(self, parent, series_service):
9+
WizardPageSimple.__init__(self, parent)
10+
11+
main_sizer = wx.BoxSizer(wx.VERTICAL)
12+
self.method_view = WizardMethodView(self)
13+
main_sizer.Add(self.method_view, 1, wx.EXPAND | wx.RIGHT, -16) # Sufficient to hide the scroll bar
14+
self.SetSizer(main_sizer)
15+
16+
self.series_service = series_service
17+
table_columns = ["Descriptions", "Link", "ID"]
18+
self.method_view.existing_method_table.set_columns(table_columns)
19+
self.method_view.method_type_combo.AppendItems(["ABC"])
20+
self.on_auto_radio(None)
21+
22+
self.method_view.auto_method_radio.Bind(wx.EVT_RADIOBUTTON, self.on_auto_radio)
23+
self.method_view.existing_method_radio.Bind(wx.EVT_RADIOBUTTON, self.on_existing_method_radio)
24+
self.method_view.create_method_radio.Bind(wx.EVT_RADIOBUTTON, self.on_create_method_radio)
25+
26+
self.__fetch_data()
27+
28+
def on_auto_radio(self, event):
29+
self.method_view.existing_method_table.Enable(False)
30+
self.__set_create_method_section_(False)
31+
32+
def on_existing_method_radio(self, event):
33+
self.method_view.existing_method_table.Enable()
34+
self.__set_create_method_section_(False)
35+
36+
def __set_create_method_section_(self, active):
37+
if not isinstance(active, bool):
38+
raise Exception("active must be type bool")
39+
40+
self.method_view.method_code_text_ctrl.Enable(active)
41+
self.method_view.method_name_text_ctrl.Enable(active)
42+
self.method_view.method_type_combo.Enable(active)
43+
self.method_view.organization_combo.Enable(active)
44+
self.method_view.method_link_text_ctrl.Enable(active)
45+
self.method_view.description_text_ctrl.Enable(active)
46+
47+
def on_create_method_radio(self, event):
48+
self.method_view.existing_method_table.Disable()
49+
self.__set_create_method_section_(True)
50+
51+
def __fetch_data(self):
52+
methods = self.series_service.get_all_methods()
53+
data = []
54+
for meth in methods:
55+
data.append([
56+
meth.description,
57+
meth.link,
58+
meth.id
59+
])
60+
61+
self.method_view.existing_method_table.set_table_content(data=data)
62+
63+
def getMethod(self):
64+
m = Method()
65+
if self.method_view.auto_method_radio.GetValue():
66+
description = "Values derived from ODM Tools Python"
67+
m = self.series_service.get_method_by_code(description)
68+
if m is None:
69+
m = Method()
70+
m.description = description
71+
elif self.method_view.existing_method_radio.GetValue():
72+
index = self.method_view.existing_method_table.GetFirstSelected()
73+
desc = self.method_view.existing_method_table.GetItem(index, 0).GetText()
74+
75+
m = self.series_service.get_method_by_code(desc)
76+
elif self.method_view.create_method_radio.GetValue():
77+
m.description = self.method_view.description_text_ctrl.GetValue()
78+
79+
80+
return m
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
import wx
2+
from odmtools.view.WizardProcessLevelView import WizardProcessLevelView
3+
from wx.wizard import WizardPageSimple
4+
from odmtools.odmdata import QualityControlLevel
5+
6+
7+
class WizardProcessLevelController(WizardPageSimple):
8+
def __init__(self, parent, service_manager):
9+
WizardPageSimple.__init__(self, parent)
10+
11+
self.service_manager = service_manager
12+
main_sizer = wx.BoxSizer(wx.VERTICAL)
13+
self.processing_level_view = WizardProcessLevelView(self)
14+
main_sizer.Add(self.processing_level_view, 1, wx.EXPAND | wx.RIGHT, -16)
15+
self.SetSizer(main_sizer)
16+
17+
table_columns = ["Code", "Definition", "Explanation", "ID"]
18+
self.processing_level_view.existing_process_table.set_columns(table_columns)
19+
self.__fetch_data()
20+
21+
self.processing_level_view.create_process_level_radio.Bind(wx.EVT_RADIOBUTTON, self.on_create_radio)
22+
self.processing_level_view.existing_process_radio.Bind(wx.EVT_RADIOBUTTON, self.on_existing_radio)
23+
24+
def on_create_radio(self, event):
25+
self.processing_level_view.existing_process_table.Enable(False)
26+
self.__set_create_proces_section(True)
27+
28+
def on_existing_radio(self, event):
29+
self.processing_level_view.existing_process_table.Enable(True)
30+
self.__set_create_proces_section(False)
31+
32+
def __set_create_proces_section(self, active):
33+
if not isinstance(active, bool):
34+
raise Exception("activet must be type bool")
35+
36+
self.processing_level_view.level_code_text_ctrl.Enable(active)
37+
self.processing_level_view.definition_text_ctrl.Enable(active)
38+
self.processing_level_view.explanation_text_ctrl.Enable(active)
39+
40+
def __fetch_data(self):
41+
series_service = self.service_manager.get_series_service()
42+
processes = series_service.get_all_processing_levels()
43+
44+
data = []
45+
for proc in processes:
46+
data.append([
47+
proc.code,
48+
proc.definition,
49+
proc.explanation,
50+
proc.id
51+
])
52+
53+
self.processing_level_view.existing_process_table.set_table_content(data=data)
54+
55+
def getQCL(self):
56+
q = QualityControlLevel()
57+
if self.processing_level_view.create_process_level_radio.GetValue():
58+
q.code = self.processing_level_view.level_code_text_ctrl.GetValue()
59+
q.definition = self.processing_level_view.definition_text_ctrl.GetValue()
60+
q.explanation = self.processing_level_view.explanation_text_ctrl.GetValue()
61+
62+
elif self.processing_level_view.existing_process_radio.GetValue():
63+
selected_row = self.processing_level_view.existing_process_table.get_selected_row()
64+
code = selected_row[0]
65+
q = self.service_manager.get_series_service().get_processing_level_by_code(proc_level_code=code)
66+
67+
return q
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
import wx
2+
from odmtools.view.WizardVariableView import WizardVariableView
3+
from wx.wizard import WizardPageSimple
4+
from odmtools.odmdata import Variable
5+
6+
7+
class WizardVariableController(WizardPageSimple):
8+
def __init__(self, parent, service_manager, current_variable):
9+
WizardPageSimple.__init__(self, parent)
10+
11+
self.service_manager = service_manager
12+
self.current_variable = current_variable
13+
main_sizer = wx.BoxSizer(wx.VERTICAL)
14+
self.variable_view = WizardVariableView(self)
15+
main_sizer.Add(self.variable_view, 1, wx.EXPAND | wx.RIGHT, -16)
16+
self.SetSizer(main_sizer)
17+
18+
table_columns = ["Code", "Name", "Speciation", "Units",
19+
"Sample Medium", "Value Type", "IsRegular", "Time Support",
20+
"Time Units", "DataType", "Genaral Category", "NoDataValue", "ID"]
21+
self.variable_view.variable_table.set_columns(table_columns)
22+
self.on_current_radio(None)
23+
24+
self.__fetch_data()
25+
self.variable_view.current_variable_radio.Bind(wx.EVT_RADIOBUTTON, self.on_current_radio)
26+
self.variable_view.existing_variable_radio.Bind(wx.EVT_RADIOBUTTON, self.on_existing_radio)
27+
self.variable_view.create_variable_radio.Bind(wx.EVT_RADIOBUTTON, self.on_create_radio)
28+
29+
def on_current_radio(self, event):
30+
self.variable_view.variable_table.Enable(False)
31+
self.__set_create_variable_section(False)
32+
33+
def on_create_radio(self, event):
34+
self.variable_view.variable_table.Enable(False)
35+
self.__set_create_variable_section(True)
36+
37+
def on_existing_radio(self, event):
38+
self.variable_view.variable_table.Enable(True)
39+
self.__set_create_variable_section(False)
40+
41+
def __set_create_variable_section(self, active):
42+
if not isinstance(active, bool):
43+
raise Exception("active must be type bool")
44+
45+
self.variable_view.variable_code_text_ctrl.Enable(active)
46+
self.variable_view.variable_name_combo.Enable(active)
47+
self.variable_view.variable_type_combo.Enable(active)
48+
self.variable_view.no_data_value_text_ctrl.Enable(active)
49+
self.variable_view.speciation_combo.Enable(active)
50+
self.variable_view.definition_text_ctrl.Enable(active)
51+
52+
def __fetch_data(self):
53+
self.__populate_variable_table()
54+
55+
cv_service = self.service_manager.get_cv_service()
56+
name_list = [x.term for x in cv_service.get_variable_name_cvs()]
57+
var_unit = [x.name for x in cv_service.get_units_names()]
58+
spec_list = [x.term for x in cv_service.get_speciation_cvs()]
59+
60+
self.variable_view.variable_name_combo.AppendItems(name_list)
61+
self.variable_view.speciation_combo.AppendItems(spec_list)
62+
self.variable_view.variable_type_combo.AppendItems(var_unit)
63+
64+
def __populate_variable_table(self):
65+
series_serivce = self.service_manager.get_series_service()
66+
variables = series_serivce.get_all_variables()
67+
data = []
68+
for var in variables:
69+
data.append([var.code,
70+
var.name,
71+
var.speciation,
72+
var.variable_unit.name,
73+
var.sample_medium,
74+
var.value_type,
75+
var.is_regular,
76+
var.time_support,
77+
var.time_unit.name,
78+
var.data_type,
79+
var.general_category,
80+
var.no_data_value,
81+
var.id])
82+
83+
self.variable_view.variable_table.set_table_content(data=data)
84+
85+
def get_variable(self):
86+
v = Variable()
87+
if self.variable_view.current_variable_radio.GetValue():
88+
v = self.current_variable
89+
elif self.variable_view.existing_variable_radio.GetValue():
90+
row = self.variable_view.variable_table.get_selected_row()
91+
code = row[0]
92+
v = self.service_manager.get_series_service().get_variable_by_code(code)
93+
94+
elif self.variable_view.create_variable_radio.GetValue():
95+
# v = self.createdVar
96+
v = self.get_new_variable()
97+
98+
return v
99+
100+
def get_new_variable(self):
101+
v = Variable()
102+
v.code = self.variable_view.variable_code_text_ctrl.GetValue() if self.variable_view.variable_code_text_ctrl.GetValue() <> "" else None
103+
v.name = self.variable_view.variable_name_combo.GetValue() if self.variable_view.variable_name_combo.GetValue() <> "" else None
104+
v.speciation = self.variable_view.speciation_combo.GetValue() if self.variable_view.speciation_combo.GetValue() <> "" else None
105+
v.variable_unit = self.service_manager.get_series_service()
106+
v.no_data_value = self.variable_view.no_data_value_text_ctrl.GetValue() if self.variable_view.no_data_value_text_ctrl.GetValue() <> "" else None
107+
# Need unit name, time support but neither of them are in the form...
108+
109+
return v
110+
111+
112+
113+
114+

odmtools/controller/frmAddPoints.py

100755100644
File mode changed.

odmtools/controller/frmBulkInsert.py

100755100644
File mode changed.

odmtools/controller/frmDBConfig.py

100755100644
Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,10 @@ def validateInput(self, conn_dict):
111111

112112
# Returns a dictionary of the database values entered in the form
113113
def getFieldValues(self):
114-
conn_dict = {}
114+
if self.isFormEmpty():
115+
return {}
115116

117+
conn_dict = {}
116118
conn_dict['engine'] = self.choices[self.cbDatabaseType.GetValue()]
117119
conn_dict['user'] = self.txtUser.GetValue()
118120
conn_dict['password'] = self.txtPass.GetValue()
@@ -122,6 +124,28 @@ def getFieldValues(self):
122124

123125
return conn_dict
124126

127+
def isFormEmpty(self):
128+
"""
129+
If any of the entries are empty return true
130+
:return:
131+
"""
132+
if not self.cbDatabaseType.GetValue().strip():
133+
return True
134+
135+
if not self.txtUser.GetValue().strip():
136+
return True
137+
138+
if not self.txtPass.GetValue().strip():
139+
return True
140+
141+
if not self.txtServer.GetValue().strip():
142+
return True
143+
144+
if not self.txtDBName.GetValue().strip():
145+
return True
146+
147+
return False
148+
125149
def set_field_values(self):
126150
conn = self.service_manager.is_valid_connection()
127151
if conn is not None:

0 commit comments

Comments
 (0)