Skip to content

Commit f53fbe2

Browse files
authored
Merge pull request #2279 from uditijmehta/new-preprint-resubmission-workflow
[ENG-5994] Fix Preprint Resubmission Workflow to Ensure Proper Moderation Handling
2 parents 5dfcee5 + 2547b0b commit f53fbe2

File tree

6 files changed

+19
-23
lines changed

6 files changed

+19
-23
lines changed

app/models/abstract-node.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { hasMany, AsyncHasMany, attr } from '@ember-data/model';
2-
2+
import { PromiseManyArray } from '@ember-data/store/-private';
33
import BaseFileItem from 'ember-osf-web/models/base-file-item';
44
import DraftRegistrationModel from 'ember-osf-web/models/draft-registration';
55
import FileProviderModel from 'ember-osf-web/models/file-provider';
6-
6+
import ReviewActionModel from 'ember-osf-web/models/review-action';
77
import { Permission } from './osf-model';
88

99
export default class AbstractNodeModel extends BaseFileItem {
@@ -15,6 +15,9 @@ export default class AbstractNodeModel extends BaseFileItem {
1515

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

18+
@hasMany('review-action', { inverse: 'target' })
19+
reviewActions!: PromiseManyArray<ReviewActionModel>;
20+
1821
}
1922

2023
declare module 'ember-data/types/registries/model' {

app/models/preprint.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import AbstractNodeModel from 'ember-osf-web/models/abstract-node';
55
import CitationModel from 'ember-osf-web/models/citation';
66
import PreprintRequestModel from 'ember-osf-web/models/preprint-request';
77
import { ReviewsState } from 'ember-osf-web/models/provider';
8-
import ReviewActionModel from 'ember-osf-web/models/review-action';
98

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

85-
@hasMany('review-action')
86-
reviewActions!: AsyncHasMany<ReviewActionModel>;
87-
8884
@hasMany('contributors', { inverse: 'preprint'})
8985
contributors!: AsyncHasMany<ContributorModel> & ContributorModel;
9086

app/models/registration.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { buildValidations, validator } from 'ember-cp-validations';
33

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

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

152-
@hasMany('review-action', { inverse: 'target' })
153-
reviewActions!: AsyncHasMany<ReviewActionModel> | ReviewActionModel[];
154-
155152
@hasMany('schema-response', { inverse: 'registration' })
156153
schemaResponses!: AsyncHasMany<SchemaResponseModel> | SchemaResponseModel[];
157154

app/models/review-action.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ export default class ReviewActionModel extends Action {
6363
@attr('string') fromState!: RegistrationReviewStates;
6464
@attr('string') toState!: RegistrationReviewStates;
6565

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

app/preprints/-components/submit/preprint-state-machine/component.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -201,19 +201,19 @@ export default class PreprintStateMachine extends Component<StateMachineArgs>{
201201
@waitFor
202202
public async onSubmit(): Promise<void> {
203203
this.args.resetPageDirty();
204-
if (!this.isEditFlow) {
205-
if (this.provider.reviewsWorkflow) {
206-
const reviewAction = this.store.createRecord('review-action', {
207-
actionTrigger: 'submit',
208-
target: this.preprint,
209-
});
210-
await reviewAction.save();
211-
} else {
212-
this.preprint.isPublished = true;
213-
await this.preprint.save();
214-
}
204+
if (this.provider.reviewsWorkflow) {
205+
const reviewAction = this.store.createRecord('review-action', {
206+
actionTrigger: 'submit',
207+
target: this.preprint,
208+
});
209+
await reviewAction.save();
210+
} else {
211+
this.preprint.isPublished = true;
212+
await this.preprint.save();
215213
}
216214

215+
await this.preprint.reload();
216+
217217
await this.router.transitionTo('preprints.detail', this.provider.id, this.preprint.id);
218218
}
219219

tests/unit/models/review-action-test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ module('Unit | Model | review-action', hooks => {
2727
const relationship = get(model, 'relationshipsByName').get('target');
2828

2929
assert.equal(relationship.key, 'target');
30-
assert.equal(relationship.type, 'registration');
30+
assert.equal(relationship.type, 'abstract-node');
3131
assert.equal(relationship.kind, 'belongsTo');
3232
});
3333

0 commit comments

Comments
 (0)