Bug 25033: Display both local and all pending suggestions counts if the numbers differ
authorNick Clemens <nick@bywatersolutions.com>
Wed, 1 Apr 2020 12:38:02 +0000 (12:38 +0000)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Tue, 25 Aug 2020 09:31:40 +0000 (11:31 +0200)
To test:
 0 - Be in staff client as a superlibrarian
 1 - Place some suggestions
  1 for any branch
  1 for signed in branch
  1 for another branch
 2 - Go to Koha main page, 3 suggestions pending
 3 - Click 'Suggestions pending approval' - you see one suggestion
 4 - Click on 'Acquisitions' in breadcrumbs , 3 suggestions pending
 5 - Click manage suggestions - you see one suggestion
 6 - Apply patch
 7 - On mainpage and acqui-home you now see "Centerville: 1 / All libraries: 3" suggestions
 8 - Confirm that the links take you to suggestions view of your branch or all libraries respectively
 9 - Turn on IndependentBranches
10 - Create a user with acquisition and suggestions permissions but not superlibrarian in one of the branches used above
11 - Sign in as that user
11 - See "Centerville: 1" suggestion on mainpage and on acqui home

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
acqui/acqui-home.pl
koha-tmpl/intranet-tmpl/prog/en/modules/acqui/acqui-home.tt
koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt
mainpage.pl

index 9c70773..e123074 100755 (executable)
@@ -35,9 +35,9 @@ use C4::Acquisition;
 use C4::Budgets;
 use C4::Members;
 use C4::Debug;
-use C4::Suggestions;
 use Koha::Acquisition::Currencies;
 use Koha::Patrons;
