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