add smart status grouping
This commit is contained in:
parent
8ef55c7a81
commit
52c3622a20
1 changed files with 24 additions and 3 deletions
27
twf.py
27
twf.py
|
|
@ -100,7 +100,7 @@ class stack:
|
|||
super().__init__(tasker, order = None, group = None)
|
||||
|
||||
def __call__(self, tasks):
|
||||
stack = rich.table.Table()
|
||||
stack = rich.table.Table(box = None, show_header = False, show_lines = False)
|
||||
stack.add_column("Tasks")
|
||||
for task in tasks:
|
||||
stack.add_row( self.tasker(task) )
|
||||
|
|
@ -150,6 +150,27 @@ class Grouper:
|
|||
groups[ task[self.field] ] = [task]
|
||||
return groups
|
||||
|
||||
class group:
|
||||
class Status(Grouper):
|
||||
def __init__(self):
|
||||
super().__init__("status")
|
||||
|
||||
def __call__(self, tasks):
|
||||
groups = {}
|
||||
for task in tasks:
|
||||
if "start" in task:
|
||||
if "started" in groups:
|
||||
groups["started"].append(task)
|
||||
else:
|
||||
groups["started"] = [task]
|
||||
elif self.field in task:
|
||||
if task[self.field] in groups:
|
||||
groups[ task[self.field] ].append(task)
|
||||
else:
|
||||
groups[ task[self.field] ] = [task]
|
||||
|
||||
return groups
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
|
|
@ -200,8 +221,8 @@ if __name__ == "__main__":
|
|||
|
||||
tasker = task.Card(show_only)
|
||||
stacker = stack.Vertical(tasker)
|
||||
group_by_status = Grouper("status")
|
||||
sort_on_values = sort.OnValues(["pending","completed"])
|
||||
group_by_status = group.Status()
|
||||
sort_on_values = sort.OnValues(["pending","started","completed"])
|
||||
sectioner = sections.Vertical(stacker, sort_on_values, group_by_status)
|
||||
|
||||
console = Console()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue