diff --git a/app/routers/web.py b/app/routers/web.py index 6238225..696c600 100644 --- a/app/routers/web.py +++ b/app/routers/web.py @@ -339,6 +339,27 @@ def postcard_delete(postcard_id: int, user: User = Depends(get_current_user_web) return _redirect(f"/profiles/{pid}/postcards") +@router.post("/postcards/{postcard_id}/mark-delivered") +def mark_delivered( + postcard_id: int, + user: User = Depends(get_current_user_web), + db: Session = Depends(get_db), +): + pc = ( + db.query(Postcard) + .join(Profile) + .filter(Postcard.id == postcard_id, Profile.user_id == user.id) + .first() + ) + if not pc: + return _redirect("/profiles") + pc.status = "delivered" + if not pc.arrival_time: + pc.arrival_time = datetime.now() + db.commit() + return _redirect(f"/postcards/{postcard_id}") + + # ---------- Image Upload ---------- @router.post("/postcards/{postcard_id}/image/{side}") diff --git a/app/templates/postcard_detail.html b/app/templates/postcard_detail.html index 693d5af..834ebab 100644 --- a/app/templates/postcard_detail.html +++ b/app/templates/postcard_detail.html @@ -5,6 +5,11 @@

{{ postcard.card_number }}

编辑 + {% if postcard.status == 'sent' %} +
+ +
+ {% endif %}
diff --git a/app/templates/postcards.html b/app/templates/postcards.html index 6c67111..cefa665 100644 --- a/app/templates/postcards.html +++ b/app/templates/postcards.html @@ -34,6 +34,11 @@ {% else %} ← {{ pc.sender_name or '-' }} {% endif %} + {% if pc.status == 'sent' %} +
+ +
+ {% endif %}
{% endfor %}