From 0913f69c703e55f8fdc7038d153415009ccd1f4d Mon Sep 17 00:00:00 2001 From: Erik Thiele Date: Tue, 26 May 2026 16:52:08 +0200 Subject: [PATCH] =?UTF-8?q?Benutzer=20Bearbeitung=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.py | 91 +- inventory.db | Bin 24576 -> 40960 bytes inventory.log | 312 +++ session-ses_1c38.md | 4415 +++++++++++++++++++++++++++++++++++ templates/assign_asset.html | 2 +- templates/create_user.html | 12 +- templates/edit_user.html | 72 + templates/import_data.html | 4 +- templates/index.html | 4 +- templates/return_asset.html | 2 +- 10 files changed, 4894 insertions(+), 20 deletions(-) create mode 100644 session-ses_1c38.md create mode 100644 templates/edit_user.html diff --git a/app.py b/app.py index 27f3407..f009e1f 100644 --- a/app.py +++ b/app.py @@ -12,7 +12,7 @@ from werkzeug.security import check_password_hash, generate_password_hash app = Flask(__name__) app.config["SECRET_KEY"] = "dev-secret-key" -APP_VERSION = "2.1.0" +APP_VERSION = "2.2.0" DATABASE = Path(__file__).with_name("inventory.db") LOGFILE = Path(__file__).with_name("inventory.log") @@ -46,7 +46,8 @@ INPUT_PLACEHOLDERS = { } IMPORT_ACTIONS = {"import", "ausgabe", "assign"} -IMPORT_HEADER = ["user", "typ", "kennung", "aktion"] +IMPORT_HEADER_4 = ["user", "typ", "kennung", "aktion"] +IMPORT_HEADER_5 = ["vorname", "nachname", "typ", "kennung", "aktion"] def get_db() -> sqlite3.Connection: @@ -261,7 +262,7 @@ def normalize_asset_type(value: str) -> str | None: def is_import_header(parts: list[str]) -> bool: normalized = [part.strip().lower() for part in parts] - return normalized == IMPORT_HEADER + return normalized == IMPORT_HEADER_4 or normalized == IMPORT_HEADER_5 def get_transaction_for_print(transaction_id: int) -> sqlite3.Row | None: @@ -477,11 +478,14 @@ def import_data() -> str: parts = [part.strip() for part in row.split(";")] if is_import_header(parts): continue - if len(parts) != 4: - errors.append(f"Zeile {index}: ungueltig. Erwartet wird: User;Typ;Kennung;Aktion") + if len(parts) == 4: + full_name, raw_asset_type, asset_code, raw_action = parts + elif len(parts) == 5: + first_name, last_name, raw_asset_type, asset_code, raw_action = parts + full_name = f"{first_name} {last_name}" + else: + errors.append(f"Zeile {index}: ungueltig. Erwartet wird: User;Typ;Kennung;Aktion oder Vorname;Nachname;Typ;Kennung;Aktion") continue - - full_name, raw_asset_type, asset_code, raw_action = parts asset_type = normalize_asset_type(raw_asset_type) action = raw_action.strip().lower() @@ -654,7 +658,7 @@ def index() -> str: """ params = (like_value, like_value, like_value, like_value, like_value) - user_query += " ORDER BY full_name COLLATE NOCASE" + user_query += " ORDER BY SUBSTR(full_name, INSTR(full_name, ' ') + 1) COLLATE NOCASE, full_name COLLATE NOCASE" users = db.execute(user_query, params).fetchall() stats = db.execute( @@ -701,14 +705,16 @@ def index() -> str: @login_required def create_user() -> str: if request.method == "POST": - full_name = request.form.get("full_name", "").strip() + first_name = request.form.get("first_name", "").strip() + last_name = request.form.get("last_name", "").strip() email = request.form.get("email", "").strip() or None department = request.form.get("department", "").strip() or None - if not full_name: - flash("Bitte einen Namen eingeben.") + if not first_name or not last_name: + flash("Bitte Vor- und Nachname eingeben.") return redirect(url_for("create_user")) + full_name = f"{first_name} {last_name}" db = get_db() db.execute( "INSERT INTO users (full_name, email, department) VALUES (?, ?, ?)", @@ -721,6 +727,65 @@ def create_user() -> str: return render_template("create_user.html") +@app.route("/users//edit", methods=["GET", "POST"]) +@login_required +def edit_user(user_id: int) -> str: + db = get_db() + user = db.execute("SELECT * FROM users WHERE id = ?", (user_id,)).fetchone() + if user is None: + flash("User wurde nicht gefunden.") + return redirect(url_for("index")) + + if request.method == "POST": + first_name = request.form.get("first_name", "").strip() + last_name = request.form.get("last_name", "").strip() + email = request.form.get("email", "").strip() or None + department = request.form.get("department", "").strip() or None + + if not first_name or not last_name: + flash("Bitte Vor- und Nachname eingeben.") + return redirect(url_for("edit_user", user_id=user_id)) + + full_name = f"{first_name} {last_name}" + db.execute( + "UPDATE users SET full_name = ?, email = ?, department = ? WHERE id = ?", + (full_name, email, department, user_id), + ) + db.commit() + flash("User wurde aktualisiert.") + return redirect(url_for("index")) + + parts = user["full_name"].rsplit(" ", 1) + first_name = parts[0] if len(parts) > 1 else "" + last_name = parts[1] if len(parts) > 1 else parts[0] + return render_template( + "edit_user.html", + user=user, + first_name=first_name, + last_name=last_name, + ) + + +@app.route("/users//delete", methods=["POST"]) +@login_required +def delete_user(user_id: int) -> str: + db = get_db() + user = db.execute("SELECT * FROM users WHERE id = ?", (user_id,)).fetchone() + if user is None: + flash("User wurde nicht gefunden.") + return redirect(url_for("index")) + + if user["chip_code"] or user["parking_card_code"] or user["pool_vehicle_code"]: + flash("Der User hat noch aktive Medien. Bitte zuerst alle Medien zuruecknehmen.") + return redirect(url_for("edit_user", user_id=user_id)) + + db.execute("DELETE FROM transactions WHERE user_id = ?", (user_id,)) + db.execute("DELETE FROM users WHERE id = ?", (user_id,)) + db.commit() + flash(f"User '{user['full_name']}' wurde geloescht.") + return redirect(url_for("index")) + + @app.route("/assign", methods=["GET", "POST"]) @login_required def assign_asset() -> str: @@ -785,7 +850,7 @@ def assign_asset() -> str: flash("Ausgabe wurde gespeichert.") return redirect(url_for("print_transaction", transaction_id=transaction_id)) - users = db.execute("SELECT id, full_name FROM users ORDER BY full_name COLLATE NOCASE").fetchall() + users = db.execute("SELECT id, full_name FROM users ORDER BY SUBSTR(full_name, INSTR(full_name, ' ') + 1) COLLATE NOCASE, full_name COLLATE NOCASE").fetchall() return render_template( "assign_asset.html", users=users, @@ -852,7 +917,7 @@ def return_asset() -> str: flash("Rueckgabe wurde gespeichert.") return redirect(url_for("print_transaction", transaction_id=transaction_id)) - users = db.execute("SELECT id, full_name FROM users ORDER BY full_name COLLATE NOCASE").fetchall() + users = db.execute("SELECT id, full_name FROM users ORDER BY SUBSTR(full_name, INSTR(full_name, ' ') + 1) COLLATE NOCASE, full_name COLLATE NOCASE").fetchall() return render_template( "return_asset.html", users=users, diff --git a/inventory.db b/inventory.db index a1d78a461c63d34768f761a8524eba860f0abc0b..db3ddfad62d770a0cbb04923a50566dbdaa89e3d 100644 GIT binary patch literal 40960 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 W%to(ZgC%6ZOx(lRU=bOxSo(KUm_G&p delta 355 zcmZoTz|?Snae_3fBm)Bj+e8I>M#+r{3;4Nsfm}xZW(NM|&4LP*{4CXsJPecD^Q(CI zpD-}ZXa0z)H%qSTVoqC6u5 zBQsqCQ(Z$#1w(TyV@oR|L)W6rY=w}F%+#DzV>UERiN(d4>FAm)tV|4$HL;>;0@)OT zVU>lIp&61cXBMC?Re4Ec^@7Br?99CM_~gW*6hk8*Fa`oNi!Brkjh&b$@9VdlT+%;b JGmFC?c>qbPT?GID diff --git a/inventory.log b/inventory.log index 04001a7..e45bc53 100644 --- a/inventory.log +++ b/inventory.log @@ -1122,3 +1122,315 @@ 2026-05-19 22:42:50,836 INFO * Restarting with stat 2026-05-19 22:42:51,090 WARNING * Debugger is active! 2026-05-19 22:42:51,115 INFO * Debugger PIN: 428-899-358 +2026-05-26 09:29:47,942 INFO WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. + * Running on all addresses (0.0.0.0) + * Running on http://127.0.0.1:5006 + * Running on http://10.2.200.72:5006 +2026-05-26 09:29:47,943 INFO Press CTRL+C to quit +2026-05-26 09:29:47,947 INFO * Restarting with stat +2026-05-26 09:29:48,095 WARNING * Debugger is active! +2026-05-26 09:29:48,123 INFO * Debugger PIN: 120-749-271 +2026-05-26 09:30:32,960 INFO 127.0.0.1 - - [26/May/2026 09:30:32] "GET / HTTP/1.1" 200 - +2026-05-26 09:30:33,169 INFO 127.0.0.1 - - [26/May/2026 09:30:33] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:31:48,540 INFO 127.0.0.1 - - [26/May/2026 09:31:48] "GET /users/new HTTP/1.1" 200 - +2026-05-26 09:31:48,573 INFO 127.0.0.1 - - [26/May/2026 09:31:48] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:32:45,582 INFO * Detected change in '/Users/erik/Documents/DEV/Key Verwaltung/app.py', reloading +2026-05-26 09:32:45,621 INFO * Restarting with stat +2026-05-26 09:32:45,895 WARNING * Debugger is active! +2026-05-26 09:32:45,911 INFO * Debugger PIN: 120-749-271 +2026-05-26 09:33:20,454 INFO 127.0.0.1 - - [26/May/2026 09:33:20] "GET / HTTP/1.1" 200 - +2026-05-26 09:33:20,486 INFO 127.0.0.1 - - [26/May/2026 09:33:20] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:33:21,481 INFO 127.0.0.1 - - [26/May/2026 09:33:21] "GET /users/new HTTP/1.1" 200 - +2026-05-26 09:33:21,507 INFO 127.0.0.1 - - [26/May/2026 09:33:21] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:33:31,401 INFO 127.0.0.1 - - [26/May/2026 09:33:31] "GET /assign HTTP/1.1" 200 - +2026-05-26 09:33:31,429 INFO 127.0.0.1 - - [26/May/2026 09:33:31] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:33:41,231 INFO 127.0.0.1 - - [26/May/2026 09:33:41] "GET /users/new HTTP/1.1" 200 - +2026-05-26 09:33:41,253 INFO 127.0.0.1 - - [26/May/2026 09:33:41] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:34:11,757 INFO 127.0.0.1 - - [26/May/2026 09:34:11] "POST /users/new HTTP/1.1" 302 - +2026-05-26 09:34:11,787 INFO 127.0.0.1 - - [26/May/2026 09:34:11] "GET / HTTP/1.1" 200 - +2026-05-26 09:34:11,813 INFO 127.0.0.1 - - [26/May/2026 09:34:11] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:34:11,819 INFO 127.0.0.1 - - [26/May/2026 09:34:11] "GET /static/favicon.ico HTTP/1.1" 304 - +2026-05-26 09:35:27,415 INFO * Detected change in '/Users/erik/Documents/DEV/Key Verwaltung/app.py', reloading +2026-05-26 09:35:27,446 INFO * Restarting with stat +2026-05-26 09:35:27,690 WARNING * Debugger is active! +2026-05-26 09:35:27,705 INFO * Debugger PIN: 120-749-271 +2026-05-26 09:36:41,161 INFO * Detected change in '/Users/erik/Documents/DEV/Key Verwaltung/app.py', reloading +2026-05-26 09:36:41,192 INFO * Restarting with stat +2026-05-26 09:36:41,430 WARNING * Debugger is active! +2026-05-26 09:36:41,444 INFO * Debugger PIN: 120-749-271 +2026-05-26 09:36:42,560 INFO * Detected change in '/Users/erik/Documents/DEV/Key Verwaltung/app.py', reloading +2026-05-26 09:36:42,588 INFO * Restarting with stat +2026-05-26 09:36:42,764 WARNING * Debugger is active! +2026-05-26 09:36:42,775 INFO * Debugger PIN: 120-749-271 +2026-05-26 09:36:57,620 INFO 127.0.0.1 - - [26/May/2026 09:36:57] "GET / HTTP/1.1" 200 - +2026-05-26 09:36:57,654 INFO 127.0.0.1 - - [26/May/2026 09:36:57] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:37:02,150 INFO 127.0.0.1 - - [26/May/2026 09:37:02] "GET /users/new HTTP/1.1" 200 - +2026-05-26 09:37:02,177 INFO 127.0.0.1 - - [26/May/2026 09:37:02] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:37:03,443 INFO 127.0.0.1 - - [26/May/2026 09:37:03] "GET /assign HTTP/1.1" 200 - +2026-05-26 09:37:03,481 INFO 127.0.0.1 - - [26/May/2026 09:37:03] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:37:12,103 INFO 127.0.0.1 - - [26/May/2026 09:37:12] "GET /return HTTP/1.1" 200 - +2026-05-26 09:37:12,123 INFO 127.0.0.1 - - [26/May/2026 09:37:12] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:37:15,722 INFO 127.0.0.1 - - [26/May/2026 09:37:15] "GET / HTTP/1.1" 200 - +2026-05-26 09:37:15,744 INFO 127.0.0.1 - - [26/May/2026 09:37:15] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:37:36,657 INFO 127.0.0.1 - - [26/May/2026 09:37:36] "GET /admin/import HTTP/1.1" 200 - +2026-05-26 09:37:36,679 INFO 127.0.0.1 - - [26/May/2026 09:37:36] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:37:42,057 INFO 127.0.0.1 - - [26/May/2026 09:37:42] "GET / HTTP/1.1" 200 - +2026-05-26 09:37:42,082 INFO 127.0.0.1 - - [26/May/2026 09:37:42] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:39:01,302 INFO * Detected change in '/Users/erik/Documents/DEV/Key Verwaltung/app.py', reloading +2026-05-26 09:39:01,337 INFO * Restarting with stat +2026-05-26 09:39:02,981 WARNING * Debugger is active! +2026-05-26 09:39:03,011 INFO * Debugger PIN: 120-749-271 +2026-05-26 09:39:04,145 INFO * Detected change in '/Users/erik/Documents/DEV/Key Verwaltung/app.py', reloading +2026-05-26 09:39:04,196 INFO * Restarting with stat +2026-05-26 09:39:04,514 WARNING * Debugger is active! +2026-05-26 09:39:04,531 INFO * Debugger PIN: 120-749-271 +2026-05-26 09:39:09,836 INFO * Detected change in '/Users/erik/Documents/DEV/Key Verwaltung/app.py', reloading +2026-05-26 09:39:09,860 INFO * Restarting with stat +2026-05-26 09:39:10,040 WARNING * Debugger is active! +2026-05-26 09:39:10,051 INFO * Debugger PIN: 120-749-271 +2026-05-26 09:39:25,999 INFO 127.0.0.1 - - [26/May/2026 09:39:25] "GET / HTTP/1.1" 200 - +2026-05-26 09:39:26,044 INFO 127.0.0.1 - - [26/May/2026 09:39:26] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:39:27,940 INFO 127.0.0.1 - - [26/May/2026 09:39:27] "GET /admin/import HTTP/1.1" 200 - +2026-05-26 09:39:27,971 INFO 127.0.0.1 - - [26/May/2026 09:39:27] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:39:54,151 INFO 127.0.0.1 - - [26/May/2026 09:39:54] "GET / HTTP/1.1" 200 - +2026-05-26 09:39:54,171 INFO 127.0.0.1 - - [26/May/2026 09:39:54] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:39:57,003 INFO 127.0.0.1 - - [26/May/2026 09:39:57] "GET /users/new HTTP/1.1" 200 - +2026-05-26 09:39:57,024 INFO 127.0.0.1 - - [26/May/2026 09:39:57] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:41:02,435 INFO * Detected change in '/Users/erik/Documents/DEV/Key Verwaltung/app.py', reloading +2026-05-26 09:41:02,469 INFO * Restarting with stat +2026-05-26 09:41:02,732 WARNING * Debugger is active! +2026-05-26 09:41:02,752 INFO * Debugger PIN: 120-749-271 +2026-05-26 09:41:43,649 INFO 127.0.0.1 - - [26/May/2026 09:41:43] "GET / HTTP/1.1" 500 - +2026-05-26 09:41:43,697 INFO 127.0.0.1 - - [26/May/2026 09:41:43] "GET /?__debugger__=yes&cmd=resource&f=style.css HTTP/1.1" 200 - +2026-05-26 09:41:43,705 INFO 127.0.0.1 - - [26/May/2026 09:41:43] "GET /?__debugger__=yes&cmd=resource&f=debugger.js HTTP/1.1" 200 - +2026-05-26 09:41:43,710 INFO 127.0.0.1 - - [26/May/2026 09:41:43] "GET /?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 200 - +2026-05-26 09:41:43,713 INFO 127.0.0.1 - - [26/May/2026 09:41:43] "GET /?__debugger__=yes&cmd=resource&f=console.png&s=L3AK89IbPCI5lW5l4bmf HTTP/1.1" 200 - +2026-05-26 09:42:51,765 INFO * Detected change in '/Users/erik/Documents/DEV/Key Verwaltung/app.py', reloading +2026-05-26 09:42:51,809 INFO * Restarting with stat +2026-05-26 09:42:52,092 WARNING * Debugger is active! +2026-05-26 09:42:52,117 INFO * Debugger PIN: 120-749-271 +2026-05-26 09:43:02,764 INFO 127.0.0.1 - - [26/May/2026 09:43:02] "GET /favicon.ico HTTP/1.1" 404 - +2026-05-26 09:43:05,542 INFO 127.0.0.1 - - [26/May/2026 09:43:05] "GET / HTTP/1.1" 200 - +2026-05-26 09:43:05,567 INFO 127.0.0.1 - - [26/May/2026 09:43:05] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:43:08,539 INFO 127.0.0.1 - - [26/May/2026 09:43:08] "GET /users/new HTTP/1.1" 200 - +2026-05-26 09:43:08,562 INFO 127.0.0.1 - - [26/May/2026 09:43:08] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:43:17,991 INFO 127.0.0.1 - - [26/May/2026 09:43:17] "GET / HTTP/1.1" 200 - +2026-05-26 09:43:18,016 INFO 127.0.0.1 - - [26/May/2026 09:43:18] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:43:26,062 INFO 127.0.0.1 - - [26/May/2026 09:43:26] "GET /users/1/edit HTTP/1.1" 200 - +2026-05-26 09:43:26,085 INFO 127.0.0.1 - - [26/May/2026 09:43:26] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:43:41,891 INFO 127.0.0.1 - - [26/May/2026 09:43:41] "POST /users/1/edit HTTP/1.1" 302 - +2026-05-26 09:43:41,916 INFO 127.0.0.1 - - [26/May/2026 09:43:41] "GET / HTTP/1.1" 200 - +2026-05-26 09:43:41,938 INFO 127.0.0.1 - - [26/May/2026 09:43:41] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:43:41,950 INFO 127.0.0.1 - - [26/May/2026 09:43:41] "GET /static/favicon.ico HTTP/1.1" 304 - +2026-05-26 09:43:46,667 INFO 127.0.0.1 - - [26/May/2026 09:43:46] "GET /users/1/edit HTTP/1.1" 200 - +2026-05-26 09:43:46,688 INFO 127.0.0.1 - - [26/May/2026 09:43:46] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:43:49,793 INFO 127.0.0.1 - - [26/May/2026 09:43:49] "GET / HTTP/1.1" 200 - +2026-05-26 09:43:49,820 INFO 127.0.0.1 - - [26/May/2026 09:43:49] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:43:51,867 INFO 127.0.0.1 - - [26/May/2026 09:43:51] "GET /users/2/edit HTTP/1.1" 200 - +2026-05-26 09:43:51,889 INFO 127.0.0.1 - - [26/May/2026 09:43:51] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:44:02,825 INFO 127.0.0.1 - - [26/May/2026 09:44:02] "GET / HTTP/1.1" 200 - +2026-05-26 09:44:02,851 INFO 127.0.0.1 - - [26/May/2026 09:44:02] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:44:09,620 INFO 127.0.0.1 - - [26/May/2026 09:44:09] "GET /admin/import HTTP/1.1" 200 - +2026-05-26 09:44:09,641 INFO 127.0.0.1 - - [26/May/2026 09:44:09] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:46:57,637 INFO 127.0.0.1 - - [26/May/2026 09:46:57] "GET / HTTP/1.1" 200 - +2026-05-26 09:46:57,662 INFO 127.0.0.1 - - [26/May/2026 09:46:57] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:47:01,864 INFO 127.0.0.1 - - [26/May/2026 09:47:01] "GET /users/new HTTP/1.1" 200 - +2026-05-26 09:47:01,885 INFO 127.0.0.1 - - [26/May/2026 09:47:01] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:47:02,952 INFO 127.0.0.1 - - [26/May/2026 09:47:02] "GET /assign HTTP/1.1" 200 - +2026-05-26 09:47:02,972 INFO 127.0.0.1 - - [26/May/2026 09:47:02] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:47:04,065 INFO 127.0.0.1 - - [26/May/2026 09:47:04] "GET /admin/import HTTP/1.1" 200 - +2026-05-26 09:47:04,088 INFO 127.0.0.1 - - [26/May/2026 09:47:04] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:51:09,481 INFO 127.0.0.1 - - [26/May/2026 09:51:09] "GET /users/new HTTP/1.1" 200 - +2026-05-26 09:51:09,524 INFO 127.0.0.1 - - [26/May/2026 09:51:09] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:51:09,909 INFO 127.0.0.1 - - [26/May/2026 09:51:09] "GET / HTTP/1.1" 200 - +2026-05-26 09:51:09,942 INFO 127.0.0.1 - - [26/May/2026 09:51:09] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:51:12,450 INFO 127.0.0.1 - - [26/May/2026 09:51:12] "GET /users/2/edit HTTP/1.1" 200 - +2026-05-26 09:51:12,472 INFO 127.0.0.1 - - [26/May/2026 09:51:12] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:51:57,605 INFO * Detected change in '/Users/erik/Documents/DEV/Key Verwaltung/app.py', reloading +2026-05-26 09:51:57,636 INFO * Restarting with stat +2026-05-26 09:51:57,992 WARNING * Debugger is active! +2026-05-26 09:51:58,020 INFO * Debugger PIN: 120-749-271 +2026-05-26 09:52:35,598 INFO 127.0.0.1 - - [26/May/2026 09:52:35] "GET / HTTP/1.1" 200 - +2026-05-26 09:52:35,630 INFO 127.0.0.1 - - [26/May/2026 09:52:35] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:52:40,242 INFO 127.0.0.1 - - [26/May/2026 09:52:40] "GET /users/1/edit HTTP/1.1" 200 - +2026-05-26 09:52:40,269 INFO 127.0.0.1 - - [26/May/2026 09:52:40] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:52:46,923 INFO 127.0.0.1 - - [26/May/2026 09:52:46] "POST /users/1/delete HTTP/1.1" 302 - +2026-05-26 09:52:46,932 INFO 127.0.0.1 - - [26/May/2026 09:52:46] "GET /users/1/edit HTTP/1.1" 200 - +2026-05-26 09:52:46,958 INFO 127.0.0.1 - - [26/May/2026 09:52:46] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:52:46,967 INFO 127.0.0.1 - - [26/May/2026 09:52:46] "GET /static/favicon.ico HTTP/1.1" 304 - +2026-05-26 09:53:18,318 INFO 127.0.0.1 - - [26/May/2026 09:53:18] "GET /return HTTP/1.1" 200 - +2026-05-26 09:53:18,345 INFO 127.0.0.1 - - [26/May/2026 09:53:18] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 09:53:25,571 INFO 127.0.0.1 - - [26/May/2026 09:53:25] "GET / HTTP/1.1" 200 - +2026-05-26 09:53:25,592 INFO 127.0.0.1 - - [26/May/2026 09:53:25] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 10:33:39,758 INFO 127.0.0.1 - - [26/May/2026 10:33:39] "GET /admin/import HTTP/1.1" 200 - +2026-05-26 10:33:39,814 INFO 127.0.0.1 - - [26/May/2026 10:33:39] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 10:37:03,373 INFO 127.0.0.1 - - [26/May/2026 10:37:03] "POST /admin/import HTTP/1.1" 302 - +2026-05-26 10:37:03,380 INFO 127.0.0.1 - - [26/May/2026 10:37:03] "GET /admin/import HTTP/1.1" 200 - +2026-05-26 10:37:03,398 INFO 127.0.0.1 - - [26/May/2026 10:37:03] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 10:37:03,405 INFO 127.0.0.1 - - [26/May/2026 10:37:03] "GET /static/favicon.ico HTTP/1.1" 304 - +2026-05-26 10:37:56,357 INFO import | user= Generalschluessel | typ=Tuerchip | kennung=1 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user=Ralf Binder | typ=Tuerchip | kennung=2 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user=Julia Bechtle | typ=Tuerchip | kennung=3 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user=Benedict Scheller | typ=Tuerchip | kennung=5 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user= Wachdienst | typ=Tuerchip | kennung=6 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user=Mario Klar | typ=Tuerchip | kennung=7 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user=Thomas Schirmer | typ=Tuerchip | kennung=8 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user=Helene Abrahams | typ=Tuerchip | kennung=9 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user=Dusanka Panic | typ=Tuerchip | kennung=16 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user=Martin Layh | typ=Tuerchip | kennung=18 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user=Daniele Cannata | typ=Tuerchip | kennung=20 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user=Marcus Schnizer | typ=Tuerchip | kennung=21 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user=Oliver Frank | typ=Tuerchip | kennung=22 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user=Alexander Gier | typ=Tuerchip | kennung=23 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user=Philipp Goedrich | typ=Tuerchip | kennung=24 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user=Tobias Beller | typ=Tuerchip | kennung=25 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user=Thorsten Micha | typ=Tuerchip | kennung=26 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user=Stefan Renz | typ=Tuerchip | kennung=27 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user=Harald Hagenlocher | typ=Tuerchip | kennung=28 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user=Mohammed Rami | typ=Tuerchip | kennung=29 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user=FrauSchnorr ReinigungsdienstBauer | typ=Tuerchip | kennung=31 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user=Jochen Porep | typ=Tuerchip | kennung=34 | bearbeiter=Import +2026-05-26 10:37:56,358 INFO import | user=Christian Maurer | typ=Tuerchip | kennung=36 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Turker Kaleburun | typ=Tuerchip | kennung=42 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Marc Hofmann | typ=Tuerchip | kennung=46 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Klaus Treiber | typ=Tuerchip | kennung=47 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Andreas Pyter | typ=Tuerchip | kennung=48 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Christian Glück | typ=Tuerchip | kennung=49 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Dennis Steck | typ=Tuerchip | kennung=50 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Yannik Neuberth | typ=Tuerchip | kennung=52 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Sebastian Buchholz | typ=Tuerchip | kennung=53 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Andreas Edelmann | typ=Tuerchip | kennung=54 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Sascha Almer | typ=Tuerchip | kennung=58 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Stefan Schäfer | typ=Tuerchip | kennung=59 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Frank Raith | typ=Tuerchip | kennung=60 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Sebastian Otte | typ=Tuerchip | kennung=62 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Blind Reinigung | typ=Tuerchip | kennung=65 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Katrin Lindemann | typ=Tuerchip | kennung=67 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Martin Schmid | typ=Tuerchip | kennung=69 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Christoph Linhart | typ=Tuerchip | kennung=74 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Thomas Kranert | typ=Tuerchip | kennung=76 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user= Guttmann,Henry | typ=Tuerchip | kennung=77 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user= Brandt,Thomas | typ=Tuerchip | kennung=78 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user= Litschewsky,Daniel | typ=Tuerchip | kennung=81 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Michelle Roth | typ=Tuerchip | kennung=83 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user= Freitag,Alina | typ=Tuerchip | kennung=84 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Felix Aldinger | typ=Tuerchip | kennung=85 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user= Sturm,Stefan | typ=Tuerchip | kennung=86 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user= Hoffmann,Philip | typ=Tuerchip | kennung=87 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user= Schmidt,Achim | typ=Tuerchip | kennung=88 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user= Schnaidt,Christoph | typ=Tuerchip | kennung=89 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user= Augustin,Nikola | typ=Tuerchip | kennung=90 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user= Frerichs,Uwe | typ=Tuerchip | kennung=91 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user= Ullrich,Felix | typ=Tuerchip | kennung=92 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Jacqueline Decker | typ=Tuerchip | kennung=93 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=ICT Catal,Selcuk | typ=Tuerchip | kennung=94 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Paul Kern | typ=Tuerchip | kennung=100 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Marius Angeli | typ=Tuerchip | kennung=111 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Richter Jannik | typ=Tuerchip | kennung=114 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Noah Schmidt | typ=Tuerchip | kennung=118 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Goran Vugrinec | typ=Tuerchip | kennung=119 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Erik Thiele | typ=Tuerchip | kennung=120 | bearbeiter=Import +2026-05-26 10:37:56,359 INFO import | user=Leonard Mitrovic | typ=Tuerchip | kennung=124 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user= Maier,Adrian | typ=Tuerchip | kennung=127 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Massimo Esposito | typ=Tuerchip | kennung=130 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Joachim Braeuer | typ=Tuerchip | kennung=133 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Jannis Schulze | typ=Tuerchip | kennung=138 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Patrick Prettl | typ=Tuerchip | kennung=139 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Patrick Laux | typ=Tuerchip | kennung=141 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Stipan Saran | typ=Tuerchip | kennung=146 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Sabrina Woodson | typ=Tuerchip | kennung=149 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Christos Karalis | typ=Tuerchip | kennung=151 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Filip Mitrovic | typ=Tuerchip | kennung=157 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=David Schreiber | typ=Tuerchip | kennung=160 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Linus Wachter | typ=Tuerchip | kennung=167 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Joel Hirsch | typ=Tuerchip | kennung=168 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Henrik Stieben | typ=Tuerchip | kennung=169 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Patrick Schaefer | typ=Tuerchip | kennung=170 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Linus Kempfle | typ=Tuerchip | kennung=171 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Jan Kirchner | typ=Tuerchip | kennung=173 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Lorenzo Lima | typ=Tuerchip | kennung=174 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Sebastian Noack | typ=Tuerchip | kennung=175 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Michael Gebert | typ=Tuerchip | kennung=176 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Svenja Janssen | typ=Tuerchip | kennung=180 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Manuela Herberich | typ=Tuerchip | kennung=183 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Peter Weickenmeier | typ=Tuerchip | kennung=196 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Clemens Eberhardt | typ=Tuerchip | kennung=197 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Kundenzugang Alarmloeschen | typ=Tuerchip | kennung=201 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Katharina Keiss | typ=Tuerchip | kennung=210 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Robert Reiter | typ=Tuerchip | kennung=215 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Mathias Litzinger | typ=Tuerchip | kennung=216 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Mike Matis | typ=Tuerchip | kennung=217 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=David Pipus | typ=Tuerchip | kennung=218 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Leandro Ribeiro | typ=Tuerchip | kennung=219 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=Ronald Zinn | typ=Tuerchip | kennung=220 | bearbeiter=Import +2026-05-26 10:37:56,360 INFO import | user=1 Reinigungsdienst | typ=Tuerchip | kennung=221 | bearbeiter=Import +2026-05-26 10:37:56,361 INFO import | user=2 Reinigungsdienst | typ=Tuerchip | kennung=222 | bearbeiter=Import +2026-05-26 10:37:56,361 INFO import | user=3 Reinigungsdienst | typ=Tuerchip | kennung=223 | bearbeiter=Import +2026-05-26 10:37:56,361 INFO import | user=4 Reinigungsdienst | typ=Tuerchip | kennung=224 | bearbeiter=Import +2026-05-26 10:37:56,361 INFO import | user=5 Reinigungsdienst | typ=Tuerchip | kennung=225 | bearbeiter=Import +2026-05-26 10:37:56,361 INFO import | user=6 Reinigungsdienst | typ=Tuerchip | kennung=226 | bearbeiter=Import +2026-05-26 10:37:56,361 INFO import | user=Bedeinteile ErrichterZugang | typ=Tuerchip | kennung=63 | bearbeiter=Import +2026-05-26 10:37:56,361 INFO import | user=Reinigung Ersatz | typ=Tuerchip | kennung=145 | bearbeiter=Import +2026-05-26 10:37:56,361 INFO import | user=Ersatz B¸rots | typ=Tuerchip | kennung=227 | bearbeiter=Import +2026-05-26 10:37:56,364 INFO 127.0.0.1 - - [26/May/2026 10:37:56] "POST /admin/import HTTP/1.1" 302 - +2026-05-26 10:37:56,391 INFO 127.0.0.1 - - [26/May/2026 10:37:56] "GET / HTTP/1.1" 200 - +2026-05-26 10:37:56,420 INFO 127.0.0.1 - - [26/May/2026 10:37:56] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 10:37:56,450 INFO 127.0.0.1 - - [26/May/2026 10:37:56] "GET /static/favicon.ico HTTP/1.1" 304 - +2026-05-26 10:38:50,088 INFO 127.0.0.1 - - [26/May/2026 10:38:50] "GET /users/95/edit HTTP/1.1" 200 - +2026-05-26 10:38:50,111 INFO 127.0.0.1 - - [26/May/2026 10:38:50] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 10:39:00,010 INFO 127.0.0.1 - - [26/May/2026 10:39:00] "GET / HTTP/1.1" 200 - +2026-05-26 10:39:00,036 INFO 127.0.0.1 - - [26/May/2026 10:39:00] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 10:39:14,743 INFO 127.0.0.1 - - [26/May/2026 10:39:14] "GET /?q=224 HTTP/1.1" 200 - +2026-05-26 10:39:14,764 INFO 127.0.0.1 - - [26/May/2026 10:39:14] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 10:39:26,622 INFO 127.0.0.1 - - [26/May/2026 10:39:26] "GET /?q=Reinigung HTTP/1.1" 200 - +2026-05-26 10:39:26,648 INFO 127.0.0.1 - - [26/May/2026 10:39:26] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 10:39:56,959 INFO 127.0.0.1 - - [26/May/2026 10:39:56] "GET /?q= HTTP/1.1" 200 - +2026-05-26 10:39:56,981 INFO 127.0.0.1 - - [26/May/2026 10:39:56] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 10:41:22,855 INFO 127.0.0.1 - - [26/May/2026 10:41:22] "GET /assign HTTP/1.1" 200 - +2026-05-26 10:41:22,879 INFO 127.0.0.1 - - [26/May/2026 10:41:22] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 10:41:41,945 INFO 127.0.0.1 - - [26/May/2026 10:41:41] "GET /return HTTP/1.1" 200 - +2026-05-26 10:41:41,968 INFO 127.0.0.1 - - [26/May/2026 10:41:41] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 10:41:52,001 INFO rueckgabe | user=Erik Thiele | typ=Poolfahrzeug | kennung=GZ-CC-433E | bearbeiter=Administrator +2026-05-26 10:41:52,001 INFO 127.0.0.1 - - [26/May/2026 10:41:52] "POST /return HTTP/1.1" 302 - +2026-05-26 10:41:52,023 INFO 127.0.0.1 - - [26/May/2026 10:41:52] "GET /transactions/108/print HTTP/1.1" 200 - +2026-05-26 10:41:52,046 INFO 127.0.0.1 - - [26/May/2026 10:41:52] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 10:41:52,049 INFO 127.0.0.1 - - [26/May/2026 10:41:52] "GET /static/favicon.ico HTTP/1.1" 304 - +2026-05-26 10:41:54,972 INFO 127.0.0.1 - - [26/May/2026 10:41:54] "GET / HTTP/1.1" 200 - +2026-05-26 10:41:54,996 INFO 127.0.0.1 - - [26/May/2026 10:41:54] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 10:41:55,029 INFO 127.0.0.1 - - [26/May/2026 10:41:55] "GET /static/favicon.ico HTTP/1.1" 304 - +2026-05-26 10:42:49,823 INFO 127.0.0.1 - - [26/May/2026 10:42:49] "GET /users/new HTTP/1.1" 200 - +2026-05-26 10:42:49,846 INFO 127.0.0.1 - - [26/May/2026 10:42:49] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 10:42:52,036 INFO 127.0.0.1 - - [26/May/2026 10:42:52] "GET / HTTP/1.1" 200 - +2026-05-26 10:42:52,059 INFO 127.0.0.1 - - [26/May/2026 10:42:52] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 10:42:59,705 INFO 127.0.0.1 - - [26/May/2026 10:42:59] "GET /users/9/edit HTTP/1.1" 200 - +2026-05-26 10:42:59,730 INFO 127.0.0.1 - - [26/May/2026 10:42:59] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 10:43:12,497 INFO 127.0.0.1 - - [26/May/2026 10:43:12] "GET / HTTP/1.1" 200 - +2026-05-26 10:43:12,519 INFO 127.0.0.1 - - [26/May/2026 10:43:12] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 13:05:35,439 INFO 127.0.0.1 - - [26/May/2026 13:05:35] "GET /?q=laux HTTP/1.1" 200 - +2026-05-26 13:05:35,496 INFO 127.0.0.1 - - [26/May/2026 13:05:35] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 13:05:47,475 INFO 127.0.0.1 - - [26/May/2026 13:05:47] "GET /assign HTTP/1.1" 200 - +2026-05-26 13:05:47,499 INFO 127.0.0.1 - - [26/May/2026 13:05:47] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 13:06:14,663 INFO ausgabe | user=Patrick Laux | typ=Parkkarte | kennung=151 | bearbeiter=Administrator +2026-05-26 13:06:14,664 INFO 127.0.0.1 - - [26/May/2026 13:06:14] "POST /assign HTTP/1.1" 302 - +2026-05-26 13:06:14,677 INFO 127.0.0.1 - - [26/May/2026 13:06:14] "GET /transactions/109/print HTTP/1.1" 200 - +2026-05-26 13:06:14,698 INFO 127.0.0.1 - - [26/May/2026 13:06:14] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 13:06:14,711 INFO 127.0.0.1 - - [26/May/2026 13:06:14] "GET /static/favicon.ico HTTP/1.1" 304 - +2026-05-26 13:08:47,255 INFO 127.0.0.1 - - [26/May/2026 13:08:47] "GET / HTTP/1.1" 200 - +2026-05-26 13:08:47,283 INFO 127.0.0.1 - - [26/May/2026 13:08:47] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 13:08:47,312 INFO 127.0.0.1 - - [26/May/2026 13:08:47] "GET /static/favicon.ico HTTP/1.1" 304 - +2026-05-26 13:08:48,765 INFO 127.0.0.1 - - [26/May/2026 13:08:48] "GET /admin/import HTTP/1.1" 200 - +2026-05-26 13:08:48,794 INFO 127.0.0.1 - - [26/May/2026 13:08:48] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 13:08:58,882 INFO 127.0.0.1 - - [26/May/2026 13:08:58] "GET /return HTTP/1.1" 200 - +2026-05-26 13:08:58,914 INFO 127.0.0.1 - - [26/May/2026 13:08:58] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 13:27:05,420 INFO 127.0.0.1 - - [26/May/2026 13:27:05] "GET / HTTP/1.1" 200 - +2026-05-26 13:27:05,464 INFO 127.0.0.1 - - [26/May/2026 13:27:05] "GET /static/cancom.svg HTTP/1.1" 304 - +2026-05-26 16:49:45,930 INFO WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. + * Running on all addresses (0.0.0.0) + * Running on http://127.0.0.1:5006 + * Running on http://10.2.200.72:5006 +2026-05-26 16:49:45,933 INFO Press CTRL+C to quit +2026-05-26 16:49:45,939 INFO * Restarting with stat +2026-05-26 16:49:46,092 WARNING * Debugger is active! +2026-05-26 16:49:46,119 INFO * Debugger PIN: 428-899-358 +2026-05-26 16:50:22,034 INFO 127.0.0.1 - - [26/May/2026 16:50:22] "GET / HTTP/1.1" 200 - +2026-05-26 16:50:22,070 INFO 127.0.0.1 - - [26/May/2026 16:50:22] "GET /static/cancom.svg HTTP/1.1" 304 - diff --git a/session-ses_1c38.md b/session-ses_1c38.md new file mode 100644 index 0000000..1a3f2c0 --- /dev/null +++ b/session-ses_1c38.md @@ -0,0 +1,4415 @@ +# Fußzeile ohne Strich wie Referenz links + +**Session ID:** ses_1c38497b2ffeAZVYNxTAGVsmpA +**Created:** 5/18/2026, 9:06:21 PM +**Updated:** 5/26/2026, 9:52:10 AM + +--- + +## Assistant (Build · GPT-5.4 Mini · 2.8s) + +Ich benenne die sichtbaren Stellen jetzt auf `keyadmin` um und lasse die internen Dateinamen und die Runtime-DB unangetastet. + +**Tool: apply_patch** + +**Input:** +```json +{ + "patchText": "*** Begin Patch\n*** Update File: /Users/erik/Documents/DEV/Key Verwaltung/templates/base.html\n@@\n- {{ title or \"Chipverwaltung\" }}\n+ {{ title or \"keyadmin\" }}\n*** End Patch" +} +``` + +**Output:** +``` +Success. Updated the following files: +M templates/base.html +``` + +--- + +## Assistant (Build · GPT-5.4 Mini · 2.5s) + +**Tool: apply_patch** + +**Input:** +```json +{ + "patchText": "*** Begin Patch\n*** Update File: /Users/erik/Documents/DEV/Key Verwaltung/templates/login.html\n@@\n-

Chipverwaltung

\n+

keyadmin

\n*** End Patch" +} +``` + +**Output:** +``` +Success. Updated the following files: +M templates/login.html +``` + +--- + +## Assistant (Build · GPT-5.4 Mini · 3.0s) + +**Tool: apply_patch** + +**Input:** +```json +{ + "patchText": "*** Begin Patch\n*** Update File: /Users/erik/Documents/DEV/Key Verwaltung/README.md\n@@\n-# Verwaltung fuer Tuerchips, Parkkarten und Poolfahrzeuge\n+# keyadmin\n*** End Patch" +} +``` + +**Output:** +``` +Success. Updated the following files: +M README.md +``` + +--- + +## Assistant (Build · GPT-5.4 Mini · 3.1s) + +`keyadmin` ist jetzt in den sichtbaren Stellen gesetzt: + +- Browser-Tab-Titel: `keyadmin` +- Login-Überschrift: `keyadmin` +- README-Titel: `keyadmin` + +Ich habe die internen Dateinamen und die Compose-Referenzen bewusst nicht umbenannt, nur die sichtbare Anwendungssprache. + +Wenn du willst, kann ich als Nächstes auch den Header-Brandtext noch von `CANCOM BU Sued/West`/`Tuerchip-, Parkkarten- und Poolfahrzeugverwaltung` auf etwas kompakteres mit `keyadmin` abstimmen. + +--- + +## User + +ja + +--- + +## Assistant (Build · GPT-5.4 Mini · 3.9s) + +Ich passe den Header-Brandtext so an, dass `keyadmin` dort als Hauptmarke erscheint und die Unterzeile kurz bleibt. + +**Tool: read** + +**Input:** +```json +{ + "filePath": "/Users/erik/Documents/DEV/Key Verwaltung/templates/base.html", + "offset": 491, + "limit": 16 +} +``` + +**Output:** +``` +/Users/erik/Documents/DEV/Key Verwaltung/templates/base.html +file + +491: