Skip to content

Commit ae52a28

Browse files
committed
form: added severity checks config
1 parent 40f123c commit ae52a28

File tree

4 files changed

+70
-38
lines changed

4 files changed

+70
-38
lines changed

invenio_app_rdm/config.py

-27
Original file line numberDiff line numberDiff line change
@@ -914,33 +914,6 @@ def github_link_render(record):
914914

915915
APP_RDM_RECORDS_EXPORT_URL = "/records/<pid_value>/export/<export_format>"
916916

917-
APP_RDM_DEPOSIT_FORM_SECTIONS_CONFIG = {
918-
"files-section": ["files.enabled"],
919-
"basic-information-section": [
920-
"pids.doi",
921-
"metadata.resource_type",
922-
"metadata.title",
923-
"metadata.additional_titles",
924-
"metadata.publication_date",
925-
"metadata.creators",
926-
"metadata.description",
927-
"metadata.additional_descriptions",
928-
"metadata.rights",
929-
],
930-
"recommended-information-section": [
931-
"metadata.contributors",
932-
"metadata.subjects",
933-
"metadata.languages",
934-
"metadata.dates",
935-
"metadata.version",
936-
"metadata.publisher",
937-
],
938-
"funding-section": ["metadata.funding"],
939-
"alternate-identifiers-section": ["metadata.identifiers"],
940-
"related-works-section": ["metadata.related_identifiers"],
941-
"visibility-section": ["access.embargo.until"],
942-
}
943-
944917
APP_RDM_DEPOSIT_FORM_DEFAULTS = {
945918
"publication_date": lambda: datetime.now().strftime("%Y-%m-%d"),
946919
"rights": [

invenio_app_rdm/records_ui/views/deposits.py

-2
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,6 @@ def get_form_config(**kwargs):
359359
cf for cf in custom_fields["ui"] if not cf.get("hide_from_upload_form", False)
360360
]
361361
quota = deepcopy(conf.get("APP_RDM_DEPOSIT_FORM_QUOTA", {}))
362-
sections_config = deepcopy(conf.get("APP_RDM_DEPOSIT_FORM_SECTIONS_CONFIG", {}))
363362
record_quota = kwargs.pop("quota", None)
364363
if record_quota:
365364
quota["maxStorage"] = record_quota["quota_size"]
@@ -383,7 +382,6 @@ def get_form_config(**kwargs):
383382
),
384383
user_communities_memberships=get_user_communities_memberships(),
385384
custom_fields=custom_fields,
386-
sections_config=sections_config,
387385
publish_modal_extra=current_app.config.get(
388386
"APP_RDM_DEPOSIT_FORM_PUBLISH_MODAL_EXTRA"
389387
),

invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/RDMDepositForm.js

+22-9
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ import { Card, Container, Grid, Ref, Sticky } from "semantic-ui-react";
4444
import PropTypes from "prop-types";
4545
import Overridable from "react-overridable";
4646
import { ShareDraftButton } from "./ShareDraftButton";
47+
import { depositFormSectionsConfig, severityChecksConfig } from "./config";
4748

