feat(ui): add mark-delivered button on sent postcards with auto today date

This commit is contained in:
2026-07-05 21:45:32 +08:00
parent 7a62ff0818
commit 5607485c6a
3 changed files with 31 additions and 0 deletions

View File

@@ -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}")

View File

@@ -5,6 +5,11 @@
<h1>{{ postcard.card_number }}</h1>
<div>
<a href="/postcards/{{ postcard.id }}/edit" class="btn">编辑</a>
{% if postcard.status == 'sent' %}
<form method="post" action="/postcards/{{ postcard.id }}/mark-delivered" class="inline">
<button type="submit" class="btn btn-primary" onclick="return confirm('确认已送达?')">标记已送达</button>
</form>
{% endif %}
<form method="post" action="/postcards/{{ postcard.id }}/delete" class="inline">
<button type="submit" class="btn btn-danger" onclick="return confirm('确定删除?')">删除</button>
</form>

View File

@@ -34,6 +34,11 @@
{% else %}
<span>← {{ pc.sender_name or '-' }}</span>
{% endif %}
{% if pc.status == 'sent' %}
<form method="post" action="/postcards/{{ pc.id }}/mark-delivered" class="inline" onclick="event.stopPropagation();">
<button type="submit" class="btn btn-sm btn-primary" onclick="return confirm('确认已送达?')">✓ 标记已送达</button>
</form>
{% endif %}
</div>
</a>
{% endfor %}