7 [% INCLUDE 'doc-head-open.inc' %]
8 <title>Koha › Tools › Batch patron deletion and anonymization [% IF step == 2 %]› Confirm[% END %][% IF step == 3 %]› Finished[% END %]</title>
9 [% INCLUDE 'doc-head-close.inc' %]
12 <body id="tools_cleanborrowers" class="tools">
13 [% INCLUDE 'header.inc' %]
14 [% INCLUDE 'cat-search.inc' %]
16 <div id="breadcrumbs">
17 <a href="/cgi-bin/koha/mainpage.pl">Home</a> ›
18 <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a> ›
20 Batch patron deletion and anonymization
22 <a href="/cgi-bin/koha/tools/cleanborrowers.pl">Batch patron deletion and anonymization</a> ›
24 [% IF step == 2 %] Confirm [% END %]
25 [% IF step == 3 %] Finished [% END %]
28 <div class="main container-fluid">
30 <div class="col-sm-10 col-sm-push-2">
34 [% IF current_branch == '*' %]
35 <h1>Batch patron deletion and anonymization</h1>
37 <h1>Batch patron deletion and anonymization for [% Branches.GetName( current_branch ) | html %]</h1>
40 <form method="get" action="/cgi-bin/koha/tools/cleanborrowers.pl" id="selectlibrary">
42 <select name="branch" id="branch" style="width:20em;">
43 <option value="*">All libraries</option>
44 [% FOREACH branch IN Branches.all( selected => current_branch ) %]
45 [% IF branch.selected %]
46 <option value="[% branch.branchcode | html %]" selected="selected">[% branch.branchname | html %]</option>
48 <option value="[% branch.branchcode | html %]">[% branch.branchname | html %]</option>
55 <h1>Batch patron deletion and anonymization for [% Branches.GetName( Branches.GetLoggedInBranchcode ) | html %]</h1>
62 <p>This tool allows you to delete patrons and anonymize checkout history. For deleting patrons, any combination of limits can be used.</p>
65 <form name="f1" id="delete_patrons_form" action="/cgi-bin/koha/tools/cleanborrowers.pl" method="post">
67 <legend>Delete patrons</legend>
68 <h3><input id="checkborrower" type="checkbox" name="checkbox" value="borrower" /><label for="checkborrower"> Verify you want to delete patrons</label></h3>
70 <h5>Delete patrons who meet the following criteria:</h5>
73 <label for="date1">who have not borrowed since:</label>
74 <input size="10" id="date1" name="not_borrowed_since" type="text" class="datepicker" />
75 <span class="hint">[% INCLUDE 'date-format.inc' %]</span>
78 <label for="borrower_dateexpiry">whose expiration date is before:</label>
79 <input size="10" id="borrower_dateexpiry" name="borrower_dateexpiry" type="text" class="datepicker" />
80 <span class="hint">[% INCLUDE 'date-format.inc' %]</span>
82 [% IF Koha.Preference('TrackLastPatronActivity') %]
84 <label for="borrower_lastseen">who have not been connected since:</label>
85 <input size="10" id="borrower_lastseen" name="borrower_lastseen" type="text" class="datepicker" />
86 <span class="hint">[% INCLUDE 'date-format.inc' %]</span>
90 <label for="borrower_categorycode">whose patron category is:</label>
91 <select id="borrower_categorycode" name="borrower_categorycode">
92 <option value="" selected="selected">Any</option>
93 [% FOREACH bc IN borrower_categorycodes %]
94 [% UNLESS bc.category_type == 'S' %]
95 <option value="[% bc.categorycode | html %]">[% bc.description | html %]</option>
100 [% IF patron_lists %]
102 <label for="patron_list_id">who are in patron list: </label>
103 <select id="patron_list_id" name="patron_list_id">
104 <option value=""></option>
105 [% FOREACH pl IN patron_lists %]
106 <option value="[% pl.patron_list_id | html %]">[% pl.name | html %]</option>
115 <legend>Anonymize checkout history</legend>
116 [% UNLESS Koha.Preference('AnonymousPatron') %]
117 <div class="dialog message">The AnonymousPatron system preference is not defined. You can use this feature anyway but NULL will be used to update the checkout history.</div>
119 <h3><input id="checkissue" type="checkbox" name="checkbox" value="issue" /><label for="checkissue"> Verify you want to anonymize patron checkout history</label></h3>
123 <label for="date2">Permanently delete checkout history older than</label>
124 <input size="10" id="date2" name="last_issue_date" type="text" class="datepicker" />
125 <span class="hint">[% INCLUDE 'date-format.inc' %]</span>
130 <input type="hidden" name="step" value="2" />
131 <input type="hidden" name="branch" value="[% current_branch | html %]" />
133 <fieldset class="action"><input type="submit" value="Next >>" /></fieldset>
140 <!-- STEP 2 START -->
142 <form name="f2" action="/cgi-bin/koha/tools/cleanborrowers.pl" method="post">
144 <div class="dialog alert">
147 <li>[% patrons_to_delete.size || 0 | html %] patrons will be deleted</li>
148 <li>[% patrons_to_anonymize.count || 0 | html %] patrons' checkout histories will be anonymized</li>
152 [% IF patrons_to_delete.size %]
154 <legend>How should patrons be deleted?</legend>
156 <input id="delete" type="radio" name="radio" value="delete" />
157 <label for="delete">Permanently delete these patrons</label>
159 Delete patrons directly from the database. Patron data will not be recoverable.
163 <input id="trash" type="radio" name="radio" value="trash" />
164 <label for="trash">Move these patrons to the trash</label>
166 Move patrons to the deleted patrons table. They can be deleted permanently by the <code>cleanup_database</code> script.
170 <input id="testrun" type="radio" name="radio" value="testrun" checked="checked" />
171 <label for="testrun">Test run: Do not remove any patrons.</label>
172 <input type="hidden" name="do_delete" value="[% patrons_to_delete.size | html %]" /></fieldset>
177 [% IF patrons_to_anonymize.count %]
179 Checkout history for [% patrons_to_anonymize.count | html %] patrons will be anonymized
180 <input type="hidden" name="do_anonym" value="[% patrons_to_anonymize.count | html %]" />
184 <input type="hidden" name="step" value="3" />
185 <input type="hidden" name="not_borrowed_since" value="[% not_borrowed_since | $KohaDates %]" />
186 <input type="hidden" name="last_issue_date" value="[% last_issue_date | $KohaDates %]" />
187 <input type="hidden" name="borrower_dateexpiry" value="[% borrower_dateexpiry | $KohaDates %]" />
188 [% IF Koha.Preference('TrackLastPatronActivity') %]
189 <input type="hidden" name="borrower_lastseen" value="[% borrower_lastseen | $KohaDates %]" />
191 <input type="hidden" name="borrower_categorycode" value="[% borrower_categorycode | html %]" />
192 <input type="hidden" name="patron_list_id" value="[% patron_list_id | html %]" />
193 <input type="hidden" name="branch" value="[% current_branch | html %]" />
194 <fieldset class="action"><input type="submit" value="Finish" /> <a class="cancel" href="/cgi-bin/koha/tools/cleanborrowers.pl">Cancel</a></fieldset>
201 <!-- Step 3 START -->
205 <h4>[% TotalDel | html %] patrons would have been removed (if it wasn't a test run)</h4>
206 <h4>No patron records have been actually removed</h4>
208 [% IF ( do_delete ) %]
210 <h4>[% TotalDel | html %] patrons have been successfully moved to trash</h4>
212 <h4>[% TotalDel | html %] patrons have been successfully deleted</h4>
215 <h4>No patron records have been removed</h4>
219 <h4>All checkouts ([% do_anonym | html %]) older than [% last_issue_date | $KohaDates %] have been anonymized</h4>
221 <h4>No patron records have been anonymized</h4>
229 </div> <!-- /.col-sm-10.col-sm-push-2 -->
231 <div class="col-sm-2 col-sm-pull-10">
233 [% INCLUDE 'tools-menu.inc' %]
235 </div> <!-- /.col-sm-2.col-sm-pull-10 -->
236 </div> <!-- /.row -->
238 [% MACRO jsinclude BLOCK %]
239 [% Asset.js("js/tools-menu.js") | $raw %]
240 [% INCLUDE 'calendar.inc' %]
242 $(document).ready(function(){
243 $("#delete_patrons_form").on("submit",function(){
244 return checkForm( this );
247 $('#branch').change(function() {
248 $('#selectlibrary').submit();
250 $("form[name='f2']").on('submit',function(){
251 if( $("#delete").prop("checked") ){
252 if( !confirm(_("These patrons will be permanently removed from the database and cannot be recovered")) ){
261 * This function check the form is correctly filled.
263 function checkForm(form) {
264 if((form.checkbox[0].checked)){
265 if ( (!form.date1.value) && (!form.borrower_dateexpiry.value) [% IF Koha.Preference('TrackLastPatronActivity') %]&& (!form.borrower_lastseen.value) [% END %]&& (!form.borrower_categorycode.value) && (!form.patron_list_id.value)){
266 alert(_("Please enter at least one criterion for deletion!"));
270 if((form.checkbox[1].checked)){
271 if(!(form.date2.value)){
272 alert(_("Please enter a date!"));
276 if(!form.checkbox[0].checked && !form.checkbox[1].checked) {
277 alert( _("Please check at least one action") );
285 [% INCLUDE 'intranet-bottom.inc' %]