Bug 15096: Export today's checked in barcodes: Display warning if reading history is set to "never"

If a patron's privacy settings are set to "Never" for keeping a reading history, "Export today's
checked in barcodes" returns an empty file. This patch does not allow to export in such case.

To test:

- Apply patch
- Check out / check in in some items

-Test toolbar:
- On user's detail page, go to More->Export today's checked in barcodes
- Verify that the menu item does not appear if syspref 'intranetreadinghistory'
  is set to 'Don't allow'
- Verify that the menu item appears if syspref 'intranetreadinghistory'
  is set to allow and
  - that the menu item is grayed out with a tooltip if the user has set privacy
    settings to never keep a reading history
  - that the menu item works as before if user's privacy settings allow reading history.

- Test left tab "Circulation history":
- Verify that the left tab "Circulation history" does not appear if syspref
  'intranetreadinghistory' is set to 'Don't allow'
- Verify that the tab appars if syspref 'intranetreadinghistory' is set to 'Allow' and
  - that a message appears if user's privacy settings do not allow to keep the reading history
  - that the export works as before if user's privacy settings allow to keep the reading history

(Amended and changed test plan for comment #9)

Signed-off-by: Aleisha <aleishaamohia@hotmail.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
This commit is contained in:
Marc Véron 2015-10-31 21:24:44 +01:00 committed by Brendan A Gallagher
parent 952ba0eed9
commit 3ea6e78909
3 changed files with 29 additions and 17 deletions

View file

@ -38,7 +38,7 @@ $(document).ready(function(){
$(".btn-group").removeClass("open");
});[% END %]
[% END %]
$("#updatechild, #patronflags, #renewpatron, #deletepatron").tooltip();
$("#updatechild, #patronflags, #renewpatron, #deletepatron, #exportbarcodes").tooltip();
$("#exportcheckins").click(function(){
export_barcodes();
$(".btn-group").removeClass("open");
@ -199,7 +199,13 @@ function searchToHold(){
[% ELSE %]
<li class="disabled"><a data-toggle="tooltip" data-placement="left" title="Patron is an adult" id="updatechild" href="#">Update child to adult patron</a></li></li>
[% END %]
<li><a id="exportcheckins" href="#">Export today's checked in barcodes</a></li>
[% IF Koha.Preference('intranetreadinghistory') %]
[%IF ( privacy == 2 ) %]
<li class="disabled"><a data-toggle="tooltip" data-placement="left" title="Not allowed by patron's privacy settings" id="exportbarcodes" href="#">Export today's checked in barcodes</a></li>
[% ELSE %]
<li><a id="exportcheckins" href="#">Export today's checked in barcodes</a></li>
[% END %]
[% END %]
</ul>
</div>
</div>

View file

@ -53,6 +53,8 @@
<div class="dialog alert">Staff members are not allowed to access patron's checkout history</div>
[% ELSIF is_anonymous %]
<div class="dialog alert">This is the anonymous patron, so no circulation history is displayed. To get a list of anonymized loans, please run a report.</div>
[% ELSIF ( privacy == 2) %]
<div class="dialog message">This patron has set the privacy rules to never keeping a circulation history.</div>
[% ELSIF ( !loop_reading ) %]
<div class="dialog message">This patron has no circulation history.</div>
[% ELSE %]

View file

@ -75,21 +75,24 @@ my $branches = GetBranches();
# barcode export
if ( $op eq 'export_barcodes' ) {
my $today = output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 });
my @barcodes =
map { $_->{barcode} } grep { $_->{returndate} =~ m/^$today/o } @{$issues};
my $borrowercardnumber =
GetMember( borrowernumber => $borrowernumber )->{'cardnumber'};
my $delimiter = "\n";
binmode( STDOUT, ":encoding(UTF-8)" );
print $input->header(
-type => 'application/octet-stream',
-charset => 'utf-8',
-attachment => "$today-$borrowercardnumber-checkinexport.txt"
);
my $content = join $delimiter, uniq(@barcodes);
print $content;
exit;
if ( $data->{'privacy'} < 2) {
my $today = output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 });
my @barcodes =
map { $_->{barcode} } grep { $_->{returndate} =~ m/^$today/o } @{$issues};
my $borrowercardnumber =
GetMember( borrowernumber => $borrowernumber )->{'cardnumber'};
my $delimiter = "\n";
binmode( STDOUT, ":encoding(UTF-8)" );
print $input->header(
-type => 'application/octet-stream',
-charset => 'utf-8',
-attachment => "$today-$borrowercardnumber-checkinexport.txt"
);
my $content = join $delimiter, uniq(@barcodes);
print $content;
exit;
}
}
if ( $data->{'category_type'} eq 'C') {
@ -122,6 +125,7 @@ $template->param(%$data);
$template->param(
readingrecordview => 1,
borrowernumber => $borrowernumber,
privacy => $data->{'privacy'},
categoryname => $data->{description},
is_child => ( $data->{category_type} eq 'C' ),
branchname => $branches->{ $data->{branchcode} }->{branchname},