[Jira Tickets created] Drafts UI- Inventory: Add Additional Call Numbers to Holdings Records

[Jira Tickets created] Drafts UI- Inventory: Add Additional Call Numbers to Holdings Records

Jira Ticket created

This draft is finished. Further work and discussion will happen in the Jira Ticket:

UIIN-3327: Inventory: Add Additional Call Numbers to Holdings RecordsBlocked

 

 

User Story

As a librarian, I want to add, edit, delete, and switch between multiple/additional call numbers for a holdings record so I can accurately track a holdings' location history and manage complex cataloging information.

Further User story statement(s):

  • As a librarian I want to keep an old call number in the record after I assigned a new call number in order to be able to ensure traceability in the future. For example, items are moved from one location to another, and I want to capture the previous call number as well as the current one.

  • Certain reference works in the reading room (open collection) already have a stacks call number assigned. They'll be moved into the closed stacks some time in the future, e.g. as soon as they are outdated or no longer used on a regular basis.

  • The current issues of print journals are presented in the reading room, but the older volumes are placed in the stacks. The records of the new issues should already contain the stacks call number under which they will be placed in the future.

Description

Currently, the inventory app only allows one call number to be associated with a holdings record. This presents challenges when holdings have additional call numbers due to various reasons, such as different editions, copies in different locations, or historical changes in cataloging. This user story aims to address this limitation by enabling librarians to add, edit, delete, and switch between multiple/additional call numbers for a single holdings record. This will allow for accurate tracking of a holdings' location history and simplify the management of holdings with complex cataloging information.

Acceptance Criteria

  • Adding Call Numbers: Librarians can add additional call numbers to a holdings record. The system should allow for a reasonable maximum number of additional call numbers.

  • Call Number Types: The system allows specifying the type of call number (e.g., Dewey Decimal, Library of Congress, local call number) for both the primary and additional call numbers.

  • Call Number Components: The system should accommodate different parts of a call number (prefix, number, suffix) for both primary and additional call numbers.

  • Mandatory Fields: The "Call Number" field itself should be mandatory for all additional call numbers.

  • Editing Call Numbers: Librarians can edit existing call numbers (both primary and additional), including their type and components.

  • Deleting Call Numbers: Librarians can delete additional call numbers.

  • Switching Call Numbers: Librarians can easily switch between the primary call number and any additional call number. The UI should clearly indicate which call number is currently primary.

  • Data Integrity: Managing additional call numbers does not corrupt existing data or cause inconsistencies in the database.

  • Error Handling: The system handles errors gracefully, providing informative messages to the user when issues occur.

  • Testing: Thorough testing (unit, integration, and user acceptance testing) is conducted to ensure the functionality works correctly and meets all requirements.

Scenarios 

Scenario: Add additional call numbers to a holdings record

Given I am on the holdings details page for holdings "ABC123" in edit mode

When I add the call number "XYZ789" with type "Dewey Decimal"

And I add the call number "PQR456" with type "Library of Congress"

Then the holdings record should display both call numbers "XYZ789" and "PQR456"

And the call numbers should be associated with their respective types

 

Scenario: Validate mandatory call number field (for additional call numbers) in holdings

Given I am on the holdings details page for holdings "ABC123" in edit mode

When I leave the "Call number" field blank

And I attempt to save the changes

Then an error message "Please select to continue" should be displayed

 

Scenario: Switch between primary and additional call numbers for holdings

Given I am on the holdings details page for holdings "ABC123"

And the holdings record has call number "XYZ789" (primary) and "PQR456" (additional)

When I switch the primary call number to "PQR456"

Then "PQR456" should be displayed as the primary call number

And "XYZ789" should be displayed as an additional call number

 

Scenario: Delete an additional call number for holdings

Given I am on the holdings details page for holdings "ABC123" in edit mode

And the holdings record has call numbers "XYZ789" (primary) and "PQR456" (additional)

When I delete the call number "PQR456"

Then the holdings record should only display the call number "XYZ789"

 

Mock-up

View Mode

