View | Details | Raw Unified | Return to bug 9303
Collapse All | Expand All

(-)a/C4/Members.pm (-1 lines)
Lines 115-121 BEGIN { Link Here
115
    push @EXPORT, qw(
115
    push @EXPORT, qw(
116
        &ModMember
116
        &ModMember
117
        &changepassword
117
        &changepassword
118
         &ModPrivacy
119
    );
118
    );
120
119
121
    #Delete data
120
    #Delete data
(-)a/C4/Reserves.pm (+1 lines)
Lines 261-266 sub GetReserve { Link Here
261
    my ($reserve_id) = @_;
261
    my ($reserve_id) = @_;
262
262
263
    my $dbh = C4::Context->dbh;
263
    my $dbh = C4::Context->dbh;
264
264
    my $query = "SELECT * FROM reserves WHERE reserve_id = ?";
265
    my $query = "SELECT * FROM reserves WHERE reserve_id = ?";
265
    my $sth = $dbh->prepare( $query );
266
    my $sth = $dbh->prepare( $query );
266
    $sth->execute( $reserve_id );
267
    $sth->execute( $reserve_id );
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref (+7 lines)
Lines 589-594 OPAC: Link Here
589
                  no: "Don't allow"
589
                  no: "Don't allow"
590
            - patrons to choose their own privacy settings for their reading history.  This requires opacreadinghistory and AnonymousPatron
590
            - patrons to choose their own privacy settings for their reading history.  This requires opacreadinghistory and AnonymousPatron
591
        -
591
        -
592
            - pref: AllowPatronToSetCheckoutsVisibilityForGuarantor
593
              default: 0
594
              choices:
595
                  yes: Allow
596
                  no: "Don't allow"
597
            - patrons to choose their own privacy settings for showing the patron's checkouts to the patron's guarantor".
598
        -
592
            - Use borrowernumber
599
            - Use borrowernumber
593
            - pref: AnonymousPatron
600
            - pref: AnonymousPatron
594
              class: integer
601
              class: integer
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref (+6 lines)
Lines 137-142 Patrons: Link Here
137
               no: "Don't"
137
               no: "Don't"
138
         - enable the ability to upload and attach arbitrary files to a borrower record.
138
         - enable the ability to upload and attach arbitrary files to a borrower record.
139
     -
139
     -
140
         - pref: AllowStaffToSetCheckoutsVisibilityForGuarantor
141
           choices:
142
               yes: Allow
143
               no: "Don't allow"
144
         - staff to set the ability for a patron's checkouts to be viewed by linked patrons in the OPAC.
145
     -
140
         - Card numbers for patrons must be
146
         - Card numbers for patrons must be
141
         - pref: CardnumberLength
147
         - pref: CardnumberLength
142
         - "characters long. The length can be a single number to specify an exact length, a range separated by a comma (i.e., 'Min,Max'), or a maximum with no minimum (i.e., ',Max')."
148
         - "characters long. The length can be a single number to specify an exact length, a range separated by a comma (i.e., 'Min,Max'), or a maximum with no minimum (i.e., ',Max')."
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt (+16 lines)
Lines 1-5 Link Here
1
[% USE Koha %]
1
[% USE Koha %]
2
[% USE KohaDates %]
2
[% USE KohaDates %]
3
[% USE Koha %]
3
[% INCLUDE 'doc-head-open.inc' %]
4
[% INCLUDE 'doc-head-open.inc' %]
4
<title>Koha &rsaquo; Patrons &rsaquo; [% IF ( opadd ) %]Add[% ELSIF ( opduplicate ) %]Duplicate[% ELSE %] Modify[% END %] patron [% IF (firstname) %][% firstname %] [% END %][% IF (surname) %][% surname %] [% END %]([%IF ( categoryname ) %][% categoryname %][% ELSE %][% IF ( I ) %]Organization[% END %][% IF ( A ) %]Adult[% END %][% IF ( C ) %]Child[% END %][% IF ( P ) %]Professional[% END %][% IF ( S ) %]Staff[% END %][% END %])</title>
5
<title>Koha &rsaquo; Patrons &rsaquo; [% IF ( opadd ) %]Add[% ELSIF ( opduplicate ) %]Duplicate[% ELSE %] Modify[% END %] patron [% IF (firstname) %][% firstname %] [% END %][% IF (surname) %][% surname %] [% END %]([%IF ( categoryname ) %][% categoryname %][% ELSE %][% IF ( I ) %]Organization[% END %][% IF ( A ) %]Adult[% END %][% IF ( C ) %]Child[% END %][% IF ( P ) %]Professional[% END %][% IF ( S ) %]Staff[% END %][% END %])</title>
5
[% INCLUDE 'doc-head-close.inc' %]
6
[% INCLUDE 'doc-head-close.inc' %]
Lines 490-495 Link Here
490
            [% END %]
491
            [% END %]
491
            <input id="guarantordelete" type="button" value="Delete" />
492
            <input id="guarantordelete" type="button" value="Delete" />
492
        </li>
493
        </li>
494
    [% IF guarantorid && Koha.Preference('AllowStaffToSetCheckoutsVisibilityForGuarantor') %]
495
        <li>
496
            <label for="privacy_guarantor_checkouts">Show checkouts to guarantor</label>
497
            <select name="privacy_guarantor_checkouts" id="privacy_guarantor_checkouts">
498
                [% IF privacy_guarantor_checkouts %]
499
                    <option value="0">No</option>
500
                    <option value="1" selected>Yes</option>
501
                [% ELSE %]
502
                    <option value="0" selected>No</option>
503
                    <option value="1">Yes</option>
504
                [% END %]
505
            </select>
506
            <div class="hint">Allow guarantor of this patron to view this patron's checkouts from the OPAC</div>
507
        </li>
508
    [% END %]
493
        </ol>
509
        </ol>
494
    </fieldset>
510
    </fieldset>
495
511
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt (+10 lines)
Lines 355-360 function validate1(date) { Link Here
355
         [% IF ( privacy1 ) %]Default[% END %]
355
         [% IF ( privacy1 ) %]Default[% END %]
356
         [% IF ( privacy2 ) %]Never[% END %]
356
         [% IF ( privacy2 ) %]Never[% END %]
357
    </li>[% END %]
357
    </li>[% END %]
358
359
    <li>
360
        <span class="label">Show checkouts to guarantor</span>
361
        [% IF privacy_guarantor_checkouts %]
362
            Yes
363
        [% ELSE %]
364
            No
365
        [% END %]
366
    </li>
367
358
    [% IF ( sort1 ) %]<li><span class="label">Sort field 1:</span>[% lib1 %]</li>[% END %]
368
    [% IF ( sort1 ) %]<li><span class="label">Sort field 1:</span>[% lib1 %]</li>[% END %]
359
    [% IF ( sort2 ) %]<li><span class="label">Sort field 2:</span>[% lib2 %]</li>[% END %]
369
    [% IF ( sort2 ) %]<li><span class="label">Sort field 2:</span>[% lib2 %]</li>[% END %]
360
    <li><span class="label">Username: </span>[% userid %]</li>
370
    <li><span class="label">Username: </span>[% userid %]</li>
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-memberentry.tt (+44 lines)
Lines 70-75 Link Here
70
                    <div class="alert">You typed in the wrong characters in the box before submitting. Please try again.</div>
70
                    <div class="alert">You typed in the wrong characters in the box before submitting. Please try again.</div>
71
                [% END %]
71
                [% END %]
72
72
73
                [% IF borrower.guarantorid && !Koha.Preference('OPACPrivacy') && Koha.Preference('AllowPatronToSetCheckoutsVisibilityForGuarantor') %]
74
                    <fieldset class="rows" id="memberentry_privacy">
75
                        <legend id="privacy_legend">Privacy</legend>
76
                        <ol>
77
                            <li>
78
                                <label>Allow your guarantor to view your current checkouts?</label>
79
                                <select id="privacy_guarantor_checkouts">
80
                                    <option value="0">No</option>
81
                                    [% IF borrower.privacy_guarantor_checkouts %]
82
                                        <option value="1" selected="selected">Yes</option>
83
                                    [% ELSE %]
84
                                        <option value="1">Yes</option>
85
                                    [% END %]
86
                                </select>
87
                                <span class="hint">
88
                                    <a id="update_privacy_guarantor_checkouts" href="#" class="btn">Update</a>
89
                                    <span id="update_privacy_guarantor_checkouts_message" class="alert" style="display:none"></span>
90
                                </span>
91
                                <span class="hint">
92
                                    [% SET g = Koha.Find('Borrower',borrower.guarantorid) %]
93
                                    Your guarantor is <i>[% g.firstname %] [% g.surname %]</i>
94
                                </span>
95
                            </li>
96
                        </ol>
97
                    </fieldset>
98
                [% END %]
99
73
                <form method="post" action="/cgi-bin/koha/opac-memberentry.pl" id="memberentry-form">
100
                <form method="post" action="/cgi-bin/koha/opac-memberentry.pl" id="memberentry-form">
74
101
75
                [% UNLESS hidden.defined('branchcode') %]
102
                [% UNLESS hidden.defined('branchcode') %]
Lines 822-827 Link Here
822
            [% ELSE %]
849
            [% ELSE %]
823
                $( "#borrower_dateofbirth" ).datepicker({ yearRange: "c-120:c" });
850
                $( "#borrower_dateofbirth" ).datepicker({ yearRange: "c-120:c" });
824
            [% END %]
851
            [% END %]
852
825
            $("#memberentry-form").validate({
853
            $("#memberentry-form").validate({
826
                rules: {
854
                rules: {
827
                    borrower_email: {
855
                    borrower_email: {
Lines 853-858 Link Here
853
                    error.css('width', 'auto');
881
                    error.css('width', 'auto');
854
                }
882
                }
855
            });
883
            });
884
885
            [% IF borrower.guarantorid && !Koha.Preference('OPACPrivacy') && Koha.Preference('AllowPatronToSetCheckoutsVisibilityForGuarantor') %]
886
                $('#update_privacy_guarantor_checkouts').click( function() {
887
                    $.post( "/cgi-bin/koha/svc/patron/show_checkouts_to_relatives", { privacy_guarantor_checkouts: $('#privacy_guarantor_checkouts').val() }, null, 'json')
888
                     .done(function( data ) {
889
                         var message;
890
                         if ( data.success ) {
891
                             message = _("Your setting has been updated!");
892
                         } else {
893
                             message = _("Unable to update your setting!");
894
                         }
895
896
                         $('#update_privacy_guarantor_checkouts_message').fadeIn("slow").text( message ).delay( 5000 ).fadeOut("slow");
897
                     });
898
                });
899
            [% END %]
856
        });
900
        });
857
    //]]>
901
    //]]>
858
    </script>
902
    </script>
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-privacy.tt (-2 / +22 lines)
Lines 49-55 Link Here
49
                                <input type="hidden" name="op" value="update_privacy" />
49
                                <input type="hidden" name="op" value="update_privacy" />
50
                                    <fieldset>
50
                                    <fieldset>
51
                                    <label for="privacy">Please choose your privacy rule:</label>
51
                                    <label for="privacy">Please choose your privacy rule:</label>
52
                                    <div class="input-append">
52
                                    <div>
53
                                        <select name="privacy" id="privacy">
53
                                        <select name="privacy" id="privacy">
54
                                            [% IF ( privacy0 ) %]
54
                                            [% IF ( privacy0 ) %]
55
                                                <option value="0" selected="selected" class="privacy0">Forever</option>
55
                                                <option value="0" selected="selected" class="privacy0">Forever</option>
Lines 67-74 Link Here
67
                                                <option value="2" class="privacy2">Never</option>
67
                                                <option value="2" class="privacy2">Never</option>
68
                                            [% END %]
68
                                            [% END %]
69
                                        </select>
69
                                        </select>
70
                                        <button type="Submit" class="btn">Submit</button>
71
                                    </div>
70
                                    </div>
71
72
                                    [% SET b = Koha.Find('Borrower', borrower.borrowernumber) %]
73
                                    [% IF b.guarantorid && Koha.Preference('AllowPatronToSetCheckoutsVisibilityForGuarantor') %]
74
                                        <div>
75
                                            <label for="privacy_guarantor_checkouts">Allow your guarantor to view your current checkouts?</label>
76
                                            <select name="privacy_guarantor_checkouts">
77
                                                [% IF borrower.privacy_guarantor_checkouts %]
78
                                                    <option value="0">No</option>
79
                                                    <option value="1" selected>Yes</option>
80
                                                [% ELSE %]
81
                                                    <option value="0" selected>No</option>
82
                                                    <option value="1">Yes</option>
83
                                                [% END %]
84
                                            </select>
85
                                            <span class="hint">
86
                                                Your guarantor is <i>[% b.guarantor.firstname %] [% b.guarantor.surname %]</i>
87
                                            </span>
88
                                        </div>
89
                                    [% END %]
90
91
                                    <button type="Submit" class="btn">Save</button>
72
                                </fieldset>
92
                                </fieldset>
73
                            </form>
93
                            </form>
74
                        <h2>Immediate deletion</h2>
94
                        <h2>Immediate deletion</h2>
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt (-3 / +51 lines)
Lines 110-115 Link Here
110
                    <div id="opac-user-views" class="toptabs">
110
                    <div id="opac-user-views" class="toptabs">
111
                        <ul>
111
                        <ul>
112
                            <li><a href="#opac-user-checkouts">Checked out ([% issues_count %])</a></li>
112
                            <li><a href="#opac-user-checkouts">Checked out ([% issues_count %])</a></li>
113
                            [% IF relatives %]<li><a href="#opac-user-relative-issues">Relatives' checkouts</a></li>[% END %]
113
                            [% IF ( overdues_count ) %]<li><a href="#opac-user-overdues">Overdue ([% overdues_count %])</a></li>[% END %]
114
                            [% IF ( overdues_count ) %]<li><a href="#opac-user-overdues">Overdue ([% overdues_count %])</a></li>[% END %]
114
                            [% IF ( OPACFinesTab ) %]
115
                            [% IF ( OPACFinesTab ) %]
115
                                [% IF ( BORROWER_INF.amountoverfive ) %]<li><a href="#opac-user-fines">Fines ([% BORROWER_INF.amountoutstanding %])</a></li>[% END %]
116
                                [% IF ( BORROWER_INF.amountoverfive ) %]<li><a href="#opac-user-fines">Fines ([% BORROWER_INF.amountoutstanding %])</a></li>[% END %]
Lines 137-143 Link Here
137
                                                [% IF ( show_barcode ) %]
138
                                                [% IF ( show_barcode ) %]
138
                                                    <th>Barcode</th>
139
                                                    <th>Barcode</th>
139
                                                [% END %]
140
                                                [% END %]
140
                                                    <th>Call No.</th>
141
                                                    <th>Call number</th>
141
                                                [% IF ( OpacRenewalAllowed && !( borrower.is_expired && borrower.BlockExpiredPatronOpacActions ) ) %]
142
                                                [% IF ( OpacRenewalAllowed && !( borrower.is_expired && borrower.BlockExpiredPatronOpacActions ) ) %]
142
                                                    <th class="nosort">Renew</th>
143
                                                    <th class="nosort">Renew</th>
143
                                                [% END %]
144
                                                [% END %]
Lines 332-337 Link Here
332
                            [% END %]
333
                            [% END %]
333
                        [% END # / OPACFinesTab %]
334
                        [% END # / OPACFinesTab %]
334
335
336
                        [% IF relatives %]
337
                            <div id="opac-user-relative-issues">
338
                                <table id="opac-user-relative-issues-table" class="table table-bordered table-striped">
339
                                    <thead>
340
                                        <tr>
341
                                            <th class="anti-the">Title</th>
342
                                            <th>Due</th>
343
                                            <th>Barcode</th>
344
                                            <th>Call number</th>
345
                                            <th class="psort">Relative</th>
346
                                        </tr>
347
                                    </thead>
348
349
                                    <tbody>
350
                                        [% FOREACH r IN relatives %]
351
                                            [% FOREACH i IN r.issues %]
352
                                                <tr>
353
                                                    <td>
354
                                                        <a href="/cgi-bin/koha/opac-detail.pl?biblionumber=[% i.item.biblio.biblionumber %]">
355
                                                            [% i.item.biblio.title %]
356
                                                        </a>
357
                                                    </td>
358
359
                                                    <td>
360
                                                        [% i.date_due | $KohaDates %]
361
                                                    </td>
362
363
                                                    <td>
364
                                                        [% i.item.barcode %]
365
                                                    </td>
366
367
                                                    <td>
368
                                                        [% i.item.itemcallnumber %]
369
                                                    </td>
370
371
                                                    <td>
372
                                                        [% r.firstname %] [% r.surname %]
373
                                                    </td>
374
                                                </tr>
375
                                            [% END %]
376
                                        [% END %]
377
                                    </tbody>
378
                                </table>
379
                            </div>
380
                        [% END %]
381
335
                        [% IF ( overdues_count ) %]
382
                        [% IF ( overdues_count ) %]
336
                            <div id="opac-user-overdues">
383
                            <div id="opac-user-overdues">
337
                                <table id="overduest" class="table table-bordered table-striped">
384
                                <table id="overduest" class="table table-bordered table-striped">
Lines 343-349 Link Here
343
                                            <th class="anti-the">Title</th>
390
                                            <th class="anti-the">Title</th>
344
                                            [% UNLESS ( item_level_itypes ) %]<th>Item type</th> [% END %]
391
                                            [% UNLESS ( item_level_itypes ) %]<th>Item type</th> [% END %]
345
                                            [% IF ( show_barcode ) %]<th>Barcode</th>[% END %]
392
                                            [% IF ( show_barcode ) %]<th>Barcode</th>[% END %]
346
                                            <th>Call no.</th>
393
                                            <th>Call number</th>
347
                                            <th class="title-string psort">Due</th>
394
                                            <th class="title-string psort">Due</th>
348
                                            [% IF ( OpacRenewalAllowed ) %]
395
                                            [% IF ( OpacRenewalAllowed ) %]
349
                                                <th class="nosort">Renew</th>
396
                                                <th class="nosort">Renew</th>
Lines 671-677 Link Here
671
            $(".js-hide").hide();
718
            $(".js-hide").hide();
672
            $(".modal-nojs").addClass("modal").addClass("hide").removeClass("modal-nojs");
719
            $(".modal-nojs").addClass("modal").addClass("hide").removeClass("modal-nojs");
673
            $(".suspend-until").prop("readonly",1);
720
            $(".suspend-until").prop("readonly",1);
674
            var dTables = $("#checkoutst,#holdst,#overduest");
721
722
            var dTables = $("#checkoutst,#holdst,#overduest,#opac-user-relative-issues-table");
675
            dTables.each(function(){
723
            dTables.each(function(){
676
                var thIndex = $(this).find("th.psort").index();
724
                var thIndex = $(this).find("th.psort").index();
677
                $(this).dataTable($.extend(true, {}, dataTablesDefaults, {
725
                $(this).dataTable($.extend(true, {}, dataTablesDefaults, {
(-)a/members/moremember.pl (+1 lines)
Lines 348-353 $template->param( Link Here
348
    is_child        => ($category_type eq 'C'),
348
    is_child        => ($category_type eq 'C'),
349
    samebranch      => $samebranch,
349
    samebranch      => $samebranch,
350
    quickslip       => $quickslip,
350
    quickslip       => $quickslip,
351
    privacy_guarantor_checkouts => $data->{'privacy_guarantor_checkouts'},
351
    activeBorrowerRelationship => (C4::Context->preference('borrowerRelationship') ne ''),
352
    activeBorrowerRelationship => (C4::Context->preference('borrowerRelationship') ne ''),
352
    AutoResumeSuspendedHolds => C4::Context->preference('AutoResumeSuspendedHolds'),
353
    AutoResumeSuspendedHolds => C4::Context->preference('AutoResumeSuspendedHolds'),
353
    SuspendHoldsIntranet => C4::Context->preference('SuspendHoldsIntranet'),
354
    SuspendHoldsIntranet => C4::Context->preference('SuspendHoldsIntranet'),
(-)a/opac/opac-privacy.pl (-14 / +23 lines)
Lines 45-62 my ( $template, $borrowernumber, $cookie ) = get_template_and_user( Link Here
45
    }
45
    }
46
);
46
);
47
47
48
my $op = $query->param("op");
48
my $op                         = $query->param("op");
49
my $privacy = $query->param("privacy");
49
my $privacy                    = $query->param("privacy");
50
my $privacy_guarantor_checkouts = $query->param("privacy_guarantor_checkouts");
50
51
51
if ($op eq "update_privacy")
52
if ( $op eq "update_privacy" ) {
52
{
53
    ModMember(
53
    ModPrivacy($borrowernumber,$privacy);
54
        borrowernumber             => $borrowernumber,
54
    $template->param('privacy_updated' => 1);
55
        privacy                    => $privacy,
56
        privacy_guarantor_checkouts => $privacy_guarantor_checkouts,
57
    );
58
    $template->param( 'privacy_updated' => 1 );
55
}
59
}
56
if ($op eq "delete_record") {
60
elsif ( $op eq "delete_record" ) {
61
57
    # delete all reading records for items returned
62
    # delete all reading records for items returned
58
    # uses a hardcoded date ridiculously far in the future
63
    # uses a hardcoded date ridiculously far in the future
59
    my ($rows,$err_history_not_deleted) = AnonymiseIssueHistory('2999-12-12',$borrowernumber);
64
    my ( $rows, $err_history_not_deleted ) =
65
      AnonymiseIssueHistory( '2999-12-12', $borrowernumber );
66
60
    # confirm the user the deletion has been done
67
    # confirm the user the deletion has been done
61
    if ( !$err_history_not_deleted ) {
68
    if ( !$err_history_not_deleted ) {
62
        $template->param( 'deleted' => 1 );
69
        $template->param( 'deleted' => 1 );
Lines 67-79 if ($op eq "delete_record") { Link Here
67
}
74
}
68
75
69
# get borrower privacy ....
76
# get borrower privacy ....
70
my $borr = C4::Members::GetMember( borrowernumber => $borrowernumber );
77
my $borrower = C4::Members::GetMember( borrowernumber => $borrowernumber );
71
78
72
$template->param( 'Ask_data'       => '1',
79
$template->param(
73
                    'privacy'.$borr->{'privacy'} => 1,
80
    'Ask_data'                         => 1,
74
                    'firstname' => $borr->{'firstname'},
81
    'privacy' . $borrower->{'privacy'} => 1,
75
                    'surname' => $borr->{'surname'},
82
    'privacyview'                      => 1,
76
                    'privacyview' => 1,
83
    'borrower'                         => $borrower,
84
    'surname'                          => $borrower->{surname},
85
    'firstname'                        => $borrower->{firstname},
77
);
86
);
78
87
79
output_html_with_http_headers $query, $cookie, $template->output, undef, { force_no_caching => 1 };
88
output_html_with_http_headers $query, $cookie, $template->output, undef, { force_no_caching => 1 };
(-)a/opac/opac-user.pl (-1 / +16 lines)
Lines 37-42 use C4::Branch; # GetBranches Link Here
37
use Koha::DateUtils;
37
use Koha::DateUtils;
38
use Koha::Borrower::Debarments qw(IsDebarred);
38
use Koha::Borrower::Debarments qw(IsDebarred);
39
use Koha::Holds;
39
use Koha::Holds;
40
use Koha::Database;
40
41
41
use constant ATTRIBUTE_SHOW_BARCODE => 'SHOW_BCODE';
42
use constant ATTRIBUTE_SHOW_BARCODE => 'SHOW_BCODE';
42
43
Lines 317-323 if ( $borr->{'opacnote'} ) { Link Here
317
  );
318
  );
318
}
319
}
319
320
321
if (   C4::Context->preference('AllowPatronToSetCheckoutsVisibilityForGuarantor')
322
    || C4::Context->preference('AllowStaffToSetCheckoutsVisibilityForGuarantor') )
323
{
324
    my @relatives =
325
      Koha::Database->new()->schema()->resultset("Borrower")->search(
326
        {
327
            privacy_guarantor_checkouts => 1,
328
            'me.guarantorid'           => $borrowernumber
329
        },
330
        { prefetch => [ { 'issues' => { 'item' => 'biblio' } } ] }
331
      );
332
    $template->param( relatives => \@relatives );
333
}
334
320
$template->param(
335
$template->param(
336
    borrower                 => $borr,
321
    bor_messages_loop        => GetMessages( $borrowernumber, 'B', 'NONE' ),
337
    bor_messages_loop        => GetMessages( $borrowernumber, 'B', 'NONE' ),
322
    patronupdate             => $patronupdate,
338
    patronupdate             => $patronupdate,
323
    OpacRenewalAllowed       => C4::Context->preference("OpacRenewalAllowed"),
339
    OpacRenewalAllowed       => C4::Context->preference("OpacRenewalAllowed"),
324
- 

Return to bug 9303