# HG changeset patch # User Eugen Sawin # Date 1285952385 -7200 # Node ID 6f89b07e12cc8f7e9312f80c161400c50a990b25 # Parent 9d0e6ae739cf7b37b22833e8c841ed5566c34873 Fixed some issues with (auto) beginning and ending. diff -r 9d0e6ae739cf -r 6f89b07e12cc cronrec.py --- a/cronrec.py Fri Oct 01 17:09:30 2010 +0200 +++ b/cronrec.py Fri Oct 01 18:59:45 2010 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/local/bin/python """ A time recording tool. diff -r 9d0e6ae739cf -r 6f89b07e12cc db.py --- a/db.py Fri Oct 01 17:09:30 2010 +0200 +++ b/db.py Fri Oct 01 18:59:45 2010 +0200 @@ -56,12 +56,22 @@ con = sqlite3.connect(db_file) return con, con.cursor() -def test_tables(db_file): +def test(db_file): con, cur = session(db_file) - sql = "select * from sqlite_master where type='table'" - cur.execute(sql) + cur.execute("select * from projects") + print "\nprojects" for c in cur: print c + cur.execute("select * from activities") + print "\nactivities" + for c in cur: + print c + cur.execute("select * from tasks") + print "\ntasks" + for c in cur: + print c + con.commit() + cur.close() def init(db_file): con, cur = session(db_file) @@ -84,7 +94,7 @@ cur.execute(sql, values) project = cur.fetchone()[0] else: - project = DEF_PROJECT + project = None#DEF_PROJECT con.commit() cur.close() return project @@ -102,7 +112,7 @@ cur.execute(sql, values) activity = cur.fetchone()[0] else: - activity = DEF_ACTIVITY + activity = None#DEF_ACTIVITY con.commit() cur.close() return activity @@ -130,37 +140,35 @@ return row_id(db_file, "activities", name) def end(db_file, project, activity, time): - if not activity: - activity = find_last_activity(db_file, time) - if not project: - project = find_last_project(db_file, time) - con, cur = session(db_file) - values = (time, project_id(db_file, project), activity_id(db_file, activity)) - sql = "update tasks set end=? where project=? and activity=?" - cur.execute(sql, values) - con.commit() - cur.execute("select * from tasks") - for c in cur: - print c - cur.close() + print "ending: %s:%s" % (project, activity) + if activity or project: + if not activity: + activity = find_last_activity(db_file, time) + elif not project: + project = find_last_project(db_file, time) + con, cur = session(db_file) + values = (time, project_id(db_file, project), activity_id(db_file, activity)) + sql = "update tasks set end=? where project=? and activity=?" + cur.execute(sql, values) + con.commit() + cur.close() + test(db_file) def begin(db_file, project, activity, time): + print "beginning: %s:%s" % (project, activity) last_project = find_last_project(db_file, time) - last_activity = find_last_activity(db_file, time) - if not activity: - activity = DEF_ACTIVITY + last_activity = find_last_activity(db_file, time) if not project: project = last_project + elif not activity: + activity = DEF_ACTIVITY if activity != last_activity or project != last_project: - end(db_file, project, last_activity, time) - con, cur = session(db_file) - values = (time, None, project_id(db_file, project), - activity_id(db_file, activity), None) - sql = "insert into tasks values(?, ?, ?, ?, ?)" - cur.execute(sql, values) - con.commit() - cur.execute("select * from tasks") - for c in cur: - print c - con.commit() - cur.close() + end(db_file, last_project, last_activity, time) + con, cur = session(db_file) + values = (time, None, project_id(db_file, project), + activity_id(db_file, activity), None) + sql = "insert into tasks values(?, ?, ?, ?, ?)" + cur.execute(sql, values) + con.commit() + cur.close() + test(db_file)