diff -r d1c9dec8b059 -r 59413cc48bd3 db.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/db.py Fri Oct 01 00:45:07 2010 +0200 @@ -0,0 +1,81 @@ +""" +Database lib for cronrec. +Author: Eugen Sawin (sawine@me73.com) +Dependencies: libsqlite3-dev +""" + +import sqlite3 + +ACTIVITIES_TABLE = """activities( +name text not null, +description text)""" + +COMPANIES_TABLE = """companies( +name text not null, +street text, +area text, +town text, +country text, +postal text)""" + +PROJECTS_TABLE = """projects( +name text not null, +number int, +customer int, +constraint customer_fk foreign key(customer) references companies(rowid) on delete +cascade)""" + +RATES_TABLE = """rates( +rate smallmoney +flatrate smallmoney, +project int, +activity int, +constraint project_fk foreign key(project) references projects(rowid) on delete +cascade, +constraint activity_fk foreign key(activity) references activities(rowid) on delete +cascade)""" + +TASKS_TABLE = """tasks( +begin datetime, +end datetime, +project int, +activity int, +log text, +constraint project_fk foreign key(project) references projects(rowid) on delete +cascade, +constraint activity_fk foreign key(activity) references activities(rowid) on delete +cascade)""" + +TABLES = (ACTIVITIES_TABLE, COMPANIES_TABLE, PROJECTS_TABLE, RATES_TABLE, +TASKS_TABLE) + +def session(db_file): + con = sqlite3.connect(db_file) + return con, con.cursor() + +def test_tables(db_file): + con, cur = session(db_file) + sql = "select * from sqlite_master where type='table'" + cur.execute(sql) + for c in cur: + print c + +def init(db_file): + con, cur = session(db_file) + for table in TABLES: + sql = "create table " + table + cur.execute(sql) + con.commit() + cur.close() + +def begin(db_file, project, activity, time): + con, cur = session(db_file) + values = (time, None, project, 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()