feat(postcards): auto-fill today date on status change, card_number always uppercase

This commit is contained in:
2026-07-06 20:06:42 +08:00
parent 6157e40db9
commit 91b4ff8ed4
2 changed files with 16 additions and 3 deletions

View File

@@ -536,7 +536,7 @@ def postcard_create(
pc = Postcard( pc = Postcard(
profile_id=profile_id, profile_id=profile_id,
card_number=card_number, card_number=card_number.strip().upper(),
status=status, status=status,
recipient_name=recipient_name or None, recipient_name=recipient_name or None,
country=(country.strip().upper() if country else None), country=(country.strip().upper() if country else None),
@@ -612,7 +612,7 @@ def postcard_update(
except ValueError: except ValueError:
return None return None
pc.card_number = card_number pc.card_number = card_number.strip().upper()
pc.status = status pc.status = status
pc.recipient_name = recipient_name or None pc.recipient_name = recipient_name or None
pc.country = country or None pc.country = country or None

View File

@@ -6,7 +6,7 @@
</div> </div>
<form method="post" action="{{ '/postcards/%d/edit' % postcard.id if postcard else '/profiles/%d/postcards' % profile.id }}" class="form-card"> <form method="post" action="{{ '/postcards/%d/edit' % postcard.id if postcard else '/profiles/%d/postcards' % profile.id }}" class="form-card">
<label>编号 * <span style="font-weight:400;color:var(--text-muted);font-size:.8rem">格式AB-1234567</span></label> <label>编号 * <span style="font-weight:400;color:var(--text-muted);font-size:.8rem">格式AB-1234567</span></label>
<input type="text" name="card_number" value="{{ postcard.card_number if postcard else '' }}" required placeholder="AB-1234567"> <input type="text" name="card_number" value="{{ postcard.card_number if postcard else '' }}" required placeholder="AB-1234567" style="text-transform:uppercase" oninput="this.value=this.value.toUpperCase()">
<label>状态 *</label> <label>状态 *</label>
<select name="status" id="status-select" onchange="toggleFields()" required> <select name="status" id="status-select" onchange="toggleFields()" required>
@@ -86,5 +86,18 @@ function toggleFields() {
} }
} }
toggleFields(); toggleFields();
{% if not postcard %}
// Auto-fill date fields with today when switching status on new postcards
(function() {
var today = new Date().toISOString().slice(0, 10);
var sendTime = document.getElementById('input-send-time');
var receiveTime = document.getElementById('input-receive');
var statusSel = document.getElementById('status-select');
statusSel.addEventListener('change', function() {
if (this.value === 'sent' && !sendTime.value) sendTime.value = today;
if (this.value === 'received' && !receiveTime.value) receiveTime.value = today;
});
})();
{% endif %}
</script> </script>
{% endblock %} {% endblock %}