Skip to content
Snippets Groups Projects
Commit fb27ec20 authored by Mihail Hagiu's avatar Mihail Hagiu
Browse files

feat(GetCollections): Reviewer correctly sees manuscript versions

parent 17326d21
No related branches found
No related tags found
3 merge requests!160Update staging with master features,!150Develop,!138Hin 991
const { last, get } = require('lodash')
const filterDuplicates = collection =>
get(collection, 'currentVersion.id') === last(collection.fragments)
const { const {
authsome: authsomeHelper, authsome: authsomeHelper,
} = require('pubsweet-component-helper-service') } = require('pubsweet-component-helper-service')
...@@ -21,5 +16,5 @@ module.exports = models => async (req, res) => { ...@@ -21,5 +16,5 @@ module.exports = models => async (req, res) => {
}) })
} }
res.status(200).json(collections.filter(filterDuplicates)) res.status(200).json(collections)
} }
const { omit, get, last } = require('lodash') const { omit, get, last, chain } = require('lodash')
const config = require('config') const config = require('config')
const logger = require('@pubsweet/logger') const logger = require('@pubsweet/logger')
...@@ -207,7 +207,7 @@ const parseUser = ({ user }) => omit(user, sensitiveUserProperties) ...@@ -207,7 +207,7 @@ const parseUser = ({ user }) => omit(user, sensitiveUserProperties)
const getCollections = async ({ user, models }) => { const getCollections = async ({ user, models }) => {
const userPermisssions = await getUserPermissions({ user, Team: models.Team }) const userPermisssions = await getUserPermissions({ user, Team: models.Team })
return (await Promise.all( const collections = (await Promise.all(
userPermisssions.map(async up => { userPermisssions.map(async up => {
let fragment = {} let fragment = {}
let collection = {} let collection = {}
...@@ -253,6 +253,11 @@ const getCollections = async ({ user, models }) => { ...@@ -253,6 +253,11 @@ const getCollections = async ({ user, models }) => {
} }
}), }),
)).filter(Boolean) )).filter(Boolean)
return chain(collections)
.sortBy(c => c.currentVersion.version)
.reverse()
.uniqBy('id')
.value()
} }
async function updateReviewerVisibleStatusByInvitation({ async function updateReviewerVisibleStatusByInvitation({
...@@ -278,6 +283,10 @@ async function updateReviewerVisibleStatusByInvitation({ ...@@ -278,6 +283,10 @@ async function updateReviewerVisibleStatusByInvitation({
return get(statuses, `${collection.status}.reviewer.label`) return get(statuses, `${collection.status}.reviewer.label`)
} }
if (!invitation) {
return get(statuses, `reviewCompleted.reviewer.label`)
}
return get(invitation, 'hasAnswer', false) && return get(invitation, 'hasAnswer', false) &&
get(invitation, 'isAccepted', false) get(invitation, 'isAccepted', false)
? get(statuses, `underReview.reviewer.label`) ? get(statuses, `underReview.reviewer.label`)
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment