spine labels assume LC
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Evergreen |
Fix Released
|
Undecided
|
Dan Scott |
Bug Description
The spine label print interface in EG 2.0 makes some LC-centric assumptions. For example, one of our sites using the following:
M3 650.1 HIL
M3 is a prefix they use to indicate MP3 recordings. The spine label printer breaks the M3 onto M on one line and 3 on the next line. While this makes sense for LC numbers, it doesn't really work for any dewey prefix that may contain numbers or letters.
I've created a patch which maintains the existing LC assumptions by default, however it use the call number sortkey org unit setting and if your setting is not LC (3) it will skip the LC-centric bits of code.
This hardcodes 3 as the LC value in asset.call_
~James
Changed in evergreen: | |
status: | Fix Committed → Fix Released |
I'll defer regression testing and application of this to someone else (Jason?), but I do have some thoughts on how to move forward with classification- based label prep.
First, I believe we should use the label's classification (or, more specifically, the label_class field on the volume object). The OU setting is meant to be a default when adding call numbers.
Then, we need a way to tie print normalization code (that is, for LC, the code that's adding spaces in all the right places) to a class. Since we already have a mechanism for sort normalization (the in-db function named in asset.call_ number_ class.normalize r) I suggest we add a new column (print_normalizer?) to point at a function that does what it says. Now, this function could be a database stored proc, or it could be a pile of JS source that accepts a string (the label) and returns another string (the print-normalized string). The former is perhaps more correct, but the latter would make things much simpler to implement (no round-trip to the db with a string just to add some spaces).
Thoughts?