Koha/koha-tmpl/intranet-tmpl/prog/en/modules/members/purchase-suggestions.tt
Jonathan Druart d533a92aa8
Bug 23991: Move SearchSuggestion to Koha::Suggestions
The C4::Suggestions::SearchSuggestion subroutine is badly written and
can be replaced by calls to Koha::Suggestions->search.
The hard part in this patch is suggestion.pl, the other occurrences have
been replaced easily.

Test plan:
The idea is to test the whole suggestion workflow.
1. Create a suggestion on OPAC
2. Create a suggestion on the staff interface
3. Edit suggestions
4. Filter suggestions (use the different filters and "organize by"
values)

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Bug 23991: Remove SearchSuggestion tests

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Bug 23991: (QA follow-up) Save some DB queries

This patch makes the suggestion-related pages rely on array size instead
of querying the DB each time they need to. In the case of
suggestion/suggestion.pl it goes from 4 COUNT(*) to 1.

To test, with KTD:
1. Run on the host machine:
    $ docker exec -ti koha_db_1 bash
    $ mysql -ppassword
    > SET GLOBAL general_log_file='/var/log/mysql/mycustom.log';
    > SET GLOBAL log_output = 'FILE';
    > SET GLOBAL general_log = 'ON';
    > \q
    $ tail -f /var/log/mysql/mycustom.log | grep suggestions
2. Visit the different pages changed on this bug
=> SUCCESS: Some queries
3. Apply this patch
4. Repeat 2
=> SUCCESS: Less queries!
5. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Bug 23991: Fix branchcode and budgetid filtering

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Bug 23991: Fix conflict with bug 28941

Well, this patchset fixed the security bug...
Redoing on top of bug 28941

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Bug 23991: (follow-up) Missing semicolon

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Bug 23991: Fix 'all' libraries

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Bug 23991: (follow-up) Add value to filter_archived

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2022-06-27 12:30:28 -03:00

144 lines
6.3 KiB
Text

[% USE raw %]
[% USE Asset %]
[% USE Koha %]
[% USE KohaDates %]
[% USE AuthorisedValues %]
[% USE Branches %]
[% SET footerjs = 1 %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Purchase suggestions for [% INCLUDE 'patron-title.inc' no_html = 1 %] &rsaquo; Patrons &rsaquo; Koha</title>
[% INCLUDE 'doc-head-close.inc' %]
</head>
<body id="pat_purchase_suggestions" class="pat">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'patron-search-header.inc' %]
<nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumb">
<ol>
<li>
<a href="/cgi-bin/koha/mainpage.pl">Home</a>
</li>
<li>
<a href="/cgi-bin/koha/members/members-home.pl">Patrons</a>
</li>
<li>
<a href="#" aria-current="page">
Purchase suggestions for [% INCLUDE 'patron-title.inc' %]
</a>
</li>
</ol>
</nav>
<div class="main container-fluid">
<div class="row">
<div class="col-sm-10 col-sm-push-2">
<main>
[% INCLUDE 'members-toolbar.inc' %]
<h1>Purchase suggestions</h1>
<div id="toolbar" class="btn-toolbar">
<a class="btn btn-default" id="newsuggestion" href="/cgi-bin/koha/suggestion/suggestion.pl?op=add&amp;suggestedby=[% patron.borrowernumber | html %]&amp;redirect=purchase_suggestions&amp;borrowernumber=[% patron.borrowernumber | html %]"><i class="fa fa-plus"></i> New purchase suggestion</a>
</div>
[% IF suggestions.size %]
<table id="suggestions">
<thead>
<tr>
<th>Summary</th>
<th>Note</th>
<th>Managed by</th>
<th>Managed on</th>
<th>Suggested on</th>
<th>Status</th>
</tr>
</thead>
<tbody>
[% FOREACH s IN suggestions %]
<tr>
<td>
<p>
<strong>
[% IF ( CAN_user_catalogue ) %]
<a href="/cgi-bin/koha/suggestion/suggestion.pl?suggestionid=[% s.suggestionid | uri %]&amp;op=show">[% s.title | html %]</a>
[% ELSE %]
[% s.title | html %]
[% END %]
</strong>
</p>
<p>
[% IF ( s.author ) %][% s.author | html %],[% END %]
[% IF ( s.copyrightdate ) %] - [% s.copyrightdate | html %],[% END %]
[% IF ( s.publishercode ) %] - [% s.publishercode | html %][% END %]
[% IF ( s.place ) %]([% s.place | html %])[% END %]
[% IF ( s.collectiontitle ) %] , [% s.collectiontitle | html %][% END %]
[% IF ( s.itemtype ) %] - [% s.itemtype | html %][% END %]
</p>
</td>
<td>[% s.note | html %]
<td>
[% INCLUDE 'patron-title.inc' patron => s.manager %]
</td>
<td data-order="[% s.manageddate | html %]">
[% s.manageddate | $KohaDates %]
</td>
<td data-order="[% s.suggesteddate | html %]">
[% s.suggesteddate | $KohaDates %]
</td>
<td>
[% SWITCH s.STATUS %]
[% CASE "ASKED" %]<span>Requested</span>
[% CASE "CHECKED" %]<span>Checked by the library</span>
[% CASE "ACCEPTED" %]<span>Accepted by the library</span>
[% CASE "ORDERED" %]<span>Ordered by the library</span>
[% CASE "REJECTED" %]<span>Suggestion declined<span>
[% CASE "AVAILABLE" %]<span>Available in the library</span>
[% CASE %]
[% SET status_description = AuthorisedValues.GetByCode('SUGGEST_STATUS', s.STATUS) %]
[% IF status_description %]
[% status_description | html %]
[% ELSE %]
<span>Unknown</span>
[% END %]
[% END %]
[% IF s.reason %]([% s.reason | html %])[% END %]
</td>
</tr>
[% END %]
</tbody>
</table>
[% ELSE %]
<div class="dialog message">
<p>This patron has not submitted any purchase suggestions</p>
</div>
[% END %]
</main>
</div> <!-- /.col-sm-10.col-sm-push-2 -->
<div class="col-sm-2 col-sm-pull-10">
<aside>
[% INCLUDE 'circ-menu.inc' %]
</aside>
</div> <!-- /.col-sm-2.col-sm-pull-10 -->
</div> <!-- /.row -->
[% MACRO jsinclude BLOCK %]
[% INCLUDE 'str/members-menu.inc' %]
[% Asset.js("js/members-menu.js") | $raw %]
[% INCLUDE 'datatables.inc' %]
<script>
$(document).ready(function() {
$("#suggestions").dataTable($.extend(true, {}, dataTablesDefaults, {
'bPaginate': false,
'bFilter': false,
'bInfo': false,
'sDom': 't'
} ));
});
</script>
[% END %]
[% INCLUDE 'intranet-bottom.inc' %]