diff --git a/backend/app/api/endpoints/pprs.py b/backend/app/api/endpoints/pprs.py index 06b18c4..513f814 100644 --- a/backend/app/api/endpoints/pprs.py +++ b/backend/app/api/endpoints/pprs.py @@ -152,6 +152,7 @@ async def update_ppr_status( db, ppr_id=ppr_id, status=status_update.status, + timestamp=status_update.timestamp, user=current_user.username, user_ip=client_ip ) @@ -169,7 +170,7 @@ async def update_ppr_status( "id": ppr.id, "ac_reg": ppr.ac_reg, "status": ppr.status.value, - "timestamp": ppr.landed_dt.isoformat() if ppr.landed_dt else None + "timestamp": ppr.landed_dt.isoformat() if ppr.landed_dt else (ppr.departed_dt.isoformat() if ppr.departed_dt else None) } }) diff --git a/backend/app/crud/crud_ppr.py b/backend/app/crud/crud_ppr.py index dd10be5..a06c80e 100644 --- a/backend/app/crud/crud_ppr.py +++ b/backend/app/crud/crud_ppr.py @@ -110,6 +110,7 @@ class CRUDPPR: db: Session, ppr_id: int, status: PPRStatus, + timestamp: Optional[datetime] = None, user: str = "system", user_ip: str = "127.0.0.1" ) -> Optional[PPRRecord]: @@ -120,11 +121,12 @@ class CRUDPPR: old_status = db_obj.status db_obj.status = status - # Set timestamps based on status + # Set timestamps based on status - use provided timestamp or current time + current_time = timestamp if timestamp is not None else datetime.utcnow() if status == PPRStatus.LANDED: - db_obj.landed_dt = datetime.utcnow() + db_obj.landed_dt = current_time elif status == PPRStatus.DEPARTED: - db_obj.departed_dt = datetime.utcnow() + db_obj.departed_dt = current_time db.add(db_obj) db.commit() diff --git a/backend/app/schemas/ppr.py b/backend/app/schemas/ppr.py index ad963f7..40a7f96 100644 --- a/backend/app/schemas/ppr.py +++ b/backend/app/schemas/ppr.py @@ -71,6 +71,7 @@ class PPRUpdate(BaseModel): class PPRStatusUpdate(BaseModel): status: PPRStatus + timestamp: Optional[datetime] = None class PPRInDBBase(PPRBase): diff --git a/docker-compose.yml b/docker-compose.yml index 21bbf89..d11ce08 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -72,6 +72,24 @@ services: networks: - ppr_network + # phpMyAdmin for database management + phpmyadmin: + image: phpmyadmin/phpmyadmin + container_name: ppr_nextgen_phpmyadmin + restart: unless-stopped + environment: + PMA_HOST: db + PMA_PORT: 3306 + PMA_USER: ppr_user + PMA_PASSWORD: ppr_password123 + UPLOAD_LIMIT: 50M + ports: + - "8083:80" # phpMyAdmin web interface + depends_on: + - db + networks: + - ppr_network + volumes: mysql_data: diff --git a/web/admin.html b/web/admin.html index 7130ae8..765b8cf 100644 --- a/web/admin.html +++ b/web/admin.html @@ -110,9 +110,14 @@ background-color: #c0392b; } - .btn-sm { - padding: 0.4rem 0.8rem; + .btn-icon { + padding: 0.3rem 0.6rem; font-size: 0.8rem; + min-width: auto; + } + + .btn-icon:hover { + transform: scale(1.05); } .filter-group { @@ -621,10 +626,10 @@ - - + + + + +