def report_task(tasks, cfilter=None, title=None,
detailed=False, todos=False, ascii=False):
'''Visual task report'''
tot_work_time = timedelta()
if detailed:
table_data = [['ID', 'Date', 'Interval', 'Tracked', 'Description']]
elif todos:
table_data = [['ID', 'Tracked', 'Description']]
else:
table_data = [['ID', 'Last time', 'Tracked', 'Description']]
for task in tasks:
tot_work_time += task.work_time
if task.last_end_date:
last_time = task.last_end_date
else:
last_time = ''
time = strfdelta(task.work_time, fmt='{H:2}h {M:02}m')
if detailed:
interval = '{begin} -> {end}'.\
format(begin=task.start_time.strftime('%H:%M'),
end=task.end_time.strftime('%H:%M'))
row = [paint(task.tid),
paint(last_time),
paint(interval),
paint(time),
paint(task.name)]
elif todos:
row = [paint(task.tid),
paint(time),
paint(task.name)]
else:
row = [paint(task.tid),
paint(last_time),
paint(time),
paint(task.name)]
table_data.append(row)
if ascii:
table = AsciiTable(table_data)
else:
table = SingleTable(table_data)
info('')
print(table.table)
info('')
if cfilter:
info('{filter}: Tracked time {time}'.format(
filter=cfilter, time=strfdelta(tot_work_time)))
else:
info('Tracked time {time}'.format(time=strfdelta(tot_work_time)))
评论列表
文章目录