Commit a92cf11
authored
Auto-assign the sole visible category in StartRegistration when no category field is shown (Case 212902) (#33)
When only one newsletter category existed, TypeHasCategoriesElementTrait
skipped adding the categories field to the form. As a result, the model
transformer created a PendingOptIn with no categories, and the confirmed
Recipient ended up stored with no subscriptions.
StartRegistration\Type now detects this case inside the model
transformer's reverseTransform and injects the single visible category
into the form data before passing it to the PendingOptInFactory.
As part of this, addCategoriesElementToForm() was refactored: the trait
no longer calls findVisible() itself or owns the categoryRepository
property. Instead, it receives the pre-fetched choices as a parameter
and unconditionally adds the field. The decision of whether to call
addCategoriesElementToForm() at all now rests with the calling types
(StartRegistration\Type and EditRegistration\Type), which avoids a
second findVisible() call and separates the concerns of fetching
categories and rendering the form field.1 parent c5f2d44 commit a92cf11
4 files changed
Lines changed: 49 additions & 13 deletions
File tree
- src
- EditRegistration
- StartRegistration
- tests/StartRegistration
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
20 | 21 | | |
21 | 22 | | |
22 | 23 | | |
23 | | - | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
24 | 29 | | |
25 | 30 | | |
26 | 31 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
9 | 8 | | |
10 | 9 | | |
11 | 10 | | |
12 | | - | |
13 | | - | |
14 | | - | |
| 11 | + | |
15 | 12 | | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | 13 | | |
23 | 14 | | |
24 | 15 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
| |||
30 | 31 | | |
31 | 32 | | |
32 | 33 | | |
33 | | - | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
34 | 39 | | |
35 | 40 | | |
36 | 41 | | |
| |||
47 | 52 | | |
48 | 53 | | |
49 | 54 | | |
50 | | - | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
51 | 63 | | |
52 | 64 | | |
53 | 65 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
240 | 240 | | |
241 | 241 | | |
242 | 242 | | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
243 | 271 | | |
244 | 272 | | |
245 | 273 | | |
| |||
0 commit comments