Bug 17698: (follow-up) Changing to Koha Objects style, adding circ sidebar
authorAleisha Amohia <aleishaamohia@hotmail.com>
Mon, 26 Jun 2017 23:31:17 +0000 (23:31 +0000)
committerNick Clemens <nick@bywatersolutions.com>
Mon, 23 Jul 2018 15:23:41 +0000 (15:23 +0000)
Marcel, can you please have a look at this patch. I tried to implement
the change
my @notes = $schema->resultset('Issue')->search({ 'me.note' => { '!=', undef } }, { prefetch => [ 'borrower', { item => 'biblionumber' } ] });
to
my @notes = Koha::Checkouts->search({ 'me.note' => { '!=', undef } }, { prefetch => [ 'borrower', { item => 'biblionumber' } ] });
but am having problems on the template side. I can access the item and
biblio information about the issue, but not the borrower information,
even though the query is definitely pulling it correctly. Any
suggestions or ideas as to why this breaks?

This patch also adds the implementation of the circSidebar.

Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
12 files changed:
circ/branchoverdues.pl
circ/checkout-notes.pl
circ/circulation.pl
circ/on-site_checkouts.pl
circ/renew.pl
circ/returns.pl
circ/selectbranchprinter.pl
circ/transferstoreceive.pl
circ/view_holdsqueue.pl
circ/waitingreserves.pl
koha-tmpl/intranet-tmpl/prog/en/includes/circ-nav.inc
koha-tmpl/intranet-tmpl/prog/en/modules/circ/checkout-notes.tt

index d4c20cb..ed4b855 100755 (executable)
@@ -27,6 +27,7 @@ use C4::Koha;
 use C4::Debug;
 use Koha::DateUtils;
 use Koha::BiblioFrameworks;
+use Koha::Checkouts;
 use Data::Dumper;
 
 =head1 branchoverdues.pl
@@ -98,10 +99,13 @@ foreach my $num (@getoverdues) {
     push( @overduesloop, \%overdueforbranch );
 }
 
+my $pending_checkout_notes = Koha::Checkouts->search({ noteseen => 0 })->count;
+
 # initiate the templates for the overdueloop
 $template->param(
     overduesloop => \@overduesloop,
     location     => $location,
+    pending_checkout_notes => $pending_checkout_notes,
 );
 
 # Checking if there is a Fast Cataloging Framework
index ceb52c9..b0638f4 100755 (executable)
@@ -37,10 +37,12 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
     }
 );
 
-my $schema = Koha::Database->new()->schema();
-my @notes = $schema->resultset('Issue')->search({ 'me.note' => { '!=', undef } }, { prefetch => [ 'borrower', { item => 'biblionumber' } ] });
+my $pending_checkout_notes = Koha::Checkouts->search({ noteseen => 0 })->count;
+my @notes = Koha::Checkouts->search({ 'me.note' => { '!=', undef } }, { prefetch => [ 'borrower', { item => 'biblionumber' } ] });
+
 $template->param(
-    notes     => \@notes,
+    pending_checkout_notes => $pending_checkout_notes,
+    notes                  => \@notes,
 );
 
 my $action;
index 1617584..e0de5d0 100755 (executable)
@@ -56,6 +56,7 @@ use Koha::Patron::Messages;
 use Koha::SearchEngine;
 use Koha::SearchEngine::Search;
 use Koha::Patron::Modifications;
