def update_header(self, message="", color="header_message"): today = Util.get_today_str() self.frame.header = urwid.AttrMap( urwid.Columns([ urwid.Text([ ( "header_task_count", "{0} Tasks ".format( len(Tasklist.filter_pending(self.items))), ), ( "header_task_due_count", " {0} due ".format( len(Tasklist.filter_due(self.items, today))), ), ("header_sort", " s:{0} ".format(self.sort_order[0])), ( "header_view", " v:{0}days ".format(self.view_days) if self.view_days >= 0 else "", ), ]), urwid.Text((color, message), align="right"), ]), "header", )
def filter_by_days(items, days): if days >= 0: due = Util.get_today_str(days) return [item for item in items if item.is_due(due) or not item.has_due()] else: return items