Bug 17748

Summary: Show due date in item search results
Product: Koha Reporter: Christian Stelzenmüller <christian.stelzenmueller>
Component: Staff interfaceAssignee: Aleisha Amohia <aleisha>
Status: CLOSED FIXED QA Contact: Testopia <testopia>
Severity: enhancement    
Priority: P5 - low CC: aleisha, christian.stelzenmueller, fridolin.somers, gmcharlt, jonathan.druart, katrin.fischer, kelly, kyle, mbugz2
Version: Main   
Hardware: All   
OS: All   
See Also: https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=19509
Change sponsored?: Sponsored Patch complexity: Small patch
Documentation contact: Documentation submission:
Text to go in the release notes:
This enhancement adds the due date of an item to the item search results. The due date column will also show when exporting results to a CSV file.
Version(s) released in:
22.05.00
Attachments: Bug 17748: [WIP] Not ready for testing
Bug 17748: Show due date and availability in item search results
Bug 17748: Show due date and availability in item search results
Bug 17748: (follow-up) Fix sorting on new columns
Bug 17748: Show due date and availability in item search results
Bug 17748: (follow-up) Fix sorting on new columns
Bug 17748: (follow-up) Remove availability column
Screenshot showing problems
Bug 17748: (follow-up) Remove availability column
Bug 17748: Show due date and availability in item search results
Bug 17748: (follow-up) Fix sorting on new columns
Bug 17748: (follow-up) Remove availability column
Bug 17748: Show due date and availability in item search results
Bug 17748: (follow-up) Fix sorting on new columns
Bug 17748: (follow-up) Remove availability column
Bug 17748: Add tests
Bug 17748: Show due date and availability in item search results
Bug 17748: (follow-up) Fix sorting on new columns
Bug 17748: (follow-up) Remove availability column
Bug 17748: Add tests
Bug 17748: Remove unecessary html filter
Bug 17748: (follow-up) Fix date due column filter
Bug 17748: (follow-up) Fix date due column filter
Bug 17748: (follow-up) Stronger unit tests

Description Christian Stelzenmüller 2016-12-08 13:00:06 UTC
After searching an item, i. e. with barcode, you can't see wheter it is checked out or not. Therefore the due date and / or the availability of the item would be very helpful.
Comment 1 Katrin Fischer 2018-07-15 17:51:30 UTC
*** Bug 19509 has been marked as a duplicate of this bug. ***
Comment 2 Katrin Fischer 2019-01-02 16:51:01 UTC
+1
Comment 3 Aleisha Amohia 2021-02-05 03:02:30 UTC
Created attachment 116353 [details] [review]
Bug 17748: [WIP] Not ready for testing
Comment 4 Katrin Fischer 2021-03-10 20:42:59 UTC
*** Bug 27918 has been marked as a duplicate of this bug. ***
Comment 5 Aleisha Amohia 2021-04-09 00:44:08 UTC
Created attachment 119341 [details] [review]
Bug 17748: Show due date and availability in item search results

This enhancement adds the availability of an item to the item search
results (i.e. shows if checked out, available on the shelf, or not
available for checkout for some other reason). If checked out, also
shows due date in item search results. Both the new availability and due
date columns will also show when exporting results to a CSV file.

To test:
1) Apply patch and restart services
2) Set up three items. Check out Item A to a borrower. Set Item B to
some damaged, notforloan, withdrawn etc status so that it is considered
not available. Leave Item C as is, not checked out, and not unavailable
status.
3) Go to Search -> Item search. Scroll down and notice the Availability
radio options - Ignore, Checked out, and Available.
4) Leave the Ignore option selected and do a search so that all three
items show.
5) Confirm the availability and due date columns are showing at the
right end of the table. Confirm Item A says Checked out and has a due
date. Confirm Item B says Not available. Confirm Item C says available.
6) Export all result to CSV. Confirm the results show in the CSV file as
expected.
7) Go to edit your search. Select the 'Checked out' radio option for
Availability and submit the search. Confirm only Item A shows in the
results (not Items B and C).
8) Go to edit your search. Select the 'Available' radio option for
Availability and submit the search. Confirm only Item B shows in the
results (not Items A and C).

Sponsored-by: Bibliotheksservice-Zentrum Baden-Württemberg (BSZ)
Comment 6 Owen Leonard 2021-04-09 15:15:20 UTC
This works well except for sorting: Sorting the results by Availability or by Date due doesn't work. The order changes, but not to the correct order.
Comment 7 Aleisha Amohia 2021-05-05 04:04:00 UTC
(In reply to Owen Leonard from comment #6)
> This works well except for sorting: Sorting the results by Availability or
> by Date due doesn't work. The order changes, but not to the correct order.

I have no idea why this is happening or how to fix it. Any datatables experts know why the filtering and sorting doesn't work for these two columns?
Comment 8 Jonathan Druart 2021-05-06 07:15:17 UTC
(In reply to Aleisha Amohia from comment #7)
> (In reply to Owen Leonard from comment #6)
> > This works well except for sorting: Sorting the results by Availability or
> > by Date due doesn't work. The order changes, but not to the correct order.
> 
> I have no idea why this is happening or how to fix it. Any datatables
> experts know why the filtering and sorting doesn't work for these two
> columns?

You are not doing anything to sort correctly on those 2 columns.
It's an AJAX-based table, the results are not sorted in JS client-side only.

You certainly need to modify C4::Items::SearchItems to correctly deal with those 2 columns in the order by clause.
Comment 9 Aleisha Amohia 2021-12-07 20:32:57 UTC
Created attachment 128332 [details] [review]
Bug 17748: Show due date and availability in item search results

This enhancement adds the availability of an item to the item search
results (i.e. shows if checked out, available on the shelf, or not
available for checkout for some other reason). If checked out, also
shows due date in item search results. Both the new availability and due
date columns will also show when exporting results to a CSV file.

To test:
1) Apply patch and restart services
2) Set up three items. Check out Item A to a borrower. Set Item B to
some damaged, notforloan, withdrawn etc status so that it is considered
not available. Leave Item C as is, not checked out, and not unavailable
status.
3) Go to Search -> Item search. Scroll down and notice the Availability
radio options - Ignore, Checked out, and Available.
4) Leave the Ignore option selected and do a search so that all three
items show.
5) Confirm the availability and due date columns are showing at the
right end of the table. Confirm Item A says Checked out and has a due
date. Confirm Item B says Not available. Confirm Item C says available.
6) Export all result to CSV. Confirm the results show in the CSV file as
expected.
7) Go to edit your search. Select the 'Checked out' radio option for
Availability and submit the search. Confirm only Item A shows in the
results (not Items B and C).
8) Go to edit your search. Select the 'Available' radio option for
Availability and submit the search. Confirm only Item B shows in the
results (not Items A and C).

Sponsored-by: Bibliotheksservice-Zentrum Baden-Württemberg (BSZ)
Comment 10 Aleisha Amohia 2021-12-07 20:33:02 UTC
Created attachment 128333 [details] [review]
Bug 17748: (follow-up) Fix sorting on new columns

Confirm tests in t/db_dependent/Items.t still pass.
Comment 11 Christian Stelzenmüller 2021-12-13 09:29:29 UTC
I was testing, and unfortunately on step 8 the unavailable item (i set the damaged status) also shows up togeter with the available items in the results, with the radio button set to 'available'.
Comment 12 Aleisha Amohia 2021-12-16 02:18:54 UTC
Created attachment 128582 [details] [review]
Bug 17748: Show due date and availability in item search results

This enhancement adds the availability of an item to the item search
results (i.e. shows if checked out or not). If checked out,
shows due date in item search results. The due
date column will also show when exporting results to a CSV file.

To test:
1) Apply patch and restart services
2) Set up two items. Check out Item A to a borrower. Leave Item B as
is not checked out, and not unavailable status.
3) Go to Search -> Item search. Scroll down and notice the Availability
radio options - Ignore, and Checked out.
4) Leave the Ignore option selected and do a search so that both items show.
5) Confirm the availability and due date columns are showing at the
right end of the table. Confirm Item A says Checked out and has a due
date. Confirm Item B says available.
6) Export all result to CSV. Confirm the results show in the CSV file as
expected.
7) Go to edit your search. Select the 'Checked out' radio option for
Availability and submit the search. Confirm only Item A shows in the
results (not Item B).

Sponsored-by: Bibliotheksservice-Zentrum Baden-Württemberg (BSZ)
Comment 13 Aleisha Amohia 2021-12-16 02:18:58 UTC
Created attachment 128583 [details] [review]
Bug 17748: (follow-up) Fix sorting on new columns

Confirm tests in t/db_dependent/Items.t still pass.
Comment 14 Aleisha Amohia 2021-12-16 02:19:03 UTC
Created attachment 128584 [details] [review]
Bug 17748: (follow-up) Remove availability column

Items can now only be filtered by 'Checked out' or 'not' rather than
looking at damaged/itemlost/withdrawn/notforloan status.

Removed availability column as Checked out items are made clear by the
due date column.
Comment 15 Owen Leonard 2021-12-16 11:22:38 UTC
Created attachment 128591 [details]
Screenshot showing problems

I'm seeing a couple of issues with the results, as shown in this screenshot:

Is there supposed to be both an "Availability" and "Due date" column? I think this misalignment is why the column search field under "Availability" doesn't work.
Comment 16 Aleisha Amohia 2021-12-16 20:30:33 UTC
Created attachment 128638 [details] [review]
Bug 17748: (follow-up) Remove availability column

Items can now only be filtered by 'Checked out' or 'not' rather than
looking at damaged/itemlost/withdrawn/notforloan status.

Removed availability column as Checked out items are made clear by the
due date column.
Comment 17 Aleisha Amohia 2021-12-16 20:31:01 UTC
(In reply to Owen Leonard from comment #15)
> Created attachment 128591 [details]
> Screenshot showing problems
> 
> I'm seeing a couple of issues with the results, as shown in this screenshot:
> 
> Is there supposed to be both an "Availability" and "Due date" column? I
> think this misalignment is why the column search field under "Availability"
> doesn't work.

Woops I had missed one more instance of removing the Availability column. Should be good to test now.
Comment 18 PTFS Europe Sandboxes 2021-12-17 08:57:49 UTC
Created attachment 128645 [details] [review]
Bug 17748: Show due date and availability in item search results

This enhancement adds the availability of an item to the item search
results (i.e. shows if checked out or not). If checked out,
shows due date in item search results. The due
date column will also show when exporting results to a CSV file.

To test:
1) Apply patch and restart services
2) Set up two items. Check out Item A to a borrower. Leave Item B as
is not checked out, and not unavailable status.
3) Go to Search -> Item search. Scroll down and notice the Availability
radio options - Ignore, and Checked out.
4) Leave the Ignore option selected and do a search so that both items show.
5) Confirm the availability and due date columns are showing at the
right end of the table. Confirm Item A says Checked out and has a due
date. Confirm Item B says available.
6) Export all result to CSV. Confirm the results show in the CSV file as
expected.
7) Go to edit your search. Select the 'Checked out' radio option for
Availability and submit the search. Confirm only Item A shows in the
results (not Item B).

Sponsored-by: Bibliotheksservice-Zentrum Baden-Württemberg (BSZ)

Signed-off-by: Christian <christian.stelzenmueller@bsz-bw.de>
Comment 19 PTFS Europe Sandboxes 2021-12-17 08:57:53 UTC
Created attachment 128646 [details] [review]
Bug 17748: (follow-up) Fix sorting on new columns

