Fixed end and resume issues. Added logging functions.
1.1 --- a/cronrec.py Fri Oct 01 23:23:26 2010 +0200
1.2 +++ b/cronrec.py Tue Oct 05 14:44:31 2010 +0200
1.3 @@ -94,19 +94,20 @@
1.4 project = None
1.5 activity = None
1.6 label = args.label.strip()
1.7 + log = args.m
1.8 if ":" in label:
1.9 project, activity = label.split(":")
1.10 else:
1.11 project = label
1.12 time = datetime.now()
1.13 - db.resume(db_file(), None, None, time)
1.14 - db.end(db_file(), project, activity, time)
1.15 + db.resume(db_file(), db.find_active_task(db_file()), time, log)
1.16 + db.end(db_file(), project, activity, time, log)
1.17
1.18 def pause(args):
1.19 db.pause(db_file(), None, None, datetime.now())
1.20
1.21 def resume(args):
1.22 - db.resume(db_file(), None, None, datetime.now())
1.23 + db.resume(db_file(), None, None, datetime.now(), args.m)
1.24
1.25 def status(args):
1.26 task = db.status(db_file())
1.27 @@ -131,10 +132,10 @@
1.28
1.29 sub_end = subs.add_parser("end")
1.30 sub_end.add_argument("label", type=str, nargs="?", default="all:all")
1.31 + sub_end.add_argument("-m", type=str)
1.32 sub_end.set_defaults(func=end)
1.33
1.34 sub_end = subs.add_parser("pause")
1.35 - sub_end.add_argument("-m", type=str)
1.36 sub_end.set_defaults(func=pause)
1.37
1.38 sub_end = subs.add_parser("resume")
2.1 --- a/db.py Fri Oct 01 23:23:26 2010 +0200
2.2 +++ b/db.py Tue Oct 05 14:44:31 2010 +0200
2.3 @@ -170,7 +170,7 @@
2.4 def activity_id(db_file, name):
2.5 return row_id(db_file, "activities", name)
2.6
2.7 -def end(db_file, project, activity, time):
2.8 +def end(db_file, project, activity, time, log):
2.9 print "ending: %s:%s" % (project, activity)
2.10 if activity or project:
2.11 if not activity:
2.12 @@ -180,11 +180,12 @@
2.13
2.14 con, cur = session(db_file)
2.15 if activity == "all" and project == "all":
2.16 - values = (time,)
2.17 - sql = "update tasks set end=? where end is null"
2.18 + values = (time, log)
2.19 + sql = "update tasks set end=?, log=? where end is null"
2.20 else:
2.21 - values = (time, project_id(db_file, project), activity_id(db_file, activity))
2.22 - sql = "update tasks set end=? where project=? and activity=?"
2.23 + values = (time, log, project_id(db_file, project),
2.24 + activity_id(db_file, activity))
2.25 + sql = "update tasks set end=?, log=? where project=? and activity=?"
2.26 cur.execute(sql, values)
2.27 con.commit()
2.28 cur.close()
2.29 @@ -199,7 +200,7 @@
2.30 elif not activity:
2.31 activity = DEF_ACTIVITY
2.32 if activity != last_activity or project != last_project:
2.33 - end(db_file, last_project, last_activity, time)
2.34 + end(db_file, last_project, last_activity, time, None)
2.35 con, cur = session(db_file)
2.36 values = (time, None, project_id(db_file, project),
2.37 activity_id(db_file, activity), None)
2.38 @@ -220,26 +221,21 @@
2.39 def pause(db_file, project, activity, time):
2.40 print "pausing"
2.41 if not is_paused(db_file, time):
2.42 - project = find_last_project(db_file, time)
2.43 - activity = find_last_activity(db_file, time)
2.44 + task = find_active_task(db_file)
2.45 con, cur = session(db_file)
2.46 - values = (time, None, project_id(db_file, project),
2.47 - activity_id(db_file, activity), None)
2.48 - sql = "insert into breaks values(?, ?, ?, ?, ?)"
2.49 + values = (time, None, task, None)
2.50 + sql = "insert into breaks values(?, ?, ?, ?)"
2.51 cur.execute(sql, values)
2.52 con.commit()
2.53 cur.close()
2.54 test(db_file)
2.55
2.56 -def resume(db_file, project, activity, time):
2.57 +def resume(db_file, task, time, log):
2.58 print "resuming"
2.59 - if is_paused(db_file, time):
2.60 - task = find_active_task(db_file)
2.61 - activity = find_last_activity(db_file, time)
2.62 - project = find_last_project(db_file, time)
2.63 + if is_paused(db_file, time):
2.64 con, cur = session(db_file)
2.65 - values = (time, project_id(db_file, project), activity_id(db_file, activity))
2.66 - sql = "update breaks set end=? where project=? and activity=?"
2.67 + values = (time, log, task)
2.68 + sql = "update breaks set end=?, log=? where task=?"
2.69 cur.execute(sql, values)
2.70 con.commit()
2.71 cur.close()