3 # Author: Daniel Garcia <dani@danigm.net>
10 from tttdb import Tracker
14 def parse_time(time_seconds):
24 time_str = '%02d:%02d:%02d' % (hour, min, sec)
27 def track(task, project='', ticket=0):
28 today = datetime.datetime.now()
34 time_pass = tick2 - tick
35 cadena = '\rtracking: %(task)s %(project)s %(ticket)s %(time)s' % \
36 {'time':parse_time(time_pass),
40 sys.stdout.write(cadena)
44 print '\n', 'Finalizando'
45 end = datetime.datetime.now()
46 db.Tracker(project=project,
57 diff = i.end - i.start
59 time_passed = parse_time(diff.seconds)
61 key = (i.task, i.project)
62 if grouped.has_key(key):
63 grouped[key] += diff.seconds
66 grouped[key] = diff.seconds
68 to_show = '%s | %-20s | %-40s | #%-6d | %s'
69 to_show = to_show % (i.start.ctime(), i.project, i.task, i.ticket, time_passed)
70 if prev != to_show[0:3]:
76 for k,v in grouped.items():
78 time_passed = parse_time(v)
79 print 'Tiempo para %-40s %s' % ('"'+task+'":', time_passed)
81 print '\nTotal: %s' % parse_time(total)
83 def show_today(delta=0):
84 today = datetime.datetime.now() - datetime.timedelta(delta)
85 yesterday = datetime.datetime(today.year, today.month, today.day)
86 today_trackers = Tracker.select(Tracker.q.start > yesterday)
89 def show_project(project):
90 project_trackers = Tracker.select(Tracker.q.project == project)
92 for i in project_trackers:
93 sum += (i.end - i.start).seconds
95 print 'Tiempo para "%s": %s' % (project, parse_time(sum))
98 all = Tracker.select()
104 def show_week_grouped():
105 show_today_grouped(6)
107 def show_today_grouped(delta=0):
108 today = datetime.datetime.now() - datetime.timedelta(delta)
109 yesterday = datetime.datetime(today.year, today.month, today.day)
110 today_trackers = Tracker.select(Tracker.q.start > yesterday)
111 show_grouped(today_trackers)
113 def show_grouped(trackers):
117 diff = (i.end - i.start).seconds
119 if projects.has_key(i.project):
120 projects[i.project] += diff
122 projects[i.project] = diff
125 for k,v in projects.items():
127 print 'Tiempo para %-20s %s' % (p, parse_time(v))
129 print '\nTotal: %s' % parse_time(total)
131 if __name__ == '__main__':
132 task, project, ticket = '','',0
139 ticket = int(args[2])
141 track(task, project, ticket)