Пример #1
0
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)