# HG changeset patch # User Eugen Sawin # Date 1286282671 -7200 # Node ID fab8e198115517bbaff8d54f0dc5cf7536ffa500 # Parent 42c4c96e3ecda678ccfbf879833518fa653665cf Fixed end and resume issues. Added logging functions. diff -r 42c4c96e3ecd -r fab8e1981155 cronrec.py --- a/cronrec.py Fri Oct 01 23:23:26 2010 +0200 +++ b/cronrec.py Tue Oct 05 14:44:31 2010 +0200 @@ -94,19 +94,20 @@ project = None activity = None label = args.label.strip() + log = args.m if ":" in label: project, activity = label.split(":") else: project = label time = datetime.now() - db.resume(db_file(), None, None, time) - db.end(db_file(), project, activity, time) + db.resume(db_file(), db.find_active_task(db_file()), time, log) + db.end(db_file(), project, activity, time, log) def pause(args): db.pause(db_file(), None, None, datetime.now()) def resume(args): - db.resume(db_file(), None, None, datetime.now()) + db.resume(db_file(), None, None, datetime.now(), args.m) def status(args): task = db.status(db_file()) @@ -131,10 +132,10 @@ sub_end = subs.add_parser("end") sub_end.add_argument("label", type=str, nargs="?", default="all:all") + sub_end.add_argument("-m", type=str) sub_end.set_defaults(func=end) sub_end = subs.add_parser("pause") - sub_end.add_argument("-m", type=str) sub_end.set_defaults(func=pause) sub_end = subs.add_parser("resume") diff -r 42c4c96e3ecd -r fab8e1981155 db.py --- a/db.py Fri Oct 01 23:23:26 2010 +0200 +++ b/db.py Tue Oct 05 14:44:31 2010 +0200 @@ -170,7 +170,7 @@ def activity_id(db_file, name): return row_id(db_file, "activities", name) -def end(db_file, project, activity, time): +def end(db_file, project, activity, time, log): print "ending: %s:%s" % (project, activity) if activity or project: if not activity: @@ -180,11 +180,12 @@ con, cur = session(db_file) if activity == "all" and project == "all": - values = (time,) - sql = "update tasks set end=? where end is null" + values = (time, log) + sql = "update tasks set end=?, log=? where end is null" else: - values = (time, project_id(db_file, project), activity_id(db_file, activity)) - sql = "update tasks set end=? where project=? and activity=?" + values = (time, log, project_id(db_file, project), + activity_id(db_file, activity)) + sql = "update tasks set end=?, log=? where project=? and activity=?" cur.execute(sql, values) con.commit() cur.close() @@ -199,7 +200,7 @@ elif not activity: activity = DEF_ACTIVITY if activity != last_activity or project != last_project: - end(db_file, last_project, last_activity, time) + end(db_file, last_project, last_activity, time, None) con, cur = session(db_file) values = (time, None, project_id(db_file, project), activity_id(db_file, activity), None) @@ -220,26 +221,21 @@ def pause(db_file, project, activity, time): print "pausing" if not is_paused(db_file, time): - project = find_last_project(db_file, time) - activity = find_last_activity(db_file, time) + task = find_active_task(db_file) con, cur = session(db_file) - values = (time, None, project_id(db_file, project), - activity_id(db_file, activity), None) - sql = "insert into breaks values(?, ?, ?, ?, ?)" + values = (time, None, task, None) + sql = "insert into breaks values(?, ?, ?, ?)" cur.execute(sql, values) con.commit() cur.close() test(db_file) -def resume(db_file, project, activity, time): +def resume(db_file, task, time, log): print "resuming" - if is_paused(db_file, time): - task = find_active_task(db_file) - activity = find_last_activity(db_file, time) - project = find_last_project(db_file, time) + if is_paused(db_file, time): con, cur = session(db_file) - values = (time, project_id(db_file, project), activity_id(db_file, activity)) - sql = "update breaks set end=? where project=? and activity=?" + values = (time, log, task) + sql = "update breaks set end=?, log=? where task=?" cur.execute(sql, values) con.commit() cur.close()