feat: add profile rename, all postcard fields required

This commit is contained in:
2026-07-05 19:00:25 +08:00
parent 5aa8b7e7f2
commit d7850d200f
4 changed files with 32 additions and 15 deletions

View File

@@ -9,28 +9,28 @@
<input type="text" name="card_number" value="{{ postcard.card_number if postcard else '' }}" required pattern="[A-Za-z]{2}-\d{7}" title="两个字母 + 短横线 + 7位数字如 AB-1234567">
<label>状态 *</label>
<select name="status" id="status-select" onchange="toggleFields()">
<select name="status" id="status-select" onchange="toggleFields()" required>
<option value="sent" {% if postcard and postcard.status=='sent' %}selected{% endif %}>已寄出</option>
<option value="delivered" {% if postcard and postcard.status=='delivered' %}selected{% endif %}>已送达</option>
<option value="received" {% if postcard and postcard.status=='received' %}selected{% endif %}>已收到</option>
</select>
<div id="fields-sent-delivered">
<label>收件人</label>
<input type="text" name="recipient_name" value="{{ postcard.recipient_name if postcard else '' }}">
<label>国家/地区</label>
<input type="text" name="country" value="{{ postcard.country if postcard else '' }}" pattern="[A-Z]{2}" title="两个大写字母(如 JP、US" maxlength="2" style="width:80px;text-transform:uppercase">
<label>寄出时间</label>
<input type="date" name="send_time" value="{{ postcard.send_time.strftime('%Y-%m-%d') if postcard and postcard.send_time else '' }}">
<label>到达时间</label>
<input type="date" name="arrival_time" value="{{ postcard.arrival_time.strftime('%Y-%m-%d') if postcard and postcard.arrival_time else '' }}">
<label>收件人 *</label>
<input type="text" name="recipient_name" value="{{ postcard.recipient_name if postcard else '' }}" required>
<label>国家/地区 *</label>
<input type="text" name="country" value="{{ postcard.country if postcard else '' }}" required pattern="[A-Z]{2}" title="两个大写字母(如 JP、US" maxlength="2" style="width:80px;text-transform:uppercase">
<label>寄出时间 *</label>
<input type="date" name="send_time" value="{{ postcard.send_time.strftime('%Y-%m-%d') if postcard and postcard.send_time else '' }}" required>
<label>到达时间 *</label>
<input type="date" name="arrival_time" value="{{ postcard.arrival_time.strftime('%Y-%m-%d') if postcard and postcard.arrival_time else '' }}" required>
</div>
<div id="fields-received" style="display:none">
<label>发件人</label>
<input type="text" name="sender_name" value="{{ postcard.sender_name if postcard else '' }}">
<label>收到时间</label>
<input type="date" name="receive_time" value="{{ postcard.receive_time.strftime('%Y-%m-%d') if postcard and postcard.receive_time else '' }}">
<label>发件人 *</label>
<input type="text" name="sender_name" value="{{ postcard.sender_name if postcard else '' }}" required>
<label>收到时间 *</label>
<input type="date" name="receive_time" value="{{ postcard.receive_time.strftime('%Y-%m-%d') if postcard and postcard.receive_time else '' }}" required>
</div>
<div class="form-actions">
@@ -41,8 +41,10 @@
<script>
function toggleFields() {
var s = document.getElementById('status-select').value;
document.getElementById('fields-sent-delivered').style.display = (s === 'received') ? 'none' : '';
document.getElementById('fields-received').style.display = (s === 'received') ? '' : 'none';
var sd = document.getElementById('fields-sent-delivered');
var rc = document.getElementById('fields-received');
sd.style.display = (s === 'received') ? 'none' : '';
rc.style.display = (s === 'received') ? '' : 'none';
}
toggleFields();
</script>

View File

@@ -19,6 +19,10 @@
<td><a href="/profiles/{{ p.id }}/postcards">{{ p.nickname }}</a></td>
<td>{{ p.created_at.strftime('%Y-%m-%d %H:%M') }}</td>
<td>
<form method="post" action="/profiles/{{ p.id }}/rename" class="inline rename-form">
<input type="text" name="nickname" value="{{ p.nickname }}" required>
<button type="submit" class="btn btn-sm">改名</button>
</form>
<form method="post" action="/profiles/{{ p.id }}/delete" class="inline">
<button type="submit" class="btn btn-danger btn-sm" onclick="return confirm('确定删除该 Profile 及其所有明信片?')">删除</button>
</form>