Koha-clms/Koha
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
..
Account Bug 23051: (follow-up) Remove call to GetFines 2020-03-06 10:03:55 +00:00
Acquisition Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
ArticleRequest Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Authority Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Biblio Bug 24827: Standardise on 'UTF-8' as the encoding name 2020-03-16 14:45:39 +00:00
BiblioUtils Bug 24827: Specify UTF-8 as encoding in new_from_xml() 2020-03-16 14:45:47 +00:00
Cache Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Cash Bug 24817: Add sleep between db create actions 2020-03-09 10:38:28 +00:00
Charges Bug 18936: More fixes 2020-02-04 09:56:26 +00:00
Checkouts Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Club Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Config Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Edifact Bug 23926: Limit GIR segment to 5 pieces of info 2020-03-10 15:18:22 +00:00
Exceptions Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Exporter Bug 22721: Remove frameworkcode parameter in GetMarcFromKohaField calls 2019-07-15 11:28:08 +01:00
ExternalContent Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Filter/MARC Bug 23793: Add an EmbedItems RecordProcessor filter for MARC::Record objects 2019-10-23 17:33:07 +01:00
Illrequest Bug 23112: (follow-up) Call C4::Koha::GetAuthorisedValues 2020-03-10 10:59:26 +00:00
Indexer Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Item Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Library Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
List
…
MetadataRecord Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Middleware Bug 24538: Handle Net::Netmask parser errors 2020-02-20 08:40:52 +00:00
Misc
…
Notice Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Number Bug 18736: (follow-up) Fix missing rounding and bad formatting 2019-03-21 16:29:06 +00:00
OAI/Server Bug 24809: (QA follow-up) Add prefix to prevent disambiguity 2020-03-20 15:13:17 +00:00
Object Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Objects Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Old Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Patron Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Patrons Bug 22025: Remove warnings when importing patrons 2020-03-20 15:38:25 +00:00
Plugins Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
REST Bug 24830: Fix parse_prefetch recursion and +count cases 2020-03-20 15:18:40 +00:00
RecordProcessor
…
SMS Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Schema/Result Bug 24436: Add 'Reserve' options to branchtransfers trigger 2020-03-20 15:59:40 +00:00
SearchEngine Bug 23521: (follow-up) Add quotes 2020-03-16 10:24:45 +00:00
Serial Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Sitemapper Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Subscription Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
SuggestionEngine Bug 14457: (QA follow-up) Fix POD 2019-04-16 13:17:34 +00:00
Tags Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Template/Plugin Bug 24776: Remove file Koha/Template/Plugin/Borrowers.pm 2020-03-16 14:52:29 +00:00
Util Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
XSLT Bug 23290: (RM follow-up) Correction to copyright statement 2020-02-25 14:35:39 +00:00
Z3950Responder Bug 24545: (follow-up) Fix license statements 2020-02-24 14:35:33 +00:00
pdfformat Bug 5016: Fix some translation issues with English PDF order templates 2020-02-19 11:26:41 +00:00
Account.pm Bug 23051: (QA follow-up) Missing curly and tabs and fix test 2020-03-06 10:03:41 +00:00
ActionLog.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
ActionLogs.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
AdditionalField.pm Bug 15774: Add POD and license notices 2019-03-07 20:37:05 +00:00
AdditionalFieldValue.pm Bug 22934: Add missing use statement 2019-05-23 14:43:16 +00:00
AdditionalFieldValues.pm Bug 15774: (follow-up) Address QA issues 2019-03-07 20:37:05 +00:00
AdditionalFields.pm Bug 15774: Add POD and license notices 2019-03-07 20:37:05 +00:00
ApiKey.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
ApiKeys.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
ArticleRequest.pm Bug 23384: Fix use statement order for ArticleRequest::Status 2020-03-06 15:00:25 +00:00
ArticleRequests.pm Bug 23384: Fix use statement order for ArticleRequest::Status 2020-03-06 15:00:25 +00:00
AudioAlert.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
AudioAlerts.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
AuthUtils.pm
…
AuthorisedValue.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
AuthorisedValueCategories.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
AuthorisedValueCategory.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
AuthorisedValues.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Authorities.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Authority.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Biblio.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
BiblioFramework.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
BiblioFrameworks.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
BiblioUtils.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Biblioitem.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Biblioitems.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Biblios.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Cache.pm Bug 13193: Make Memcached usage fork safe 2020-02-07 09:58:47 +00:00
Caches.pm
…
Calendar.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Checkout.pm Bug 23463: Replace recently added occurrences 2020-03-23 09:26:32 +00:00
Checkouts.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
CirculationRule.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
CirculationRules.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Cities.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
City.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
ClassSortRule.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
ClassSortRules.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
ClassSource.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
ClassSources.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
ClassSplitRule.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
ClassSplitRules.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Club.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Clubs.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Config.pm
…
CsvProfile.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
CsvProfiles.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Database.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
DateUtils.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
EDI.pm Bug 23463: Replace AddItem calls with Koha::Item->store 2020-03-23 09:26:26 +00:00
Edifact.pm
…
Email.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Exceptions.pm Bug 24080: Add 'payout' method to Koha::Account::Line 2020-01-03 16:35:38 +00:00
ExternalContent.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
FrameworkPlugin.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Hold.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Holds.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
I18N.pm
…
Illcomment.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Illcomments.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Illrequest.pm Bug 23463: Replace new occurrence of AddItem 2020-03-23 09:26:34 +00:00
Illrequestattribute.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Illrequestattributes.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Illrequests.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Item.pm Bug 23463: Fix cn_source for new item 2020-03-23 09:26:34 +00:00
ItemType.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
ItemTypes.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Items.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
KeyboardShortcut.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
KeyboardShortcuts.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Libraries.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Library.pm Bug 22823: return undef if KohaAdminEmailAddress not exist 2020-03-18 15:44:27 +00:00
Linktracker.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Localization.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Localizations.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Logger.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Manual.pm Bug 24848: Improve manual links for the label creator 2020-03-20 15:40:05 +00:00
MarcSubfieldStructure.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
MarcSubfieldStructures.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
MetaSearcher.pm Bug 24173: Advanced Editor: Show subtitle & published date on the search page 2020-01-03 16:21:29 +00:00
MetadataIterator.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
MetadataRecord.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
MoreUtils.pm
…
News.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
NewsItem.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
OAuth.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
OAuthAccessToken.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
OAuthAccessTokens.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Object.pm Bug 23463: Use new method Koha::Object->set_or_blank 2020-03-23 09:26:34 +00:00
Objects.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Patron.pm Bug 24066: Add missing POD for has_permission 2020-03-06 15:03:56 +00:00
Patrons.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Plugins.pm Bug 21073: (QA follow-up) Simplify logic 2019-06-18 17:30:31 +01:00
RDF.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Rating.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Ratings.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
RecordProcessor.pm
…
RefundLostItemFeeRules.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Report.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Reports.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Review.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Reviews.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Schema.pm
…
Script.pm Bug 17845: Adjust few other occurrences 2020-03-10 15:18:28 +00:00
SearchEngine.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
SearchField.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
SearchFields.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
SearchMarcMap.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
SearchMarcMaps.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Serial.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Serials.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
SharedContent.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
SimpleMARC.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Sitemapper.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Statistic.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Statistics.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
StockRotationItem.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
StockRotationItems.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
StockRotationRota.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
StockRotationRotas.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
StockRotationStage.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
StockRotationStages.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Subscription.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Subscriptions.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Suggestion.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
SuggestionEngine.pm
…
Suggestions.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Tag.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Tags.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Token.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
UploadedFile.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
UploadedFiles.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Uploader.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Virtualshelf.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Virtualshelfcontent.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Virtualshelfcontents.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Virtualshelfshare.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Virtualshelfshares.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Virtualshelves.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
XSLT_Handler.pm Bug 23290: Introduce Koha::XSLT::Security 2020-02-25 13:40:57 +00:00
Z3950Responder.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Z3950Server.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Z3950Servers.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00