Hello All, So I found it on the occasion of a specific problem and I don't know if there are other cases where this could happen again. When activating the "AlternateHoldingsField" system preference, if you specify a field that is visible on the OPAC detail page and that is linked to allowed values or branches. In fact, in the opac-detail.pl file, we call "get_marc_notes"(Koha::Biblio) and this one, to obtain the data, calls Koha::RecordProcessor->new, passing it the "ExpandCodedFields" filter, which in turn calls "GetAuthorisedValueDesc", which should retrieve the description from the code. This call is also present when XSLT parameters are sent to the template by passing the same record. As a result, the second time the filter is called, empty or undef values are obtained.
Created attachment 153091 [details] [review] Bug 34218: Send a record copy to avoid loss of information and display problems As I wrote in the bug description, I encountered this problem in a particular case, so I'll explain it in the test plan, but it's certainly likely to be encountered in different ways. Test plan: 1) Link authorised values with a field on a MARC framework, like a 942a related to branches 2) Set it on a record with no items 3) Activate syspref "AlternateHoldingsField" and set it to field 942a 4) Go to OPAC View and you will see "Holdings: " without any values 5) Apply this patch 6) Do step 4) again and now it's fixed
Created attachment 153103 [details] [review] Bug 34218: Send a record copy to avoid loss of information and display problems As I wrote in the bug description, I encountered this problem in a particular case, so I'll explain it in the test plan, but it's certainly likely to be encountered in different ways. Test plan: 1) Link authorised values with a field on a MARC framework, like a 942a related to branches 2) Set it on a record with no items 3) Activate syspref "AlternateHoldingsField" and set it to field 942a 4) Go to OPAC View and you will see "Holdings: " without any values 5) Apply this patch 6) Do step 4) again and now it's fixed Signed-off-by: Sam Lau <samalau@gmail.com>
Created attachment 153114 [details] [review] Bug 34218: Send a record copy to avoid loss of information and display problems As I wrote in the bug description, I encountered this problem in a particular case, so I'll explain it in the test plan, but it's certainly likely to be encountered in different ways. Test plan: 1) Link authorised values with a field on a MARC framework, like a 942a related to branches 2) Set it on a record with no items 3) Activate syspref "AlternateHoldingsField" and set it to field 942a 4) Go to OPAC View and you will see "Holdings: " without any values 5) Apply this patch 6) Do step 4) again and now it's fixed Signed-off-by: Sam Lau <samalau@gmail.com> Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Good catch Thibaud. It seems to be the only place where the record was passed in like this. In other calls I see that it uses biblio->metadata->record. Updating severity a bit.
Pushed to master for 23.11. Nice work everyone, thanks!
Thanks for all the hard work! Pushed to 23.05.x for the next release
Nice work everyone! Pushed to oldstable for 22.11.x