-
143248ff0f
fix(loyalty): restrict earn points input to digits and decimal only
Samir Boulahtit
2026-04-26 16:11:10 +02:00
-
56c94ac2f4
fix(loyalty): use confirm modal for category deletion
Samir Boulahtit
2026-04-25 14:40:29 +02:00
-
255ac6525e
fix(loyalty): translate category names in transaction history
Samir Boulahtit
2026-04-25 14:17:43 +02:00
-
10e37e749b
fix(loyalty): show translated category names on terminal
Samir Boulahtit
2026-04-25 13:15:47 +02:00
-
f23990a4d9
fix(loyalty): add red star (*) to mandatory category fields
Samir Boulahtit
2026-04-25 12:47:12 +02:00
-
62b83b46a4
feat(loyalty): category view mode + mandatory translations
Samir Boulahtit
2026-04-25 12:34:37 +02:00
-
f8b2429533
fix(loyalty): rename category label "Name (default)" to "English (EN)"
Samir Boulahtit
2026-04-25 12:28:00 +02:00
-
3883927be0
fix(loyalty): disable confirm button until category selected
Samir Boulahtit
2026-04-19 22:33:26 +02:00
-
39e02f0d9b
fix(loyalty): terminal icons, server-side i18n, category in transactions
Samir Boulahtit
2026-04-19 22:20:52 +02:00
-
29593f4c61
feat(loyalty): multi-select categories on transactions
Samir Boulahtit
2026-04-19 21:36:49 +02:00
-
220f7e3a08
fix(loyalty): replace $t() with server-side _() in program-view
Samir Boulahtit
2026-04-19 19:58:03 +02:00
-
258aa6a34b
fix(loyalty): missing i18n keys, wrong icon names in admin
Samir Boulahtit
2026-04-19 19:52:39 +02:00
-
51bcc9f874
feat(loyalty): inline edit for transaction categories in admin
Samir Boulahtit
2026-04-19 19:27:55 +02:00
-
eafa086c73
feat(loyalty): translatable categories + mandatory on earn points
Samir Boulahtit
2026-04-19 14:12:55 +02:00
-
ab2daf99bd
feat(loyalty): transaction categories — admin UI + web terminal
Samir Boulahtit
2026-04-19 12:28:55 +02:00
-
1cf9fea40a
feat(loyalty): transaction categories (what was sold)
Samir Boulahtit
2026-04-19 12:23:17 +02:00
-
cd4f83f2cb
docs: add proposal for transaction categories (what was sold)
Samir Boulahtit
2026-04-19 00:29:41 +02:00
-
457350908a
fix(android): resolve build errors in terminal scaffold
Samir Boulahtit
2026-04-19 00:11:30 +02:00
-
e759282116
refactor: rename apps/ to clients/ + update architecture docs
Samir Boulahtit
2026-04-18 18:09:24 +02:00
-
1df1b2bfca
feat: scaffold Android terminal POS app (RewardFlow Terminal)
Samir Boulahtit
2026-04-18 18:02:42 +02:00
-
51a2114e02
refactor(cms): migrate store theme UI from tenancy to CMS module
Samir Boulahtit
2026-04-18 10:30:09 +02:00
-
21e4ac5124
docs(loyalty): update launch plan — Google Wallet already deployed
Samir Boulahtit
2026-04-17 23:04:22 +02:00
-
3ade1b9354
docs(loyalty): rewrite launch plan with step-by-step pre-launch checklist
Samir Boulahtit
2026-04-16 22:34:57 +02:00
-
b5bb9415f6
feat(cms): Phase A — page type selector, translation UI, SEO cleanup
Samir Boulahtit
2026-04-16 22:30:55 +02:00
-
bb3d6f0012
fix(loyalty): card detail — enrolled store name + copy buttons
Samir Boulahtit
2026-04-15 22:31:53 +02:00
-
c92fe1261b
fix(loyalty): use full pagination macro on card detail (match cards list)
Samir Boulahtit
2026-04-15 22:25:29 +02:00
-
ca152cd544
fix(loyalty): use shared pagination macro on card detail transactions
Samir Boulahtit
2026-04-15 22:18:59 +02:00
-
914967edcc
feat(loyalty): add paginated transaction history to card detail
Samir Boulahtit
2026-04-15 22:13:00 +02:00
-
64fe58c171
fix(loyalty): normalize card id field, fix terminal redeem bug
Samir Boulahtit
2026-04-15 22:01:26 +02:00
-
3044490a3e
feat(storefront): section-based homepages, header action partials, fixes
Samir Boulahtit
2026-04-14 23:33:06 +02:00
-
adc36246b8
feat(storefront): homepage, module gating, widget protocol, i18n fixes
Samir Boulahtit
2026-04-13 22:53:17 +02:00
-
dd9dc04328
feat(loyalty): add Chart.js visualizations to analytics page
Samir Boulahtit
2026-04-11 23:30:36 +02:00
-
4a60d75a13
docs(loyalty): Phase 8 — runbooks, monitoring, OpenAPI tags, plan update
Samir Boulahtit
2026-04-11 23:07:50 +02:00
-
e98eddc168
feat(loyalty): Phase 7 — advanced analytics (cohort, churn, revenue)
Samir Boulahtit
2026-04-11 22:57:23 +02:00
-
8cd09f3f89
feat(loyalty): Phase 6 — admin GDPR, bulk ops, point restore, cascade
Samir Boulahtit
2026-04-11 22:40:34 +02:00
-
4c1608f78a
feat(loyalty): Phase 4.1 — T&C via CMS integration
Samir Boulahtit
2026-04-11 20:26:22 +02:00
-
24219e4d9a
a11y(loyalty): Phase 4.2 — accessibility audit fixes
Samir Boulahtit
2026-04-11 20:14:03 +02:00
-
fde58bea06
perf(loyalty): Phase 3 — batched expiration + wallet sync backoff
Samir Boulahtit
2026-04-11 19:55:39 +02:00
-
52b78ce346
feat(loyalty): Phase 2A — transactional email notifications
Samir Boulahtit
2026-04-11 19:11:56 +02:00
-
f804ff8442
fix(loyalty): cross-store enrollment, card scoping, i18n flicker
Samir Boulahtit
2026-04-11 18:28:19 +02:00
-
d9abb275a5
feat(dev_tools): expand SQL query tool presets and fix column headers
Samir Boulahtit
2026-04-10 23:28:57 +02:00
-
4b56eb7ab1
feat(loyalty): Phase 1 production launch hardening
Samir Boulahtit
2026-04-09 23:36:34 +02:00
-
27ac7f3e28
docs: add nav fix to POC content mapping proposal
Samir Boulahtit
2026-04-03 21:32:15 +02:00
-
dfd42c1b10
docs: add proposal for POC content mapping (scraped → template)
Samir Boulahtit
2026-04-03 21:14:17 +02:00
-
297b8a8d5a
fix(hosting): preview link rewriting prepends storefront base_url
Samir Boulahtit
2026-04-03 20:03:04 +02:00
-
91fb4b0757
fix(hosting): propagate preview token in nav links + enrich pages with scraped content
Samir Boulahtit
2026-04-03 19:55:19 +02:00
-
f4386e97ee
fix(cms): testimonials dict.items() collision in section macro
Samir Boulahtit
2026-04-03 18:54:36 +02:00
-
e8c9fc7e7d
fix(hosting): template buttons use 'text' to match CMS section macros
Samir Boulahtit
2026-04-03 18:51:19 +02:00
-
d591200df8
fix(cms): storefront renders sections for landing pages + fix nav URLs
Samir Boulahtit
2026-04-03 18:42:45 +02:00
-
83af32eb88
fix(hosting): POC builder works with existing sites
Samir Boulahtit
2026-04-03 18:10:39 +02:00
-
2a49e3d30f
fix(hosting): fix Build POC button visibility
Samir Boulahtit
2026-04-03 17:57:55 +02:00
-
6e40e16017
fix(hosting): cascade soft-delete Store when deleting HostedSite
Samir Boulahtit
2026-04-03 17:49:40 +02:00
-
dd09bcaeec
docs: add proposal for HostedSite → Store cascade delete
Samir Boulahtit
2026-04-02 23:31:31 +02:00
-
013eafd775
fix(hosting): fix Create Site button visibility
Samir Boulahtit
2026-04-02 23:28:23 +02:00
-
07cd66a0e3
feat(hosting): add Build POC button with template selector on site detail
Samir Boulahtit
2026-04-02 23:24:19 +02:00
-
73d453d78a
feat(hosting): prospect search dropdown on site creation form
Samir Boulahtit
2026-04-02 23:14:47 +02:00
-
d4e9fed719
fix(hosting): fix site creation form + add delete to sites list
Samir Boulahtit
2026-04-02 23:10:48 +02:00
-
3e93f64c6b
fix(prospecting): clarify opportunity score UI
Samir Boulahtit
2026-04-02 23:05:59 +02:00
-
377d2d3ae8
feat(prospecting): add delete button to prospects list
Samir Boulahtit
2026-04-02 22:59:12 +02:00
-
b51f9e8e30
fix(hosting): smart slug generation with fallback chain
Samir Boulahtit
2026-04-02 22:56:28 +02:00
-
d380437594
fix(hosting): site detail null guard + cleaner preview URLs
Samir Boulahtit
2026-04-02 22:49:32 +02:00
-
cff0af31be
feat(hosting): signed preview URLs for POC sites
Samir Boulahtit
2026-04-02 22:41:34 +02:00
-
e492e5f71c
fix(hosting): render POC preview directly instead of iframe
Samir Boulahtit
2026-04-02 20:15:11 +02:00
-
9a5b7dd061
fix: register hosting public preview route + suppress SSL warnings
Samir Boulahtit
2026-04-02 20:01:55 +02:00
-
b3051b423a
feat(cms): add testimonials, gallery, contact_info section types (3D)
Samir Boulahtit
2026-04-01 22:54:15 +02:00
-
bc951a36d9
feat(hosting): implement POC builder service (Workstream 3C)
Samir Boulahtit
2026-04-01 22:46:59 +02:00
-
2e043260eb
feat(hosting): add industry template infrastructure (Workstream 3B)
Samir Boulahtit
2026-04-01 22:41:33 +02:00
-
1828ac85eb
feat(prospecting): add content scraping for POC builder (Workstream 3A)
Samir Boulahtit
2026-04-01 22:26:56 +02:00
-
50a4fc38a7
feat(prospecting): add batch delay + fix Celery error_message field
Samir Boulahtit
2026-04-01 21:55:24 +02:00
-
30f3dae5a3
feat(prospecting): add security audit report generation (Workstream 2B)
Samir Boulahtit
2026-04-01 21:41:40 +02:00
-
4c750f0268
feat(prospecting): implement security audit pipeline (Workstream 2A)
Samir Boulahtit
2026-04-01 20:58:11 +02:00
-
59b0d8977a
fix(hosting): require merchant or prospect for site creation
Samir Boulahtit
2026-03-31 23:14:47 +02:00
-
2bc03ed97c
docs: add end-to-end plan from prospecting to live site
Samir Boulahtit
2026-03-31 23:05:21 +02:00
-
91963f3b87
docs: architecture decision — hosting sites reuse CMS + Store + StoreDomain
Samir Boulahtit
2026-03-31 22:42:10 +02:00
-
3ae0b579d3
docs: add security audit + demo + POC builder proposal
Samir Boulahtit
2026-03-30 22:27:59 +02:00
-
972ee1e5d0
feat(prospecting): add ProspectSecurityAudit model (Phase 1 foundation)
Samir Boulahtit
2026-03-30 22:23:38 +02:00
-
70f2803dd3
fix(prospecting): handle PageSpeed API errors and improve performance card
Samir Boulahtit
2026-03-30 21:41:37 +02:00
-
a247622d23
feat(tenancy): add delete button on table + add-to-store in edit modal
Samir Boulahtit
2026-03-30 21:36:42 +02:00
-
50d50fcbd0
feat(prospecting): show per-category score breakdown on prospect detail
Samir Boulahtit
2026-03-30 21:35:06 +02:00
-
b306a5e8f4
fix(prospecting): inline isPositiveFlag check to avoid scope issue
Samir Boulahtit
2026-03-30 21:27:58 +02:00
-
28b08580c8
feat(prospecting): improve prospect detail with score details and tech badge
Samir Boulahtit
2026-03-30 21:24:19 +02:00
-
754bfca87d
fix(prospecting): fix contact scraper and add address extraction
Samir Boulahtit
2026-03-30 21:18:43 +02:00
-
1decb4572c
fix(tenancy): show role dropdown for pending store memberships too
Samir Boulahtit
2026-03-30 21:16:52 +02:00
-
d685341b04
refactor(tenancy): simplify team table + move actions to edit modal
Samir Boulahtit
2026-03-30 21:08:36 +02:00
-
0c6d8409c7
fix(tenancy): fix table column alignment with flattened row approach
Samir Boulahtit
2026-03-30 20:27:47 +02:00
-
f81851445e
fix(tenancy): align columns and actions in merchant team table
Samir Boulahtit
2026-03-29 23:39:31 +02:00
-
4748368809
feat(tenancy): expandable per-store rows in merchant team table
Samir Boulahtit
2026-03-29 23:32:47 +02:00
-
f310363f7c
fix(prospecting): fix scan-jobs batch endpoints and add job tracking
Samir Boulahtit
2026-03-29 23:31:33 +02:00
-
95f0eac079
fix(tenancy): prioritize active over pending in member status display
Samir Boulahtit
2026-03-29 23:24:16 +02:00
-
11dcfdad73
feat(tenancy): add team invitation acceptance page
Samir Boulahtit
2026-03-29 23:05:23 +02:00
-
01f7add8dd
test(tenancy): add integration tests for resend invitation
Samir Boulahtit
2026-03-29 21:47:10 +02:00
-
0d1007282a
feat(config): add APP_BASE_URL setting for outbound link construction
Samir Boulahtit
2026-03-29 21:43:36 +02:00
-
2a15c14ee8
fix(tenancy): use is_production() for invitation URL instead of debug flag
Samir Boulahtit
2026-03-29 17:49:31 +02:00
-
bc5e227d81
fix(tenancy): use correct base URL for invitation link in dev vs prod
Samir Boulahtit
2026-03-29 17:44:02 +02:00
-
8a70259445
fix(tenancy): use absolute URL in team invitation email link
Samir Boulahtit
2026-03-29 17:39:46 +02:00
-
823935c016
feat(tenancy): add resend invitation for pending team members
Samir Boulahtit
2026-03-29 16:48:12 +02:00
-
dab5560de8
fix(tenancy): use x-if instead of x-show for edit modal
Samir Boulahtit
2026-03-29 14:12:53 +02:00
-
157b4c6ec3
feat(tenancy): add profile editing in merchant team edit modal
Samir Boulahtit
2026-03-29 13:31:23 +02:00
-
211c46ebbc
feat(tenancy): add member detail modal + fix invite name saving
Samir Boulahtit
2026-03-29 13:23:20 +02:00
-
d81e9a3fa4
fix(tests): fix 7 pre-existing test failures
Samir Boulahtit
2026-03-29 12:34:26 +02:00