The following mock-up shows the extension of the view, if an additional call number is added. 

Holdings - View - 2 call number.jpg

The following mock-up shows the extension of the view, when two additional call numbers are added. 

Holdings - View - 3 call number.jpg

Alternative Variants

Different Options to show the user, which Call number is the Primary one.

 → for examples go to https://folio-org.atlassian.net/wiki/x/AoATM

Edit Mode 

One holdings call number

This shows one Primary holdings call number and how to add an additional holdings call number with a button. 

Holdings - Edit - 1 call number.jpg

 

Additional holdings call numbers

This mock-ups show the interface, when one or more (three) additional holdings call numbers are added. 

Holdings - Edit - 2 call number.jpg
Holdings - Edit - 4 call number.jpg

Edit Mode - Obligatory input fields

Obligatory input fields and error messages

This mock-ups show the error messages, and how the UI-elements "move", when the now obligatory field "call number" is not filled out. 

Holdings - Edit - 2 call number - Error message.jpg
Holdings - Edit - 4 call number - Error message.jpg

Edit Mode - Pop-up Deleting additional call number

Here is a proposal of a confirmation pop-up as a security measurement, so that call numbers can not be deleted accidentally. If a call number got added, it usually will be kept.

Holdings - Pop-up.jpg

Translations

English

German

English

German

Change with primary call number

Zur Hauptsignatur machen

Additional call number

Zusätzliche Signatur

Questions

  • How many additional call numbers can you add? Which limit should be set for this?

  • Are there any export functions which need to be addressed in any other apps?

    • e.g. List or Bulk edit?

Comments

  • Is the "exchange" of call numbers (primary and additional) technically feasible? → YES, it is (BM)

  • Blue backgrounds for repeatable fields: presumably this is how unsaved content is marked. → If this is correct, then implement interaction. (There is no mock-up here yet)

  • The Primary Call number should not be mandatory, because that would be a major intervention in existing functions.

  • There still can be Duplicates, because the call numbers are not unambiguously.

Labels

Dependencies

 

Requirement analysis

API-calls

The values of the call number can only be called via the holding-record. 

/holdings-storage/holdings/{holdingsRecordId}

 

Example 1: Existing call number with all sub fields 

Existing call number

{     "id": "33ccd696-491e-571b-8e4f-2b3fb19f93c4",     "callNumberTypeId": "a6f592dd-43f0-42b5-a3e7-eb0858e76ee6",     "callNumberPrefix": "Signatur-Präfix",     "callNumber": "Hist.Sax.F.263.wd",     "callNumberSuffix": "Signatur-Suffix",  }

Additional call number (proposal)

{     "id": "33ccd696-491e-571b-8e4f-2b3fb19f93c4",     "CallNumbersAdditional": [         {             "CallNumberAdditional": "MT 8256 C328",             "CallNumberAdditionalPrefix": "Signatur-Präfix",             "CallNumberAdditionalSuffix": "Signatur-Suffix",             "CallNumberAdditionalTypeId": "a6f592dd-43f0-42b5-a3e7-eb0858e76ee6",             "CallNumberAdditionalId": "1"         }     ] }

Additional call numbers (proposal)

{     "id": "33ccd696-491e-571b-8e4f-2b3fb19f93c4",     "CallNumbersAdditional": [         {             "CallNumberAdditional": "MT 8256 C328",             "CallNumberAdditionalPrefix": "Signatur-Präfix",             "CallNumberAdditionalSuffix": "Signatur-Suffix",             "CallNumberAdditionalTypeId": "a6f592dd-43f0-42b5-a3e7-eb0858e76ee6",             "CallNumberAdditionalId": "1"         },         {             "CallNumberAdditional": "Hist.Sax.1268.f",             "CallNumberAdditionalPrefix": "Signatur-Präfix",             "CallNumberAdditionalSuffix": "Signatur-Suffix",             "CallNumberAdditionalTypeId": "a6f592dd-43f0-42b5-a3e7-eb0858e76ee6",             "CallNumberAdditionalId": "2"         }     ] }

Related content