+use Koha::Checkouts;
 
 use Date::Calc qw(
   Today
@@ -145,6 +146,9 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user (
 );
 my $logged_in_user = Koha::Patrons->find( $loggedinuser ) or die "Not logged in";
 
+my $pending_checkout_notes = Koha::Checkouts->search({ noteseen => 0 })->count;
+$template->param( pending_checkout_notes => $pending_checkout_notes );
+
 my $force_allow_issue = $query->param('forceallow') || 0;
 if (!C4::Auth::haspermission( C4::Context->userenv->{id} , { circulate => 'force_checkout' } )) {
     $force_allow_issue = 0;
index aac5e79..bcf78cc 100755 (executable)
@@ -23,6 +23,7 @@ use C4::Circulation qw( GetPendingOnSiteCheckouts );
 use C4::Output;
 use C4::Koha;
 use Koha::BiblioFrameworks;
+use Koha::Checkouts;
 
 my $cgi = new CGI;
 
@@ -39,11 +40,12 @@ my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user(
 # Checking if there is a Fast Cataloging Framework
 $template->param( fast_cataloging => 1 ) if Koha::BiblioFrameworks->find( 'FA' );
 
-
+my $pending_checkout_notes = Koha::Checkouts->search({ noteseen => 0 })->count;
 my $pending_onsite_checkouts = C4::Circulation::GetPendingOnSiteCheckouts();
 
 $template->param(
     pending_onsite_checkouts => $pending_onsite_checkouts,
+    pending_onsite_notes     => $pending_onsite_notes,
 );
 
 output_html_with_http_headers $cgi, $cookie, $template->output;
index 246c266..01c37cd 100755 (executable)
@@ -28,6 +28,7 @@ use C4::Koha;
 use Koha::DateUtils;
 use Koha::Database;
 use Koha::BiblioFrameworks;
+use Koha::Checkouts;
 
 my $cgi = new CGI;
 
@@ -121,4 +122,7 @@ if ($barcode) {
 # Checking if there is a Fast Cataloging Framework
 $template->param( fast_cataloging => 1 ) if Koha::BiblioFrameworks->find( 'FA' );
 
+my $pending_checkout_notes = Koha::Checkouts->search({ noteseen => 0 })->count;
+$template->param( pending_checkout_notes => $pending_checkout_notes );
+
 output_html_with_http_headers( $cgi, $cookie, $template->output );
index a82bdc1..103d290 100755 (executable)
@@ -52,6 +52,7 @@ use Koha::BiblioFrameworks;
 use Koha::Holds;
 use Koha::Items;
 use Koha::Patrons;
+use Koha::Checkouts;
 
 my $query = new CGI;
 
@@ -579,6 +580,8 @@ foreach ( sort { $a <=> $b } keys %returneditems ) {
     push @riloop, \%ri;
 }
 
+my $pending_checkout_notes = Koha::Checkouts->search({ noteseen => 0 })->count;
+
 $template->param(
     riloop         => \@riloop,
     printer        => $printer,
@@ -589,6 +592,7 @@ $template->param(
     forgivemanualholdsexpire => $forgivemanualholdsexpire,
     overduecharges => $overduecharges,
     AudioAlerts        => C4::Context->preference("AudioAlerts"),
+    pending_checkout_notes => $pending_checkout_notes,
 );
 
 $itemnumber = GetItemnumberFromBarcode( $barcode );
index 03fa65b..935cb4e 100755 (executable)
@@ -27,6 +27,7 @@ use C4::Print;  # GetPrinters
 use C4::Koha;
 use Koha::BiblioFrameworks;
 use Koha::Libraries;
+use Koha::Checkouts;
 
 # this will be the script that chooses branch and printer settings....
 
@@ -126,11 +127,14 @@ if (scalar @updated and not scalar @recycle_loop) {
     print $query->redirect($referer || '/cgi-bin/koha/circ/circulation.pl');
 }
 
+my $pending_checkout_notes = Koha::Checkouts->search({ noteseen => 0 })->count;
+
 $template->param(
     referer     => $referer,
     printerloop => \@printerloop,
     branch      => $branch,
     recycle_loop=> \@recycle_loop,
+    pending_checkout_notes => $pending_checkout_notes,
 );
 
 # Checking if there is a Fast Cataloging Framework
index 10df07d..cf43499 100755 (executable)
@@ -40,6 +40,7 @@ use Koha::Libraries;
 use Koha::DateUtils;
 use Koha::BiblioFrameworks;
 use Koha::Patrons;
+use Koha::Checkouts;
 
 my $input = new CGI;
 my $itemnumber = $input->param('itemnumber');
@@ -125,11 +126,14 @@ while ( my $library = $libraries->next ) {
     push( @branchesloop, \%branchloop ) if %branchloop;
 }
 
+my $pending_checkout_notes = Koha::Checkouts->search({ noteseen => 0 })->count;
+
 $template->param(
     branchesloop => \@branchesloop,
     show_date    => output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 }),
-       TransfersMaxDaysWarning => C4::Context->preference('TransfersMaxDaysWarning'),
-       latetransfers => $latetransfers ? 1 : 0,
+    TransfersMaxDaysWarning => C4::Context->preference('TransfersMaxDaysWarning'),
+    latetransfers => $latetransfers ? 1 : 0,
+    pending_checkout_notes => $pending_checkout_notes,
 );
 
 # Checking if there is a Fast Cataloging Framework
index 6c0fcd6..d471476 100755 (executable)
@@ -30,7 +30,7 @@ use C4::Biblio;
 use C4::Items;
 use C4::HoldsQueue qw(GetHoldsQueueItems);
 use Koha::BiblioFrameworks;
-
+use Koha::Checkouts;
 use Koha::ItemTypes;
 
 my $query = new CGI;
@@ -64,6 +64,9 @@ if ( $run_report ) {
     );
 }
 
+my $pending_checkout_notes = Koha::Checkouts->search({ noteseen => 0 })->count;
+$template->param( pending_checkout_notes => $pending_checkout_notes );
+
 # Checking if there is a Fast Cataloging Framework
 $template->param( fast_cataloging => 1 ) if Koha::BiblioFrameworks->find( 'FA' );
 
index 5943ea5..93ca0e9 100755 (executable)
@@ -39,6 +39,7 @@ use Koha::BiblioFrameworks;
 use Koha::Items;
 use Koha::ItemTypes;
 use Koha::Patrons;
+use Koha::Checkouts;
 
 my $input = new CGI;
 
@@ -149,6 +150,9 @@ while ( my $hold = $holds->next ) {
 }
 
 $template->param(cancel_result => \@cancel_result) if @cancel_result;
+
+my $pending_checkout_notes = Koha::Checkouts->search({ noteseen => 0 })->count;
+
 $template->param(
     reserveloop => \@reservloop,
     reservecount => $reservcount,
@@ -157,6 +161,7 @@ $template->param(
     show_date   => output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 }),
     ReservesMaxPickUpDelay => $max_pickup_delay,
     tab => $tab,
+    pending_checkout_notes => $pending_checkout_notes,
 );
 
 # Checking if there is a Fast Cataloging Framework
index b6dc7fb..0c69790 100644 (file)
@@ -20,6 +20,9 @@
             [% IF ( fast_cataloging ) %][% IF ( CAN_user_editcatalogue_fast_cataloging ) %]
                 <li><a href="/cgi-bin/koha/cataloguing/addbiblio.pl?frameworkcode=FA">Fast cataloging</a></li>
             [% END %][% END %]
+            [% IF Koha.Preference('AllowCheckoutNotes') && CAN_user_circulate_manage_checkout_notes %]
+                <li><a href="/cgi-bin/koha/circ/checkout-notes.pl">Checkout notes</a> [% IF pending_checkout_notes %]<span class="number_box"><a href="/cgi-bin/koha/circ/checkout-notes.pl">[% pending_checkout_notes %]</span>[% END %]</li>
+            [% END %]
         </ul>
 
         <h5>Circulation reports</h5>
index 2fb1ec8..aa44abe 100644 (file)
     Checkout notes
 </div>
 
-<div id="doc" class="yui-t7"> <!-- <div id="doc3" class="yui-t2" -->
+[% IF Koha.Preference('CircSidebar') %]<div id="doc3" class="yui-t2">[% ELSE %]<div id="doc" class="yui-t7">[% END %]
     <div id="bd">
         <div id="yui-main">
+        [% IF Koha.Preference('CircSidebar') %]<div class="yui-b">[% END %]
 
             <h1>Checkout notes</h1>
 
                                 [% FOREACH note IN notes %]
                                     <tr>
                                         <td><input type="checkbox" name="issue_ids" value="[% note.issue_id %]"></td>
-                                        <td>[% note.item.biblionumber.title %] - [% note.item.biblionumber.author %] (<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% note.item.biblionumber.biblionumber %]">[% note.item.barcode %]</a>)</td>
+                                        <td>[% note.item.biblio.title %] - [% note.item.biblio.author %] (<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% note.item.biblionumber %]">[% note.item.barcode %]</a>)</td>
                                         <td>[% note.note %]</td>
                                         <td>[% note.notedate | $KohaDates %]</td>
-                                        <td>[% note.borrower.firstname %] [% note.borrower.surname %] (<a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=[% note.borrower.borrowernumber %]">[% note.borrower.cardnumber %]</a>)</td>
-                                        <td>[% IF ( note.noteseen == 0 ) %]
-                                            <span id="status_[% note.issue_id %]">Not seen</span>
-                                        [% ELSIF ( note.noteseen == 1 ) %]
-                                            <span id="status_[% note.issue_id %]">Seen</span>
-                                        [% END %]</td>
-                                        <td class="actions">[% IF ( note.noteseen == 1 ) %]
-                                            <button name="seen" data-issue_id="[% note.issue_id %]" class="seen btn btn-default btn-xs" disabled="disabled"><i class="fa fa-eye"></i> Mark seen</button> <button name="notseen" data-issue_id="[% note.issue_id %]" class="notseen btn btn-default btn-xs"><i class="fa fa-eye-slash"></i> Mark not seen</button>
-                                        [% ELSIF ( note.noteseen == 0 ) %]
-                                            <button name="seen" data-issue_id="[% note.issue_id %]" class="seen btn btn-default btn-xs"><i class="fa fa-eye"></i> Mark seen</button> <button name="notseen" data-issue_id="[% note.issue_id %]" class="notseen btn btn-default btn-xs" disabled="disabled"><i class="fa fa-eye-slash"></i> Mark not seen</button>
-                                        [% END %]</td>
+                                        <td>[% IF note.borrower.title %][% note.borrower.title [% END %][% note.borrower.firstname %] [% note.borrower.surname %] (<a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=[% note.borrower.borrowernumber %]">[% note.borrower.cardnumber %]</a>)</td>
+                                        <td>
+                                            [% IF ( note.noteseen == 0 ) %]
+                                                <span id="status_[% note.issue_id %]">Not seen</span>
+                                            [% ELSIF ( note.noteseen == 1 ) %]
+                                                <span id="status_[% note.issue_id %]">Seen</span>
+                                            [% END %]
+                                        </td>
+                                        <td class="actions">
+                                            [% IF ( note.noteseen == 1 ) %]
+                                                <button name="seen" data-issue_id="[% note.issue_id %]" class="seen btn btn-default btn-xs" disabled="disabled"><i class="fa fa-eye"></i> Mark seen</button> <button name="notseen" data-issue_id="[% note.issue_id %]" class="notseen btn btn-default btn-xs"><i class="fa fa-eye-slash"></i> Mark not seen</button>
+                                            [% ELSIF ( note.noteseen == 0 ) %]
+                                                <button name="seen" data-issue_id="[% note.issue_id %]" class="seen btn btn-default btn-xs"><i class="fa fa-eye"></i> Mark seen</button> <button name="notseen" data-issue_id="[% note.issue_id %]" class="notseen btn btn-default btn-xs" disabled="disabled"><i class="fa fa-eye-slash"></i> Mark not seen</button>
+                                            [% END %]
+                                        </td>
                                     </tr>
                                 [% END %]
                             </tbody>
 
             [% END %] <!-- selected_count -->
 
-        </div> <!-- yui-main -->
+        </div> <!-- yui-imain -->
+
+        [% IF Koha.Preference('CircSidebar') %]
+        </div>
+
+        <div class="yui-b noprint">
+            [% INCLUDE 'circ-nav.inc' %]
+        </div>
+        [% END %]
+
     </div> <!-- bd -->
 </div> <!-- doc3 -->