-
Notifications
You must be signed in to change notification settings - Fork 448
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Incorrect storage of ORCID's "put code" cause unintended deposit updates #10759
Comments
After further reviewing the issue, I believe the way we are currently storing the put-code for submissions (via author settings) is fine and will work as expected. However, the method for handling reviewers' put-codes needs to be changed. I have two ideas in mind to address this:
For the review assignments, we could create a 2. Introduce an
|
Column Name | Type | Description |
---|---|---|
orcid_records_id |
int |
primary key. |
assoc_type |
string |
ASSOC_TYPE_REVIEW_ASSIGNMENT or ASSOC_TYPE_AUTHOR . |
assoc_id |
int |
The ID of the review assignment or author. |
put_code |
int |
The ORCID put-code associated with the record. |
user_id (optional) |
int |
User this record is related to. |
With this setup, we would store all put-codes related to both author and reviewer assignments in one central location.
Additionally, we could introduce an optional orcid_records_settings
table to store more information about each ORCID deposit, if necessary. However, I don't see an immediate need for this.
I'm in favor of option 2 (without orcid_records_settings
table) as it would allow us to keep all put-codes in one place.
@ewhanson let me know your thoughts on this, please.
Hey @taslangraham, thanks for looking into this further. I think in this case, creating a If we do want to refactor the way ORCIDs work to have their own tables, I'd prefer to not do that so close to a release. I think option 2 is generally a good idea and something we can look into with future work on the ORCID functionality. As a first step towards that, you could add the information you've put together here and add it to a Github discussion (rather than an issue) as I think this would have benefits for some of the future work we've talked about for the ORCID functionality as well. |
review_assignment table
… header reference in DepositOrcidSubmission
… header reference in DepositOrcidSubmission
… header reference in DepositOrcidSubmission
review_assignment table
Ready for review @ewhanson. I've added the PRs to the issue description |
Describe the bug
The ORCID documentation (here & here) mentions that a put code is used to identify a single work item withing ORCID.
However, our current implementation stores the put code on the review(user)/author object via settings table instead of the individual work item (submission or review work). As a result, we do not have the put code for all items. This creates a problem, particularly when depositing new review work - a check is made for an existing put code on the reviewer(user) object, and if one is found(due to a previously deposited review work) it updates that record instead of creating a new entry.
https://github.com/pkp/ojs/blob/de0da4acfd19e8640ed777930f8beb060fc309c9/jobs/orcid/DepositOrcidReview.php#L74-L78
N.B: The logic for deposition submission work does not make use of the put code stored on the author's object.
To Reproduce
Steps to reproduce the behavior:
What application are you using?
OJS 3.5
PRs
pkp-lib: #10776
ojs : pkp/ojs#4580
omp: pkp/omp#1799
ops: pkp/ops#836
The text was updated successfully, but these errors were encountered: