Hidelostitems option for the staff client RFC

From Koha Wiki
Jump to navigation Jump to search

Add a "hidelostitems" option to the staff client

Status: unknown
Sponsored by: Nelsonville Public Library
Developed by: Ian Walls, ByWater Solutions.
Expected for: 2010-12-28
Bug number: Bug 5547
Work in progress repository: No URL given.
Description: In order to hide unnecessary items from view of the circulation staff, a new attribute of the borrower categories system will be added. This field shall be labeled “hidelostitems”, and if turned on, will prevent lost items (items.itemlost > 0) from initially loading into the catalog and reserves pages. The full items list can be retrieved by clicking a “show all items” link, placed in a page-appropriate location.

The following pages shall be affected:

  • catalogue/search.pl: Show the total count of lost titles, but no further information. User must link to detail page to get option to see all lost items
  • catalogue/detail.pl: Show only non-lost items in the table, with a link below the table to "show lost items". Refreshes page with different POST variable to temporarily override the hiding
  • catalogue/moredetail.pl: Do not show lost items. The link to show all items would be just below the first horizontal rule, below the biblio information. Refreshes page with a different POST variable to temporarily override the hiding.
  • reserve/request.pl: Show only non-lost items in the table, with a link below the table to "show lost items". Refreshes page with different POST variable to temporarily override the hiding

Management of Hide Lost Items feature

Hiding or showing lost items by default shall be set on a Patron Category basis. In the Patron Categories management screen, a new field, “Lost items in the staff client”, shall be added, showing a dropdown with options “Shown” and “Hidden by default”. The new value shall be saved when the “Save” button is clicked.

Implementation

This development shall require the addition of a column to the categories table in the database, "hidelostitems". This field shall take an integer. 0 means "do not hide", 1 means "hide". The default value shall be 0.

An additional subroutine shall be added to C4/Members.pm, GetHideLostItemsPreference. This subroutine shall take a borrowernumber (in practice, the currently logged in staff member), and return the value of categories.hidelostitems (0 or 1) for their patron category.

Other places in the code shall need to be modified to make use of HideLostItemsPreference.

Initial Idea

The Nelsonville Public Library is interested in an option for the staff client which would act similarly to the OPAC's "hidelostitems" preference.

Our primary goal is to be able to hide long overdue items in staff views such as catalogue/search.pl (results page), catalogue/detail.pl, catalogue/moredetail.pl, reserve/request.pl--anywhere where a long overdue item is not relevant to circulation activity.

I'm proposing this strategy as an alternative to doing bulk-deletions of long overdue items. Deleting items causes problems for us because 1) Long overdue items may eventually be returned, and 2) Fines on patrons accounts for lost and deleted items may not contain all the information we require. We have no objection to the items remaining checked out as long as they don't clutter the interface where the information isn't necessary.

I don't think a system preference is the correct solution for the staff client because the functionality is intended primarily for circulation staff. At this point I'm thinking that it should be a new granular permission, something along the lines of "View lost items by default in the staff client." That way you could configure your cataloging staff to see everything.

I also think it might be a good idea to include the option on the catalog detail pages to "click for all items," to reload the page and display available and lost items. Perhaps the standard display would say something like "Hiding lost items. Click to view."

Discussion

This is an interesting idea, which verges on a whole new kind of interface option: per-user preferences. There is a beginning of this with Messaging Preferences, but the concept could be extended to how results are viewed in the OPAC and staff client, what circulation or search history is saved, etc. etc.

Patron categories could be used to provide a baseline for these preferences, which could then be altered by the individual.

Using permissions seems like an abuse of the permissions system, but does provide that individual-level selection that is necessary.


Development level

New table: borrower preferences

field type key Default
borrower_preference_id int(11) PRI Null, (auto-inc)
borrower_preference_type int(11) FOR (to borrower_preference_types) NULL
borrowernumber int(11) FOR (to borrowers) NULL
value varchar(150) NULL

new table: borrower preference types


field type key Default
borrower_preference_id int(11) PRI Null, (auto-inc)
value varchar(64) NULL