Commit Graph

25 Commits

Author SHA1 Message Date
5ec21f0e3f feat(postcard): allow manual status override in new-sent form (auto/pending/sent/delivered) 2026-07-15 19:10:12 +08:00
de29f5445e feat(postcard): split create into sent/received, add pending status and mark-sent flow 2026-07-15 19:04:54 +08:00
599a95ee12 fix(ui): fix field name corruption (country_to_from -> country_from) and ensure all flag displays show country code 2026-07-07 13:54:00 +08:00
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