New Settings 'Override OA agreement status' and 'Override UKPMC agreement status' toggle
As discussed in #933 (closed) for the OA setting (note this is distinct from the core issue in #933 (closed) which is about metadata, which for now is not kept in sync with the OA toggle in settings).
Current functionality
There is a toggle in book settings for 'Open access status' that can be updated by Sys admins (see toggle below). But from #933 (closed) we know that the NCBI also expects this toggle to be updated by agreement check 2 when the book is published. We need a way to allow Sys admins to override the OA status that is fetched from the agreement.
Question: do we need to send the Sys admin determined OA status with the book package when published? And in what way?
Proposed new functionality
A. Add an 'Override OA agreement status' toggle in book settings
B. When the 'Override OA agreement status' toggle in settings is on, the 'OA status' toggle is editable by Sys admin, and the OA status is not updated by agreement check 2.
C. When the 'Override OA agreement status' is off, the 'OA status' toggle is not editable and is updated by agreement check 2.
Design for proposed new functionality
A new toggle underneath the existing one.
Tooltip (to be provided by NCBI) suggestion:
"This toggle allows System admins to manually set the OA status using the OA status toggle above, which is otherwise updated by the agreement linked to the book."
Use case 1
Not all books have agreements and books need to be migrated with the correct setting. Sys admins need to be able to modify OA settings for those. For books which don't have any agreement, we need a way for Sys admins to add the OA status to settings. For books which do have agreements, we need to read the OA status from the agreement unless Use case 2 below applies.
(Context: Migration of settings are pulled from PMC book database domain settings, not the agreements. But the OA values are in alignment with the agreement.)
How the flow could work with current functionality for this use case:
- Try to publish a book without an agreement
- Agreement check runs and will fail at check 1 since there is no agreement
- Stacy creates 'dummy' agreement and links to it
- Try publish again in BCMS
- Agreement check runs and finds OA status is on/off, and we read that value and add the status to the setting
- Use case satisfied
How the flow would work with proposed functionality:
- Sys admin turns on the 'Override OA agreement status' toggle in settings
- Sys admin turns on the existing 'OA status' toggle in settings
- Try to publish a book without an agreement
- Agreement check 2 is skipped in terms of OA status
- Use case satisfied is an easier way than previous list above.
Use case 2
We have different versions of the agreement, some versions don't have the clause that if your content has an OA license, we automatically put it in the OA subset. It can take a long time to update the agreement, so it needs to be edited in the UI since the agreement can't be updated.
How the flow could work with current functionality for this use case:
- Sys admin adds the OA status to settings (e.g. turns it off)
- User publishes the book
- Agreement check runs and passes since there is an agreement (e.g. OA status is now turned on which is not correct)
- Use case not satisfied
How the flow for use case 2 would work with proposed functionality:
- Sys admin turns on the 'Override OA agreement status' toggle in settings
- Sys admin adds the OA status to settings (e.g. turn it off)
- User publishes
- Agreement check 2 is skipped in terms of OA status
- Use case is satisfied
Context of NCBI ultimate requirement, to be developed in future (not for MVP)
We check not only if OA is on in agreement and if it's allowed to be read, but we also check if OA license is available in the metadata (metadata and settings match for OA status and license type).