Esempio n. 1
0
    def _points_input(self):
        roles = data.computable_roles(self.project)
        max_role_len = max([len(r["name"]) for r in roles.values()]) + 2

        points = data.points(self.project)
        items = tuple(
            (p.get("name", ""), p.get("id", None)) for p in points.values())

        points_pile_contents = []
        for r_id, role in roles.items():
            selected = (self.user_story.get("points", {}).get(r_id, None)
                        or self.project.get("default_points", None))
            self._points_combos[r_id] = generic.ComboBox(
                items, selected_value=selected, style="cyan")

            points_pile_contents.append(
                urwid.Columns([(max_role_len,
                                urwid.Text("{}:".format(role["name"]))),
                               self._points_combos[r_id]]))

        points_pile = urwid.Pile(points_pile_contents)

        colum_items = [(17,
                        urwid.Padding(generic.ListText("Points",
                                                       align="right"),
                                      right=4))]
        colum_items.append(points_pile)
        return urwid.Columns(colum_items)
Esempio n. 2
0
    def _points_input(self):
        roles = data.computable_roles(self.project)
        max_role_len = max([len(r["name"]) for r in roles.values()]) + 2

        points = data.points(self.project)
        items = tuple((p.get("name", ""), p.get("id", None)) for p in points.values())

        points_pile_contents = []
        for r_id, role in roles.items():
            selected = (self.user_story.get("points", {}).get(r_id, None) or
                        self.project.get("default_points", None))
            self._points_combos[r_id] = generic.ComboBox(items, selected_value=selected, style="cyan")

            points_pile_contents.append(urwid.Columns([
                (max_role_len, urwid.Text("{}:".format(role["name"]))),
                self._points_combos[r_id]
            ]))

        points_pile = urwid.Pile(points_pile_contents)

        colum_items = [(17, urwid.Padding(generic.ListText("Points", align="right"), right=4))]
        colum_items.append(points_pile)
        return urwid.Columns(colum_items)
Esempio n. 3
0
    def __init__(self, us, project, roles, summation=0.0, on_status_change=None, on_points_change=None):
        self.user_story = us

        colum_items = [(6, generic.ListText("#{0}".format(str(data.us_ref(us))), align="left"))]

        colum_items.append((1, urwid.AttrMap(generic.ListText("⊕" if data.us_client_requirement(us) else " ",
                                                              align="left"), "yellow", "focus")))
        colum_items.append((1, urwid.AttrMap(generic.ListText("☂" if data.us_team_requirement(us) else " ",
                                                              align="left"), "cyan", "focus")))
        colum_items.append((2, urwid.AttrMap(generic.ListText("✖" if data.us_is_blocked(us) else " ",
                                                              align="left"), "red", "focus")))

        colum_items.append(("weight", 0.5, generic.ListText(data.us_subject(us), align="left")))

        us_statuses = data.us_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 us_statuses.values())
        selected = us.get("status", None) or project.get("default_us_status", None)
        status_combo = generic.ComboBox(items, selected_value=selected, style="cyan", enable_markup=True,
                                        on_state_change=on_status_change, user_data=us)
        colum_items.append(("weight", 0.15, status_combo))

        points = data.points(project)
        items = tuple((p.get("name", ""), p.get("id", None)) for p in points.values())
        for r_id, role in roles.items():
            selected = (us.get("points", {}).get(r_id, None) or
                        project.get("default_points", None))
            points_combo = generic.ComboBox(items, selected_value=selected, style="cyan",
                                            on_state_change=on_points_change, user_data=(us, r_id))
            colum_items.append(("weight", 0.05, points_combo))

        colum_items.append(("weight", 0.05, generic.ListText(("green", "{0:.1f}".format(
                                                                        data.us_total_points(us))))))
        colum_items.append(("weight", 0.08, generic.ListText(("cyan", "{0:.1f}".format(summation)))))

        self.widget = urwid.Columns(colum_items)
        super().__init__(urwid.AttrMap(self.widget, "default", "focus"))
