Uploaded image for project: 'Islandora'
  1. Islandora
  2. ISLANDORA-1837

Configurable Citation/Thesis lookup field for Person CModel

    Details

      Description

      The Person CModel uses a strange and poorly-documented method to look up the Citations or Theses to associate with a Person. For Citations, it appears to do a string search within the name/displayForm element. For Thesis, it looks like it uses the same element, but that element is not actually included in the default forms.

      Looking at https://github.com/Islandora/islandora_solution_pack_entities/blob/7.x/includes/entities_rss.inc
      Specifically line 70: $query = "+RELS_EXT_hasModel_uri_mt:\"$content_model\" +mods_name_personal_displayForm_mt:\"($identifier)\"";

      Preferably, the content model would perform its lookup in the name/nameIdentifier field, which better conforms to MODS standards and makes more intuitive sense (see https://www.loc.gov/standards/mods/userguide/name.html#nameidentifier).

      Ideally, part of the Entities configuration form would allow an administrator to choose the Solr field for the lookup, rather than a hard-coded (and very poorly documented!) element.

      Since a change to the default would probably break existing setups, I propose:

      - Add a field to the config form to make the xpath a variable, with the presently-used mods_name_personal_displayForm_mt as the default
      - Use this variable instead of displayForm in the query above - and any other queries that may be relevant
      - Add the nameIdentifier element to the default Citation and Thesis forms, for easier compliance with MODS standards

        Attachments

          Activity

            People

            • Assignee:
              bryjbrown Bryan Brown
              Reporter:
              brandonw Brandon Weigel
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: