From: Fridolyn SOMERS Date: Wed, 27 Nov 2013 15:40:09 +0000 (+0100) Subject: Bug 11313: supply empty value in mandatory comboboxs in MARC record editors X-Git-Tag: v3.16.00-beta~863 X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=commitdiff_plain;h=fc698eed06ec9a7335c4b94362917d2b364b44c4;p=koha_fer Bug 11313: supply empty value in mandatory comboboxs in MARC record editors In biblio (or authority) record editing or creation, Bug 3727 added an empty value to combobox for subfields using itemtype authorized values, which is mandatory and does not have a default value. This to avoid selecting arbitrarily the first value of the combobox. 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. Signed-off-by: Katrin Fischer Passes all tests and QA script. 1) Adding a bibliographic record Subfield is mandatory, no default value: - adding record: no value is preselected, empty value exists - editing record: saved value is shown, empty value exists Subfield is mandatory, defined default value: - adding record: default is preselected, no empty value - editing record: saved value is shown, no empty value exists Subfield is not mandatory, defined default value: - adding record: default is preselected, empty value exists - editing record: saved value is shown, emtpy value exists Subfield is not mandatory, no default value: - adding record: empty value is preselected - editing record: saved value is shown, empty value exists 2) Adding an authority record Repeating tests from above. - Subfield is mandatory, no default value: OK - Subfield is mandatory, defined default value: OK - Subfield is not mandatory, defined default value: OK - Subfield is not mandatory, no default value: OK Signed-off-by: Galen Charlton --- diff --git a/authorities/authorities.pl b/authorities/authorities.pl index bb527f61f0..de8bbf8875 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 24be291037..118bfc2db1 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;