Fixed some issues with (auto) beginning and ending.
1.1 --- a/cronrec.py Fri Oct 01 17:09:30 2010 +0200
1.2 +++ b/cronrec.py Fri Oct 01 18:59:45 2010 +0200
1.3 @@ -1,4 +1,4 @@
1.4 -#!/usr/bin/python
1.5 +#!/usr/local/bin/python
1.6
1.7 """
1.8 A time recording tool.
2.1 --- a/db.py Fri Oct 01 17:09:30 2010 +0200
2.2 +++ b/db.py Fri Oct 01 18:59:45 2010 +0200
2.3 @@ -56,12 +56,22 @@
2.4 con = sqlite3.connect(db_file)
2.5 return con, con.cursor()
2.6
2.7 -def test_tables(db_file):
2.8 +def test(db_file):
2.9 con, cur = session(db_file)
2.10 - sql = "select * from sqlite_master where type='table'"
2.11 - cur.execute(sql)
2.12 + cur.execute("select * from projects")
2.13 + print "\nprojects"
2.14 for c in cur:
2.15 print c
2.16 + cur.execute("select * from activities")
2.17 + print "\nactivities"
2.18 + for c in cur:
2.19 + print c
2.20 + cur.execute("select * from tasks")
2.21 + print "\ntasks"
2.22 + for c in cur:
2.23 + print c
2.24 + con.commit()
2.25 + cur.close()
2.26
2.27 def init(db_file):
2.28 con, cur = session(db_file)
2.29 @@ -84,7 +94,7 @@
2.30 cur.execute(sql, values)
2.31 project = cur.fetchone()[0]
2.32 else:
2.33 - project = DEF_PROJECT
2.34 + project = None#DEF_PROJECT
2.35 con.commit()
2.36 cur.close()
2.37 return project
2.38 @@ -102,7 +112,7 @@
2.39 cur.execute(sql, values)
2.40 activity = cur.fetchone()[0]
2.41 else:
2.42 - activity = DEF_ACTIVITY
2.43 + activity = None#DEF_ACTIVITY
2.44 con.commit()
2.45 cur.close()
2.46 return activity
2.47 @@ -130,37 +140,35 @@
2.48 return row_id(db_file, "activities", name)
2.49
2.50 def end(db_file, project, activity, time):
2.51 - if not activity:
2.52 - activity = find_last_activity(db_file, time)
2.53 - if not project:
2.54 - project = find_last_project(db_file, time)
2.55 - con, cur = session(db_file)
2.56 - values = (time, project_id(db_file, project), activity_id(db_file, activity))
2.57 - sql = "update tasks set end=? where project=? and activity=?"
2.58 - cur.execute(sql, values)
2.59 - con.commit()
2.60 - cur.execute("select * from tasks")
2.61 - for c in cur:
2.62 - print c
2.63 - cur.close()
2.64 + print "ending: %s:%s" % (project, activity)
2.65 + if activity or project:
2.66 + if not activity:
2.67 + activity = find_last_activity(db_file, time)
2.68 + elif not project:
2.69 + project = find_last_project(db_file, time)
2.70 + con, cur = session(db_file)
2.71 + values = (time, project_id(db_file, project), activity_id(db_file, activity))
2.72 + sql = "update tasks set end=? where project=? and activity=?"
2.73 + cur.execute(sql, values)
2.74 + con.commit()
2.75 + cur.close()
2.76 + test(db_file)
2.77
2.78 def begin(db_file, project, activity, time):
2.79 + print "beginning: %s:%s" % (project, activity)
2.80 last_project = find_last_project(db_file, time)
2.81 - last_activity = find_last_activity(db_file, time)
2.82 - if not activity:
2.83 - activity = DEF_ACTIVITY
2.84 + last_activity = find_last_activity(db_file, time)
2.85 if not project:
2.86 project = last_project
2.87 + elif not activity:
2.88 + activity = DEF_ACTIVITY
2.89 if activity != last_activity or project != last_project:
2.90 - end(db_file, project, last_activity, time)
2.91 - con, cur = session(db_file)
2.92 - values = (time, None, project_id(db_file, project),
2.93 - activity_id(db_file, activity), None)
2.94 - sql = "insert into tasks values(?, ?, ?, ?, ?)"
2.95 - cur.execute(sql, values)
2.96 - con.commit()
2.97 - cur.execute("select * from tasks")
2.98 - for c in cur:
2.99 - print c
2.100 - con.commit()
2.101 - cur.close()
2.102 + end(db_file, last_project, last_activity, time)
2.103 + con, cur = session(db_file)
2.104 + values = (time, None, project_id(db_file, project),
2.105 + activity_id(db_file, activity), None)
2.106 + sql = "insert into tasks values(?, ?, ?, ?, ?)"
2.107 + cur.execute(sql, values)
2.108 + con.commit()
2.109 + cur.close()
2.110 + test(db_file)