Bug 9533: batch item modification form now shows default field values only by request
authorKyle M Hall <kyle@bywatersolutions.com>
Wed, 17 Apr 2013 13:33:55 +0000 (09:33 -0400)
committerGalen Charlton <gmc@esilibrary.com>
Fri, 5 Jul 2013 15:52:26 +0000 (15:52 +0000)
This patch makes the pre-population of the fields for the batch
item editor with the default values from the default framework
optional and off by default.

Test Plan:
1) Apply patch
2) Add default values for cost and replacement cost to the
   default framework.
3) Browse to Tools / Batch item modification
4) Choose a file, or entire some barcodes in the text area
5) Ensure that the 'Populate fields with default values from default
   framework' is *not* checked
6) Click 'Continue'
7) Observe that the fields for cost and replacement cost are blank
8) Click the 'back' button on your browser
9) Check the checkbox to enable the default value
10) Click 'Continue'
11) Observe that the fields for cost and replacement cost now contain
    the default values you assigned them in the default MARC framework

Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Switch works correctly, all tests and QA script pass.

Note: there is a bug with default values for all non text input
fields. Default values won't be applied for those fields as the
pull downs are not preselected correctly with the default values
defined in the framework.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod.tt
tools/batchMod.pl

index ed57366..3f9b313 100644 (file)
                                 </ol>
                             </fieldset>
                             <input type="hidden" name="op" value="show" />
+
+                            <fieldset class="rows">
+                                <legend>Use default values</legend>
+                                <ol class="radio">
+                                    <li>
+                                        <label>
+                                            <input type="checkbox" name="use_default_values" id="use_default_values" />
+                                            Populate fields with default values from default framework
+                                        </label>
+                                    </li>
+                                </ol>
+                            </fieldset>
+
                             [% IF ( del ) %]<input type="hidden" name="del" value="1" />[% END %]
                             <fieldset class="action">
                                 <input type="submit" value="Continue" class="button" />
                                <a class="cancel" href="/cgi-bin/koha/tools/tools-home.pl">Cancel</a>
                             </fieldset>
+
                         </form>
                     </div>
                    </div>
index ec0ef01..acb4f0b 100755 (executable)
@@ -47,7 +47,7 @@ my $del_records  = $input->param('del_records');
 my $completedJobID = $input->param('completedJobID');
 my $runinbackground = $input->param('runinbackground');
 my $src          = $input->param('src');
-
+my $use_default_values = $input->param('use_default_values');
 
 my $template_name;
 my $template_flag;
@@ -78,8 +78,7 @@ my $itemrecord;
 my $nextop="";
 my @errors; # store errors found while checking data BEFORE saving item.
 my $items_display_hashref;
-my $frameworkcode="";
-my $tagslib = &GetMarcStructure(1,$frameworkcode);
+my $tagslib = &GetMarcStructure(1);
 
 my $deleted_items = 0;     # Number of deleted items
 my $deleted_records = 0;   # Number of deleted records ( with no items attached )
@@ -308,7 +307,7 @@ foreach my $tag (sort keys %{$tagslib}) {
        $subfield_data{repeatable} = $tagslib->{$tag}->{$subfield}->{repeatable};
        my ($x,$value);
        $value =~ s/"/&quot;/g;
-       unless ($value) {
+   if ( !$value && $use_default_values) {
            $value = $tagslib->{$tag}->{$subfield}->{defaultvalue};
            # get today date & replace YYYY, MM, DD if provided in the default value
            my ( $year, $month, $day ) = split ',', $today_iso;     # FIXME: iso dates don't have commas!