invenio-app-rdm 13.0.1__py2.py3-none-any.whl → 14.0.0b0.dev2__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. invenio_app_rdm/__init__.py +1 -1
  2. invenio_app_rdm/administration/records/records.py +9 -7
  3. invenio_app_rdm/config.py +1 -0
  4. invenio_app_rdm/fixtures/pages.py +5 -2
  5. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/citation.html +2 -2
  6. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/communities.html +8 -7
  7. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/external_resources.html +5 -6
  8. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/licenses.html +9 -13
  9. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/manage_menu.html +1 -2
  10. invenio_app_rdm/records_ui/views/decorators.py +2 -1
  11. invenio_app_rdm/records_ui/views/deposits.py +10 -3
  12. invenio_app_rdm/records_ui/views/records.py +3 -11
  13. invenio_app_rdm/requests_ui/views/requests.py +4 -3
  14. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/ViewRecentChanges.js +8 -8
  15. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/RevisionsDiffViewer.js +14 -16
  16. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/routes.js +1 -2
  17. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/RDMDepositForm.js +1 -0
  18. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/CommunitiesManagement.js +2 -2
  19. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCitationField.js +15 -14
  20. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesListModal.js +4 -4
  21. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/index.js +38 -40
  22. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/theme.js +5 -5
  23. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/landing_page/licenses.less +5 -3
  24. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/search.overrides +7 -0
  25. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/search.variables +0 -0
  26. invenio_app_rdm/upgrade_scripts/migrate_12_0_to_13_0.py +76 -4
  27. {invenio_app_rdm-13.0.1.dist-info → invenio_app_rdm-14.0.0b0.dev2.dist-info}/METADATA +30 -100
  28. {invenio_app_rdm-13.0.1.dist-info → invenio_app_rdm-14.0.0b0.dev2.dist-info}/RECORD +32 -30
  29. {invenio_app_rdm-13.0.1.dist-info → invenio_app_rdm-14.0.0b0.dev2.dist-info}/WHEEL +0 -0
  30. {invenio_app_rdm-13.0.1.dist-info → invenio_app_rdm-14.0.0b0.dev2.dist-info}/entry_points.txt +0 -0
  31. {invenio_app_rdm-13.0.1.dist-info → invenio_app_rdm-14.0.0b0.dev2.dist-info}/licenses/LICENSE +0 -0
  32. {invenio_app_rdm-13.0.1.dist-info → invenio_app_rdm-14.0.0b0.dev2.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,5 @@
1
1
  // This file is part of InvenioRDM
2
- // Copyright (C) 2020-2024 CERN.
2
+ // Copyright (C) 2020-2025 CERN.
3
3
  // Copyright (C) 2020-2021 Northwestern University.
4
4
  // Copyright (C) 2021 Graz University of Technology.
5
5
  // Copyright (C) 2023 TU Wien.
@@ -16,35 +16,28 @@ import { ExportDropdown } from "./ExportDropdown";
16
16
  import { CommunitiesManagement } from "./CommunitiesManagement";
17
17
  import Overridable, { OverridableContext, overrideStore } from "react-overridable";
18
18
 
19
- const recordManagementAppDiv = document.getElementById("recordManagement");
20
- const recordManagementMobile = document.getElementById("recordManagementMobile");
21
-
22
- const recordVersionsAppDiv = document.getElementById("recordVersions");
23
- const recordCitationAppDiv = document.getElementById("recordCitation");
24
- const recordExportDownloadDiv = document.getElementById("recordExportDownload");
25
- const sidebarCommunitiesManageDiv = document.getElementById(
26
- "sidebar-communities-manage"
27
- );
28
-
29
19
  const overriddenComponents = overrideStore.getAll();
30
20
 
21
+ const recordManagementAppDiv = document.getElementById("recordManagement");
22
+ const recordManagementMobile = document.getElementById("recordManagementMobile");
31
23
  if (recordManagementAppDiv) {
32
24
  renderRecordManagement(recordManagementAppDiv);
33
25
  recordManagementMobile && renderRecordManagement(recordManagementMobile);
34
26
  }
35
27
 
36
28
  function renderRecordManagement(element) {
29
+ const record = JSON.parse(recordManagementAppDiv.dataset.record);
37
30
  ReactDOM.render(
38
31
  <OverridableContext.Provider value={overriddenComponents}>
39
32
  <RecordManagement
40
- record={JSON.parse(recordManagementAppDiv.dataset.record)}
33
+ record={record}
41
34
  permissions={JSON.parse(recordManagementAppDiv.dataset.permissions)}
42
35
  isDraft={JSON.parse(recordManagementAppDiv.dataset.isDraft)}
43
36
  isPreviewSubmissionRequest={JSON.parse(
44
37
  recordManagementAppDiv.dataset.isPreviewSubmissionRequest
45
38
  )}
46
39
  currentUserId={recordManagementAppDiv.dataset.currentUserId}
47
- recordOwnerID={recordManagementAppDiv.dataset.recordOwnerId}
40
+ recordOwnerID={record.parent.access.owned_by.user}
48
41
  groupsEnabled={JSON.parse(recordManagementAppDiv.dataset.groupsEnabled)}
49
42
  />
50
43
  </OverridableContext.Provider>,
@@ -52,6 +45,7 @@ function renderRecordManagement(element) {
52
45
  );
53
46
  }
54
47
 
48
+ const recordVersionsAppDiv = document.getElementById("recordVersions");
55
49
  if (recordVersionsAppDiv) {
56
50
  ReactDOM.render(
57
51
  <RecordVersionsList
@@ -62,10 +56,11 @@ if (recordVersionsAppDiv) {
62
56
  );
63
57
  }
64
58
 
59
+ const recordCitationAppDiv = document.getElementById("recordCitation");
65
60
  if (recordCitationAppDiv) {
66
61
  ReactDOM.render(
67
62
  <RecordCitationField
68
- record={JSON.parse(recordCitationAppDiv.dataset.record)}
63
+ recordLinks={JSON.parse(recordCitationAppDiv.dataset.recordLinks)}
69
64
  styles={JSON.parse(recordCitationAppDiv.dataset.styles)}
70
65
  defaultStyle={JSON.parse(recordCitationAppDiv.dataset.defaultstyle)}
71
66
  includeDeleted={JSON.parse(recordCitationAppDiv.dataset.includeDeleted)}
@@ -74,6 +69,7 @@ if (recordCitationAppDiv) {
74
69
  );
75
70
  }
76
71
 
72
+ const recordExportDownloadDiv = document.getElementById("recordExportDownload");
77
73
  if (recordExportDownloadDiv) {
78
74
  ReactDOM.render(
79
75
  <ExportDropdown formats={JSON.parse(recordExportDownloadDiv.dataset.formats)} />,
@@ -81,44 +77,46 @@ if (recordExportDownloadDiv) {
81
77
  );
82
78
  }
83
79
 
80
+ const sidebarCommunitiesManageDiv = document.getElementById(
81
+ "sidebar-communities-manage"
82
+ );
84
83
  if (sidebarCommunitiesManageDiv) {
84
+ const userCommunitiesMemberships = JSON.parse(
85
+ sidebarCommunitiesManageDiv.dataset.userCommunitiesMemberships
86
+ );
87
+ const recordCommunityEndpoint =
88
+ sidebarCommunitiesManageDiv.dataset.recordCommunityEndpoint;
85
89
  const recordCommunitySearchConfig = JSON.parse(
86
90
  sidebarCommunitiesManageDiv.dataset.recordCommunitySearchConfig
87
91
  );
88
- const pendingCommunitiesSearchConfig =
89
- sidebarCommunitiesManageDiv.dataset.pendingCommunitiesSearchConfig;
92
+ const recordUserCommunitySearchConfig = JSON.parse(
93
+ sidebarCommunitiesManageDiv.dataset.recordUserCommunitySearchConfig
94
+ );
95
+ const pendingCommunitiesSearchConfig = JSON.parse(
96
+ sidebarCommunitiesManageDiv.dataset.pendingCommunitiesSearchConfig
97
+ );
98
+ const permissions = JSON.parse(sidebarCommunitiesManageDiv.dataset.permissions);
99
+ const record = JSON.parse(sidebarCommunitiesManageDiv.dataset.record);
90
100
  ReactDOM.render(
91
101
  <OverridableContext.Provider value={overriddenComponents}>
92
102
  <Overridable
93
103
  id="InvenioAppRdm.RecordLandingPage.CommunitiesManagement.container"
94
- userCommunitiesMemberships={JSON.parse(
95
- sidebarCommunitiesManageDiv.dataset.userCommunitiesMemberships
96
- )}
97
- recordCommunityEndpoint={
98
- sidebarCommunitiesManageDiv.dataset.recordCommunityEndpoint
99
- }
100
- recordUserCommunitySearchConfig={JSON.parse(
101
- sidebarCommunitiesManageDiv.dataset.recordUserCommunitySearchConfig
102
- )}
104
+ userCommunitiesMemberships={userCommunitiesMemberships}
105
+ recordCommunityEndpoint={recordCommunityEndpoint}
106
+ recordUserCommunitySearchConfig={recordUserCommunitySearchConfig}
103
107
  recordCommunitySearchConfig={recordCommunitySearchConfig}
104
- permissions={JSON.parse(sidebarCommunitiesManageDiv.dataset.permissions)}
105
- searchConfig={JSON.parse(pendingCommunitiesSearchConfig)}
106
- record={JSON.parse(recordCitationAppDiv.dataset.record)}
108
+ permissions={permissions}
109
+ searchConfig={pendingCommunitiesSearchConfig}
110
+ record={record}
107
111
  >
108
112
  <CommunitiesManagement
109
- userCommunitiesMemberships={JSON.parse(
110
- sidebarCommunitiesManageDiv.dataset.userCommunitiesMemberships
111
- )}
112
- recordCommunityEndpoint={
113
- sidebarCommunitiesManageDiv.dataset.recordCommunityEndpoint
114
- }
115
- recordUserCommunitySearchConfig={JSON.parse(
116
- sidebarCommunitiesManageDiv.dataset.recordUserCommunitySearchConfig
117
- )}
113
+ userCommunitiesMemberships={userCommunitiesMemberships}
114
+ recordCommunityEndpoint={recordCommunityEndpoint}
115
+ recordUserCommunitySearchConfig={recordUserCommunitySearchConfig}
118
116
  recordCommunitySearchConfig={recordCommunitySearchConfig}
119
- permissions={JSON.parse(sidebarCommunitiesManageDiv.dataset.permissions)}
120
- searchConfig={JSON.parse(pendingCommunitiesSearchConfig)}
121
- record={JSON.parse(recordCitationAppDiv.dataset.record)}
117
+ permissions={permissions}
118
+ searchConfig={pendingCommunitiesSearchConfig}
119
+ record={record}
122
120
  />
123
121
  </Overridable>
124
122
  </OverridableContext.Provider>,
@@ -1,5 +1,5 @@
1
1
  // This file is part of InvenioRDM
2
- // Copyright (C) 2020-2021 CERN.
2
+ // Copyright (C) 2020-2025 CERN.
3
3
  // Copyright (C) 2020-2021 Northwestern University.
4
4
  // Copyright (C) 2021 Graz University of Technology.
5
5
  //
@@ -32,7 +32,7 @@ $(".dropdown.export").dropdown({
32
32
  },
33
33
  });
34
34
 
35
- const $licensesPopup = $("#licenses li.has-popup .license.clickable");
35
+ const $licensesPopup = $("#licenses .has-popup .license.clickable");
36
36
 
37
37
  // Licenses description popup
38
38
  $licensesPopup.popup({
@@ -49,18 +49,18 @@ $licensesPopup.popup({
49
49
 
50
50
  $licensesPopup.on("keydown", function (event) {
51
51
  if (event.key === "Enter") {
52
- $("#licenses li.has-popup .license.clickable").popup("hide");
52
+ $licensesPopup.popup("hide");
53
53
  $(event.target).popup("show");
54
54
  }
55
55
  });
56
56
 
57
57
  $("#licenses .licenses-description .close.icon").on({
58
58
  click: function () {
59
- $("#licenses li.has-popup .license.clickable").popup("hide");
59
+ $licensesPopup.popup("hide");
60
60
  },
61
61
  keydown: function (event) {
62
62
  if (event.key === "Enter") {
63
- $("#licenses li.has-popup .license.clickable").popup("hide");
63
+ $licensesPopup.popup("hide");
64
64
  }
65
65
  },
66
66
  });
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (C) 2020-2022 CERN.
2
+ * Copyright (C) 2020-2025 CERN.
3
3
  * Copyright (C) 2020 Northwestern University.
4
4
  * Copyright (C) 2021 Graz University of Technology.
5
5
  * Copyright (C) 2021 New York University.
@@ -8,10 +8,12 @@
8
8
  * it under the terms of the MIT License; see LICENSE file for more details.
9
9
  */
10
10
 
11
- #licenses ul.details-list {
11
+ #licenses ul.details-list,
12
+ #licenses dl.details-list {
12
13
  list-style-type: none;
13
14
 
14
- li {
15
+ li,
16
+ dd {
15
17
  margin: .5rem 0;
16
18
 
17
19
  &:first-child {
@@ -0,0 +1,7 @@
1
+ .ui.search > .results .result {
2
+ .requests-avatar-container .image {
3
+ float: left;
4
+ height: 1em;
5
+ width: unset;
6
+ }
7
+ }
@@ -1,15 +1,16 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
- # Copyright (C) 2023-2024 CERN.
3
+ # Copyright (C) 2023-2025 CERN.
4
4
  # Copyright (C) 2024-2025 Graz University of Technology.
5
+ # Copyright (C) 2025 Northwestern University.
5
6
  #
6
7
  # Invenio-App-RDM is free software; you can redistribute it and/or modify
7
8
  # it under the terms of the MIT License; see LICENSE file for more details.
8
9
 
9
- """Record migration script from InvenioRDM 11.0 to 12.0.
10
+ """Record migration script from InvenioRDM 12.0 to 13.0.
10
11
 
11
12
  Disclaimer: This script is intended to be executed *only once*, namely when
12
- upgrading from InvenioRDM 11.0 to 12.0!
13
+ upgrading from InvenioRDM 12.0 to 13.0!
13
14
  If this script is executed at any other time, probably the best case scenario
14
15
  is that nothing happens!
15
16
 
@@ -20,11 +21,17 @@ This script has been tested with following data:
20
21
  - internal_notes
21
22
  """
22
23
 
24
+ import sys
25
+ import traceback
26
+
23
27
  from click import secho
24
28
  from invenio_access.permissions import system_identity
25
29
  from invenio_db import db
26
30
  from invenio_rdm_records.proxies import current_rdm_records_service as records_service
27
31
  from invenio_search.engine import dsl
32
+ from invenio_vocabularies.contrib.affiliations.api import Affiliation
33
+ from invenio_vocabularies.contrib.names.api import Name
34
+ from sqlalchemy import select
28
35
 
29
36
 
30
37
  def run_upgrade(has, migrate):
@@ -113,12 +120,75 @@ def run_upgrade_for_thesis():
113
120
  secho("Thesis upgrade has finished.", fg="green")
114
121
 
115
122
 
123
+ def run_upgrade_for_affiliations():
124
+ """Update affiliations entry so that they conform to new shape."""
125
+ secho("Affiliations upgrade has started.", fg="green")
126
+
127
+ error = False
128
+ # Batch intake to limit memory usage
129
+ stmt = select(Affiliation.model_cls).execution_options(yield_per=250)
130
+
131
+ for affiliation_model in db.session.scalars(stmt):
132
+ try:
133
+ data_for_affiliation = affiliation_model.data
134
+ data_for_affiliation.pop("id", None)
135
+ data_for_affiliation.pop("pid", None)
136
+ affiliation = Affiliation(data_for_affiliation, model=affiliation_model)
137
+ affiliation.commit()
138
+ except Exception as e:
139
+ secho(f"Migration failed with '{repr(e)}'.", fg="red")
140
+ secho(f"Affiliation {affiliation_model.pid} failed to update", fg="red")
141
+ trace = traceback.format_exc()
142
+ secho(f"Traceback {trace}", fg="red")
143
+ error = True
144
+ break
145
+
146
+ if error:
147
+ db.session.rollback()
148
+ secho("Affiliations upgrade failed.", fg="red")
149
+ sys.exit(1)
150
+ else:
151
+ db.session.commit()
152
+ secho("Affiliations upgrade succeeded.", fg="green")
153
+
154
+
155
+ def run_upgrade_for_names():
156
+ """Update names entry so that they conform to new shape."""
157
+ secho("Names upgrade has started.", fg="green")
158
+
159
+ error = False
160
+ # Batch intake to limit memory usage
161
+ stmt = select(Name.model_cls).execution_options(yield_per=250)
162
+
163
+ for name_model in db.session.scalars(stmt):
164
+ try:
165
+ data_for_name = name_model.data
166
+ data_for_name.pop("id", None)
167
+ data_for_name.pop("pid", None)
168
+ name = Name(data_for_name, model=name_model)
169
+ name.commit()
170
+ except Exception as e:
171
+ secho(f"Migration failed with '{repr(e)}'.", fg="red")
172
+ secho(f"Name {name_model.pid} failed to update", fg="red")
173
+ trace = traceback.format_exc()
174
+ secho(f"Traceback {trace}", fg="red")
175
+ error = True
176
+ break
177
+
178
+ if error:
179
+ db.session.rollback()
180
+ secho("Names upgrade failed.", fg="red")
181
+ sys.exit(1)
182
+ else:
183
+ db.session.commit()
184
+ secho("Names upgrade succeeded.", fg="green")
185
+
186
+
116
187
  def execute_upgrade():
117
188
  """Execute the upgrade from InvenioRDM 12.0 to 13.0.0.
118
189
 
119
190
  Please read the disclaimer on this module before thinking about executing
120
191
  this function!
121
- THIS MODULE IS WORK IN PROGRESS, UNTIL official v13 release
122
192
 
123
193
  NOTE:
124
194
  since the data upgrade steps are more selective now, the approach how to do
@@ -131,6 +201,8 @@ def execute_upgrade():
131
201
  secho("Starting data migration...", fg="green")
132
202
 
133
203
  run_upgrade_for_thesis()
204
+ run_upgrade_for_affiliations()
205
+ run_upgrade_for_names()
134
206
 
135
207
 
136
208
  # if the script is executed on its own, perform the upgrade
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: invenio-app-rdm
3
- Version: 13.0.1
3
+ Version: 14.0.0b0.dev2
4
4
  Summary: Invenio Research Data Management.
5
5
  Home-page: https://github.com/inveniosoftware/invenio-app-rdm
6
6
  Author: CERN
@@ -40,13 +40,13 @@ Requires-Dist: invenio-search-ui<5.0.0,>=4.0.0
40
40
  Requires-Dist: invenio-files-rest<4.0.0,>=3.0.0
41
41
  Requires-Dist: invenio-previewer<4.0.0,>=3.0.0
42
42
  Requires-Dist: invenio-records-files<2.0.0,>=1.2.1
43
- Requires-Dist: invenio-collections<1.0.0,>=0.4.0
44
- Requires-Dist: invenio-communities<20.0.0,>=19.0.0
45
- Requires-Dist: invenio-rdm-records<20.0.0,>=19.0.0
43
+ Requires-Dist: invenio-collections<2.0.0,>=1.0.0
44
+ Requires-Dist: invenio-communities<21.0.0,>=20.0.0
45
+ Requires-Dist: invenio-rdm-records<21.0.0,>=20.0.0
46
46
  Requires-Dist: CairoSVG<3.0.0,>=2.5.2
47
47
  Requires-Dist: invenio-banners<6.0.0,>=5.0.0
48
48
  Requires-Dist: invenio-pages<8.0.0,>=7.0.0
49
- Requires-Dist: invenio-audit-logs<1.0.0,>=0.1.0
49
+ Requires-Dist: invenio-audit-logs<1.0.0,>=0.3.0
50
50
  Requires-Dist: invenio-sitemap<2.0.0,>=0.1.0
51
51
  Provides-Extra: tests
52
52
  Requires-Dist: pytest-black-ng>=0.4.0; extra == "tests"
@@ -101,101 +101,31 @@ https://inveniordm.docs.cern.ch
101
101
  Changes
102
102
  =======
103
103
 
104
- Version v13.0.1 (released 2025-07-31)
105
-
106
- - fix(deposits): update doi default option only if managed
107
- * Fix logic for selecting default DOI option in deposit form when creating new versions
108
- * Only set managed DOI provider as default when external and not_needed are not in allowed providers
109
- * Improves user experience when versioning records with DataCite DOIs
110
-
111
- Version v13.0.0 (released 2025-07-23)
112
-
113
- - Official release of InvenioRDM v13. Contains all pre-release changes. See
114
- [release notes](https://inveniordm.docs.cern.ch/releases/v13/version-v13.0.0/)
115
-
116
- Version v13.0.0rc9 (released 2025-07-23)
117
-
118
- - fix(migration): wrong variable used
119
-
120
- Version v13.0.0rc8 (released 2025-07-23)
121
-
122
- - migration: improve text in v13 upgrade script
123
-
124
- Version v13.0.0rc7 (released 2025-07-22)
125
-
126
- - fix: license due to copy pasting
127
- - fix: import `overridable-registry.js` in `records_list` macro
128
- - templates: added default_static_page for communties
129
- - ui: log serialization exceptions
130
-
131
- Version v13.0.0rc6 (released 2025-07-21)
132
-
133
- - fix: package.json and package-lock mismatch
134
-
135
- Version v13.0.0rc5 (released 2025-07-17)
136
-
137
- - migration: optimize script
138
- - upgrade_scripts: handle thesis custom field migration
139
- - version: bumped invenio-s3 version to include multipart upload
140
- - templates: macros: doi: Add copy button for DOIs
141
- - semantic-ui: components: CopyButton: add size prop
142
- - semantic-ui: landing_page: ExportButton: Add copy button
143
- - semantic-ui: componenets: add url fetching in copy button
144
- - semantic-ui: landing_page: add click event for cite all versions
145
-
146
- Version v13.0.0rc4 (released 2025-07-10)
147
-
148
- - pid-config: cast to bool RDM_(PARENT)_PERSISTENT_IDENTIFIERS required check
149
- - fix: default parent_doi_required to False
150
- - links: update doc links to updated ones
151
- - i18n: localize DOI labels
152
- - css: remove .invenio-accordion-field qualifier
153
- - css: use SemanticUI variables and fix class names
154
- - ui: ensure accordion caret icons rotate when opened/closed
155
- - config: add Data Package export format
156
-
157
- Version v13.0.0rc3 (released 2025-07-02)
158
-
159
- - deposit-ui: uppy uploader ui feature
160
- - i18n: run js compile_catalog
161
- - i18n: run js extract msgs
162
- - i18n: components.js replace Trans with i18next comp
163
- - i18n: RemoveFromCommunityAction replace Trans with i18next comp
164
- - i18n: RecordVersionList replace Trans with i18next comp
165
- - i18n: ImpersonateUserForm replace Trans with i18next comp
166
- - i18n: CommunityRecordsSearchAppLayout replace Trans with i18next comp
167
- - chore: replace en dash (–) with ASCII dash (-) in source files
168
- - i18n: refactor compileCatalog script
169
- - i18n: Force pull languages
170
- - i18n: extract py msgs
171
-
172
- Version v13.0.0rc2 (released 2025-06-24)
173
-
174
- - communities-ui: pass serialized `community_ui` to Jinja templates
175
- - config: add Celery beat schedule for updating collections size
176
- - admin: always show users admin panel
177
- - fix: pass severityChecks to CustomFields
178
-
179
- Version v13.0.0rc1 (released 2025-06-13)
180
-
181
- - feat(ui): automatic checks for communities (feature flag)
182
- - feat(ui): FAIR signposting
183
- - feat(ui): collections
184
- - feat(ui): records/requests sharing
185
- - feat(api): multipart file upload over the API
186
- - feat(admin): jobs to wrap task in the administration interface (feature flag)
187
- - feat(admin): compare revisions between different records revisions
188
- - feat(admin): audit logs (feature flag)
189
- - feat(api): sitemap
190
- - i18n: option to create translation bundles for python and javascript
191
- - impr(metadata): thesis handling
192
- - impr(ui): Mathjax usage
193
- - impr(ui): visualization of validation errors
194
- - conf: make it possible to configure DOI as optional
195
- - remove: invenio-admin dependency
196
- - maint: upgrade to flask>=3.0
197
- - maint: upgrade to sqlalchemy>=2.0
198
- - dev: configurable use of new tools: uv, rspack, pnpm
104
+ Version v14.0.0b0.dev2 (released 2025-08-08)
105
+
106
+ - fix(views): use correct community value
107
+ * After the change in 33f1b0d2, values passed to the UI or used for
108
+ accessing UI-related attributes (e.g. the "theme"), must come from
109
+ the community UI-serialized value instead of the service result item.
110
+ - fix(pages): add community base template as a valid option
111
+ - feat(fixtures): allow specifying `template_name` in page fixtures
112
+ - ui: refactor record injecting in JS components
113
+ - inject only record links in citations cmps
114
+ - remove dependency between citations and communities cmps which
115
+ they were sharing the same record injection
116
+ - fix(deposits): pass missing community_ui to community theme templates
117
+ * also introduce more explicit distinctions between community and
118
+ community_ui variables
119
+ - UI: set order of entries and rename category to deposits
120
+ - UI: make external resources section consistent with details
121
+ - UI: make rights section consistent with details
122
+
123
+ Version v14.0.0b0.dev1 (released 2025-08-01)
124
+
125
+ - setup: bump invenio-communities and invenio-rdm-records
126
+ - theme: add search overrides for reviewers search results
127
+ - requests: add request action_accept permissions to UI
128
+ - theme: update package-lock.json for compiling catalog for frontend tests
199
129
 
200
130
  Version v13.0.0b4.dev2 (released 2025-06-13)
201
131