Bug 30250: Use ApplyFrameworkDefaults when importing a record

This patch adds the case of importing a record to the
ApplyFrameworkDefaults options.

To test:
1. Update database
2. Confirm the ApplyFrameworkDefaults system preference now has the
'when importing a record via z39.50' option. Do not select it.
3. Go to Cataloguing. Import a record from z39.50, or replace an
existing record.
4. Confirm framework defaults are not applied.
5. Go back to the system preference and check the 'when importing a
record via z39.50' option.
6. Repeat step 3. This time framework defaults should be applied. Only
fields that are empty in the imported record will be replaced by
framework defaults.
7. Repeat for authorities.

Sponsored-by: Catalyst IT

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Aleisha Amohia 2022-03-22 21:26:35 +00:00 committed by Tomas Cohen Arazi
parent d42de2c657
commit b837f1356b
No known key found for this signature in database
GPG Key ID: 0A272EA1B2F3C15F
5 changed files with 9 additions and 5 deletions

View File

@ -119,7 +119,8 @@ sub create_input {
my $applydefaults = C4::Context->preference('ApplyFrameworkDefaults');
if ( $value eq '' && (
( $applydefaults =~ /new/ && !$cgi->param('authid') ) ||
( $applydefaults =~ /duplicate/ && $cgi->param('op') eq 'duplicate' )
( $applydefaults =~ /duplicate/ && $cgi->param('op') eq 'duplicate' ) ||
( $applydefaults =~ /imported/ && $cgi->param('breedingid') )
) ) {
$value = $tagslib->{$tag}->{$subfield}->{defaultvalue};
if (!defined $value) {

View File

@ -289,19 +289,21 @@ sub GetMandatoryFieldZ3950 {
sub create_input {
my ( $tag, $subfield, $value, $index_tag, $rec, $authorised_values_sth,$cgi ) = @_;
my $index_subfield = CreateKey(); # create a specifique key for each subfield
# Apply optional framework default value when it is a new record,
# or when editing as new (duplicating a record),
# or when changing a record's framework,
# or when importing a record,
# based on the ApplyFrameworkDefaults setting.
# Substitute date parts, user name
my $applydefaults = C4::Context->preference('ApplyFrameworkDefaults');
if ( $value eq '' && (
( $applydefaults =~ /new/ && !$cgi->param('biblionumber') ) ||
( $applydefaults =~ /duplicate/ && $cgi->param('op') eq 'duplicate' ) ||
( $applydefaults =~ /changed/ && $cgi->param('changed_framework') )
( $applydefaults =~ /changed/ && $cgi->param('changed_framework') ) ||
( $applydefaults =~ /imported/ && $cgi->param('breedingid') )
) ) {
$value = $tagslib->{$tag}->{$subfield}->{defaultvalue} // q{};

View File

@ -7,6 +7,6 @@ return {
my ($args) = @_;
my ($dbh, $out) = @$args{qw(dbh out)};
$dbh->do(q{INSERT IGNORE INTO systempreferences (variable,value,options,explanation,type) VALUES ('ApplyFrameworkDefaults', 'new', "new|duplicate|changed", "Configure when to apply framework default values - when cataloguing a new record, or when editing a record as new (duplicating), or when changing framework", 'multiple') });
$dbh->do(q{INSERT IGNORE INTO systempreferences (variable,value,options,explanation,type) VALUES ('ApplyFrameworkDefaults', 'new', "new|duplicate|changed|imported", "Configure when to apply framework default values - when cataloguing a new record, or when editing a record as new (duplicating), or when changing framework, or when importing a record", 'multiple') });
},
};

View File

@ -55,7 +55,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `
('AmazonLocale','US','US|CA|DE|FR|IN|JP|UK','Use to set the Locale of your Amazon.com Web Services','Choice'),
('AnonSuggestions','0',NULL,'Set to enable Anonymous suggestions to AnonymousPatron borrowernumber','YesNo'),
('AnonymousPatron','0',NULL,'Set the identifier (borrowernumber) of the anonymous patron. Used for suggestion and checkout history privacy',''),
('ApplyFrameworkDefaults', 'new', 'new|duplicate|changed', 'Configure when to apply framework default values - when cataloguing a new record, or when editing a record as new (duplicating), or when changing framework', 'multiple'),
('ApplyFrameworkDefaults', 'new', 'new|duplicate|changed|imported', 'Configure when to apply framework default values - when cataloguing a new record, or when editing a record as new (duplicating), or when changing framework, or when importing a record', 'multiple'),
('ArticleRequests', '0', NULL, 'Enables the article request feature', 'YesNo'),
('ArticleRequestsOpacHostRedirection', '0', NULL, 'Enables redirection from child to host when requesting articles on the Opac', 'YesNo'),
('ArticleRequestsLinkControl', 'calc', 'always|calc', 'Control display of article request link on search results', 'Choice'),

View File

@ -185,6 +185,7 @@ Cataloging:
new: "when cataloguing new records"
duplicate: "when editing records as new (duplicating)"
changed: "when changing the framework while editing the existing record"
imported: "when importing a record"
Display:
-
- 'Separate main entry and subdivisions with '