Split interface for Circulation Rules and Circulation Policy RFC

From Koha Wiki
Jump to navigation Jump to search

RFC : Split issuingrules into Circ rules and Circ policies

Synopsis:

The issuingrules table and smart-rules.pl interface currently mix definition of circulation policy with definition of when those policies should be applied. This proposal suggests two distinct interfaces for these operations.

Details

The issuingrules table currently holds performs two discrete functions:

  1. it holds data describing circulation & fines policy, i.e. loan length, maxissues, fine, etc.
  2. it describes which transactions should cause those policies to be applied.

This RFC proposes that these two data sets be represented in two new tables in the Koha database, circ_rules and circ_policies, which would supercede the issuingrules table (i.e. issuingrules will be dropped).

Benefits:

  1. Data normalization. as described above.
  2. Simplifies interface for those libraries that have many itemtype & borrower categories.
  3. Simplifies future enhancements, allowing us to attach other types of policies to a given transaction context, e.g. adding a holds_policies table.

Drawbacks:

  1. Having the Policies described on a separate page than where they are assigned adds a level of complexity to assignment.

This drawback is addressed by including in smart_rules.pl a 'policy lookup' allowing the user to look up any available circ policies, as well as an on-hover display of a policy in the rules display. (see screenshot).

Database changes:

  • circ_rules will include branchcode, itemtype, categorycode and circ_policies_id (and circ_termset_id, see rfc: term loans)
  • circ_policies will include remaining columns from issuingules, with some cleanup.

The patch set will include an updatedatabase patch that will extract repeated policies from the issuingrules table, name them in English with an appropriate description, and assign those policies to the circ_rules table.

Screenshot of proposed interface:

Note the table on the right shows policy details for the selected option in the 'Policy lookup' pulldown at the top of the page.

Similar table appears on hover for the defined policies.

[Term loan policy is covered in a separate RFC, and allows calendar-based static due dates to be set for given circ transactions]

Issuingrules-rfc.png