Bug 40869

Summary: Preserve mandatory fields even if hidden when duplicating item
Product: Koha Reporter: David Gustafsson <glasklas>
Component: Staff interfaceAssignee: David Gustafsson <glasklas>
Status: Failed QA --- QA Contact: Testopia <testopia>
Severity: enhancement    
Priority: P5 - low CC: gmcharlt
Version: Main   
Hardware: All   
OS: All   
GIT URL: Initiative type: ---
Sponsorship status: --- Comma delimited list of Sponsors:
Crowdfunding goal: 0 Patch complexity: ---
Documentation contact: Documentation submission:
Text to go in the release notes:
Version(s) released in:
Circulation function:
Attachments: Bug 40869: Preserve mandatory fields even if hidden when duplicating item
Bug 40869: Fix tests and documentation after changing argument name
Bug 40869: Fix incorrect argument name

Description David Gustafsson 2025-09-24 12:42:35 UTC
When item fields are mandatory, which usually indicate they are somehow critical for functionality and expected to exist in Koha, it makes sense they should be preserved when duplicating an item, even if the field is hidden. Right now hidden fields are ignored using the "ignore_invisible_subfields" option in the form builder for item. If for current library (holding branch) is hidden (which is the case for our library), the biblio page will crash after duplicating an item, which now has a missing holding branch. Fixing this is simple by adding a check for the mandatory attribute in the check for "ignore_invisible_subfields" (I also renamed this option to "ignore_non_mandatory_invisible_subfields" for clarity.
Comment 1 David Gustafsson 2025-09-24 13:01:39 UTC
Created attachment 186878 [details] [review]
Bug 40869: Preserve mandatory fields even if hidden when duplicating item

Preserve mandatory fields while when duplicating an item, also when they
are non visible.

To test:
1) Go to MARC bibliographic framwork and view the marc structure for
   some framework.
2) Select edit subfield b for tag 952 and make it non visible
3) Go to a biblio using the framework above and edit an item. In the
   "actions" dropdown, choose to duplicate an item.
4) Now go to the detail page for the biblio, "Current library" should be
   empty and it should produce a 500 error.
5) Apply patch.
6) Perform steps 3-4 for some other biblio using the same framework.
7) The "Current library" should now be set to the same value as the
   source item, and no crash should occur.

Sponsored-by: Gothenburg University Library
Comment 2 David Gustafsson 2025-09-24 14:23:08 UTC
Created attachment 186885 [details] [review]
Bug 40869: Fix tests and documentation after changing argument name
Comment 3 David Gustafsson 2025-09-24 14:47:06 UTC
Created attachment 186887 [details] [review]
Bug 40869: Fix incorrect argument name
Comment 4 Katrin Fischer 2026-02-03 18:27:16 UTC
Reading through the test plan I wonder if this is the right solution or not.

I can see the merit for values like homebranch/holdingbranch.
We usually use a "Default" with the branchcode for these, but don't set the fields to mandatory.

My first reaction would be, that we should display an error message somewhere if a mandatory field is hidden from a form on saving. I believe that would match the behavior we see in other places like patron self registration.

If we move on with this:

1) QA tests fail (tidy)
2) Unit tests were updated for the name change, but I feel there should be additional tests for the difference between mandatory and optional hidden fields as well (up to QA)

(setting failed QA to raise attention of the developer and for 1) and 2).