Koha/koha-tmpl/intranet-tmpl/prog/en/modules/tools/cleanborrowers.tt
Kyle M Hall 7f9d5b27ae Bug 10612 - Add ability to delete patrons with batch patron deletion tool
This patch adds the ability to select a patron list for deletetion
when using the Batch patron deletion/anonymization tool. It also adds
buttons to the the patron lists table to access both the batch deletion
and batch modification directly from the lists view.

This is a squash of previous patches but now adds a patron_list_id
parameter to C4::Members::GetBorrowersToExpunge and uses that routine to
fetch patrons from a list.

Test Plan:
1) Apply this patch
2) Create a list of patrons with the new Patron Lists feature
3) Try using the batch edit link form the lists table
4) Try using the batch delete link from the lists table
5) Verify previous functionality has not changed

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Patron batches are correctly passed to the edit and delete pages.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
2016-04-01 19:52:13 +00:00

206 lines
8.9 KiB
Text

[% USE Koha %]
[% USE KohaDates %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Tools &rsaquo; Batch patron deletion/anonymization [% IF step == 2 %]&rsaquo; Confirm[% END %][% IF step == 3 %]&rsaquo; Finished[% END %]</title>
[% INCLUDE 'doc-head-close.inc' %]
[% INCLUDE 'calendar.inc' %]
<script type="text/javascript">
// <![CDATA[
/**
* checkForm(form)
* This function check the form is correctly filled.
*/
function checkForm(form) {
if((form.checkbox[0].checked)){
if ( (!form.date1.value) && (!form.borrower_dateexpiry.value) && (!form.borrower_categorycode.value) && (!form.patron_list_id.value)){
alert(_("Please enter at least one criterion for deletion!"));
return false;
}
}
if((form.checkbox[1].checked)){
if(!(form.date2.value)){
alert(_("please enter a date!"));
return false;
}
}
if(!form.checkbox[0].checked && !form.checkbox[1].checked) {
alert( _("Please check at least one action") );
return false;
}
return true;
}
/**
* checkForm2(form)
* This function check the form2 is correctly filled.
*/
function checkForm2(form) {
return true;
}
// ]]>
</script>
</head>
<body id="tools_cleanborrowers" class="tools">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'cat-search.inc' %]
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a> &rsaquo; [% IF step == 1 %]Clean Patron Records[% ELSE %]<a href="/cgi-bin/koha/tools/cleanborrowers.pl">Clean patron records</a> &rsaquo; [% END %][% IF step == 2 %]Confirm[% END %][% IF step == 3 %]Finished[% END %]</div>
<div id="doc3" class="yui-t2">
<div id="bd">
<div id="yui-main">
<div class="yui-b">
<h1>Batch patron deletion/anonymization</h1>
<div class="help">
<p>This tool allows you to delete patrons and anonymize checkout history. For deleting patrons, any combination of limits can be used.</p>
</div>
[% IF step == 1 %]
<!-- step 1 START -->
<div id="step1">
<form name="f1" onsubmit="return checkForm(this);" action="/cgi-bin/koha/tools/cleanborrowers.pl" method="post">
<fieldset>
<legend>Delete patrons</legend>
<h3><input id="checkborrower" type="checkbox" name="checkbox" value="borrower" /><label for="checkborrower"> Verify you want to delete patrons</label></h3>
<br />
<h5>Delete patrons who meet the following criteria:</h5>
<ul>
<li>
<label for="date1">who have not borrowed since:</label>
<input size="10" id="date1" name="not_borrowed_since" type="text" class="datepicker" />
<span class="hint">[% INCLUDE 'date-format.inc' %]</span>
</li>
<li>
<label for="borrower_dateexpiry">whose expiration date is before:</label>
<input size="10" id="borrower_dateexpiry" name="borrower_dateexpiry" type="text" class="datepicker" />
<span class="hint">[% INCLUDE 'date-format.inc' %]</span>
</li>
<li>
<label for="borrower_categorycode">whose patron category is:</label>
<select id="borrower_categorycode" name="borrower_categorycode">
<option value="" selected="selected">Any</option>
[% FOREACH bc IN borrower_categorycodes %]
[% UNLESS bc.category_type == 'S' %]
<option value="[% bc.categorycode %]">[% bc.description %]</option>
[% END %]
[% END %]
</select>
</li>
[% IF patron_lists %]
<li>
<label for="patron_list_id">who are in patron list: </label>
<select id="patron_list_id" name="patron_list_id">
<option value=""></option>
[% FOREACH pl IN patron_lists %]
<option value="[% pl.patron_list_id %]">[% pl.name %]</option>
[% END %]
</select>
</li>
[% END %]
</ul>
</fieldset>
<fieldset>
<legend>Anonymize checkout history</legend>
[% UNLESS Koha.Preference('AnonymousPatron') %]
<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>
[% END %]
<h3><input id="checkissue" type="checkbox" name="checkbox" value="issue" /><label for="checkissue"> Verify you want to anonymize patron checkout history</label></h3>
<br />
<ul>
<li>
<label for="date2">Permanently delete checkout history older than</label>
<input size="10" id="date2" name="last_issue_date" type="text" class="datepicker" />
<span class="hint">[% INCLUDE 'date-format.inc' %]</span>
</li>
</ul>
<!-- hidden here -->
<input type="hidden" name="step" value="2" />
</fieldset>
<fieldset class="action"><input type="submit" value="Next &gt;&gt;" /></fieldset>
</form>
</div>
<!-- step 1 END -->
[% END %]
[% IF step == 2 %]
<!-- STEP 2 START -->
<div id="step2">
<form name="f2" action="/cgi-bin/koha/tools/cleanborrowers.pl" method="post" onsubmit="return checkForm2(this);">
<fieldset>
<legend>Warnings</legend>
<ul>
<li>[% patrons_to_delete.size || 0 %] patrons will be deleted</li>
<li>[% patrons_to_anonymize.size || 0 %] patron's checkout histories will be anonymized</li>
</ul>
<br />
[% IF patrons_to_delete.size %]
<fieldset><legend>What do you want to do for deleted patrons?</legend>
<input id="delete" type="radio" name="radio" value="delete" />
<label for="delete">Permanently delete these patrons</label>
<br /><input id="trash" type="radio" name="radio" value="trash" />
<label for="trash">Move these patrons to the trash</label>
<br /><input id="testrun" type="radio" name="radio" value="testrun" checked="checked" />
<label for="testrun">Do not remove any patrons (test run)</label>
<input type="hidden" name="do_delete" value="[% patrons_to_delete.size %]" /></fieldset>
[% END %]
[% IF patrons_to_anonymize.size %]
Checkout history for [% patrons_to_anonymize.size %] patrons will be anonymized
<input type="hidden" name="do_anonym" value="[% patrons_to_anonymize.size %]" />
[% END %]
<input type="hidden" name="step" value="3" />
<input type="hidden" name="not_borrowed_since" value="[% not_borrowed_since | $KohaDates %]" />
<input type="hidden" name="last_issue_date" value="[% last_issue_date | $KohaDates %]" />
<input type="hidden" name="borrower_dateexpiry" value="[% borrower_dateexpiry | $KohaDates %]" />
<input type="hidden" name="borrower_categorycode" value="[% borrower_categorycode %]" />
<input type="hidden" name="patron_list_id" value="[% patron_list_id %]" />
</fieldset>
<fieldset class="action"><input type="submit" value="Finish" /> <a class="cancel" href="/cgi-bin/koha/tools/cleanborrowers.pl">Cancel</a></fieldset>
</form>
</div>
<!-- STEP 2 END -->
[% END %]
[% IF step == 3 %]
<!-- Step 3 START -->
<div id="step3">
[% IF ( testrun ) %]
<h4>[% TotalDel %] patrons would have been removed (if it wasn't a test run)</h4>
<h4>No patron records have been actually removed</h4>
[% ELSE %]
[% IF ( do_delete ) %]
[% IF ( trash ) %]
<h4>[% TotalDel %] patrons have been successfully moved to trash</h4>
[% ELSE %]
<h4>[% TotalDel %] patrons have been successfully deleted</h4>
[% END %]
[% ELSE %]
<h4>No patron records have been removed</h4>
[% END %]
[% END %]
[% IF ( do_anonym ) %]
<h4>All checkouts older than [% last_issue_date | $KohaDates %] have been anonymized</h4>
[% ELSE %]
<h4>No patron records have been anonymized</h4>
[% END %]
</div>
<!-- Step 3 END -->
[% END %]
</div>
</div>
<div class="yui-b noprint">
[% INCLUDE 'tools-menu.inc' %]
</div>
</div>
[% INCLUDE 'intranet-bottom.inc' %]