def __init__(self, task, project, on_status_change=None, on_assigned_to_change=None): self.task = task if data.task_finished_date(task): is_closed = urwid.AttrMap(generic.ListText("☑"), "green", "focus") else: is_closed = urwid.AttrMap(generic.ListText("☒"), "red", "focus") colum_items = [("weight", 0.05, is_closed)] task_ref_and_subject = "Task #{0: <4} {1}".format(data.task_ref(task), data.task_subject(task)) if task.get("is_iocaine", False): task_ref_and_subject = [task_ref_and_subject + " ", (("magenta"), "☣")] colum_items.append(("weight", 1, generic.ListText(task_ref_and_subject, align="left"))) memberships = [{"user": None, "full_name": "Unassigned"}] + list(data.active_memberships(project).values()) items = tuple(((urwid.AttrSpec("h{0}".format(utils.color_to_hex(s.get("color", "#ffffff"))), "default"), s.get("full_name", "")), s.get("user", None)) for s in memberships) selected = task.get("assigned_to", None) assigned_to_combo = generic.ComboBox(items, selected_value=selected, style="cyan", enable_markup=True, on_state_change=on_assigned_to_change, user_data=task) colum_items.append(("weight", 0.2, assigned_to_combo)) task_statuses = data.task_statuses(project) items = tuple(((urwid.AttrSpec("h{0}".format(utils.color_to_hex(s.get("color", "#ffffff"))), "default"), s.get("name", "")), s.get("id", None)) for s in task_statuses.values()) selected = task.get("status", None) or project.get("default_task_status", None) status_combo = generic.ComboBox(items, selected_value=selected, style="cyan", enable_markup=True, on_state_change=on_status_change, user_data=task) colum_items.append(("weight", 0.2, status_combo)) self.widget = urwid.Columns(colum_items) super().__init__(urwid.AttrMap(self.widget, "default", "focus"))
def __init__(self, task, project, on_status_change=None, on_assigned_to_change=None): self.task = task if data.task_finished_date(task): is_closed = urwid.AttrMap(generic.ListText("☑"), "green", "focus") else: is_closed = urwid.AttrMap(generic.ListText("☒"), "red", "focus") colum_items = [("weight", 0.05, is_closed)] task_ref_and_subject = "Task #{0: <4} {1}".format( data.task_ref(task), data.task_subject(task)) if task.get("is_iocaine", False): task_ref_and_subject = [ task_ref_and_subject + " ", (("magenta"), "☣") ] colum_items.append( ("weight", 1, generic.ListText(task_ref_and_subject, align="left"))) memberships = [{ "user": None, "full_name": "Unassigned" }] + list(data.active_memberships(project).values()) items = tuple(((urwid.AttrSpec( "h{0}".format(utils.color_to_hex(s.get("color", "#ffffff"))), "default"), s.get("full_name", "")), s.get("user", None)) for s in memberships) selected = task.get("assigned_to", None) assigned_to_combo = generic.ComboBox( items, selected_value=selected, style="cyan", enable_markup=True, on_state_change=on_assigned_to_change, user_data=task) colum_items.append(("weight", 0.2, assigned_to_combo)) task_statuses = data.task_statuses(project) items = tuple(((urwid.AttrSpec( "h{0}".format(utils.color_to_hex(s.get("color", "#ffffff"))), "default"), s.get("name", "")), s.get("id", None)) for s in task_statuses.values()) selected = task.get("status", None) or project.get( "default_task_status", None) status_combo = generic.ComboBox(items, selected_value=selected, style="cyan", enable_markup=True, on_state_change=on_status_change, user_data=task) colum_items.append(("weight", 0.2, status_combo)) self.widget = urwid.Columns(colum_items) super().__init__(urwid.AttrMap(self.widget, "default", "focus"))
def _status_input(self): task_statuses = data.task_statuses(self.project) items = tuple(((urwid.AttrSpec("h{0}".format(utils.color_to_hex(s.get("color", "#ffffff"))), "default"), s.get("name", "")), s.get("id", None)) for s in task_statuses.values()) selected = self.task.get("status", None) or self.project.get("default_task_status", None) self._status_combo = generic.ComboBox(items, selected_value=selected, style="cyan") colum_items = [(17, urwid.Padding(generic.ListText("Status", align="right"), right=4))] colum_items.append(self._status_combo) return urwid.Columns(colum_items)
def _status_input(self): task_statuses = data.task_statuses(self.project) items = tuple(((urwid.AttrSpec( "h{0}".format(utils.color_to_hex(s.get("color", "#ffffff"))), "default"), s.get("name", "")), s.get("id", None)) for s in task_statuses.values()) selected = self.task.get("status", None) or self.project.get( "default_task_status", None) self._status_combo = generic.ComboBox(items, selected_value=selected, style="cyan") colum_items = [(17, urwid.Padding(generic.ListText("Status", align="right"), right=4))] colum_items.append(self._status_combo) return urwid.Columns(colum_items)