+use Koha::Suggestions;
 
 my $query = CGI->new;
 my ( $template, $loggedinuser, $cookie, $userflags ) = get_template_and_user(
@@ -51,7 +51,20 @@ my ( $template, $loggedinuser, $cookie, $userflags ) = get_template_and_user(
 );
 
 my $status           = $query->param('status') || "ASKED";
-my $suggestions_count       = CountSuggestion($status);
+# Get current branch count and total viewable count, if they don't match then pass
+# both to template
+if( C4::Context->only_my_library ){
+    my $local_pendingsuggestions_count = Koha::Suggestions->search({ status => "ASKED", branchcode => C4::Context->userenv()->{'branch'} })->count();
+    $template->param( suggestions_count => $local_pendingsuggestions_count );
+} else {
+    my $pendingsuggestions = Koha::Suggestions->search({ status => "ASKED" });
+    my $local_pendingsuggestions_count = $pendingsuggestions->search({ 'me.branchcode' => C4::Context->userenv()->{'branch'} })->count();
+    my $pendingsuggestions_count = $pendingsuggestions->count();
+    $template->param(
+        all_pendingsuggestions => $pendingsuggestions_count != $local_pendingsuggestions_count ? $pendingsuggestions_count : 0,
+        suggestions_count => $local_pendingsuggestions_count
+    );
+}
 
 my $budget_arr = GetBudgetHierarchy;
 
@@ -114,7 +127,6 @@ $template->param(
     totspent_active     => $totspent_active,
     totordered_active   => $totordered_active,
     totavail_active     => $totavail_active,
-    suggestions_count   => $suggestions_count,
 );
 
 my $cur = Koha::Acquisition::Currencies->get_active;
index b64911f..2546eb6 100644 (file)
     <div id="acqui_acqui_home_suggestions">
         <fieldset>
         <legend>Pending suggestions</legend>
-            <p>[% suggestions_count | html %] suggestions waiting. <a href="/cgi-bin/koha/suggestion/suggestion.pl#ASKED">Manage suggestions</a>.</p>
+        <p>
+            Manage suggestions:
+            <a href="/cgi-bin/koha/suggestion/suggestion.pl?branchcode=[% Branches.GetLoggedInBranchcode | url %]#ASKED">
+                <span id="pendingsuggestions" class="pending-number-link">[% LoginBranchname | html %]: [% suggestions_count | html %]</span>
+            </a>
+            [% IF (all_pendingsuggestions > 0) %]
+                /
+                <a href="/cgi-bin/koha/suggestion/suggestion.pl?branchcode=__ANY__#ASKED">
+                    <span id="all_pendingsuggestions" class="pending-number-link">All libraries: [% all_pendingsuggestions | html %]</span>
+                </a>
+            [% END %]
+        </p>
         </fieldset>
     </div>
 </div>
index 882a446..7e038a8 100644 (file)
@@ -1,6 +1,7 @@
 [% USE raw %]
 [% USE Asset %]
 [% USE Koha %]
+[% USE Branches %]
 [% SET footerjs = 1 %]
 [% INCLUDE 'doc-head-open.inc' %]
 <title>Koha staff client</title>
                                 [% IF ( CAN_user_suggestions_suggestions_manage && pendingsuggestions ) %]
                                 <div class="pending-info" id="suggestions_pending">
 
-                                    <a href="/cgi-bin/koha/suggestion/suggestion.pl#ASKED">Suggestions pending approval</a>:
-                                    <span class="pending-number-link">[% pendingsuggestions | html %]</span>
+                                    Suggestions pending approval:
+                                    <a href="/cgi-bin/koha/suggestion/suggestion.pl?branchcode=[% Branches.GetLoggedInBranchcode | url %]#ASKED">
+                                    <span id="pendingsuggestions" class="pending-number-link">[% LoginBranchname | html %]: [% pendingsuggestions | html %]</span>
+                                    </a>
+                                    [% IF (all_pendingsuggestions > 0) %]
+                                        /
+                                        <a href="/cgi-bin/koha/suggestion/suggestion.pl?branchcode=__ANY__#ASKED">
+                                            <span id="all_pendingsuggestions" class="pending-number-link">All libraries: [% all_pendingsuggestions | html %]</span>
+                                        </a>
+                                    [% END %]
                                 </div>
                                 [% END %]
 
index c062f5d..f096da6 100755 (executable)
@@ -25,7 +25,6 @@ use C4::Output;
 use C4::Auth;
 use C4::Koha;
 use C4::NewsChannels; # GetNewsToDisplay
-use C4::Suggestions qw/CountSuggestion/;
 use C4::Tags qw/get_count_by_tag_status/;
 use Koha::Patron::Modifications;
 use Koha::Patron::Discharge;
@@ -33,6 +32,7 @@ use Koha::Reviews;
 use Koha::ArticleRequests;
 use Koha::ProblemReports;
 use Koha::Quotes;
+use Koha::Suggestions;
 
 my $query = new CGI;
 
@@ -68,7 +68,23 @@ my $branch =
 
 my $pendingcomments    = Koha::Reviews->search_limited({ approved => 0 })->count;
 my $pendingtags        = get_count_by_tag_status(0);
-my $pendingsuggestions = CountSuggestion("ASKED");
+
+# Get current branch count and total viewable count, if they don't match then pass
+# both to template
+
+if( C4::Context->only_my_library ){
+    my $local_pendingsuggestions_count = Koha::Suggestions->search({ status => "ASKED", branchcode => C4::Context->userenv()->{'branch'} })->count();
+    $template->param( pendingsuggestions => $local_pendingsuggestions_count );
+} else {
+    my $pendingsuggestions = Koha::Suggestions->search({ status => "ASKED" });
+    my $local_pendingsuggestions_count = $pendingsuggestions->search({ 'me.branchcode' => C4::Context->userenv()->{'branch'} })->count();
+    my $pendingsuggestions_count = $pendingsuggestions->count();
+    $template->param(
+        all_pendingsuggestions => $pendingsuggestions_count != $local_pendingsuggestions_count ? $pendingsuggestions_count : 0,
+        pendingsuggestions => $local_pendingsuggestions_count
+    );
+}
+
 my $pending_borrower_modifications = Koha::Patron::Modifications->pending_count( $branch );
 my $pending_discharge_requests = Koha::Patron::Discharge::count({ pending => 1 });
 my $pending_article_requests = Koha::ArticleRequests->search_limited(
@@ -82,7 +98,6 @@ my $pending_problem_reports = Koha::ProblemReports->search({ status => 'New' });
 $template->param(
     pendingcomments                => $pendingcomments,
     pendingtags                    => $pendingtags,
-    pendingsuggestions             => $pendingsuggestions,
     pending_borrower_modifications => $pending_borrower_modifications,
     pending_discharge_requests     => $pending_discharge_requests,
     pending_article_requests       => $pending_article_requests,