[Koha-bugs] [Bug 30250] Configure when to apply framework defaults when cataloguing

bugzilla-daemon at bugs.koha-community.org bugzilla-daemon at bugs.koha-community.org
Mon Oct 17 14:00:19 CEST 2022


https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=30250

Thibaud Guillot <thibaud.guillot at biblibre.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #140238|1                           |0
        is obsolete|                            |

--- Comment #25 from Thibaud Guillot <thibaud.guillot at biblibre.com> ---
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 <aleishaamohia at hotmail.com>
>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.


More information about the Koha-bugs mailing list