Skip to content

Add V102 smart catalogues migration and multilang debounce flow - #500

Merged
ddon merged 1 commit into
BeamLabEU:devfrom
mdon:dev
Apr 20, 2026
Merged

Add V102 smart catalogues migration and multilang debounce flow#500
ddon merged 1 commit into
BeamLabEU:devfrom
mdon:dev

Conversation

@mdon

@mdonmdon commented Apr 20, 2026

Copy link
Copy Markdown
Contributor
  • V102: kind + discount_percentage on catalogues, discount_percentage + default_value / default_unit on items, new phoenix_kit_cat_item_catalogue_rules table with CHECK constraints, UNIQUE (item_uuid, referenced_catalogue_uuid), and ON DELETE CASCADE on both FKs. Idempotent up/down; partial index on kind='smart'.
  • MultilangForm: trailing-debounce attach_hook/4 + client-side skeleton toggle via composed JS. Rapid language-tab clicks no longer flash stale content or re-mount non-translatable fields.
  • Core form components (input/select/textarea/checkbox): realign class attr so it merges onto the styled element (input / daisyUI select wrapper / textarea / checkbox). <.input> gains wrapper_class for the outer phx-feedback-for div — matches the Phoenix 1.7 generator convention.
  • AGENTS.md: document the Core Form Components and Multilang Form Components sections, including the wrapper-scope rule and why language switching is client-side-first.
  • Bump to 1.7.99 and add test_load_filters / test_ignore_filters for Elixir 1.19 mix test hygiene.

- V102: `kind` + `discount_percentage` on catalogues, `discount_percentage` +
`default_value` / `default_unit` on items, new
`phoenix_kit_cat_item_catalogue_rules` table with CHECK constraints,
UNIQUE (item_uuid, referenced_catalogue_uuid), and ON DELETE CASCADE on
both FKs. Idempotent up/down; partial index on `kind='smart'`.
- MultilangForm: trailing-debounce `attach_hook/4` + client-side skeleton
toggle via composed JS. Rapid language-tab clicks no longer flash stale
content or re-mount non-translatable fields.
- Core form components (input/select/textarea/checkbox): realign `class`
attr so it merges onto the styled element (input / daisyUI select wrapper
/ textarea / checkbox). `<.input>` gains `wrapper_class` for the outer
`phx-feedback-for` div — matches the Phoenix 1.7 generator convention.
- AGENTS.md: document the Core Form Components and Multilang Form
Components sections, including the wrapper-scope rule and why language
switching is client-side-first.
- Bump to 1.7.99 and add test_load_filters / test_ignore_filters for
Elixir 1.19 mix test hygiene.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@ddon
ddon merged commit b265090 into BeamLabEU:devApr 20, 2026
ddon pushed a commit that referenced this pull request Apr 20, 2026
Covers three merged PRs since 1.7.98:
- #498: V100 staff + V101 projects migrations
- #499: MediaBrowser Embed macro, selection menu/bulk download, admin
attr, drag-drop file→folder move, toggleable search, drag-drop upload
at any folder level, unified sidebar/content card, site icon + tab
title + logo settings
- #500: V102 smart-catalogue + discount migration, multilang debounce
flow (attach_hook + client-side skeleton toggles), core form
class/wrapper_class realignment, CSS sources abs-path fix, Elixir
1.19 test filters, AGENTS.md core form + multilang docs + CHANGELOG
ownership rule
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@ddonddon mentioned this pull request Apr 20, 2026
3 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@mdon@ddon