[Koha-patches] [PATCH 1/1] Bug 5354: Partial duplication of a subscription
Jonathan Druart
jonathan.druart at biblibre.com
Thu Mar 8 11:05:21 CET 2012
A new syspref (SubscriptionDuplicateDroppedInput) contains the list of fields to
duplicate when duplicating a subscription. The library will be able to
define that, for example, the internal note should not be duplicated
Test plan:
On the detail subscription page, click Edit > Edit as New (Duplicate):
All the information must be copied from the original subscription.
Fill the syspref SubscriptionDuplicateDroppedInput with a list of fields
you don't want to be duplicated (e.g. location;notes;branchcode).
Repeat the duplicate action. Normally, information for these fields are
not copied.
---
installer/data/mysql/updatedatabase.pl | 7 +++++++
.../prog/en/modules/admin/preferences/serials.pref | 3 +++
.../prog/en/modules/serials/subscription-add.tt | 10 ++++++++++
serials/subscription-add.pl | 6 ++++++
4 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl
index 33a3df6..4689129 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -4765,6 +4765,13 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
SetVersion($DBversion);
}
+$DBversion = "3.07.00.XXX";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("INSERT INTO systempreferences (variable,value,options,explanation,type) VALUES('SubscriptionDuplicateDroppedInput','','','List of fields which must not be rewritten when a subscription is duplicated (Separated by semicolon)','Free')");
+ print "Upgrade to $DBversion done (Add System Preferences SubscriptionDuplicateDroppedInput)\n";
+ SetVersion($DBversion);
+}
+
=head1 FUNCTIONS
=head2 DropAllForeignKeys($table)
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/serials.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/serials.pref
index 58db404..c696714 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/serials.pref
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/serials.pref
@@ -42,3 +42,6 @@ Serials:
simplified: a summary
full: a full list
- of the serial issues.
+ -
+ - List of fields which must not be rewritten when a subscription is duplicated (Separated by semicolon)
+ - pref: SubscriptionDuplicateDroppedInput
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tt
index 5301ce3..b9803ab 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tt
@@ -944,6 +944,16 @@ $(document).ready(function() {
$('#numberpattern').change( function() {
reset_num_pattern();
});
+
+ var node;
+ [% FOREACH field IN dont_export_field_loop %]
+ node = $("#[% field.fieldid %]");
+ if ( $(node).is('input') || $(node).is('textarea') ) {
+ $(node).val("");
+ } else if ( $(node).is('select') ) {
+ $(node).find("option:first").attr('selected','selected');
+ }
+ [% END %]
});
//]]>
</script>
diff --git a/serials/subscription-add.pl b/serials/subscription-add.pl
index 9acee7b..e0a60a5 100755
--- a/serials/subscription-add.pl
+++ b/serials/subscription-add.pl
@@ -113,6 +113,12 @@ if ($op eq 'modify' || $op eq 'dup' || $op eq 'modsubscription') {
firstacquiyear => substr($firstissuedate,0,4),
);
}
+
+ if ( $op eq 'dup' ) {
+ my $dont_copy_fields = C4::Context->preference('SubscriptionDuplicateDroppedInput');
+ my @fields_id = map { fieldid => $_ }, split ';', $dont_copy_fields;
+ $template->param( dont_export_field_loop => \@fields_id );
+ }
}
my $onlymine=C4::Context->preference('IndependantBranches') &&
--
1.7.7.3
More information about the Koha-patches
mailing list