class TroubleActionView(ViewBrowser): def __init__(self, app, parent, troubleid): ViewBrowser.__init__(self, app, parent, TroubleInfoDoc) self.dialogs = {} self.manager = TroubleManager(self.app) def setSource(self, url): action, context, id = str(url).split('.') print action, context, id if context == 'action': if action == 'new': status = self.manager.getTroubleStatus(self.doc.current) if status != 'done': dlg = ActionDialog(self, 'ActionDialog') dlg.connect(dlg, SIGNAL('okClicked()'), self.insertAction) dlg.troubleid = self.doc.current statustypes = [r.status for r in self.manager.db.select(table='trouble_status')] for idx in range(len(statustypes)): dlg.statusEdit.setCurrentItem(statustypes[idx], True, idx) dlg.statusEdit.setCurrentItem(status) if id == 'none': dlg.actionid = None else: dlg.actionid = int(id) self.dialogs['new-action'] = dlg elif context == 'page': if action == 'refresh': self.setID(self.current) print 'fresh page' def setID(self, troubleid): self.current = troubleid self.doc.setID(troubleid) self.setText(self.doc.toxml()) def insertAction(self): dlg = self.dialogs['new-action'] action = str(dlg.actionEdit.text()) status = str(dlg.statusEdit.currentText()) workdone = str(dlg.workdoneEdit.text()) troubleid = dlg.troubleid self.manager.updateTrouble(troubleid, action, workdone, status) self.setID(troubleid)