Summary: | If a layout is edited, the layout type will revert to barcode | ||
---|---|---|---|
Product: | Koha | Reporter: | Kelly McElligott <kelly> |
Component: | Label/patron card printing | Assignee: | Jonathan Druart <jonathan.druart> |
Status: | CLOSED FIXED | QA Contact: | Testopia <testopia> |
Severity: | major | ||
Priority: | P5 - low | CC: | aleisha, dcook, jonathan.druart, lucas, victor |
Version: | Main | ||
Hardware: | All | ||
OS: | All | ||
GIT URL: | Change sponsored?: | --- | |
Patch complexity: | Small patch | Documentation contact: | |
Documentation submission: | Text to go in the release notes: | ||
Version(s) released in: |
20.11.00, 20.05.03, 19.11.09, 19.05.15
|
Circulation function: | |
Bug Depends on: | |||
Bug Blocks: | 15019 | ||
Attachments: |
Bug 25852: Improve C4::Creators::Lib reliability under plack
Bug 25852: Add tests Bug 25852: Improve C4::Creators::Lib reliability under plack Bug 25852: Add tests Bug 25852: Add tests Bug 25852: Improve C4::Creators::Lib reliability under plack Bug 25852: Add tests |
Description
Kelly McElligott
2020-06-23 14:58:52 UTC
Created attachment 107571 [details] [review] Bug 25852: Improve C4::Creators::Lib reliability under plack This is certainly a major issue that leads to many side-effects. Under plack, the structure of the default values are not handled correctly. Package variables are used to store stuff like the "layout type". They are complex structures (arrays of hashes) and returned without being copied. When the caller (the controller script) retrieve them then modify the returned structures, it actually modifies the package's variables. One of the issue is: Create a new layout The script retrieve a structure with all "selected" flags are set to 0 It select the first one as default (BAR as selected => 1) The user creates the new layout and will selected BIBBAR (for instance) If you then edit this new layout, the script will retrieve the "label_types" and set "selected" for BIBBAR. However BAR is still selected! The UI receives 2 selected and display the first selected one that has the selected option. Test plan: 1. Create a layout type for Barcode/Biblio 2. Choose fields to print and size of font 3. Save 4. Edit existing Layout => Withtout this patch "Barcode" is the preselected option => With this patch applied, the correct "Barcode/Biblio" option is selected Created attachment 107572 [details] [review] Bug 25852: Add tests Created attachment 107573 [details] [review] Bug 25852: Improve C4::Creators::Lib reliability under plack This is certainly a major issue that leads to many side-effects. Under plack, the structure of the default values are not handled correctly. Package variables are used to store stuff like the "layout type". They are complex structures (arrays of hashes) and returned without being copied. When the caller (the controller script) retrieve them then modify the returned structures, it actually modifies the package's variables. One of the issue is: Create a new layout The script retrieve a structure with all "selected" flags are set to 0 It select the first one as default (BAR as selected => 1) The user creates the new layout and will selected BIBBAR (for instance) If you then edit this new layout, the script will retrieve the "label_types" and set "selected" for BIBBAR. However BAR is still selected! The UI receives 2 selected and display the first selected one that has the selected option. Test plan: 1. Create a layout type for Barcode/Biblio 2. Choose fields to print and size of font 3. Save 4. Edit existing Layout => Withtout this patch "Barcode" is the preselected option => With this patch applied, the correct "Barcode/Biblio" option is selected Signed-off-by: Kelly McElligott <kelly@bywatersolutions.com> Created attachment 107574 [details] [review] Bug 25852: Add tests Signed-off-by: Kelly McElligott <kelly@bywatersolutions.com> Created attachment 107607 [details] [review] Bug 25852: Add tests Signed-off-by: Kelly McElligott <kelly@bywatersolutions.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Created attachment 107608 [details] [review] Bug 25852: Improve C4::Creators::Lib reliability under plack This is certainly a major issue that leads to many side-effects. Under plack, the structure of the default values are not handled correctly. Package variables are used to store stuff like the "layout type". They are complex structures (arrays of hashes) and returned without being copied. When the caller (the controller script) retrieve them then modify the returned structures, it actually modifies the package's variables. One of the issue is: Create a new layout The script retrieve a structure with all "selected" flags are set to 0 It select the first one as default (BAR as selected => 1) The user creates the new layout and will selected BIBBAR (for instance) If you then edit this new layout, the script will retrieve the "label_types" and set "selected" for BIBBAR. However BAR is still selected! The UI receives 2 selected and display the first selected one that has the selected option. Test plan: 1. Create a layout type for Barcode/Biblio 2. Choose fields to print and size of font 3. Save 4. Edit existing Layout => Withtout this patch "Barcode" is the preselected option => With this patch applied, the correct "Barcode/Biblio" option is selected Signed-off-by: Kelly McElligott <kelly@bywatersolutions.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Created attachment 107609 [details] [review] Bug 25852: Add tests Signed-off-by: Kelly McElligott <kelly@bywatersolutions.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> I am a little worried that other parts of the layout creator/patron card creator follow similar patterns and have similar issues... Pushed to master for 20.11, thanks to everybody involved! backported to 20.05.x for 20.05.03 backported to 19.11.x for 19.11.09 (In reply to Katrin Fischer from comment #8) > I am a little worried that other parts of the layout creator/patron card > creator follow similar patterns and have similar issues... After reviewing this code/issue, I'm actually more concerned for other parts of Koha. I wonder how many related issues are sleeping throughout the codebase... Backported to 19.05.x branch for 19.05.15 |