Confirm tests in t/db_dependent/Items.t still pass.

Signed-off-by: Christian <christian.stelzenmueller@bsz-bw.de>
Comment 20 PTFS Europe Sandboxes 2021-12-17 08:57:57 UTC
Created attachment 128647 [details] [review]
Bug 17748: (follow-up) Remove availability column

Items can now only be filtered by 'Checked out' or 'not' rather than
looking at damaged/itemlost/withdrawn/notforloan status.

Removed availability column as Checked out items are made clear by the
due date column.

Signed-off-by: Christian <christian.stelzenmueller@bsz-bw.de>
Comment 21 Aleisha Amohia 2022-01-16 20:11:05 UTC
Looks like this was signed off so will adjust status
Comment 22 Katrin Fischer 2022-01-19 17:30:59 UTC
Created attachment 129623 [details] [review]
Bug 17748: Show due date and availability in item search results

This enhancement adds the availability of an item to the item search
results (i.e. shows if checked out or not). If checked out,
shows due date in item search results. The due
date column will also show when exporting results to a CSV file.

To test:
1) Apply patch and restart services
2) Set up two items. Check out Item A to a borrower. Leave Item B as
is not checked out, and not unavailable status.
3) Go to Search -> Item search. Scroll down and notice the Availability
radio options - Ignore, and Checked out.
4) Leave the Ignore option selected and do a search so that both items show.
5) Confirm the availability and due date columns are showing at the
right end of the table. Confirm Item A says Checked out and has a due
date. Confirm Item B says available.
6) Export all result to CSV. Confirm the results show in the CSV file as
expected.
7) Go to edit your search. Select the 'Checked out' radio option for
Availability and submit the search. Confirm only Item A shows in the
results (not Item B).

Sponsored-by: Bibliotheksservice-Zentrum Baden-Württemberg (BSZ)

Signed-off-by: Christian Stelzenmüller <christian.stelzenmueller@bsz-bw.de>
Comment 23 Katrin Fischer 2022-01-19 17:31:03 UTC
Created attachment 129624 [details] [review]
Bug 17748: (follow-up) Fix sorting on new columns

Confirm tests in t/db_dependent/Items.t still pass.

Signed-off-by: Christian Stelzenmüller <christian.stelzenmueller@bsz-bw.de>
Comment 24 Katrin Fischer 2022-01-19 17:31:07 UTC
Created attachment 129625 [details] [review]
Bug 17748: (follow-up) Remove availability column

Items can now only be filtered by 'Checked out' or 'not' rather than
looking at damaged/itemlost/withdrawn/notforloan status.

Removed availability column as Checked out items are made clear by the
due date column.

Signed-off-by: Christian Stelzenmüller <christian.stelzenmueller@bsz-bw.de>
Comment 25 Katrin Fischer 2022-01-19 17:32:05 UTC
Added Christian's surname to the sign-off lines, patches still apply cleanly against master. 

Thx Aleisha for noticing the missed status change!
Comment 26 Jonathan Druart 2022-02-01 14:45:24 UTC
Tests are missing.
Comment 27 Aleisha Amohia 2022-02-03 22:28:40 UTC
Created attachment 130154 [details] [review]
Bug 17748: Add tests
Comment 28 Jonathan Druart 2022-02-18 14:15:02 UTC
Created attachment 130845 [details] [review]
Bug 17748: Show due date and availability in item search results

This enhancement adds the availability of an item to the item search
results (i.e. shows if checked out or not). If checked out,
shows due date in item search results. The due
date column will also show when exporting results to a CSV file.

