Bug 14662: Add empty entries to pull downs in cataloguing form for mandatory subfields
authorKatrin Fischer <katrin.fischer.83@web.de>
Thu, 2 Aug 2018 13:56:11 +0000 (15:56 +0200)
committerNick Clemens <nick@bywatersolutions.com>
Wed, 8 Aug 2018 12:56:21 +0000 (12:56 +0000)
First patch deals with the problem on the item form, this
patch fixes the same problem on catalouging form for the
bibliographic record.

To test:
- Adapt your frameworks:
  - Make sure 942$c is mandatory
  - Link another field to an authorised value, for example: 942$n to YESNO
- Add a new record
  - Verify that the first value of each pull down is preselected,
    there is no way to trigger the 'required' error
- Apply patch
  - Add a record
    - Verify that classification source is preselected according to the
      DefaultClassificationSource system preference
    - Verify that 942$c now defaults to empty
    - Verify all your other mandatory subfields can be set to empty
    - Verify that you can't save before correctly setting them
  - Chane your frameworks
    - Add a default value for 942$c, for example: CF
  - Add another record
    - Verify the itemtype is now preset to your default itemtype
  - Edit an existing record, verify all values show correctly

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

cataloguing/addbiblio.pl

index 75db464..11c6d38 100755 (executable)
@@ -178,9 +178,7 @@ sub build_authorized_values_list {
         }
     }
     elsif ( $tagslib->{$tag}->{$subfield}->{authorised_value} eq "itemtypes" ) {
-        push @authorised_values, ""
-          unless ( $tagslib->{$tag}->{$subfield}->{mandatory}
-            && ( $value || $tagslib->{$tag}->{$subfield}->{defaultvalue} ) );
+        push @authorised_values, "";
 
         my $itemtype;
         my $itemtypes = Koha::ItemTypes->search_with_localization;
@@ -191,8 +189,7 @@ sub build_authorized_values_list {
         $value = $itemtype unless ($value);
     }
     elsif ( $tagslib->{$tag}->{$subfield}->{authorised_value} eq "cn_source" ) {
-        push @authorised_values, ""
-          unless ( $tagslib->{$tag}->{$subfield}->{mandatory} );
+        push @authorised_values, "";
 
         my $class_sources = GetClassSources();
 
@@ -214,9 +211,7 @@ sub build_authorized_values_list {
             $branch_limit ? $branch_limit : (),
         );
 
-        push @authorised_values, ""
-          unless ( $tagslib->{$tag}->{$subfield}->{mandatory}
-            && ( $value || $tagslib->{$tag}->{$subfield}->{defaultvalue} ) );
+        push @authorised_values, "";
 
         while ( my ( $value, $lib ) = $authorised_values_sth->fetchrow_array ) {
             push @authorised_values, $value;