Bugzilla – Attachment 57878 Details for
Bug 17208
Classification sources and filing rules shouldn't allow 'New' with same code
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 17208: Checking if classification source or filing rule already exists before adding
Bug-17208-Checking-if-classification-source-or-fil.patch (text/plain), 4.62 KB, created by
Aleisha Amohia
on 2016-12-02 04:13:43 UTC
(
hide
)
Description:
Bug 17208: Checking if classification source or filing rule already exists before adding
Filename:
MIME Type:
Creator:
Aleisha Amohia
Created:
2016-12-02 04:13:43 UTC
Size:
4.62 KB
patch
obsolete
>From 427dc135c8f697826477cdab1d30d7a8895f1461 Mon Sep 17 00:00:00 2001 >From: Aleisha Amohia <aleishaamohia@hotmail.com> >Date: Fri, 2 Dec 2016 04:08:45 +0000 >Subject: [PATCH] Bug 17208: Checking if classification source or filing rule > already exists before adding > >To test: >1) Go to Admin -> Classification sources >2) Attempt to reproduce bug before applying patch. Notice the message >saying the add was successful, but was not added to the table >3) Apply patch and refresh page (restart plack if necessary) >4) Add new classification source with same code as existing one. Notice >you are now told that the add failed. >5) Confirm adding new classification source with unique code works >6) Add new classification filing rule with same code as existing one. >Notice you are told that add failed. >7) Confirm adding new classification filing rule with unique code works > >Sponsored-by: Catalyst IT >--- > C4/ClassSource.pm | 12 ++++++++++-- > admin/classsources.pl | 16 ++++++++++++---- > .../intranet-tmpl/prog/en/modules/admin/classsources.tt | 6 ++++++ > 3 files changed, 28 insertions(+), 6 deletions(-) > >diff --git a/C4/ClassSource.pm b/C4/ClassSource.pm >index bb78074..245f958 100644 >--- a/C4/ClassSource.pm >+++ b/C4/ClassSource.pm >@@ -112,12 +112,16 @@ sub GetClassSources { > sub AddClassSource { > > my ($cn_source, $description, $used, $class_sort_rule) = @_; >+ my $exists = GetClassSource($cn_source); >+ if ($exists) { >+ return 0; >+ } > my $dbh = C4::Context->dbh; > my $sth = $dbh->prepare("INSERT INTO `class_sources` > (`cn_source`, `description`, `used`, `class_sort_rule`) > VALUES (?, ?, ?, ?)"); > $sth->execute($cn_source, $description, $used, $class_sort_rule); >- >+ return 1; > } > > =head2 GetClassSource >@@ -224,12 +228,16 @@ sub GetClassSortRules { > sub AddClassSortRule { > > my ($class_sort_rule, $description, $sort_routine) = @_; >+ my $exists = GetClassSortRule($class_sort_rule); >+ if ($exists) { >+ return 0; >+ } > my $dbh = C4::Context->dbh; > my $sth = $dbh->prepare("INSERT INTO `class_sort_rules` > (`class_sort_rule`, `description`, `sort_routine`) > VALUES (?, ?, ?)"); > $sth->execute($class_sort_rule, $description, $sort_routine); >- >+ return 1; > } > > =head2 GetClassSortRule >diff --git a/admin/classsources.pl b/admin/classsources.pl >index cc2fe87..74e682a 100755 >--- a/admin/classsources.pl >+++ b/admin/classsources.pl >@@ -118,8 +118,12 @@ sub add_class_source_form { > > sub add_class_source { > my ($template, $source_code, $description, $used, $sort_rule) = @_; >- AddClassSource($source_code, $description, $used, $sort_rule); >- $template->param(added_source => $source_code); >+ my $success = AddClassSource($source_code, $description, $used, $sort_rule); >+ if ($success > 0) { >+ $template->param(added_source => $source_code); >+ } else { >+ $template->param(failed_add_source => $source_code); >+ } > } > > sub edit_class_source_form { >@@ -189,8 +193,12 @@ sub add_class_sort_rule_form { > > sub add_class_sort_rule { > my ($template, $rule_code, $description, $sort_routine) = @_; >- AddClassSortRule($rule_code, $description, $sort_routine); >- $template->param(added_rule => $rule_code); >+ my $success = AddClassSortRule($rule_code, $description, $sort_routine); >+ if ($success > 0) { >+ $template->param(added_rule => $rule_code); >+ } else { >+ $template->param(failed_add_rule => $rule_code); >+ } > } > > sub delete_sort_rule_form { >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/classsources.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/classsources.tt >index 2785ebb..b44cd4b 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/classsources.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/classsources.tt >@@ -199,6 +199,9 @@ > [% IF ( deleted_source ) %] > <div class="dialog message">Deleted classification source [% deleted_source %]</div> > [% END %] >+[% IF ( failed_add_source ) %] >+<div class="dialog message">Failed to add classification source [% failed_add_source %]. Perhaps the code already exists?</div> >+[% END %] > <table> > <tr> > <th>Code</th> >@@ -231,6 +234,9 @@ > [% IF ( deleted_rule ) %] > <div class="dialog message">Deleted filing rule [% deleted_rule %]</div> > [% END %] >+[% IF ( failed_add_rule ) %] >+<div class="dialog message">Failed to add filing rule [% failed_add_rule %]. Perhaps the code already exists?</div> >+[% END %] > <table> > <tr> > <th>Code</th> >-- >2.1.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 17208
:
57878
|
58237
|
58315