Esempio n. 4
0
    def __init__(self, us, project, roles, on_status_change=None, on_points_change=None):
        self.user_story = us

        if us.get("is_closed", False):
            is_closed = urwid.AttrMap(generic.ListText("☑"), "green", "focus-header")
        else:
            is_closed = urwid.AttrMap(generic.ListText("☒"), "red", "focus-header")
        colum_items = [("weight", 0.05, is_closed)]

        us_ref_and_name = "US #{0: <4} {1}".format(str(data.us_ref(us)), data.us_subject(us))
        colum_items.append(("weight", 0.6, generic.ListText(us_ref_and_name, align="left")))

        us_statuses = data.us_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 us_statuses.values())
        selected = us.get("status", None) or project.get("default_us_status", None)
        status_combo = generic.ComboBox(items, selected_value=selected, style="cyan", enable_markup=True,
                                        on_state_change=on_status_change, user_data=us)
        colum_items.append(("weight", 0.15, status_combo))

        points = data.points(project)
        items = tuple((p.get("name", ""), p.get("id", None)) for p in points.values())
        for r_id, role in roles.items():
            role_name = generic.ListText("{}:".format(role.get("name", "UNK.")))

            selected = (us.get("points", {}).get(r_id, None) or
                        project.get("default_points", None))
            points_combo = generic.ComboBox(items, selected_value=selected, style="cyan",
                                            on_state_change=on_points_change, user_data=(us, r_id))
            colum_items.append(("weight", 0.15, urwid.Columns([('pack',role_name), points_combo])))

        colum_items.append(("weight", 0.1, generic.ListText(("green", "TOTAL: {0:.1f}".format(
                                                                      data.us_total_points(us))))))

        self.widget = urwid.Columns(colum_items)
        super().__init__(urwid.AttrMap(urwid.LineBox(urwid.AttrMap(self.widget, "cyan", "focus-header")),
                                       "green"))
    def __init__(self,
                 us,
                 project,
                 roles,
                 on_status_change=None,
                 on_points_change=None):
        self.user_story = us

        if us.get("is_closed", False):
            is_closed = urwid.AttrMap(generic.ListText("☑"), "green",
                                      "focus-header")
        else:
            is_closed = urwid.AttrMap(generic.ListText("☒"), "red",
                                      "focus-header")
        colum_items = [("weight", 0.05, is_closed)]

        us_ref_and_name = "US #{0: <4} {1}".format(str(data.us_ref(us)),
                                                   data.us_subject(us))
        colum_items.append(
            ("weight", 0.6, generic.ListText(us_ref_and_name, align="left")))

        us_statuses = data.us_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 us_statuses.values())
        selected = us.get("status", None) or project.get(
            "default_us_status", None)
        status_combo = generic.ComboBox(items,
                                        selected_value=selected,
                                        style="cyan",
                                        enable_markup=True,
                                        on_state_change=on_status_change,
                                        user_data=us)
        colum_items.append(("weight", 0.15, status_combo))

        points = data.points(project)
        items = tuple(
            (p.get("name", ""), p.get("id", None)) for p in points.values())
        for r_id, role in roles.items():
            role_name = generic.ListText("{}:".format(role.get("name",
                                                               "UNK.")))

            selected = (us.get("points", {}).get(r_id, None)
                        or project.get("default_points", None))
            points_combo = generic.ComboBox(items,
                                            selected_value=selected,
                                            style="cyan",
                                            on_state_change=on_points_change,
                                            user_data=(us, r_id))
            colum_items.append(("weight", 0.15,
                                urwid.Columns([('pack', role_name),
                                               points_combo])))

        colum_items.append(
            ("weight", 0.1,
             generic.ListText(
                 ("green",
                  "TOTAL: {0:.1f}".format(data.us_total_points(us))))))

        self.widget = urwid.Columns(colum_items)
        super().__init__(
            urwid.AttrMap(
                urwid.LineBox(
                    urwid.AttrMap(self.widget, "cyan", "focus-header")),
                "green"))
Esempio n. 6
0
    def __init__(self,
                 us,
                 project,
                 roles,
                 summation=0.0,
                 on_status_change=None,
                 on_points_change=None):
        self.user_story = us

        colum_items = [(6,
                        generic.ListText("#{0}".format(str(data.us_ref(us))),
                                         align="left"))]

        colum_items.append(
            (1,
             urwid.AttrMap(
                 generic.ListText(
                     "⊕" if data.us_client_requirement(us) else " ",
                     align="left"), "yellow", "focus")))
        colum_items.append(
            (1,
             urwid.AttrMap(
                 generic.ListText("☂" if data.us_team_requirement(us) else " ",
                                  align="left"), "cyan", "focus")))
        colum_items.append(
            (2,
             urwid.AttrMap(
                 generic.ListText("✖" if data.us_is_blocked(us) else " ",
                                  align="left"), "red", "focus")))

        colum_items.append(
            ("weight", 0.5, generic.ListText(data.us_subject(us),
                                             align="left")))

        us_statuses = data.us_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 us_statuses.values())
        selected = us.get("status", None) or project.get(
            "default_us_status", None)
        status_combo = generic.ComboBox(items,
                                        selected_value=selected,
                                        style="cyan",
                                        enable_markup=True,
                                        on_state_change=on_status_change,
                                        user_data=us)
        colum_items.append(("weight", 0.15, status_combo))

        points = data.points(project)
        items = tuple(
            (p.get("name", ""), p.get("id", None)) for p in points.values())
        for r_id, role in roles.items():
            selected = (us.get("points", {}).get(r_id, None)
                        or project.get("default_points", None))
            points_combo = generic.ComboBox(items,
                                            selected_value=selected,
                                            style="cyan",
                                            on_state_change=on_points_change,
                                            user_data=(us, r_id))
            colum_items.append(("weight", 0.05, points_combo))

        colum_items.append(
            ("weight", 0.05,
             generic.ListText(
                 ("green", "{0:.1f}".format(data.us_total_points(us))))))
        colum_items.append(("weight", 0.08,
                            generic.ListText(
                                ("cyan", "{0:.1f}".format(summation)))))

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