add DB handling and first setup

This commit is contained in:
2021-05-09 20:56:28 +02:00
parent d9afca839a
commit 3c4b4b8f9d

View File

@@ -3,7 +3,7 @@
#
# timeTrack.py
# by 4nima
# v.0.0
# v.0.1
#
#########################
# simple time tracking with database
@@ -27,6 +27,7 @@ class TimeTrack:
datefmt='%Y-%m-%d %H:%M:%S'
)
self.load_config()
self.db_setup()
## Läd oder erstellt das config file
def load_config(self):
@@ -56,8 +57,77 @@ class TimeTrack:
json.dump(config, outfile)
logging.info('config file successfully created')
def db_connect(self):
def db_setup(self):
sql = []
sql.append("""
CREATE TABLE IF NOT EXISTS time_entries (
id INTEGER PRIMARY KEY AUTOINCREMENT,
starttime DATETIME NOT NULL,
endtime DATETIME NOT NULL,
user_id INTEGER NOT NULL,
activity TEXT,
catrgory_id INTEGER,
client_id INTEGER,
lock BOOLEAN
)
""")
sql.append("""
CREATE TABLE IF NOT EXISTS active_events (
id INTEGER PRIMARY KEY AUTOINCREMENT,
starttime DATETIME NOT NULL,
user_id INT NOT NULL
)
""")
sql.append("""
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
worktime INT,
worktime_span INT
)
""")
sql.append("""
CREATE TABLE IF NOT EXISTS clients (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL
)
""")
sql.append("""
CREATE TABLE IF NOT EXISTS categories (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL
)
""")
self.db_connect(sql)
def db_connect(self, SQL, DATA=''):
if os.path.isfile(self.DATABASE):
logging.info('DB gefunden')
else:
logging.info('Keine DB gefunden, neue wird angelegt')
connect = sqlite3.connect(self.DATABASE)
cursor = connect.cursor()
##> vorgang optimieren...
for sql in SQL:
try:
if isinstance(sql, list):
cursor.executemany(sql, DATA)
else:
cursor.execute(sql)
except:
logging.error('Fehler beim schreiben in DB')
logging.debug(sql)
else:
logging.info('Erfolgreich in DB geschrieben')
logging.debug(sql)
connect.commit()
pass
connect.close()
def set_user(self):
pass