From b87b1eceaee78b940c9fba20d401635a36640cfd Mon Sep 17 00:00:00 2001 From: Daniel Bedeleanu Date: Thu, 23 Apr 2026 15:18:14 +0300 Subject: [PATCH] fix(09): match export UI styles and fix backend user_id error --- .standalone.pid | 6 +- backend/routers/admin/exports.py | 6 +- backups/ainventory_2026-04-23_15-15-00.tar.gz | Bin 0 -> 28954 bytes frontend/components/admin/ExportPanel.tsx | 90 +++++++----------- 4 files changed, 43 insertions(+), 59 deletions(-) create mode 100644 backups/ainventory_2026-04-23_15-15-00.tar.gz diff --git a/.standalone.pid b/.standalone.pid index 950e2496..7b648164 100644 --- a/.standalone.pid +++ b/.standalone.pid @@ -1,3 +1,3 @@ -833504 -833505 -833519 +834000 +834001 +834015 diff --git a/backend/routers/admin/exports.py b/backend/routers/admin/exports.py index 6139188e..60957f2d 100644 --- a/backend/routers/admin/exports.py +++ b/backend/routers/admin/exports.py @@ -61,7 +61,7 @@ async def export_inventory_snapshot( # Log export action from backend.models import AuditLog audit_entry = AuditLog( - user_id=admin_user.id, + user_id=admin_user.sub, action="EXPORT_INVENTORY_SNAPSHOT", details=f"Exported in {format_type} format", ) @@ -113,7 +113,7 @@ async def export_audit_trail( # Log export action audit_entry = AuditLog( - user_id=admin_user.id, + user_id=admin_user.sub, action="EXPORT_AUDIT_TRAIL", details=f"Exported in {format_type} format", ) @@ -211,7 +211,7 @@ async def export_db( # Log export action audit_entry = AuditLog( - user_id=admin_user.id, + user_id=admin_user.sub, action="EXPORT_DB", details=f"Exported {type} in {format_type} format", ) diff --git a/backups/ainventory_2026-04-23_15-15-00.tar.gz b/backups/ainventory_2026-04-23_15-15-00.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..5a5b000baca64123604ff7299c0d3690de179549 GIT binary patch literal 28954 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 -
-
- +
+
+
+
-

Export & Reports

-

- Download inventory snapshots and audit trails -

+

Export & Reports

+

Download system snapshots and action logs

-
+
{/* Inventory Snapshot Section */} -
-
-

Inventory Snapshot

-

- Export current inventory state with all item details +

+
+

+ + Inventory Snapshot +

+

+ Export current inventory state with all item details and locations.

@@ -56,38 +57,31 @@ export function ExportPanel() {
{/* Audit Trail Section */} -
-
-

Audit Trail

-

- Complete log of system actions and changes +

+
+

+ + Audit Trail +

+

+ Complete history of system actions, changes, and user operations.

@@ -95,37 +89,27 @@ export function ExportPanel() {
{error && ( -
+
- Error: {error} + Error: {error}
)}