-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdb_funcs.py
83 lines (67 loc) · 2.41 KB
/
db_funcs.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
from tinydb import TinyDB, Query
from datetime import datetime
import os
def out(msg, title=""):
print(f'{title}:: {msg}')
# Pfad zur TinyDB-Datenbank
DB_PATH = 'data/tinydb.json'
def initialize_db():
if not os.path.exists('./data'):
os.mkdir('./data')
"""Initialisiert die TinyDB-Datenbank und erstellt notwendige Tabellen."""
db = TinyDB(DB_PATH)
# Hier werden die Tabellen erstellt, wenn sie nicht existieren
db.table('tasks').all()
db.table('projects').all()
db.table('time_entries').all() # Stelle sicher, dass die Tabelle existiert
db.close()
def add_time_entry(entry):
"""Fügt einen neuen Eintrag zur Datenbank hinzu."""
db = TinyDB(DB_PATH)
out(f"Füge {entry} hinzu", "add_time")
db.table('time_entries').insert(entry)
db.close()
def add_task(task_name):
"""Fügt eine neue Aufgabe (Tätigkeit) zur Datenbank hinzu, wenn sie nicht existiert."""
db = TinyDB(DB_PATH)
table = db.table('tasks')
out(f"Füge {task_name} hinzu", "add_tasks")
if not table.search(Query().name == task_name):
table.insert({'name': task_name})
db.close()
def add_project(project_name):
"""Fügt ein neues Projekt zur Datenbank hinzu, wenn es nicht existiert."""
db = TinyDB(DB_PATH)
table = db.table('projects')
out(f"Füge {project_name} hinzu", "add_projects")
if not table.search(Query().name == project_name):
table.insert({'name': project_name})
db.close()
def get_time_entries():
"""Liest alle Zeiteinträge aus der Datenbank."""
db = TinyDB(DB_PATH)
entries = db.table('time_entries').all()
out(f"Hole {entries}", "get_entries")
db.close()
return entries
def get_tasks():
"""Holt alle Aufgaben (Tätigkeiten) aus der Datenbank."""
db = TinyDB(DB_PATH)
tasks = db.table('tasks').all()
out(f"Hole {tasks}", "get_tasks")
task_names = [task['name'] for task in tasks]
db.close()
return task_names
def get_projects():
"""Holt alle Projekte aus der Datenbank."""
db = TinyDB(DB_PATH)
projects = db.table('projects').all()
out(f"Hole {projects}", "get_projects")
project_names = [project['name'] for project in projects]
db.close()
return project_names
def delete_time_entry(entry_id):
"""Löscht einen Zeiteintrag anhand der ID."""
db = TinyDB(DB_PATH)
db.table('time_entries').remove(doc_ids=[entry_id])
db.close()