From 3c4b4b8f9d2f6cfd1ed6d13b880fd0a832888ca6 Mon Sep 17 00:00:00 2001
From: anima
Date: Sun, 9 May 2021 20:56:28 +0200
Subject: [PATCH] add DB handling and first setup
---
timeTrack.py | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 72 insertions(+), 2 deletions(-)
diff --git a/timeTrack.py b/timeTrack.py
index 16f9cce..6628837 100644
--- a/timeTrack.py
+++ b/timeTrack.py
@@ -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