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 diff --git a/odmtools/odmservices/series_service.py b/odmtools/odmservices/series_service.py index 078e6fe..504d4d9 100644 --- a/odmtools/odmservices/series_service.py +++ b/odmtools/odmservices/series_service.py @@ -785,9 +785,13 @@ 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() + print "successful method retrieval!" + print Method return True - except: + except Exception as ex: + print ex return False def variable_exists(self, v):