Updated The DatasetWizardModel on the backend in order to be similar to it's front end counterpart

This commit is contained in:
George Kalampokis 2020-09-04 17:00:34 +03:00
parent abe95e0c5e
commit d890763b41
7 changed files with 44 additions and 16 deletions

View File

@ -1,6 +1,8 @@
package eu.eudat.controllers;
import eu.eudat.data.entities.Dataset;
import eu.eudat.data.entities.DatasetProfile;
import eu.eudat.data.entities.Funder;
import eu.eudat.data.entities.Project;
import eu.eudat.logic.managers.DatasetManager;
@ -86,8 +88,8 @@ public class QuickWizardController extends BaseController {
quickWizard.getDmp().setId(dmpEntity.getId());
for (DatasetDescriptionQuickWizardModel dataset : quickWizard.getDatasets().getDatasetsList()) {
DataManagementPlan dmp = quickWizard.getDmp().toDataDmp(grantEntity, projectEntity, principal);
UUID uuid = quickWizard.getDmp().getDatasetProfile().getId();
DatasetWizardModel datasetWizardModel = dataset.toDataModel(dmp, uuid);
DatasetProfile profile = quickWizard.getDmp().getDatasetProfile();
DatasetWizardModel datasetWizardModel = dataset.toDataModel(dmp, profile);
this.datasetManager.createOrUpdate(datasetWizardModel, principal);
}
@ -98,7 +100,10 @@ public class QuickWizardController extends BaseController {
public @ResponseBody
ResponseEntity<ResponseItem<DatasetCreateWizardModel>> addDatasetWizard(@RequestBody DatasetCreateWizardModel datasetCreateWizardModel, Principal principal) throws Exception{
for(DatasetDescriptionQuickWizardModel dataset : datasetCreateWizardModel.getDatasets().getDatasetsList()){
this.datasetManager.createOrUpdate(dataset.toDataModel(datasetCreateWizardModel.getDmpMeta().getDmp(), datasetCreateWizardModel.getDmpMeta().getDatasetProfile().getId()), principal);
DatasetProfile profile = new DatasetProfile();
profile.setId(datasetCreateWizardModel.getDmpMeta().getDatasetProfile().getId());
profile.setLabel(datasetCreateWizardModel.getDmpMeta().getDatasetProfile().getLabel());
this.datasetManager.createOrUpdate(dataset.toDataModel(datasetCreateWizardModel.getDmpMeta().getDmp(), profile), principal);
}
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DatasetCreateWizardModel>().status(ApiMessageCode.SUCCESS_MESSAGE).message("Dataset added!"));

View File

@ -37,6 +37,7 @@ import eu.eudat.models.data.dataset.DatasetOverviewModel;
import eu.eudat.models.data.datasetImport.DatasetImportField;
import eu.eudat.models.data.datasetImport.DatasetImportPagedDatasetProfile;
import eu.eudat.models.data.datasetprofile.DatasetProfileListingModel;
import eu.eudat.models.data.datasetprofile.DatasetProfileOverviewModel;
import eu.eudat.models.data.datasetwizard.DatasetWizardModel;
import eu.eudat.models.data.dmp.AssociatedProfile;
import eu.eudat.models.data.dmp.DataManagementPlan;
@ -606,7 +607,7 @@ public class DatasetManager {
if (datasetWizardModel.getDmp().getGrant() == null) {
datasetWizardModel.setDmp(new DataManagementPlan().fromDataModelNoDatasets(dataset1.getDmp()));
}
dataset1.setProfile(this.apiContext.getOperationsContext().getDatabaseRepository().getDatasetProfileDao().find(datasetWizardModel.getProfile()));
dataset1.setProfile(this.apiContext.getOperationsContext().getDatabaseRepository().getDatasetProfileDao().find(datasetWizardModel.getProfile().getId()));
// datasetWizardModel.setDatasetProfileDefinition(getPagedProfile(datasetWizardModel, dataset1));
updateTags(dataset1, datasetWizardModel.getTags());
if (sendNotification) {
@ -938,7 +939,7 @@ public class DatasetManager {
// Sets the latest version of dataet Profile to the Dataset in question.
dataset.setDatasetProfileDefinition(getLatestDatasetProfile(datasetEntity, item));
dataset.setProfile(item.getId());
dataset.setProfile(new DatasetProfileOverviewModel().fromDataModel(item));
// Now at latest version.
dataset.setIsProfileLatestVersion(true);

View File

@ -6,6 +6,7 @@ import eu.eudat.models.DataModel;
import eu.eudat.models.data.dataset.DataRepository;
import eu.eudat.models.data.dataset.Registry;
import eu.eudat.models.data.dataset.Service;
import eu.eudat.models.data.datasetprofile.DatasetProfileOverviewModel;
import eu.eudat.models.data.dmp.DataManagementPlan;
import eu.eudat.models.data.externaldataset.ExternalDatasetListingModel;
import eu.eudat.models.data.user.composite.PagedDatasetProfile;
@ -31,7 +32,7 @@ public class DatasetWizardModel implements DataModel<Dataset, DatasetWizardModel
private List<DataRepository> dataRepositories;
private List<Tag> tags;
private List<ExternalDatasetListingModel> externalDatasets;
private UUID profile;
private DatasetProfileOverviewModel profile;
private Boolean isProfileLatestVersion;
private Date modified;
@ -119,10 +120,11 @@ public class DatasetWizardModel implements DataModel<Dataset, DatasetWizardModel
this.dataRepositories = dataRepositories;
}
public UUID getProfile() {
public DatasetProfileOverviewModel getProfile() {
return profile;
}
public void setProfile(UUID profile) {
public void setProfile(DatasetProfileOverviewModel profile) {
this.profile = profile;
}
@ -161,7 +163,8 @@ public class DatasetWizardModel implements DataModel<Dataset, DatasetWizardModel
this.status = entity.getStatus();
this.reference = entity.getReference();
this.description = entity.getDescription();
this.profile = entity.getProfile().getId();
this.profile = new DatasetProfileOverviewModel();
this.profile = this.profile.fromDataModel(entity.getProfile());
this.uri = entity.getUri();
this.registries = entity.getRegistries() != null ? entity.getRegistries().stream().map(item -> new Registry().fromDataModel(item)).collect(Collectors.toList()) : new ArrayList<>();
this.dataRepositories = entity.getDatasetDataRepositories() != null ? entity.getDatasetDataRepositories().stream().map(item -> {
@ -196,7 +199,8 @@ public class DatasetWizardModel implements DataModel<Dataset, DatasetWizardModel
this.status = entity.getStatus();
this.reference = entity.getReference();
this.description = entity.getDescription();
this.profile = entity.getProfile().getId();
this.profile = new DatasetProfileOverviewModel();
this.profile = this.profile.fromDataModel(entity.getProfile());
this.uri = entity.getUri();
this.registries = entity.getRegistries() != null ? entity.getRegistries().stream().map(item -> new Registry().fromDataModel(item)).collect(Collectors.toList()) : new ArrayList<>();
this.dataRepositories = entity.getDatasetDataRepositories() != null ? entity.getDatasetDataRepositories().stream().map(item -> {
@ -241,7 +245,7 @@ public class DatasetWizardModel implements DataModel<Dataset, DatasetWizardModel
entity.setCreated(this.created != null ? this.created : new Date());
entity.setModified(new Date());
DatasetProfile profile = new DatasetProfile();
profile.setId(this.profile);
profile.setId(this.profile.getId());
entity.setProfile(profile);
if (this.registries != null && !this.registries.isEmpty()) {
entity.setRegistries(new HashSet<>());

View File

@ -1,6 +1,8 @@
package eu.eudat.models.data.quickwizard;
import eu.eudat.data.entities.DatasetProfile;
import eu.eudat.models.data.datasetprofile.DatasetProfileOverviewModel;
import eu.eudat.models.data.dmp.DataManagementPlan;
import eu.eudat.data.entities.Dataset;
import eu.eudat.models.data.datasetwizard.DatasetWizardModel;
@ -22,11 +24,11 @@ public class DatasetDescriptionQuickWizardModel extends PagedDatasetProfile {
}
public DatasetWizardModel toDataModel(DataManagementPlan dmp,UUID profile){
public DatasetWizardModel toDataModel(DataManagementPlan dmp, DatasetProfile profile){
DatasetWizardModel newDataset = new DatasetWizardModel();
newDataset.setLabel(datasetLabel);
newDataset.setCreated(new Date());
newDataset.setProfile(profile);
newDataset.setProfile(new DatasetProfileOverviewModel().fromDataModel(profile));
newDataset.setDmp(dmp);
newDataset.setStatus((short) this.getStatus());
//newDataset.setStatus(Dataset.Status.SAVED.getValue());

View File

@ -52,7 +52,9 @@
</div>
</div>
<app-dataset-external-references-editor-component (formChanged)="onFormChanged($event)" [formGroup]="formGroup" [viewOnly]="viewOnly"></app-dataset-external-references-editor-component>
<app-dataset-description [form]="formGroup.get('datasetProfileDefinition')" [datasetProfileId]="formGroup.get('profile').value" (formChanged)="onFormChanged($event)"></app-dataset-description>
<div *ngIf="hasProfileId() && formGroup.get('datasetProfileDefinition') !== null">
<app-dataset-description [form]="formGroup.get('datasetProfileDefinition')" [datasetProfileId]="getProfileId()" (formChanged)="onFormChanged($event)"></app-dataset-description>
</div>
<!-- <app-dataset-description [form]="formGroup.get('datasetProfileDefinition')" [visibilityRules]="formGroup.get('datasetProfileDefinition').get('rules')" [datasetProfileId]="formGroup.get('profile').value">
</app-dataset-description> -->

View File

@ -191,7 +191,9 @@ export class DatasetEditorDetailsComponent extends BaseComponent implements OnIn
this.formGroup.get('profile').valueChanges
.pipe(takeUntil(this._destroyed))
.subscribe(x => {
this.datasetProfileValueChanged(x);
if (!isNullOrUndefined(x)) {
this.datasetProfileValueChanged(x.id);
}
});
}
}
@ -283,4 +285,16 @@ export class DatasetEditorDetailsComponent extends BaseComponent implements OnIn
}
ev.input.value = '';
}
getProfileId(): string {
if (!isNullOrUndefined(this.formGroup.get('profile').value)) {
return this.formGroup.get('profile').value.id;
} else {
return undefined;
}
}
hasProfileId(): boolean {
return !isNullOrUndefined(this.getProfileId());
}
}

View File

@ -25,7 +25,7 @@
</mat-form-field>
<mat-form-field *ngIf="isNewDataset">
<mat-select placeholder=" {{'DATASET-WIZARD.FIRST-STEP.PROFILE'| translate}}" [required]="true" [formControl]="this.formGroup.get('datasets')['controls'][0].get('profile')">
<mat-option *ngFor="let profile of availableProfiles" [value]="profile.id">
<mat-option *ngFor="let profile of availableProfiles" [value]="profile">
{{profile.label}}
</mat-option>
</mat-select>