[Koha-devel] New 'configurations' table (26129)

Frédéric Demians frederic at tamil.fr
Tue Aug 4 17:15:07 CEST 2020


I concur with Julian observations. A configuration selection per
library-item_type-category will be too much or not enough depending on the
context. We will end up with another table containing zillions of records for
trivial things. Tomas, have you considered a hierarchical configuration data
structure like the one found in Sublime text editor (I recall you're a Sublime
user...) ? We currently also have all those "YAML" configurations that are
stored in files (OAI, ElasticSeach) or in system preferences that won't fit in
a new library-type-category configuration table. The XML configuration files
fall into the same category of data structure.

Another onservation. You express this need:

  the ability to set values with per-library, per-item type and per-category
  basis, as well as default catch-all

We have this need (this 'pattern' as you said) potentially everywhere in Koha.
But we also need (1) more, and (2) a clear understanding of how the
'catch-all' or the 'fall-back' works.

(1) We need more (eventually). For example, you may need to combine the item
type with the ccode,  item homebranch, and borrowr branch, in order to select
a claim letter. This could be something like this:

  item.homebranch ne 'MAIN' && item.ccode eq 'EBOOK' &&
  borrower.country ne 'Monaco' && borrower.branchcode eq 'SCIENCE'

(2) We need to understand how the various criteria are evaluated and in which
order. Sequential order seems reasonable. With this, having an issue, you
evaluate 3 criteria in order to select a value:

[
  {
    "criteria": "item.homebranch eq 'MAIN' && borrower.category eq 'ADULT'",
    "value": "abcd"
  },
  {
    "criteria": "borrower.category eq 'PRO'",
    "value": "efghi"
  },
  {
    "value": "abcd"
  }
]


More information about the Koha-devel mailing list