Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 20 additions & 5 deletions app/models/registration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,28 @@ export enum RegistrationReviewStates {
PendingWithdraw = 'pending_withdraw',
}

type NonActionableStates = RegistrationReviewStates.Initial
export type NonActionableRegistrationStates = RegistrationReviewStates.Initial
| RegistrationReviewStates.Withdrawn | RegistrationReviewStates.Rejected;

export type ActionableRevisionStates = RevisionReviewStates.RevisionPendingModeration;

export type ReviewsStateToDecisionMap =
Exclude<RegistrationReviewStates, NonActionableStates> | RevisionReviewStates.RevisionPendingModeration;
Exclude<RegistrationReviewStates, NonActionableRegistrationStates> | RevisionReviewStates.RevisionPendingModeration;
export const reviewsStateToDecisionMap: {
[index in ReviewsStateToDecisionMap]: Array<ReviewActionTrigger | SchemaResponseActionTrigger>
[index in ReviewsStateToDecisionMap]: Array<
Exclude<
ReviewActionTrigger,
ReviewActionTrigger.Submit
| ReviewActionTrigger.RequestWithdrawal
| ReviewActionTrigger.RequestEmbargoTermination>
|
Exclude<
SchemaResponseActionTrigger,
SchemaResponseActionTrigger.SubmitRevision
| SchemaResponseActionTrigger.AdminApproveRevision
| SchemaResponseActionTrigger.AdminRejectRevision
>
>
} = {
[RegistrationReviewStates.Accepted]: [ReviewActionTrigger.ForceWithdraw],
[RegistrationReviewStates.Embargo]: [ReviewActionTrigger.ForceWithdraw],
Expand Down Expand Up @@ -86,10 +101,10 @@ export default class RegistrationModel extends NodeModel.extend(Validations) {
@attr('fixstring') articleDoi!: string | null;
@attr('object') registeredMeta!: RegistrationMetadata;
@attr('registration-responses') registrationResponses!: RegistrationResponse;
@attr('fixstring') reviewsState?: RegistrationReviewStates;
@attr('fixstring') reviewsState!: RegistrationReviewStates;
@attr('fixstring') iaUrl?: string;
@attr('array') providerSpecificMetadata!: ProviderMetadata[];
@attr('fixstring') revisionState?: RevisionReviewStates;
@attr('fixstring') revisionState!: RevisionReviewStates;

// Write-only attributes
@attr('array') includedNodeIds?: string[];
Expand Down
2 changes: 1 addition & 1 deletion app/models/schema-response.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import { RegistrationResponse } from 'ember-osf-web/packages/registration-schema
import OsfModel from './osf-model';

export enum RevisionReviewStates {
Unapproved = 'unapproved',
RevisionInProgress = 'in_progress',
RevisionPendingAdminApproval = 'pending_admin_approval',
RevisionPendingModeration = 'pending_moderation',
Approved = 'approved',
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@ export default class RegistrationListManager extends Component {

@computed('state', 'sort')
get filterParams() {
const filter: Record<string, string | undefined> = { review_state: this.state, revision_state: undefined };
const filter: Record<string, string | undefined> = { reviews_state: this.state, revision_state: undefined };
if (this.state === RegistrationReviewStates.Embargo) {
filter.review_state =
filter.reviews_state =
[RegistrationReviewStates.Embargo, RegistrationReviewStates.PendingEmbargoTermination].toString();
}
if (this.state === RevisionReviewStates.RevisionPendingModeration) {
filter.revision_state = [RevisionReviewStates.RevisionPendingModeration].toString();
filter.review_state = undefined;
filter.reviews_state = undefined;
}
const query: Record<string, string | Record<string, string | undefined>> = {
filter,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@ import RouterService from '@ember/routing/router-service';
import RegistrationModel,
{
RegistrationReviewStates,
ReviewsStateToDecisionMap,
reviewsStateToDecisionMap,
NonActionableRegistrationStates,
ActionableRevisionStates,
} from 'ember-osf-web/models/registration';
import { ReviewActionTrigger } from 'ember-osf-web/models/review-action';
import captureException, { getApiErrorMessage } from 'ember-osf-web/utils/capture-exception';
Expand Down Expand Up @@ -68,7 +69,9 @@ export default class MakeDecisionDropdown extends Component<Args> {
}

get revisionIsPending() {
return this.args.registration.revisionState === RevisionReviewStates.RevisionPendingModeration;
return (this.args.registration.reviewsState === RegistrationReviewStates.Accepted
|| this.args.registration.reviewsState === RegistrationReviewStates.Embargo)
&& this.args.registration.revisionState === RevisionReviewStates.RevisionPendingModeration;
}

get commentTextArea() {
Expand Down Expand Up @@ -105,9 +108,10 @@ export default class MakeDecisionDropdown extends Component<Args> {
}

get moderatorActions() {
const { reviewsState } = this.args.registration;
const { revisionState } = this.args.registration;
let actions: ReviewsStateToDecisionMap[] = reviewsState ? reviewsStateToDecisionMap[reviewsState] : [];
const reviewsState =
this.args.registration.reviewsState as Exclude<RegistrationReviewStates, NonActionableRegistrationStates>;
const revisionState = this.args.registration.revisionState as ActionableRevisionStates;
let actions = reviewsState ? reviewsStateToDecisionMap[reviewsState] : [];
if (this.revisionIsPending) {
actions = reviewsStateToDecisionMap[revisionState];
}
Expand Down
2 changes: 1 addition & 1 deletion lib/registries/addon/edit-revision/revision-manager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ export default class RevisionManager {

@computed('revision.reviewsState')
get isPendingAdminApproval() {
return this.revision.reviewsState === RevisionReviewStates.RevisionPendingAdminApproval;
return this.revision.reviewsState === RevisionReviewStates.Unapproved;
}

@computed('revision.reviewsState')
Expand Down
2 changes: 1 addition & 1 deletion mirage/factories/schema-response-action.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import SchemaResponseActionModel, { SchemaResponseActionTrigger } from 'ember-os

export default Factory.extend<SchemaResponseActionModel>({
fromState: RevisionReviewStates.RevisionInProgress,
toState: RevisionReviewStates.RevisionPendingAdminApproval,
toState: RevisionReviewStates.Unapproved,
actionTrigger: faker.random.objectElement(Object.values(SchemaResponseActionTrigger)),

comment() {
Expand Down
2 changes: 1 addition & 1 deletion mirage/scenarios/registrations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ export function registrationScenario(

server.create('schema-response', {
id: 'copyEditRPA',
reviewsState: RevisionReviewStates.RevisionPendingAdminApproval,
reviewsState: RevisionReviewStates.Unapproved,
revisionJustification: 'Copy Edit',
revisionResponses: {
q1: 'Good Morning',
Expand Down
4 changes: 2 additions & 2 deletions mirage/views/registration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,8 @@ export function createRegistration(this: HandlerContext, schema: Schema) {

export function getProviderRegistrations(this: HandlerContext, schema: Schema, request: Request) {
const { parentID: providerId } = request.params;
const field = request.queryParams['filter[review_state]'] ? 'reviewsState' : 'revisionState';
const filterParams = request.queryParams['filter[review_state]'] || request.queryParams['filter[revision_state]'];
const field = request.queryParams['filter[reviews_state]'] ? 'reviewsState' : 'revisionState';
const filterParams = request.queryParams['filter[reviews_state]'] || request.queryParams['filter[revision_state]'];
const params = filterParams.split(',');
const { pageSize } = request.queryParams;
const provider = schema.registrationProviders.find(providerId);
Expand Down
2 changes: 1 addition & 1 deletion mirage/views/schema-response-action.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export function createSchemaResponseAction(this: HandlerContext, schema: Schema,
});
switch (trigger) {
case SchemaResponseActionTrigger.SubmitRevision:
revision.reviewsState = RevisionReviewStates.RevisionPendingAdminApproval;
revision.reviewsState = RevisionReviewStates.Unapproved;
revision.isPendingCurrentUserApproval = true;
break;
case SchemaResponseActionTrigger.AdminRejectRevision:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -463,7 +463,7 @@ module('Registries | Acceptance | registries revision', hooks => {
const revision = server.create(
'schema-response',
{
reviewsState: RevisionReviewStates.RevisionPendingAdminApproval,
reviewsState: RevisionReviewStates.Unapproved,
initiatedBy,
revisionResponses: {
'page-one_short-text': 'the lorax',
Expand Down