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,
56 diff = i.end - i.start
58 time_passed = parse_time(diff.seconds)
60 key = (i.task, i.project)
61 if grouped.has_key(key):
62 grouped[key] += diff.seconds
65 grouped[key] = diff.seconds
67 to_show = '%-20s | %-20s | #%-6d | %s | %s'
68 print to_show % (i.project, i.task, i.ticket, i.start.ctime(),
72 for k,v in grouped.items():
74 time_passed = parse_time(v)
75 print 'Tiempo para "%s": %s' % (task, time_passed)
77 print '\nTotal para hoy: %s' % parse_time(total)
79 def show_today(delta=1):
80 # TODO yesterday no es real, hay que mirar desde las 00 del mismo dia
81 yesterday = datetime.datetime.now() - datetime.timedelta(delta)
82 today_trackers = Tracker.select(Tracker.q.start > yesterday)
85 def show_project(project):
86 project_trackers = Tracker.select(Tracker.q.project == project)
88 for i in project_trackers:
89 sum += (i.end - i.start).seconds
91 print 'Tiempo para "%s": %s' % (project, parse_time(sum))
96 def show_today_grouped(delta=1):
97 yesterday = datetime.datetime.now() - datetime.timedelta(delta)
98 today_trackers = Tracker.select(Tracker.q.start > yesterday)
99 show_grouped(today_trackers)
101 def show_grouped(trackers):
105 diff = (i.end - i.start).seconds
107 if projects.has_key(i.project):
108 projects[i.project] += diff
110 projects[i.project] = diff
112 for k,v in projects.items():
114 print 'Tiempo para %-20s %s' % (p, parse_time(v))
116 print '\nTotal para hoy: %s' % parse_time(total)
118 if __name__ == '__main__':
119 task, project, ticket = '','',0
126 ticket = int(args[2])
128 track(task, project, ticket)