Koha/t
Jonathan Druart a881984413
Bug 23463: Use new method Koha::Object->set_or_blank
This patch fixes an issue when editing items.

* The issue
Cannot blank a subfield when editing an item.
If you have an item with itemcallnumber=42, then edit it, blank it and
save. The itemcallnumber is still 42

* Why? (line numbers from https://gitlab.com/joubu/Koha/-/tree/bug_23463)
additem (and other item's edition forms) receives a list of tags,
subfields and values, generates a MARC::Record::XML then calls
ModItemFromMarc:

717     my $itemtosave=MARC::Record::new_from_xml($xml, 'UTF-8');
727         my $newitem = ModItemFromMarc($itemtosave, $biblionumber,
$itemnumber);

And ModItemFromMarc:
 282     my $item = TransformMarcToKoha( $localitemmarc,
$frameworkcode, 'items' );
 283     $item->{cn_source} = delete $item->{'items.cn_source'}; #
Because of C4::Biblio::_disambiguate
 284     $item_object->set($item);

ModItemFromMarc never knows that the field has been blank.
Prior to bug 23463 we had a map of default values, and ModItemFromMarc
was doing:
 426     my $item = TransformMarcToKoha( $localitemmarc,
$frameworkcode, 'items' );
 427     my $default_values = _build_default_values_for_mod_marc();
 428     foreach my $item_field ( keys %$default_values ) {
 429         $item->{$item_field} = $default_values->{$item_field}
 430           unless exists $item->{$item_field};
 431     }

I do not want to reinsert that list of default values.

Here I wrote a generic method in Koha::Object to set the value passed in parameter,
or "blank" if not passed.
It's nulled if can be set to null in DB, or the default value is retrieved from
the schema info.

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
2020-03-23 09:26:34 +00:00
..
Acquisition
Biblio Bug 23392: Don't display private notes in MARC21 2019-10-24 10:58:02 +01:00
Budgets Bug 21817: Centralize the mock of userenv from tests 2019-01-02 20:18:29 +00:00
Circulation Bug 24361: Remove warning from GetAgeRestriction 2020-01-13 14:48:36 +00:00
db_dependent Bug 23463: Use new method Koha::Object->set_or_blank 2020-03-23 09:26:34 +00:00
edi_testfiles
etc
External Bug 22010: Check preferences for ebook integration 2019-04-30 11:42:51 +00:00
Koha Bug 24830: Add tests 2020-03-20 15:18:33 +00:00
LangInstaller/templates Bug 22007: Generated with add_missing_filters.pl 2019-01-02 20:43:53 +00:00
lib Bug 23463: AddItem removing 2020-03-23 09:26:30 +00:00
Members Bug 21015: Remove unecessary 'use Koha::Schema' statements in t/ 2018-11-08 02:18:48 +00:00
Number Bug 18736: (QA follow-up) Change to signed, add large int test 2019-03-21 16:29:06 +00:00
Search
Serials
SIP
Test
00-checkdatabase-version.t
00-deprecated.t
00-load.t Bug 21068: Remove NorwegianPatronDB related code 2018-08-30 13:40:29 +00:00
00-merge-conflict-markers.t
00-testcritic.t
00-valid-xml.t Bug 24494: Make the regex more exact 2020-02-19 11:30:45 +00:00
Auth.t Bug 22943: Remove unused line from Auth.t 2020-03-16 11:00:37 +00:00
Auth_with_shibboleth.t Bug 23042: Correct shib param escaping 2019-11-27 11:30:20 +00:00
AuthoritiesMarc_MARC21.t
AuthoritiesMarc_UNIMARC.t
AuthUtils.t
Barcodes_annual.t
Barcodes_EAN13.t
Barcodes_hbyymmincr.t
Barcodes_incremental.t
Biblio.t Bug 11529: (follow-up) Fix QA issues 2019-08-05 15:03:19 +01:00
Biblio2.t Bug 11529: (follow-up) Fix QA issues 2019-08-05 15:03:19 +01:00
Bookseller.t
Boolean.t
Budgets.t
Calendar.t
Charset.t
Circulation_barcodedecode.t Bug 21817: Centralize the mock of userenv from tests 2019-01-02 20:18:29 +00:00
ClassSortRoutine.t
ClassSortRoutine_Dewey.t
ClassSortRoutine_Generic.t
ClassSortRoutine_LCC.t
ClassSource.t
Context.t Bug 23580: Unit tests 2019-09-12 16:44:22 +01:00
Contract.t
Creators.t
DateUtils.t Bug 24643: Add test to cover the timezone 2020-02-13 15:56:46 +00:00
Debug.t
dummy.t
Edifact.t Bug 21580: Add test for message buyer_ean method 2019-10-10 08:23:04 +01:00
EdiInvoice.t
Ediorder.t Bug 23926: Limit GIR segment to 5 pieces of info 2020-03-10 15:18:22 +00:00
Ediordrsp.t
EdiTransport.t Bug 20254: Add tests for transport ingest 2019-08-20 15:04:26 +01:00
Form_MessagingPreferences.t
HtmlTags.t
Images.t
ImportBatch.t
Installer_PerlModules.t Bug 19735: Move Perl deps definitions into a cpanfile 2020-02-12 16:33:02 +00:00
Installer_pm.t Bug 19735: Move Perl deps definitions into a cpanfile 2020-02-12 16:33:02 +00:00
ItemCirculationAlertPreference.t
Koha.t Bug 23768: Adjust the test for invalid ISBN 2019-11-07 13:02:59 +00:00
Koha_Email.t
Koha_MetadataRecord.t
Koha_SearchEngine_Elasticsearch_Browse.t Bug 24545: Fix newly added files 2020-02-24 13:31:27 +00:00
Koha_Template_Plugin_Cache.t
Koha_Template_Plugin_Koha.t
Koha_Util_FrameworkPlugin.t
Koha_Util_MARC.t
Labels.t Bug 15836: Add the ability to defined custom methods to split call number in labels 2018-11-13 15:18:22 +00:00
Labels_split_ccn.t Bug 15836: Fix failing tests 2018-11-13 18:53:10 +00:00
Labels_split_ddcn.t Bug 15836: Add the ability to defined custom methods to split call number in labels 2018-11-13 15:18:22 +00:00
Labels_split_lccn.t Bug 15836: Add the ability to defined custom methods to split call number in labels 2018-11-13 15:18:22 +00:00
Labels_split_Regex.t Bug 15836: Add the ability to defined custom methods to split call number in labels 2018-11-13 15:18:22 +00:00
LangInstaller.t Bug 21895: Fix translation for package install 2018-11-29 17:57:54 +00:00
Languages.t
Letters.t
Log.t Bug 20750: Add unit tests 2019-03-15 19:07:08 +00:00
Logger.t
Makefile.t
Matcher.t Bug 23324: Add an ISBN normalization routine 2019-08-16 12:26:48 +01:00
Members_Attributes.t
Members_AttributeTypes.t
Members_Messaging.t
OpenLibrarySearch.t
Output.t Bug 24369: Add CORS support to output_with_http_headers() 2020-03-05 12:59:44 +00:00
Output_JSONStream.t
Patron.t Bug 14570: Make it possible to add multiple guarantors to a record 2019-08-20 16:04:48 +01:00
Patroncards.t
Patroncards_Batch.t
Patroncards_Lib.t
Patroncards_Patroncard.t
Patroncards_Profile.t
Patroncards_Template.t
perlcriticrc
Prices.t Bug 24408: Do not compare floats with precision in tests 2020-01-13 13:42:45 +00:00
RecordProcessor.t
Ris.t
Scheduler.t
Scrubber.t
Search.t
Search_PazPar2.t
SimpleMARC.t Bug 17510: update MMT-related unit tests 2020-02-21 16:01:28 +00:00
SMS.t
SocialData.t
Stats.t
SuggestionEngine.t
SuggestionEngine_AuthorityFile.t
template_filters.t Bug 22466: Add tests 2019-03-07 18:17:32 +00:00
timezones.t
TmplToken.t
Token.t Bug 17845: (RM follow-up) Restore a removed test 2020-03-10 18:49:37 +00:00
XSLT.t