Bug 11286: fix bug preventing adding a new subfield to an authority framework
authorJonathan Druart <jonathan.druart@biblibre.com>
Fri, 22 Nov 2013 09:42:42 +0000 (10:42 +0100)
committerGalen Charlton <gmc@esilibrary.com>
Wed, 27 Nov 2013 18:07:17 +0000 (18:07 +0000)
Bug 10602 introduces a bug when adding a new subfield to an authority
framework. A new parameter is added in a sql query but the placeholder
is missing.

Test plan:
- edit an authority framework
- add a new subfield
- save
- boom!
DBD::mysql::st execute failed: called with 16 bind variables when 15 are
needed at
/home/home/src/admin/auth_subfields_structure.pl line 454.
- apply the patch and try again

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Work as described. No koha-qa errors

Tested trying to add subfield to 100, 2 for example.
Without patch silently fails (but error is logged)
With patch subfield creation or elimination is fine

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
One line fix for a bad bug. Confirmed the bug on master and
the fix. Passes all tests and QA script.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
admin/auth_subfields_structure.pl

index d9f10b4..fb0e59c 100755 (executable)
@@ -388,7 +388,7 @@ if ($op eq 'add_form') {
 #      my $sth=$dbh->prepare("replace auth_subfield_structure (authtypecode,tagfield,tagsubfield,liblibrarian,libopac,repeatable,mandatory,kohafield,tab,seealso,authorised_value,frameworkcode,value_builder,hidden,isurl)
 #                                                                      values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
     my $sth_insert = $dbh->prepare("insert into auth_subfield_structure (authtypecode,tagfield,tagsubfield,liblibrarian,libopac,repeatable,mandatory,kohafield,tab,seealso,authorised_value,frameworkcode,value_builder,hidden,isurl,defaultvalue)
-                                    values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
+                                    values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
     my $sth_update = $dbh->prepare("update auth_subfield_structure set authtypecode=?, tagfield=?, tagsubfield=?, liblibrarian=?, libopac=?, repeatable=?, mandatory=?, kohafield=?, tab=?, seealso=?, authorised_value=?, frameworkcode=?, value_builder=?, hidden=?, isurl=?, defaultvalue=?
                                     where authtypecode=? and tagfield=? and tagsubfield=?");
        my @tagsubfield = $input->param('tagsubfield');