From 461072dd9bfc2db3e23f2afd6fa0cc1f2e5f0663 Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Tue, 12 Sep 2017 17:45:09 -0400 Subject: [PATCH] LP#1713160: fix crash viewing circ history in public catalog This patch fixes a crash when a patron views their circulation history in the public catalog. To test ------- [1] Set up a patron record that retains circ history and make and returns some loans. Ensure that at least one of the loans is aged. [2] Log into the public catalog as the test patron and riew the Check Out History page (/eg/opac/myopac/circ_history). [3] Note that an internal server error is reported. [4] Apply the patch, repeat step 2, and verify that the check out history is now displayed. Signed-off-by: Galen Charlton Signed-off-by: Bill Erickson --- .../src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm | 2 +- Open-ILS/src/templates/opac/myopac/circ_history.tt2 | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm index 765ecf39a3..8295e12b51 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm @@ -1645,7 +1645,7 @@ sub fetch_user_circ_history { my %flesh_ops = ( flesh => 3, flesh_fields => { - auch => ['target_copy'], + auch => ['target_copy','source_circ'], acp => ['call_number'], acn => ['record'] }, diff --git a/Open-ILS/src/templates/opac/myopac/circ_history.tt2 b/Open-ILS/src/templates/opac/myopac/circ_history.tt2 index 423c4ffe57..1faffe6e24 100644 --- a/Open-ILS/src/templates/opac/myopac/circ_history.tt2 +++ b/Open-ILS/src/templates/opac/myopac/circ_history.tt2 @@ -187,7 +187,12 @@ [% date.format(ctx.parse_datetime(circ.circ.xact_start),DATE_FORMAT); %] - [% date.format(ctx.parse_datetime(circ.circ.due_date, circ.circ.circ_lib),DATE_FORMAT); %] + [% IF circ.circ.source_circ; + date.format(ctx.parse_datetime(circ.circ.due_date, circ.circ.source_circ.circ_lib),DATE_FORMAT); + ELSE; + date.format(ctx.parse_datetime(circ.circ.due_date, ctx.user.home_ou),DATE_FORMAT); + END; + %] [% IF circ.circ.checkin_time; -- 2.43.2