def show_task_dialog(pid, tid=None): taskdialog = gtk.Dialog(title="Task", flags=gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, buttons=(gtk.STOCK_SAVE, gtk.RESPONSE_ACCEPT, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)) taskdialog.vbox.set_size_request(200, 175) label = gtk.Label() label.set_alignment(0, 0) if tid is None: label.set_markup("<big><b>Add Task</b></big>") else: label.set_markup("<big><b>Edit Task</b></big>") taskdialog.vbox.pack_start(label, False) label = gtk.Label("Name") label.set_alignment(0.0, 0.0) taskdialog.vbox.pack_start(label, False) taskdialog.TaskNameEntry = gtk.Entry(max=50) taskdialog.TaskNameEntry.set_activates_default(True) taskdialog.vbox.pack_start(taskdialog.TaskNameEntry, False) hbox = gtk.HBox() vbox = gtk.VBox() label = gtk.Label("Status") label.set_alignment(0.0, 0.0) vbox.pack_start(label) taskdialog.TaskStatusCombo = gtk.combo_box_new_text() for status in statuslist: taskdialog.TaskStatusCombo.append_text(status) vbox.pack_start(taskdialog.TaskStatusCombo) taskdialog.TaskDateEntry = gtk.Entry(max=10) taskdialog.TaskDateEntry.set_activates_default(True) hbox.pack_start(vbox, False) vbox = gtk.VBox() label = gtk.Label("Due Date") label.set_alignment(0.0, 0.0) vbox.pack_start(label) vbox.pack_start(taskdialog.TaskDateEntry) hbox.pack_start(vbox) taskdialog.vbox.pack_start(hbox, False, padding=5) taskdialog.set_default_response(gtk.RESPONSE_ACCEPT) if tid is not None: taskdata = DBConnection.get_data("task", tid) taskdialog.TaskNameEntry.set_text(taskdata[1]) for index, status in enumerate(statuslist): if taskdata[3] == status: taskdialog.TaskStatusCombo.set_active(index) taskdialog.TaskDateEntry.set_text(taskdata[4]) else: taskdialog.TaskStatusCombo.set_active(1) taskdialog.set_position(gtk.WIN_POS_CENTER) taskdialog.show_all() response = taskdialog.run() if response == gtk.RESPONSE_ACCEPT: if tid is None: DBConnection.add_task(pid, taskdialog.TaskNameEntry.get_text(), get_active_text(taskdialog.TaskStatusCombo), taskdialog.TaskDateEntry.get_text()) taskdialog.destroy() else: DBConnection.update_table("task", "name = '%(name)s', status = '%(status)s', duedate = '%(duedate)s'" % {"name": taskdialog.TaskNameEntry.get_text().replace("'", "''"), "status": get_active_text(taskdialog.TaskStatusCombo), "duedate": taskdialog.TaskDateEntry.get_text()}, tid) taskdialog.destroy() return True taskdialog.destroy() return False
def convert_action_to_task(self, widget): if self.pid is not None and self.aid is not None: actiondata = DBConnection.get_data("action", self.aid) DBConnection.add_task(self.pid, actiondata[1], "available", "1901-01-01") self.remove_action(widget)