CARLI / vufind

A library resource discovery portal designed and developed for libraries by libraries
GNU General Public License v2.0
5 stars 0 forks source link

Add 020 $q to display in ISBN field #400

Closed gibsonjc closed 5 years ago

gibsonjc commented 5 years ago

We would like for the 020 $q, when present, to display in the field labeled ISBN in the Description tab after the $a data, such as:

020 __ $a 9781613731024 $q (trade paper) ISBN: 9781613731024 (trade paper)

However, we do not want to change the marc.properties indexing of isbn = 020a because the $q does not need to be indexed.

Examples of 020 with $q: https://i-share-test.carli.illinois.edu/vf-eiu/Record/EIUdb.1481020#details https://i-share-test.carli.illinois.edu/vf-eiu/Record/EIUdb.1445725#details https://i-share-test.carli.illinois.edu/vf-eiu/Record/EIUdb.1446160#details

Part of Phase 2 #265

gibsonjc commented 5 years ago

It feels similar to what is going on with "Edition" or "Series" but not exactly. For example, in marc.properties these are defined as edition = 250a, first and series = 440ap:800abcdfpqt:830ap respectively, but in RecordDataFormatterFactory.php the setLine for "Edition" adds some hidden HTML to the line, and the setLine for "Series" uses the SolrMarc.php getSeries and ultimately the protected function getSeriesFromMARC to add in the $v for display even though that subfield isn't indexed.

cedelis commented 5 years ago

In TEST

gibsonjc commented 5 years ago

Unfortunately, with this new getISBNsForDescriptionTab function solution we are getting an unintended consequence: the 020$q is displaying anywhere that it occurs. 020$q can occur without $a (that is, with another subfield like $z), but we only want $q to display if $a is present as well.

Example: https://i-share-test.carli.illinois.edu/vf-eiu/Record/EIUdb.1446160#description there is a line 020 |   |   $z 9781315742247  $q (ebk.) which displays as (ebk.) This 020 should not display at all because it does not have $a.

cedelis commented 5 years ago

@gibsonjc I've added the requirement of 020$a to be present to the getISBNsForDescriptionTab function.

In TEST

gibsonjc commented 5 years ago

This looks good, Ready for Prod!

Other examples, for the record: https://i-share-test.carli.illinois.edu/vf-eiu/Record/EIUdb.1463596#details https://i-share-test.carli.illinois.edu/vf-uiu/Record/UIUdb.8188247#details https://i-share-test.carli.illinois.edu/vf-eiu/Record/EIUdb.1465451#details

(Side note: It appears that Normalization manipulates 020 fields so that only 020$a's are retained in the uc, no 020$z or 020$q are present anymore. See https://github.com/eXtensibleCatalog/Metadata-Services-Toolkit/blob/master/mst-service/custom/MARCNormalization/src/xc/mst/services/normalization/NormalizationService.java#L1716 )

cedelis commented 5 years ago

In PROD