Skip to content

Commit

Permalink
Merge pull request #2279 from uditijmehta/new-preprint-resubmission-w…
Browse files Browse the repository at this point in the history
…orkflow

[ENG-5994] Fix Preprint Resubmission Workflow to Ensure Proper Moderation Handling
  • Loading branch information
uditijmehta committed Aug 8, 2024
2 parents 5dfcee5 + 2547b0b commit f53fbe2
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 23 deletions.
7 changes: 5 additions & 2 deletions app/models/abstract-node.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { hasMany, AsyncHasMany, attr } from '@ember-data/model';

import { PromiseManyArray } from '@ember-data/store/-private';
import BaseFileItem from 'ember-osf-web/models/base-file-item';
import DraftRegistrationModel from 'ember-osf-web/models/draft-registration';
import FileProviderModel from 'ember-osf-web/models/file-provider';

import ReviewActionModel from 'ember-osf-web/models/review-action';
import { Permission } from './osf-model';

export default class AbstractNodeModel extends BaseFileItem {
Expand All @@ -15,6 +15,9 @@ export default class AbstractNodeModel extends BaseFileItem {

@attr('array') currentUserPermissions!: Permission[];

@hasMany('review-action', { inverse: 'target' })
reviewActions!: PromiseManyArray<ReviewActionModel>;

}

declare module 'ember-data/types/registries/model' {
Expand Down
4 changes: 0 additions & 4 deletions app/models/preprint.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import AbstractNodeModel from 'ember-osf-web/models/abstract-node';
import CitationModel from 'ember-osf-web/models/citation';
import PreprintRequestModel from 'ember-osf-web/models/preprint-request';
import { ReviewsState } from 'ember-osf-web/models/provider';
import ReviewActionModel from 'ember-osf-web/models/review-action';

import ContributorModel from './contributor';
import FileModel from './file';
Expand Down Expand Up @@ -82,9 +81,6 @@ export default class PreprintModel extends AbstractNodeModel {
@belongsTo('preprint-provider', { inverse: 'preprints' })
provider!: AsyncBelongsTo<PreprintProviderModel> & PreprintProviderModel;

@hasMany('review-action')
reviewActions!: AsyncHasMany<ReviewActionModel>;

@hasMany('contributors', { inverse: 'preprint'})
contributors!: AsyncHasMany<ContributorModel> & ContributorModel;

Expand Down
5 changes: 1 addition & 4 deletions app/models/registration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { buildValidations, validator } from 'ember-cp-validations';

import DraftRegistrationModel from 'ember-osf-web/models/draft-registration';
import ResourceModel from 'ember-osf-web/models/resource';
import ReviewActionModel, { ReviewActionTrigger } from 'ember-osf-web/models/review-action';
import { ReviewActionTrigger } from 'ember-osf-web/models/review-action';
import SchemaResponseModel, { RevisionReviewStates } from 'ember-osf-web/models/schema-response';
import { RegistrationResponse } from 'ember-osf-web/packages/registration-schema';

Expand Down Expand Up @@ -149,9 +149,6 @@ export default class RegistrationModel extends NodeModel.extend(Validations) {
@hasMany('institution', { inverse: 'registrations' })
affiliatedInstitutions!: AsyncHasMany<InstitutionModel> | InstitutionModel[];

@hasMany('review-action', { inverse: 'target' })
reviewActions!: AsyncHasMany<ReviewActionModel> | ReviewActionModel[];

@hasMany('schema-response', { inverse: 'registration' })
schemaResponses!: AsyncHasMany<SchemaResponseModel> | SchemaResponseModel[];

Expand Down
2 changes: 1 addition & 1 deletion app/models/review-action.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ export default class ReviewActionModel extends Action {
@attr('string') fromState!: RegistrationReviewStates;
@attr('string') toState!: RegistrationReviewStates;

@belongsTo('registration', { inverse: 'reviewActions', polymorphic: true })
@belongsTo('abstract-node', { inverse: 'reviewActions', polymorphic: true })
target!: (AsyncBelongsTo<RegistrationModel> & RegistrationModel
) | (AsyncBelongsTo<PreprintModel> & PreprintModel);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -201,19 +201,19 @@ export default class PreprintStateMachine extends Component<StateMachineArgs>{
@waitFor
public async onSubmit(): Promise<void> {
this.args.resetPageDirty();
if (!this.isEditFlow) {
if (this.provider.reviewsWorkflow) {
const reviewAction = this.store.createRecord('review-action', {
actionTrigger: 'submit',
target: this.preprint,
});
await reviewAction.save();
} else {
this.preprint.isPublished = true;
await this.preprint.save();
}
if (this.provider.reviewsWorkflow) {
const reviewAction = this.store.createRecord('review-action', {
actionTrigger: 'submit',
target: this.preprint,
});
await reviewAction.save();
} else {
this.preprint.isPublished = true;
await this.preprint.save();
}

await this.preprint.reload();

await this.router.transitionTo('preprints.detail', this.provider.id, this.preprint.id);
}

Expand Down
2 changes: 1 addition & 1 deletion tests/unit/models/review-action-test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ module('Unit | Model | review-action', hooks => {
const relationship = get(model, 'relationshipsByName').get('target');

assert.equal(relationship.key, 'target');
assert.equal(relationship.type, 'registration');
assert.equal(relationship.type, 'abstract-node');
assert.equal(relationship.kind, 'belongsTo');
});

Expand Down

0 comments on commit f53fbe2

Please sign in to comment.