pkp-lib icon indicating copy to clipboard operation
pkp-lib copied to clipboard

REST API should return more information about submission editorial activity

Open NateWr opened this issue 1 year ago • 4 comments

Describe the problem you would like to solve The new submissions lists (#7495) need to show a lot more information about a submission's editorial state. This includes information related to editorial decisions, review round status, and review assignments.

Describe the solution you'd like The submissions list already makes a lot of database calls for each submission returned. Adding more could significantly slow down the submission dashboard. I don't know the best way to solve this problem, but some ideas:

  1. Make better use of jobs to compile and cache data about editorial activity. For example, when a review assignment is added, edited or deleted, data could be compiled about all review assignments and saved to the submission_settings table.
  2. Extend the submission DAO to support grabbing editorial activity in a single DB call. This would involve some complex table joins, but may be performant now that foreign keys and indexes are used everywhere.

Who is asking for this feature? This is needed to implement the new submissions table view (#8880) for #7495. Much of this information was the highest priority following user tests.

**Editorial Activity ** The most complicated information to be returned is in the Editorial Activity column (see mockups in #8880). The following table outlines the conditions under which certain data needs to be available.

Activity Conditions to display it
Assign Editors No deciding editors are assigned to the submission.
Assign Reviewers In a review stage and 0 review assignments exist in the current round. Declined and cancelled review assignments are not counted.
Review assignment circles In a review stage and 1 or more review assignments exist in the current round. Declined and cancelled review assignments are not counted or shown.
Revisions Requested There is a revisions requested decision in the current review round and no revisions have been uploaded to that round.
Revisions Submitted: Review Revisions There is a revisions requested decision in the current review round and 1 or more revision files have been uploaded to that round.
All Recommendations In The current user is a deciding editor and there are 1 or more recommending editors assigned to the current stage and all recommending editors have submitted a recommendation.
Scheduled to be published The submission status is STATUS_SCHEDULED. In OJS, it should show the issue it is scheduled in.

It may be better to calculate these conditions on the server and return specific data with the API responses. Or it may be better to include the general data (for example, review assignments, round, last decision), and let the UI determine what to show.

Review Assignment Circles In order to display the review assignment circles, we'll need the following information about each active review assignment (not declined or cancelled):

  • ID
  • Date assigned
  • Response due date
  • Review due date
  • Status (submitted, confirmed, thanked)

NateWr avatar Apr 06 '23 11:04 NateWr

On the Days in Stage column from @Devika008:

Some users requested to show the days in status instead of days in stage but it was difficult to retain and hence decided to retain days in stage as people did appreciate the metric.

@Devika008 what do you think about using days in round for the review stage? When an editor starts a new round of review, the days in stage goes back to 0. That way, delays due to the author not sending in revisions aren't counted. It's kind of like: days since the editor last took a major decision.

NateWr avatar Apr 06 '23 11:04 NateWr

PRs pkp-lib: https://github.com/pkp/pkp-lib/pull/9589 OJS: https://github.com/pkp/ojs/pull/4131

Vitaliy-1 avatar Dec 25 '23 22:12 Vitaliy-1

@defstat, I think you have been working on a similar issue, do you have time to review this? To avoid potential performance problems I've used the approach described here: https://github.com/pkp/pkp-lib/discussions/9394#discussioncomment-7891610

Vitaliy-1 avatar Jan 15 '24 16:01 Vitaliy-1

Reminder to include additional data: reviewer name and submission title

Vitaliy-1 avatar Mar 11 '24 16:03 Vitaliy-1

@defstat, do you have time to review the PR?

Vitaliy-1 avatar Apr 29 '24 12:04 Vitaliy-1

@Vitaliy-1 Would these changes also add reviewer name to the /api/v1/submissions/{submissionId} end point? Review assignments are already there, only reviewer name is missing.

jardakotesovec avatar May 09 '24 10:05 jardakotesovec

@jardakotesovec, I've added the review/stage assignments data to the submission's schema and you reminded me that it's now available not only through BackendSubmissionController but also through endpoints with permissions for authors... I need to fix that.

Vitaliy-1 avatar May 09 '24 20:05 Vitaliy-1

Opened a separate issue: https://github.com/pkp/pkp-lib/issues/9956

Vitaliy-1 avatar May 10 '24 11:05 Vitaliy-1

@jardakotesovec, regarding reviewer name, can you describe in more details where reviewer names would be used? I don't see them originally on the mockups for submission lists. Also, for whom this data should be available?

Vitaliy-1 avatar May 10 '24 11:05 Vitaliy-1

@Vitaliy-1 that would be for editors, when they click on 'review assignment' circle to display details of that review assignment.

Screenshot 2024-05-10 at 16 23 16

jardakotesovec avatar May 10 '24 14:05 jardakotesovec

@Vitaliy-1 Can you please also include reviewMethod in reviewAssignments for _submission and /submission/{submissionId} endpoints?

jardakotesovec avatar May 13 '24 12:05 jardakotesovec