Skip to content
Snippets Groups Projects
Commit 9d39e4a6 authored by Bogdan Cochior's avatar Bogdan Cochior
Browse files

feat(eqa): allow admin to pass technical checks

parent f4f59a24
No related branches found
No related tags found
2 merge requests!34Sprint 17 features,!31Hin 730
......@@ -81,11 +81,20 @@ export const canMakeDecision = (state, collection, fragment = {}) => {
const canEditManuscriptStatuses = ['draft', 'technicalChecks', 'inQA']
export const canEditManuscript = (state, collection, fragment = {}) => {
if (fragment.id !== last(collection.fragments)) return false
const isAdmin = currentUserIs(state, 'isAdmin')
if (!isAdmin || fragment.id !== last(collection.fragments)) return false
const status = get(collection, 'status')
return canEditManuscriptStatuses.includes(status)
}
const canOverrideTechnicalChecksStatuses = ['technicalChecks', 'inQA']
export const canOverrideTechnicalChecks = (state, collection) => {
const isAdmin = currentUserIs(state, 'isAdmin')
return isAdmin && canEditManuscriptStatuses.includes(status)
if (!isAdmin) return false
const status = get(collection, 'status')
return canOverrideTechnicalChecksStatuses.includes(status)
}
export const canSeeReviewersReports = (state, collectionId) => {
......
......@@ -40,8 +40,9 @@ module.exports = {
const subjectBaseText = `${collection.customId}: Manuscript`
const userHelper = new User({ UserModel })
const subject = `${subjectBaseText} ${!agree &&
'Not '}Passed Technical Checks`
const subject = `${subjectBaseText} ${
agree ? '' : 'Not '
}Passed Technical Checks`
const email = new Email({
type: 'user',
......
......@@ -15,6 +15,7 @@ import {
canMakeDecision,
canMakeRecommendation,
canEditManuscript,
canOverrideTechnicalChecks,
} from 'pubsweet-component-faraday-selectors/src'
const SideBarActions = ({
......@@ -23,18 +24,11 @@ const SideBarActions = ({
goToEdit,
canMakeDecision,
canEditManuscript,
goToTechnicalCheck,
canOverrideTechChecks,
canMakeRecommendation,
}) => (
<Root>
{canEditManuscript && (
<Button
data-test="button-edit-manuscript"
onClick={goToEdit(project, version)}
primary
>
Edit
</Button>
)}
{canMakeDecision && (
<Decision
collectionId={project.id}
......@@ -43,7 +37,6 @@ const SideBarActions = ({
status={project.status}
/>
)}
{canMakeRecommendation && (
<Recommendation
collectionId={project.id}
......@@ -51,6 +44,24 @@ const SideBarActions = ({
modalKey={`recommend-${version.id}`}
/>
)}
{canOverrideTechChecks && (
<ClickableIcon
data-test="button-technical-checks"
onClick={goToTechnicalCheck(project)}
title="Technical Checks"
>
<Icon>check-square</Icon>
</ClickableIcon>
)}
{canEditManuscript && (
<ClickableIcon
data-test="button-edit-manuscript"
onClick={goToEdit(project, version)}
title="Edit Manuscript"
>
<Icon>edit</Icon>
</ClickableIcon>
)}
<ZipFiles
archiveName={`ID-${project.customId}`}
collectionId={project.id}
......@@ -69,6 +80,7 @@ export default compose(
canMakeDecision: canMakeDecision(state, project, version),
canMakeRecommendation: canMakeRecommendation(state, project, version),
canEditManuscript: canEditManuscript(state, project, version),
canOverrideTechChecks: canOverrideTechnicalChecks(state, project),
})),
withHandlers({
goToEdit: ({ history }) => (project, version) => () => {
......@@ -76,6 +88,14 @@ export default compose(
editMode: true,
})
},
goToTechnicalCheck: ({ history }) => project => () => {
const { status, id, customId, technicalChecks: { token = '' } } = project
const stage = status === 'technicalChecks' ? 'eqs' : 'eqa'
history.push({
pathname: `/${stage}-decision`,
search: `?collectionId=${id}&customId=${customId}&token=${token}`,
})
},
}),
)(SideBarActions)
......
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