From 45d4f78006a2f2c766646c35c96d2cc90f97fb86 Mon Sep 17 00:00:00 2001 From: Christian Date: Fri, 2 Jan 2026 12:58:53 +0100 Subject: [PATCH] debug: Add detailed logging to approval flow (v1.3.82) - Add logging before approval object creation - Add logging after approval object creation - Add logging before database update - Add logging after database update - Add time_id to error messages - This will help diagnose 500 errors on production --- VERSION | 2 +- app/timetracking/backend/router.py | 5 ++++- app/timetracking/backend/wizard.py | 3 +++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index 64b17e0..b64f251 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.3.81 \ No newline at end of file +1.3.82 \ No newline at end of file diff --git a/app/timetracking/backend/router.py b/app/timetracking/backend/router.py index 0bfc5f1..ff5dcfe 100644 --- a/app/timetracking/backend/router.py +++ b/app/timetracking/backend/router.py @@ -287,6 +287,8 @@ async def approve_time_entry( ) # Godkend med alle felter + logger.info(f"🔍 Creating approval for time_id={time_id}: approved_hours={approved_hours}, rounded_to={rounded_to}, is_travel={request.get('is_travel', False)}") + approval = TModuleTimeApproval( time_id=time_id, approved_hours=approved_hours, @@ -296,11 +298,12 @@ async def approve_time_entry( is_travel=request.get('is_travel', False) ) + logger.info(f"✅ Approval object created successfully") return wizard.approve_time_entry(approval, user_id=user_id) except HTTPException: raise except Exception as e: - logger.error(f"❌ Error approving entry: {e}", exc_info=True) + logger.error(f"❌ Error approving entry {time_id}: {e}", exc_info=True) raise HTTPException(status_code=500, detail=str(e)) diff --git a/app/timetracking/backend/wizard.py b/app/timetracking/backend/wizard.py index 75310e1..e9b26ba 100644 --- a/app/timetracking/backend/wizard.py +++ b/app/timetracking/backend/wizard.py @@ -173,6 +173,7 @@ class WizardService: ) # Update entry + logger.info(f"🔄 Updating time entry {approval.time_id} in database") update_query = """ UPDATE tmodule_times SET status = 'approved', @@ -199,6 +200,8 @@ class WizardService: ) ) + logger.info(f"✅ Database update successful for time entry {approval.time_id}") + # Log approval audit.log_approval( time_id=approval.time_id,