4849
export class RDMDepositForm extends Component {
4950
constructor(props) {
@@ -90,6 +91,9 @@ export class RDMDepositForm extends Component {
9091
this.noFiles = true;
9192
}
9293

94+
this.sectionsConfig = depositFormSectionsConfig;
95+
this.severityChecks = severityChecksConfig;
96+
9397
// hide community header for branded communities
9498
this.hide_community_selection = this.config.hide_community_selection || false;
9599
}
@@ -111,11 +115,11 @@ export class RDMDepositForm extends Component {
111115
allowEmptyFiles,
112116
} = this.props;
113117

118+
// Adding section id to custom fields UI, to be used for accordions
114119
const customFieldsUI = this.config.custom_fields.ui.map((section) => ({
115120
...section,
116121
id: section.section.toLowerCase().replace(/\s+/g, "-") + "-section",
117122
}));
118-
const sectionsConfig = this.config.sections_config;
119123

120124
return (
121125
<Overridable
@@ -147,7 +151,7 @@ export class RDMDepositForm extends Component {
147151
<FormFeedback
148152
fieldPath="message"
149153
labels={this.config.custom_fields.error_labels}
150-
sectionsConfig={sectionsConfig}
154+
sectionsConfig={this.sectionsConfig}
151155
/>
152156
</Overridable>
153157

@@ -172,7 +176,8 @@ export class RDMDepositForm extends Component {
172176
noFiles={this.noFiles}
173177
>
174178
<AccordionField
175-
includesPaths={sectionsConfig["files-section"]}
179+
includesPaths={this.sectionsConfig["files-section"]}
180+
severityChecks={this.severityChecks}
176181
active
177182
label={i18next.t("Files")}
178183
id="files-section"
@@ -208,7 +213,8 @@ export class RDMDepositForm extends Component {
208213
vocabularies={this.vocabularies}
209214
>
210215
<AccordionField
211-
includesPaths={sectionsConfig["basic-information-section"]}
216+
includesPaths={this.sectionsConfig["basic-information-section"]}
217+
severityChecks={this.severityChecks}
212218
active
213219
label={i18next.t("Basic information")}
214220
id="basic-information-section"
@@ -366,7 +372,10 @@ export class RDMDepositForm extends Component {
366372
record={record}
367373
>
368374
<AccordionField
369-
includesPaths={sectionsConfig["recommended-information-section"]}
375+
includesPaths={
376+
this.sectionsConfig["recommended-information-section"]
377+
}
378+
severityChecks={this.severityChecks}
370379
label={i18next.t("Recommended information")}
371380
id="recommended-information-section"
372381
>
@@ -457,7 +466,8 @@ export class RDMDepositForm extends Component {
457466
ui={this.accordionStyle}
458467
>
459468
<AccordionField
460-
includesPaths={sectionsConfig["funding-section"]}
469+
includesPaths={this.sectionsConfig["funding-section"]}
470+
severityChecks={this.severityChecks}
461471
active
462472
label="Funding"
463473
ui={this.accordionStyle}
@@ -551,7 +561,8 @@ export class RDMDepositForm extends Component {
551561
vocabularies={this.vocabularies}
552562
>
553563
<AccordionField
554-
includesPaths={sectionsConfig["alternate-identifiers-section"]}
564+
includesPaths={this.sectionsConfig["alternate-identifiers-section"]}
565+
severityChecks={this.severityChecks}
555566
active
556567
label={i18next.t("Alternate identifiers")}
557568
id="alternate-identifiers-section"
@@ -577,7 +588,8 @@ export class RDMDepositForm extends Component {
577588
vocabularies={this.vocabularies}
578589
>
579590
<AccordionField
580-
includesPaths={sectionsConfig["related-works-section"]}
591+
includesPaths={this.sectionsConfig["related-works-section"]}
592+
severityChecks={this.severityChecks}
581593
active
582594
label={i18next.t("Related works")}
583595
id="related-works-section"
@@ -600,7 +612,8 @@ export class RDMDepositForm extends Component {
600612
vocabularies={this.vocabularies}
601613
>
602614
<AccordionField
603-
includesPaths={sectionsConfig["references-section"]}
615+
includesPaths={this.sectionsConfig["references-section"]}
616+
severityChecks={this.severityChecks}
604617
active
605618
label={i18next.t("References")}
606619
id="references-section"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// This file is part of InvenioRDM
2+
// Copyright (C) 2025 CERN.
3+
//
4+
// Invenio APP RDM is free software; you can redistribute it and/or modify it
5+
// under the terms of the MIT License; see LICENSE file for more details.
6+
import { i18next } from "@translations/invenio_app_rdm/i18next";
7+
8+
const depositFormSectionsConfig = {
9+
"files-section": ["files.enabled"],
10+
"basic-information-section": [
11+
"pids.doi",
12+
"metadata.resource_type",
13+
"metadata.title",
14+
"metadata.additional_titles",
15+
"metadata.publication_date",
16+
"metadata.creators",
17+
"metadata.description",
18+
"metadata.additional_descriptions",
19+
"metadata.rights",
20+
],
21+
"recommended-information-section": [
22+
"metadata.contributors",
23+
"metadata.subjects",
24+
"metadata.languages",
25+
"metadata.dates",
26+
"metadata.version",
27+
"metadata.publisher",
28+
],
29+
"funding-section": ["metadata.funding"],
30+
"alternate-identifiers-section": ["metadata.identifiers"],
31+
"related-works-section": ["metadata.related_identifiers"],
32+
"visibility-section": ["access.files", "access.embargo.until"],
33+
};
34+
35+
const severityChecksConfig = {
36+
info: {
37+
label: i18next.t("Recommended"),
38+
description: i18next.t("This check is recommended but not mandatory."),
39+
},
40+
error: {
41+
label: i18next.t("Error"),
42+
description: i18next.t(
43+
"This check indicates a critical issue that must be addressed."
44+
),
45+
},
46+
};
47+
48+
export { depositFormSectionsConfig, severityChecksConfig };

0 commit comments

Comments
 (0)