To test:
1) Apply patch and restart services
2) Set up two items. Check out Item A to a borrower. Leave Item B as
is not checked out, and not unavailable status.
3) Go to Search -> Item search. Scroll down and notice the Availability
radio options - Ignore, and Checked out.
4) Leave the Ignore option selected and do a search so that both items show.
5) Confirm the availability and due date columns are showing at the
right end of the table. Confirm Item A says Checked out and has a due
date. Confirm Item B says available.
6) Export all result to CSV. Confirm the results show in the CSV file as
expected.
7) Go to edit your search. Select the 'Checked out' radio option for
Availability and submit the search. Confirm only Item A shows in the
results (not Item B).

Sponsored-by: Bibliotheksservice-Zentrum Baden-Württemberg (BSZ)

Signed-off-by: Christian Stelzenmüller <christian.stelzenmueller@bsz-bw.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Comment 29 Jonathan Druart 2022-02-18 14:15:08 UTC
Created attachment 130846 [details] [review]
Bug 17748: (follow-up) Fix sorting on new columns

Confirm tests in t/db_dependent/Items.t still pass.

Signed-off-by: Christian Stelzenmüller <christian.stelzenmueller@bsz-bw.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Comment 30 Jonathan Druart 2022-02-18 14:15:12 UTC
Created attachment 130847 [details] [review]
Bug 17748: (follow-up) Remove availability column

Items can now only be filtered by 'Checked out' or 'not' rather than
looking at damaged/itemlost/withdrawn/notforloan status.

Removed availability column as Checked out items are made clear by the
due date column.

Signed-off-by: Christian Stelzenmüller <christian.stelzenmueller@bsz-bw.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Comment 31 Jonathan Druart 2022-02-18 14:15:17 UTC
Created attachment 130848 [details] [review]
Bug 17748: Add tests

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Comment 32 Jonathan Druart 2022-02-18 14:15:22 UTC
Created attachment 130849 [details] [review]
Bug 17748: Remove unecessary html filter

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Comment 33 Fridolin Somers 2022-02-24 02:36:17 UTC
Created attachment 131051 [details] [review]
Bug 17748: (follow-up) Fix date due column filter

After items search result when entering a term in date due colum filter
table is not filtered.
Its is because columns from 'Issue' must be added in _SearchItems_build_where_fragment()
like it has been added in SearchItems().

Test plan :
1) Perform an item search with some results beeing checked-out
2) In colum 'Date due' enter a number that is contained is some due
   dates, ie '2022'
3) Table results are filtered with items having search term in due date
Comment 34 Fridolin Somers 2022-02-24 02:41:57 UTC
I've added a small fix for column filter.
I'd like for QA to validate it.

In my opinion, "Availability" should be placed under "Last checkout date".
Comment 35 Jonathan Druart 2022-03-22 12:35:29 UTC
Created attachment 132016 [details] [review]
Bug 17748: (follow-up) Fix date due column filter

After items search result when entering a term in date due colum filter
table is not filtered.
Its is because columns from 'Issue' must be added in _SearchItems_build_where_fragment()
like it has been added in SearchItems().

Test plan :
1) Perform an item search with some results beeing checked-out
2) In colum 'Date due' enter a number that is contained is some due
   dates, ie '2022'
3) Table results are filtered with items having search term in due date

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Comment 36 Fridolin Somers 2022-03-25 00:12:10 UTC
Looks perfect. Great thanks to sponsor and contributors ;)
Comment 37 Fridolin Somers 2022-03-25 00:19:11 UTC
Created attachment 132201 [details] [review]
Bug 17748: (follow-up) Stronger unit tests

Before this patch, unit tests perform an item search assuming there is
no checked-out items in database.
This is correct for a fresh reseted database.
But if you checkout any item then prove t/db_dependent/Items.t it will
fail.
We can see in this file that other tests use filter on generated
branchcode.

This patch adds filter to items.homebranch
Comment 38 Fridolin Somers 2022-03-25 00:19:58 UTC
I made some checkouts before running unit tests and they failed.
I added a follow-up to fix that.
Comment 39 Fridolin Somers 2022-03-25 00:24:53 UTC
Pushed to master for 22.05, thanks to everybody involved 🦄