diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/Zeiterfassung.iml b/.idea/Zeiterfassung.iml
new file mode 100644
index 0000000..909438d
--- /dev/null
+++ b/.idea/Zeiterfassung.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..a6218fe
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..7c204cb
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/__pycache__/definitions.cpython-311.pyc b/__pycache__/definitions.cpython-311.pyc
new file mode 100644
index 0000000..6e45d15
Binary files /dev/null and b/__pycache__/definitions.cpython-311.pyc differ
diff --git a/__pycache__/definitions.cpython-38.pyc b/__pycache__/definitions.cpython-38.pyc
new file mode 100644
index 0000000..57beecb
Binary files /dev/null and b/__pycache__/definitions.cpython-38.pyc differ
diff --git a/__pycache__/jsonhandler.cpython-311.pyc b/__pycache__/jsonhandler.cpython-311.pyc
new file mode 100644
index 0000000..ee3f40f
Binary files /dev/null and b/__pycache__/jsonhandler.cpython-311.pyc differ
diff --git a/__pycache__/jsonhandler.cpython-38.pyc b/__pycache__/jsonhandler.cpython-38.pyc
index 2160e1a..25ef269 100644
Binary files a/__pycache__/jsonhandler.cpython-38.pyc and b/__pycache__/jsonhandler.cpython-38.pyc differ
diff --git a/__pycache__/timestamping.cpython-311.pyc b/__pycache__/timestamping.cpython-311.pyc
new file mode 100644
index 0000000..c66d928
Binary files /dev/null and b/__pycache__/timestamping.cpython-311.pyc differ
diff --git a/__pycache__/timestamping.cpython-38.pyc b/__pycache__/timestamping.cpython-38.pyc
index 701c06a..a66c5e0 100644
Binary files a/__pycache__/timestamping.cpython-38.pyc and b/__pycache__/timestamping.cpython-38.pyc differ
diff --git a/__pycache__/users.cpython-311.pyc b/__pycache__/users.cpython-311.pyc
new file mode 100644
index 0000000..2b379db
Binary files /dev/null and b/__pycache__/users.cpython-311.pyc differ
diff --git a/__pycache__/users.cpython-38.pyc b/__pycache__/users.cpython-38.pyc
index f0b193f..8cb26f0 100644
Binary files a/__pycache__/users.cpython-38.pyc and b/__pycache__/users.cpython-38.pyc differ
diff --git a/__pycache__/zeiterfassung.cpython-38.pyc b/__pycache__/zeiterfassung.cpython-38.pyc
index bcf0a87..1dcae1d 100644
Binary files a/__pycache__/zeiterfassung.cpython-38.pyc and b/__pycache__/zeiterfassung.cpython-38.pyc differ
diff --git a/definitions.py b/definitions.py
new file mode 100644
index 0000000..c61471d
--- /dev/null
+++ b/definitions.py
@@ -0,0 +1,9 @@
+# Zeiterfassung
+#
+# statische Werte
+
+userfolder = "users"
+settingsfolder = "settings"
+usersettingsfilename = "settings.json"
+program_name = "Zeiterfassung"
+program_version = "Development"
\ No newline at end of file
diff --git a/jsonhandler.py b/jsonhandler.py
index 2601d93..2bd4f65 100644
--- a/jsonhandler.py
+++ b/jsonhandler.py
@@ -7,8 +7,7 @@
import json
from users import *
-from zeiterfassung import userfolder
-from zeiterfassung import settingsfolder
+from definitions import *
# Datenstrutur:
@@ -21,4 +20,9 @@ def load_settings(filename):
with open(filename) as json_file:
data = json.load(json_file)
- return data
\ No newline at end of file
+ return data
+
+def write_settings(filename, settings):
+
+ with open(filename, "w") as json_file:
+ json.dump(settings, json_file, indent=4)
\ No newline at end of file
diff --git a/timestamping.py b/timestamping.py
index d3a999e..ce0480b 100644
--- a/timestamping.py
+++ b/timestamping.py
@@ -3,6 +3,7 @@
import time
import datetime
import os
+from definitions import *
# Zeitstempel schreiben
def append_timestamp(filename):
diff --git a/tkinter Demo.py b/tkinter Demo.py
new file mode 100644
index 0000000..2597100
--- /dev/null
+++ b/tkinter Demo.py
@@ -0,0 +1,15 @@
+import tkinter as tk
+
+def aktionSF():
+ label3 = tk.Label(root, text="Aktion durchgeführt", bg="yellow")
+ label3.pack()
+
+root = tk.Tk()
+
+label1 = tk.Label(root, text="Hallo Welt", bg="orange")
+label1.pack()
+
+schaltf1 = tk.Button(root, text="Aktion durchführen", command=aktionSF)
+schaltf1.pack()
+
+root.mainloop()
diff --git a/users.py b/users.py
index c7f5880..d9406d2 100644
--- a/users.py
+++ b/users.py
@@ -5,8 +5,7 @@ import os
import time
import datetime
-from zeiterfassung import userfolder
-from zeiterfassung import settingsfolder
+from definitions import *
# Benutzer anhand Verzeichnisse auflisten
def list_users(directory):
@@ -20,8 +19,7 @@ def determine_filename(user, type="stamping"):
completepath = scriptpath() + "/" + userfolder +"/" + user + "/" + year + "-" + month + ".txt"
return completepath
elif type == "settings":
- settings_filename = "setting.json"
- completepath = scriptpath() + "/" + userfolder +"/" + user + "/" settings_filename
+ completepath = scriptpath() + "/" + userfolder +"/" + user + "/" + usersettingsfilename
return completepath
# Installationsverzeichnis bestimmen
diff --git a/users/testuser/settings.json b/users/testuser/settings.json
index b6c41f6..6d4dc88 100644
--- a/users/testuser/settings.json
+++ b/users/testuser/settings.json
@@ -1,5 +1,5 @@
{
"username": "testuser",
- "name": "Der Tester",
+ "name": "Der neue Tester",
"password": "123456789"
-}
+}
\ No newline at end of file
diff --git a/users/testuser2/2025-4.txt b/users/testuser2/2025-4.txt
index 45ae1be..3502cbb 100644
--- a/users/testuser2/2025-4.txt
+++ b/users/testuser2/2025-4.txt
@@ -4,3 +4,5 @@
1744018315
1744018470
1744018696
+1744100316
+1744100330
diff --git a/zeiterfassung.py b/zeiterfassung.py
index 486ae74..074b0ad 100644
--- a/zeiterfassung.py
+++ b/zeiterfassung.py
@@ -9,43 +9,60 @@ import os
from timestamping import *
from users import *
from jsonhandler import *
-
-# Statische Definitionen
-# Pfade:
-userfolder = "users"
-settingsfolder = "settings"
-program_name = "Zeiterfassung"
-program_version = "0.0.0"
+from definitions import *
# Funktionen
+def printUserList():
+ userlist = list_users(scriptpath() + "/" + userfolder)
+ for i in range(0, len(userlist)):
+ print(str(i + 1) + ": " + str(userlist[i]))
+ return(userlist)
+
# Hauptfunktion
def main():
- print(program_name + " " + str(program_version))
- print("Welche Funktion soll ausgeführt werden?")
- print("1: Stempeln")
- print("2: Stempelübersicht anzeigen")
- question = int(input("Geben Sie Ihre Antwort ein: "))
+ while True:
- if question == 1:
- userlist = list_users(scriptpath() + "/" + userfolder)
- print(userlist)
- for i in range (0, len(userlist)):
- print(str(i + 1) + ": " + str(userlist[i]))
+ print(program_name + " " + str(program_version))
+ print("Welche Funktion soll ausgeführt werden?")
+ print("1: Stempeln")
+ print("2: Stempelübersicht anzeigen")
+ print("3: Einstellungen ändern")
+ print("0: Beenden")
+ question = int(input("Geben Sie Ihre Antwort ein: "))
- which_user = input("Für welchen User soll gestempelt werden? ")
- append_timestamp(determine_filename(userlist[int(which_user) - 1]))
- print("Stempeleintrag vorgenommen")
- elif question == 2:
- userlist = list_users(scriptpath() + "/" + userfolder)
- for i in range (0, len(userlist)):
- print(str(i + 1) + ": " + str(userlist[i]))
+ if question == 1:
+ userlist = printUserList()
+ which_user = input("Für welchen User soll gestempelt werden? ")
+ append_timestamp(determine_filename(userlist[int(which_user) - 1]))
+ print("Stempeleintrag vorgenommen")
+ elif question == 2:
+ userlist = printUserList()
+ which_user = input("Für welchen User sollen die Stempelzeiten angezeigt werden? " )
+ print("Zustand: " + stempel_zustand(determine_filename(userlist[int(which_user) -1])))
+ overview(determine_filename(userlist[int(which_user) - 1]))
- which_user = input("Für welchen User sollen die Stempelzeiten angezeigt werden? " )
- print("Zustand: " + stempel_zustand(determine_filename(userlist[int(which_user) -1])))
- overview(determine_filename(userlist[int(which_user) - 1]))
- else:
- print("Keine Eingabe erkannt.")
+ elif question == 3:
+ userlist = printUserList()
+ which_user = input("Für welchen Benutzer sollen die Einstellungen geändert werden? ")
+ selected_user = userlist[int(which_user) - 1]
+ print("Benutzereinstellungen für Benutzer " + str(selected_user) + ":")
+ settings = load_settings(determine_filename(selected_user, "settings"))
+ for x in settings:
+ print(x + ": " + settings[x])
+ setting_to_change = input("Welche Einstellung soll geändert werden? ")
+ if setting_to_change in settings:
+ new_value = input("Wie ist der neue Wert? ")
+ settings[setting_to_change] = new_value
+ for x in settings:
+ print(x + ": " + settings[x])
+ print("Speicher Einstellungen")
+ write_settings(determine_filename(selected_user, type="settings"), settings)
+
+ elif question == 0:
+ exit()
+ else:
+ print("Keine Eingabe erkannt.")
# Programmstart