|
|
ad6f2b2ff2
|
refactor(model): rename Postcard.country -> country_to for clear semantics - country_from: origin country (where postcard was sent from) - country_to: destination country (where postcard was sent to) - Profile.country remains as user's home country - Updated all routes, schemas, templates, and API endpoints
|
2026-07-07 13:43:39 +08:00 |
|
|
|
a071b3dde4
|
feat(postcard): profile country, country_from, per-user card number uniqueness, public page overhaul - Profile: add country field for default origin country - Postcard: add country_from field, auto-fill from profile.country on create - card_number uniqueness: change from global to per-user (profile_id + card_number) - Public pages: remove card_number display, only show cards with image_front - Public pages: show country as from→to format - Index page: no time display, add register button, fix lightbox with prev/next - Infinite scroll: add /api/public/cards endpoints and IntersectionObserver - Internal pages: update postcards list/detail for country_from display - i18n: add profiles.country_ph, pc_form.country_from, pc_detail.route
|
2026-07-07 12:32:24 +08:00 |
|
|
|
14c226d082
|
fix(postcards): remove card number format restriction and forced uppercase
|
2026-07-06 23:14:12 +08:00 |
|
|
|
87785494d6
|
feat(i18n): add English localization with per-user language preference
|
2026-07-06 22:41:09 +08:00 |
|
|
|
f448a900f5
|
feat(i18n): add English localization with per-user language preference and navbar toggle
|
2026-07-06 22:07:05 +08:00 |
|
|
|
68c88a7910
|
feat(postcards): add notes field to postcards with edit, detail, and truncated list display
|
2026-07-06 21:07:28 +08:00 |
|
|
|
a0e7f46cc5
|
fix(postcards): auto-fill today date on page load for new postcards
|
2026-07-06 20:09:28 +08:00 |
|
|
|
91b4ff8ed4
|
feat(postcards): auto-fill today date on status change, card_number always uppercase
|
2026-07-06 20:06:42 +08:00 |
|
|
|
a7c5082ff6
|
chore: rename app to 星笺 (Mailova)
|
2026-07-06 00:41:24 +08:00 |
|
|
|
fc55507019
|
i18n: change all page titles and nav text to Chinese
|
2026-07-05 22:40:49 +08:00 |
|
|
|
5b6b2ccef8
|
fix: clear arrival_time and disable field when status is sent
|
2026-07-05 22:15:40 +08:00 |
|
|
|
2bd914532e
|
feat: always display country code in uppercase (model validates + oninput)
|
2026-07-05 21:22:57 +08:00 |
|
|
|
c42d371e08
|
fix(ui): upload button text cut off on mobile, use flex shrink for file input
|
2026-07-05 21:08:10 +08:00 |
|
|
|
282763e7d8
|
fix(ui): toggle required on hidden fields to prevent browser validation error
|
2026-07-05 20:21:57 +08:00 |
|
|
|
08035e3447
|
feat(ui): arrival time only required when status is delivered, not sent
|
2026-07-05 20:19:47 +08:00 |
|
|
|
5d7e70f820
|
fix(ui): toggle required attr on hidden fields when switching postcard status
|
2026-07-05 20:12:13 +08:00 |
|
|
|
f1a9bf7335
|
fix(ui): remove required from date inputs to unblock form submit
|
2026-07-05 20:11:04 +08:00 |
|
|
|
5cfbec892d
|
fix(ui): remove overly strict pattern validation on postcard form
|
2026-07-05 19:35:55 +08:00 |
|
|
|
d7850d200f
|
feat: add profile rename, all postcard fields required
|
2026-07-05 19:00:25 +08:00 |
|
|
|
d278f9144b
|
fix(ui): badge sizing, button alignment, country XX format, date-only fields
|
2026-07-05 16:37:36 +08:00 |
|
|
|
e66515ce72
|
fix(ui): shrink badges, card_number format XX-1234567, date-only fields
|
2026-07-05 16:26:22 +08:00 |
|
|
|
0eca60300f
|
feat: initial postcard manager - FastAPI + Jinja2 + SQLite
|
2026-07-05 16:06:03 +08:00 |
|