From 38e4e79c7e9f3ebad101860c3e9918d676477761 Mon Sep 17 00:00:00 2001 From: Fridolyn SOMERS Date: Wed, 27 Nov 2013 16:40:09 +0100 Subject: [PATCH] Bug 11313 - empty value in mandatory combobox in record edition In biblio (or authority) record edition or creation, Bug 3727 added an empty value to combobox for subfield using itemtype authorized values, which is mandatory and does not have a default value. This to avoid selecting arbitrarily the first value of combo. This patch extends this behavior to normal authorized values like CCODE, COUNTRY ... Also, when record already exists and has a defined value for the subfield this value will be selected in combobox so there is no need for an empty value. Test plan : - In a biblio framework, set a subfield mandatory and using itemtypes authorised values - Set a default value for this subfield - Create a new record with the framework => You see the subfield with a combobox, the first empty value is selected - Go to biblio framework and set a default value for the subfield - Create a new record with the framework => You see the subfield with a combobox, the default value is selected and there is no empty value - Select an other value and save the record - Edit this record => You see the subfield with a combobox, the saved value is selected and there is no empty value Perform same tests with a normal authorized values categorie (instead of itemtypes). Perform same tests with with authority creation/edition Perform same tests with a normal authorized values categorie and authority creation/edition Signed-off-by: David Cook Works as described. Fridolyn: I had a lot of difficulty understanding your test plan, especially since the second line should not be in the test plan (since if there is a default value, no empty value should appear). Perhaps it would be useful to use more whitespace to separate steps and the things for which a tester should check. Also, it might be useful to specify what testers should check for before and after applying the patch, so that they're sure that the behaviour has been corrected. In any case, the patch works! Certainly a helpful addition. --- authorities/authorities.pl | 6 ++++-- cataloguing/addbiblio.pl | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/authorities/authorities.pl b/authorities/authorities.pl index bb527f6..de8bbf8 100755 --- a/authorities/authorities.pl +++ b/authorities/authorities.pl @@ -92,7 +92,8 @@ sub build_authorized_values_list { "select itemtype,description from itemtypes order by description"); $sth->execute; push @authorised_values, "" - unless ( $tagslib->{$tag}->{$subfield}->{mandatory} ); + unless ( $tagslib->{$tag}->{$subfield}->{mandatory} + && ( $value || $tagslib->{$tag}->{$subfield}->{defaultvalue} ) ); my $itemtype; @@ -109,7 +110,8 @@ sub build_authorized_values_list { $tagslib->{$tag}->{$subfield}->{authorised_value} ); push @authorised_values, "" - unless ( $tagslib->{$tag}->{$subfield}->{mandatory} ); + unless ( $tagslib->{$tag}->{$subfield}->{mandatory} + && ( $value || $tagslib->{$tag}->{$subfield}->{defaultvalue} ) ); while ( my ( $value, $lib ) = $authorised_values_sth->fetchrow_array ) { push @authorised_values, $value; diff --git a/cataloguing/addbiblio.pl b/cataloguing/addbiblio.pl index 24be291..118bfc2 100755 --- a/cataloguing/addbiblio.pl +++ b/cataloguing/addbiblio.pl @@ -192,7 +192,8 @@ sub build_authorized_values_list { "select itemtype,description from itemtypes order by description"); $sth->execute; push @authorised_values, "" - unless ( $tagslib->{$tag}->{$subfield}->{defaultvalue} and $tagslib->{$tag}->{$subfield}->{mandatory} ); + unless ( $tagslib->{$tag}->{$subfield}->{mandatory} + && ( $value || $tagslib->{$tag}->{$subfield}->{defaultvalue} ) ); my $itemtype; @@ -229,7 +230,8 @@ sub build_authorized_values_list { ); push @authorised_values, "" - unless ( $tagslib->{$tag}->{$subfield}->{mandatory} ); + unless ( $tagslib->{$tag}->{$subfield}->{mandatory} + && ( $value || $tagslib->{$tag}->{$subfield}->{defaultvalue} ) ); while ( my ( $value, $lib ) = $authorised_values_sth->fetchrow_array ) { push @authorised_values, $value; -- 1.7.7.4