From 174c0b659ca221ea429e27ff9e7dc8ce62e5b758 Mon Sep 17 00:00:00 2001 From: sreeder Date: Thu, 25 May 2017 10:42:52 -0600 Subject: [PATCH 1/5] enable Method selection --- odmtools/gui/pageMethod.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/odmtools/gui/pageMethod.py b/odmtools/gui/pageMethod.py index df72837..4f1059d 100644 --- a/odmtools/gui/pageMethod.py +++ b/odmtools/gui/pageMethod.py @@ -65,7 +65,7 @@ def _init_ctrls(self, prnt): self.lstMethods.SetColumnWidth(0, 200) self.lstMethods.SetColumnWidth(1, 153) self.lstMethods.SetColumnWidth(2,0) - # self.lstMethods.Enable(False) + self.lstMethods.Enable(False) @@ -79,7 +79,7 @@ def OnLstMethodSetFocus(self, event): self.rbSelect.SetValue(True) def OnRbGenerateRadiobutton(self, event): - # self.lstMethods.Enable(False) + self.lstMethods.Enable(False) self.txtMethodDescrip.Enable(False) event.Skip() @@ -91,7 +91,7 @@ def OnRbSelectRadiobutton(self, event): event.Skip() def OnRbCreateNewRadiobutton(self, event): - # self.lstMethods.Enable(False) + self.lstMethods.Enable(False) self.txtMethodDescrip.Enable(True) event.Skip() @@ -103,7 +103,7 @@ def OnTxtMethodDescripSetFocus(self, event): event.Skip() def OnTxtMethodDescripKillFocus(self, event): - if self.txtMethodDescrip.GetValue() =="": + if self.txtMethodDescrip.GetValue() == "": self.txtMethodDescrip.SetValue("Method Description") event.Skip() @@ -117,19 +117,17 @@ def getMethod(self): m= self.series_service.get_method_by_description(genmethod) if m is None: logger.debug("assigning new method description") - m = Method() + m = Method() m.description = genmethod elif self.rbSelect.Value: index = self.lstMethods.GetFirstSelected() - desc= self.lstMethods.GetItem(index, 0).GetText() + desc = self.lstMethods.GetItem(index, 0).GetText() logger.debug(desc) - m= self.series_service.get_method_by_description(desc) - - + m = self.series_service.get_method_by_description(desc) elif self.rbCreateNew.Value: logger.debug("assigning new method description") m.description = self.txtMethodDescrip.GetValue() - return m \ No newline at end of file + return m From b627a0706d00e83c9ee6913fd1dbb7d07e569fd8 Mon Sep 17 00:00:00 2001 From: sreeder Date: Thu, 25 May 2017 10:43:26 -0600 Subject: [PATCH 2/5] restore --- odmtools/gui/pageMethod.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/odmtools/gui/pageMethod.py b/odmtools/gui/pageMethod.py index 4f1059d..df72837 100644 --- a/odmtools/gui/pageMethod.py +++ b/odmtools/gui/pageMethod.py @@ -65,7 +65,7 @@ def _init_ctrls(self, prnt): self.lstMethods.SetColumnWidth(0, 200) self.lstMethods.SetColumnWidth(1, 153) self.lstMethods.SetColumnWidth(2,0) - self.lstMethods.Enable(False) + # self.lstMethods.Enable(False) @@ -79,7 +79,7 @@ def OnLstMethodSetFocus(self, event): self.rbSelect.SetValue(True) def OnRbGenerateRadiobutton(self, event): - self.lstMethods.Enable(False) + # self.lstMethods.Enable(False) self.txtMethodDescrip.Enable(False) event.Skip() @@ -91,7 +91,7 @@ def OnRbSelectRadiobutton(self, event): event.Skip() def OnRbCreateNewRadiobutton(self, event): - self.lstMethods.Enable(False) + # self.lstMethods.Enable(False) self.txtMethodDescrip.Enable(True) event.Skip() @@ -103,7 +103,7 @@ def OnTxtMethodDescripSetFocus(self, event): event.Skip() def OnTxtMethodDescripKillFocus(self, event): - if self.txtMethodDescrip.GetValue() == "": + if self.txtMethodDescrip.GetValue() =="": self.txtMethodDescrip.SetValue("Method Description") event.Skip() @@ -117,17 +117,19 @@ def getMethod(self): m= self.series_service.get_method_by_description(genmethod) if m is None: logger.debug("assigning new method description") - m = Method() + m = Method() m.description = genmethod elif self.rbSelect.Value: index = self.lstMethods.GetFirstSelected() - desc = self.lstMethods.GetItem(index, 0).GetText() + desc= self.lstMethods.GetItem(index, 0).GetText() logger.debug(desc) - m = self.series_service.get_method_by_description(desc) + m= self.series_service.get_method_by_description(desc) + + elif self.rbCreateNew.Value: logger.debug("assigning new method description") m.description = self.txtMethodDescrip.GetValue() - return m + return m \ No newline at end of file From 5dbfdb77aaef938422bffb0e9f22896e2dac638a Mon Sep 17 00:00:00 2001 From: sreeder Date: Thu, 25 May 2017 13:06:26 -0600 Subject: [PATCH 3/5] fix method issue by getting by id instead of desc. printing unknown utf-8 characters --- odmtools/gui/pageMethod.py | 17 ++++++----------- odmtools/gui/wizSave.py | 2 +- odmtools/odmdata/method.py | 2 +- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/odmtools/gui/pageMethod.py b/odmtools/gui/pageMethod.py index df72837..c90900b 100644 --- a/odmtools/gui/pageMethod.py +++ b/odmtools/gui/pageMethod.py @@ -67,9 +67,6 @@ def _init_ctrls(self, prnt): self.lstMethods.SetColumnWidth(2,0) # self.lstMethods.Enable(False) - - - def __init__(self, parent, id, pos, size, style, name, ss, method): self.series_service = ss self.prev_val = method @@ -108,26 +105,24 @@ def OnTxtMethodDescripKillFocus(self, event): event.Skip() - def getMethod(self): m = Method() if self.rbGenerate.Value: genmethod = "Values derived from ODM Tools Python" - m= self.series_service.get_method_by_description(genmethod) + m = self.series_service.get_method_by_description(genmethod) if m is None: logger.debug("assigning new method description") - m = Method() + m = Method() m.description = genmethod elif self.rbSelect.Value: index = self.lstMethods.GetFirstSelected() - desc= self.lstMethods.GetItem(index, 0).GetText() - - logger.debug(desc) - m= self.series_service.get_method_by_description(desc) - + # desc = self.lstMethods.GetItem(index, 0).GetText() + id = self.lstMethods.GetItem(index, 2).GetText() + logger.debug(id) + m = self.series_service.get_method_by_id(int(id)) elif self.rbCreateNew.Value: logger.debug("assigning new method description") diff --git a/odmtools/gui/wizSave.py b/odmtools/gui/wizSave.py index 4233854..81f7a18 100644 --- a/odmtools/gui/wizSave.py +++ b/odmtools/gui/wizSave.py @@ -187,7 +187,7 @@ def fill_summary(self): self.panel.treeSummary.SetItemText(self.panel.treeSummary.vgc, 'General Category: ' + str(Variable.general_category)) - self.panel.treeSummary.SetItemText(self.panel.treeSummary.md, 'Description: ' + str(Method.description)) + self.panel.treeSummary.SetItemText(self.panel.treeSummary.md, 'Description: ' + Method.description.encode('utf-8', 'ignore')) self.panel.treeSummary.SetItemText(self.panel.treeSummary.soo, 'Organization: ' + str(Source.organization)) self.panel.treeSummary.SetItemText(self.panel.treeSummary.sod, 'Description: ' + str(Source.description)) diff --git a/odmtools/odmdata/method.py b/odmtools/odmdata/method.py index f3b9d8f..06b4740 100644 --- a/odmtools/odmdata/method.py +++ b/odmtools/odmdata/method.py @@ -9,4 +9,4 @@ class Method(Base): link = Column('MethodLink', String) def __repr__(self): - return "" % (self.id, self.description, self.link) \ No newline at end of file + return "" % (self.id, self.description.encode("utf-8", 'ignore'), self.link.encode("utf-8", 'ignore')) \ No newline at end of file From 8384026b2b556ae53f748b980200c675187fe6d2 Mon Sep 17 00:00:00 2001 From: sreeder Date: Tue, 13 Jun 2017 17:08:53 -0600 Subject: [PATCH 4/5] update the method description to convert to latin) --- odmtools/odmservices/series_service.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/odmtools/odmservices/series_service.py b/odmtools/odmservices/series_service.py index 078e6fe..709b12e 100644 --- a/odmtools/odmservices/series_service.py +++ b/odmtools/odmservices/series_service.py @@ -785,7 +785,8 @@ def method_exists(self, m): :return: """ try: - result = self._edit_session.query(Method).filter_by(description=m.description).one() + # result = self._edit_session.query(Method).filter_by(description=m.description).one() + result = self._edit_session.query(Method).filter(Method.description.like(m.description.encode("latin-1"))).first() return True except: return False From 5ef204d908f8e174703bf707bbdfed3e59e2a371 Mon Sep 17 00:00:00 2001 From: sreeder Date: Wed, 14 Jun 2017 17:07:48 -0600 Subject: [PATCH 5/5] print a message when retrieving method so we can debug the issue of duplicating existing methods --- odmtools/odmservices/series_service.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/odmtools/odmservices/series_service.py b/odmtools/odmservices/series_service.py index 709b12e..504d4d9 100644 --- a/odmtools/odmservices/series_service.py +++ b/odmtools/odmservices/series_service.py @@ -787,8 +787,11 @@ def method_exists(self, m): try: # result = self._edit_session.query(Method).filter_by(description=m.description).one() result = self._edit_session.query(Method).filter(Method.description.like(m.description.encode("latin-1"))).first() + print "successful method retrieval!" + print Method return True - except: + except Exception as ex: + print ex return False def variable_exists(self, v):