https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=30250
Thibaud Guillot <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #140238|1 |0 is obsolete| | --- Comment #25 from Thibaud Guillot <[email protected]> --- Comment on attachment 140238 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=140238 Bug 30250: Use ApplyFrameworkDefaults when cataloguing >From e40573b3a3ae02f146906b33ded9494f722f0de5 Mon Sep 17 00:00:00 2001 >From: Aleisha Amohia <[email protected]> >Date: Wed, 9 Mar 2022 01:13:32 +0000 >Subject: [PATCH] Bug 30250: Use ApplyFrameworkDefaults when cataloguing > >This patch adds a system preference ApplyFrameworkDefaults to configure >when to apply framework defaults - when cataloguing a new record, when >editing a record as new (duplicating), or when changing the framework >while editing an existing record. This applies to both bibliographic >records and authority records. > >To test: >1. Update database >2. Go to Administration -> system preferences. Find the >ApplyFrameworkDefaults system preference. Confirm "when cataloguing new >records" is selected by default. >3. Keep the system preference open in one tab, and open the staff client >in another tab. >4. Go to Administration -> bibliographic frameworks. Choose a framework, >edit the subfields for a tag, and give a subfield a default value. For >example, set 500$a for the BOOKS framework to have a default value of >"TEST". This will be Framework A. >5. Ensure you have another framework that does not have the same default >value for a subfield as Framework A. This will be Framework B. >6. Go to Cataloguing. Add a new record using Framework A. Confirm your >subfield has the default value filled. Cancel and do not save the >record. >7. In your System preferences tab, uncheck the option "when cataloguing >new records" and save. No options should now be selected. >8. In our other tab, go to cataloguing, add a new record using Framework >A. Confirm your subfield does NOT have the default value filled. Fill >the required fields, including the subfield that should have a default >value, and Save the record. >9. In your system preferences tab, select all options and save. >10. In your other tab, click Edit, then "Edit as new (duplicate)". >Confirm your subfield has maintained the value from the source record. >Cancel and do not save the record. >11. Edit your original record and delete the value in your subfield that >could be filled with a default value by the framework. Save the record >with no value in the subfield. >12. Click Edit, then "Edit as new (duplicate)". Confirm your subfield >has the default value filled. Framework defaults will only apply to >emplty fields. Save the record. >13. Do a catalogue search and find a record that uses Framework B. >14. If you need to, edit the record to make sure there is nothing in your >subfield that should have a default value if this record were to use >Framework A, and Save. >15. Edit the record. Using the settings dropdown, change the framework >to Framework A. Confirm your subfield has the default value filled. >16. Repeat steps 4 to 12 with authority types and authority records. > >Sponsored-by: Education Services Australia SCIS >--- > authorities/authorities.pl | 13 ++++++++++--- > cataloguing/addbiblio.pl | 12 ++++++++++-- > 2 files changed, 20 insertions(+), 5 deletions(-) > >diff --git a/authorities/authorities.pl b/authorities/authorities.pl >index b465d4bcc0..5531e708a1 100755 >--- a/authorities/authorities.pl >+++ b/authorities/authorities.pl >@@ -112,9 +112,16 @@ sub create_input { > $max_length = 40; > } > >- # if there is no value provided but a default value in parameters, get it >- if ($value eq '') { >- $value = $tagslib->{$tag}->{$subfield}->{defaultvalue} if >!$cgi->param('authid'); # only for new records >+ # Apply optional framework default value when it is a new record, >+ # or when editing as new (duplicating 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('authid') ) || >+ ( $applydefaults =~ /duplicate/ && $cgi->param('op') eq 'duplicate' ) >+ ) ) { >+ $value = $tagslib->{$tag}->{$subfield}->{defaultvalue}; > if (!defined $value) { > $value = q{}; > } >diff --git a/cataloguing/addbiblio.pl b/cataloguing/addbiblio.pl >index 92abe81082..cc7bc62637 100755 >--- a/cataloguing/addbiblio.pl >+++ b/cataloguing/addbiblio.pl >@@ -288,9 +288,17 @@ sub create_input { > > my $index_subfield = CreateKey(); # create a specifique key for each > subfield > >- # Apply optional framework default value when it is a new record >+ # 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, >+ # based on the ApplyFrameworkDefaults setting. > # Substitute date parts, user name >- if ( $value eq '' && !$cgi->param('biblionumber') ) { >+ 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') ) >+ ) ) { > $value = $tagslib->{$tag}->{$subfield}->{defaultvalue} // q{}; > > # get today date & replace <<YYYY>>, <<YY>>, <<MM>>, <<DD>> if > provided in the default value >-- >2.11.0 -- You are receiving this mail because: You are watching all bug changes. _______________________________________________ Koha-bugs mailing list [email protected] https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-bugs website : http://www.koha-community.org/ git : http://git.koha-community.org/ bugs : http://bugs.koha-community.org/
