示例#1
0
    def _assigned_to_input(self):
        members = [{
            "user": "******",
            "full_name": "Unassigned"
        }] + list(data.active_memberships(self.project).values())
        max_length = max([len(data.user_full_name(s)) for s in members])
        selected_filters = self._filters.get("assigned_to", set())

        self._assigned_to_group = []
        for item in members:
            state = item["user"] in selected_filters

            color = utils.color_to_hex(data.color(item))
            attr = urwid.AttrSpec("h{0}".format(color), "default")

            self._assigned_to_group.append(
                urwid.CheckBox((attr, data.user_full_name(item)), state, False,
                               self._handle_filter_change,
                               ("assigned_to", item["user"])))

        colum_items = [(16,
                        urwid.Padding(generic.ListText("Assigned To",
                                                       align="right"),
                                      right=2))]
        colum_items.append(
            generic.Grid(self._assigned_to_group, 4 + max_length, 3, 0,
                         "left"))
        return urwid.Columns(colum_items)
示例#2
0
    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"))
示例#4
0
    def _assigned_to_input(self):
        memberships = [{"user": None, "full_name": "Unassigned"}] + list(data.active_memberships(self.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 = self.task.get("assigned_to", None)

        self._assigned_to_combo = generic.ComboBox(items, selected_value=selected, style="cyan")

        colum_items = [(17, urwid.Padding(generic.ListText("Assigned to", align="right"), right=4))]
        colum_items.append(self._assigned_to_combo)
        return urwid.Columns(colum_items)
示例#5
0
    def _created_by_input(self):
        members = data.active_memberships(self.project)
        max_length = max([len(data.user_full_name(s)) for s in members.values()])
        selected_filters = self._filters.get("owner", set())

        self._created_by_group = []
        for id, item in members.items():
            state = id in selected_filters

            color = utils.color_to_hex(data.color(item))
            attr = urwid.AttrSpec("h{0}".format(color), "default")

            self._created_by_group.append(urwid.CheckBox((attr, data.user_full_name(item)), state, False,
                                                         self._handle_filter_change, ("owner", id)))

        colum_items = [(16, urwid.Padding(generic.ListText("Created By", align="right"), right=2))]
        colum_items.append(generic.Grid(self._created_by_group, 4 + max_length, 3, 0, "left"))
        return urwid.Columns(colum_items)
示例#6
0
    def _assigned_to_input(self):
        members = [{"user": "******", "full_name": "Unassigned"}] + list(data.active_memberships(self.project).values())
        max_length = max([len(data.user_full_name(s)) for s in members])
        selected_filters = self._filters.get("assigned_to", set())

        self._assigned_to_group = []
        for item in members:
            state = item["user"] in selected_filters

            color = utils.color_to_hex(data.color(item))
            attr = urwid.AttrSpec("h{0}".format(color), "default")

            self._assigned_to_group.append(urwid.CheckBox((attr, data.user_full_name(item)), state, False,
                                                          self._handle_filter_change, ("assigned_to",
                                                          item["user"])))

        colum_items = [(16, urwid.Padding(generic.ListText("Assigned To", align="right"), right=2))]
        colum_items.append(generic.Grid(self._assigned_to_group, 4 + max_length, 3, 0, "left"))
        return urwid.Columns(colum_items)
示例#7
0
    def __init__(self, issue, project, on_status_change=None, on_priority_change=None, on_severity_change=None,
                 on_assigned_to_change=None):
        self.issue = issue

        issue_ref_and_name = "#{0: <4} {1}".format(str(data.issue_ref(issue)), data.issue_subject(issue))

        colum_items = [("weight", 0.5, generic.ListText(issue_ref_and_name, align="left"))]

        issue_statuses = data.issue_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 issue_statuses.values())
        selected = issue.get("status", None) or project.get("default_issue_status", None)
        status_combo = generic.ComboBox(items, selected_value=selected, style="cyan", enable_markup=True,
                                        on_state_change=on_status_change, user_data=issue)
        colum_items.append(("weight", 0.1, status_combo))

        issue_priorities = data.priorities(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 issue_priorities.values())
        selected = issue.get("priority", None) or project.get("default_priority", None)
        priority_combo = generic.ComboBox(items, selected_value=selected, style="cyan", enable_markup=True,
                                        on_state_change=on_priority_change, user_data=issue)
        colum_items.append(("weight", 0.1, priority_combo))

        issue_severities = data.severities(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 issue_severities.values())
        selected = issue.get("severity", None) or project.get("default_severity", None)
        severity_combo = generic.ComboBox(items, selected_value=selected, style="cyan", enable_markup=True,
                                        on_state_change=on_severity_change, user_data=issue)
        colum_items.append(("weight", 0.1, severity_combo))

        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 = issue.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=issue)
        colum_items.append(("weight", 0.15, assigned_to_combo))

        self.widget = urwid.Columns(colum_items)
        super().__init__(urwid.AttrMap(self.widget, "default", "focus"))
    def _assigned_to_input(self):
        memberships = [{
            "user": None,
            "full_name": "Unassigned"
        }] + list(data.active_memberships(self.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 = self.task.get("assigned_to", None)

        self._assigned_to_combo = generic.ComboBox(items,
                                                   selected_value=selected,
                                                   style="cyan")

        colum_items = [(17,
                        urwid.Padding(generic.ListText("Assigned to",
                                                       align="right"),
                                      right=4))]
        colum_items.append(self._assigned_to_combo)
        return urwid.Columns(colum_items)
示例#9
0
    def _created_by_input(self):
        members = data.active_memberships(self.project)
        max_length = max(
            [len(data.user_full_name(s)) for s in members.values()])
        selected_filters = self._filters.get("owner", set())

        self._created_by_group = []
        for id, item in members.items():
            state = id in selected_filters

            color = utils.color_to_hex(data.color(item))
            attr = urwid.AttrSpec("h{0}".format(color), "default")

            self._created_by_group.append(
                urwid.CheckBox((attr, data.user_full_name(item)), state, False,
                               self._handle_filter_change, ("owner", id)))

        colum_items = [(16,
                        urwid.Padding(generic.ListText("Created By",
                                                       align="right"),
                                      right=2))]
        colum_items.append(
            generic.Grid(self._created_by_group, 4 + max_length, 3, 0, "left"))
        return urwid.Columns(colum_items)
示例#10
0
    def __init__(self,
                 issue,
                 project,
                 on_status_change=None,
                 on_priority_change=None,
                 on_severity_change=None,
                 on_assigned_to_change=None):
        self.issue = issue

        issue_ref_and_name = "#{0: <4} {1}".format(str(data.issue_ref(issue)),
                                                   data.issue_subject(issue))

        colum_items = [("weight", 0.5,
                        generic.ListText(issue_ref_and_name, align="left"))]

        issue_statuses = data.issue_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 issue_statuses.values())
        selected = issue.get("status", None) or project.get(
            "default_issue_status", None)
        status_combo = generic.ComboBox(items,
                                        selected_value=selected,
                                        style="cyan",
                                        enable_markup=True,
                                        on_state_change=on_status_change,
                                        user_data=issue)
        colum_items.append(("weight", 0.1, status_combo))

        issue_priorities = data.priorities(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 issue_priorities.values())
        selected = issue.get("priority", None) or project.get(
            "default_priority", None)
        priority_combo = generic.ComboBox(items,
                                          selected_value=selected,
                                          style="cyan",
                                          enable_markup=True,
                                          on_state_change=on_priority_change,
                                          user_data=issue)
        colum_items.append(("weight", 0.1, priority_combo))

        issue_severities = data.severities(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 issue_severities.values())
        selected = issue.get("severity", None) or project.get(
            "default_severity", None)
        severity_combo = generic.ComboBox(items,
                                          selected_value=selected,
                                          style="cyan",
                                          enable_markup=True,
                                          on_state_change=on_severity_change,
                                          user_data=issue)
        colum_items.append(("weight", 0.1, severity_combo))

        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 = issue.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=issue)
        colum_items.append(("weight", 0.15, assigned_to_combo))

        self.widget = urwid.Columns(colum_items)
        super().__init__(urwid.AttrMap(self.widget, "default", "focus"))