Course Materials: Course owner used as call_number.owning_lib when removing items from a Course
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Evergreen |
Fix Released
|
Medium
|
Unassigned | ||
3.8 |
Fix Released
|
Medium
|
Unassigned |
Bug Description
We discovered this issue while working with courses owned at the System level, but attaching items owned at the Branch level.
If we attached a branch owned item to the system owned course, and edited the call number, it was not possible to remove the item from the course. The action failed with 'Disassociation of Course Material failed or was not allowed'
To test this on a concerto system:
- Set the org unit setting 'Opt Org Unit into the Course Materials Module' to True
- Navigate to Administration - Local Administration - Course Reserves List
- Select the stock course 'History of Indonesia' and choose Edit Selected from the Actions menu
- Click on the Course materials tab
- Enter the barcode of an item you wish to attach to the course
- Enter a different call number for the item while on reserve
- Click Add Material, note that the item has been added to the list
- Select the item you have just added, and select Remove Selected under the Actions menu
You should see the toast: 'Disassociation of Course Material failed or was not allowed'
We also found the following issue when logged in at BR1 as a user with MANAGE_RESERVES permission at the System level
- Create a course owned by BR1
- Attach an item owned by BR2 to the BR1 course and edit the call number
- Select the item you have just added, and select Remove Selected under the Actions menu
- Note that the item now has BR1 as owning_lib and circ_lib.
Digging deeper, we found that when the system attempts to revert the item's call number, it is using the course owner as call number owning_lib to match an existing call number or create a new call number for the item. Using the original call number's owning_lib to find or create the call number when removing the item is more appropriate and solves these issues.
I'll post a patch for consideration shortly.
Changed in evergreen: | |
milestone: | none → 3.7.3 |
no longer affects: | evergreen/3.6 |
Changed in evergreen: | |
milestone: | 3.7.3 → none |
Changed in evergreen: | |
status: | Fix Committed → Fix Released |
Promised patch for consideration is here:
user/mmorgan/ lp1939730_ use_original_ call_number_ owning_ lib_when_ removing_ item_from_ course
https:/ /git.evergreen- ils.org/ ?p=working/ Evergreen. git;a=shortlog; h=refs/ heads/user/ mmorgan/ lp1939730_ use_original_ call_number_ owning_ lib_when_ removing_ item_from_ course