Bugzilla – Attachment 107824 Details for
Bug 6725
Make patron duplicate matching flexible
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 6725: Make patron duplicate matching flexible
Bug-6725-Make-patron-duplicate-matching-flexible.patch (text/plain), 5.17 KB, created by
Jonathan Druart
on 2020-08-05 10:26:06 UTC
(
hide
)
Description:
Bug 6725: Make patron duplicate matching flexible
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2020-08-05 10:26:06 UTC
Size:
5.17 KB
patch
obsolete
>From 3ef8a75524a61a6c35a16df7c8262383a061ddf4 Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >Date: Wed, 5 Aug 2020 12:20:08 +0200 >Subject: [PATCH] Bug 6725: Make patron duplicate matching flexible > >This patch adds a new system preference PatronDuplicateMatchingAddFields >to list the patron's attributes to use for deduplication. >The default value is surname, firstname and dateofbirth to keep existing >behaviour. > >Test plan: >0. Apply the patch and execute the update DB entry >1. Create a new patron with surname, firstname >2. Create another patron with the same surname, firstname values >=> Confirm you get the duplicate warning >3. Modify the syspref to edit the list of attributes used to dedup >4. Repeat 1 and 2 with different values and confirm that you get the >behaviours you expect > >Note: This is only impacting the add patron form from the UI, not the >import patrons tool. >--- > installer/data/mysql/atomicupdate/bug_6725.perl | 11 +++++++++++ > installer/data/mysql/sysprefs.sql | 1 + > .../prog/en/modules/admin/preferences/patrons.pref | 6 ++++++ > members/memberentry.pl | 7 +++---- > 4 files changed, 21 insertions(+), 4 deletions(-) > create mode 100644 installer/data/mysql/atomicupdate/bug_6725.perl > >diff --git a/installer/data/mysql/atomicupdate/bug_6725.perl b/installer/data/mysql/atomicupdate/bug_6725.perl >new file mode 100644 >index 0000000000..9507062c7c >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/bug_6725.perl >@@ -0,0 +1,11 @@ >+$DBversion = 'XXX'; # will be replaced by the RM >+if( CheckVersion( $DBversion ) ) { >+ >+ $dbh->do( q{ >+ INSERT IGNORE INTO systempreferences (variable,value,options,explanation,type) VALUES >+ ('PatronDuplicateMatchingAddFields','surname|firstname|dateofbirth', NULL,'A list of fields separated by "|" to deduplicate patrons when created','Free') >+ }); >+ >+ # Always end with this (adjust the bug info) >+ NewVersion( $DBversion, 6725, "Adds PatronDuplicateMatchingAddFields system preference"); >+} >diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql >index e33407e0ab..fa23951396 100644 >--- a/installer/data/mysql/sysprefs.sql >+++ b/installer/data/mysql/sysprefs.sql >@@ -482,6 +482,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` > ('OverduesBlockRenewing','allow','allow|blockitem|block','If any of patron checked out documents is late, should renewal be allowed, blocked only on overdue items or blocked on whatever checked out document','Choice'), > ('PatronAnonymizeDelay','',NULL,'Delay for anonymizing patrons', 'Integer'), > ('PatronAutoComplete','1','Try|Don\'t try','to guess the patron being entered while typing a patron search for circulation or patron search. Only returns the first 10 results at a time.','YesNo'), >+('PatronDuplicateMatchingAddFields','surname|firstname|dateofbirth', NULL,'A list of fields separated by "|" to deduplicate patrons when created','Free') > ('patronimages','0',NULL,'Enable patron images for the Staff Client','YesNo'), > ('PatronRemovalDelay','',NULL,'Delay for removing anonymized patrons', 'Integer'), > ('PatronSelfModificationBorrowerUnwantedField','',NULL,'Name the fields you don\'t want to display when a patron is editing their information via the OPAC.','free'), >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref >index 30621ec8f7..fa7a797982 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref >@@ -228,6 +228,12 @@ Patrons: > housebound: "Housebound roles" > additional: "Additional attributes and identifiers" > messaging: "Patron messaging preferences" >+ - >+ - "The following <a href='http://schema.koha-community.org/__VERSION__/tables/borrowers.html' target='blank'>database columns</a>:" >+ - pref: PatronDuplicateMatchingAddFields >+ type: modalselect >+ source: borrowers >+ - "will be used deduplicate patrons." > Patron relationships: > - > - "Guarantors can be the following of those they guarantee:" >diff --git a/members/memberentry.pl b/members/memberentry.pl >index 985a96446c..de8bffdd0a 100755 >--- a/members/memberentry.pl >+++ b/members/memberentry.pl >@@ -254,11 +254,10 @@ if ( $op eq 'insert' || $op eq 'modify' || $op eq 'save' || $op eq 'duplicate' ) > > # Test uniqueness of surname, firstname and dateofbirth > if ( ( $op eq 'insert' ) and !$nodouble ) { >+ my @dup_fields = split '\|', C4::Context->preference('PatronDuplicateMatchingAddFields'); > my $conditions; >- $conditions->{surname} = $newdata{surname} if $newdata{surname}; >- if ( $category_type ne 'I' ) { >- $conditions->{firstname} = $newdata{firstname} if $newdata{firstname}; >- $conditions->{dateofbirth} = $newdata{dateofbirth} if $newdata{dateofbirth}; >+ for my $f ( @dup_fields ) { >+ $conditions->{$f} = $newdata{$f} if $newdata{$f}; > } > $nodouble = 1; > my $patrons = Koha::Patrons->search($conditions); # FIXME Should be search_limited? >-- >2.20.1
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 6725
:
107824
|
107846
|
107859
|
108320
|
108321