invenio-app-rdm 14.0.0b3.dev2__py2.py3-none-any.whl → 14.0.0b3.dev4__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 (23) hide show
  1. invenio_app_rdm/__init__.py +1 -1
  2. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/communities.html +1 -0
  3. invenio_app_rdm/records_ui/views/records.py +44 -0
  4. invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/community-submission/index.html +8 -1
  5. invenio_app_rdm/requests_ui/views/requests.py +6 -2
  6. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/CopyButton.js +2 -2
  7. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/CommunitiesManagement.js +8 -0
  8. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/CommunitiesManagementDropdown.js +1 -1
  9. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ManageDefaultBrandingAction/ManageDefaultBrandingAction.js +3 -3
  10. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesList.js +68 -43
  11. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesListModal.js +4 -0
  12. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesSearch.js +13 -2
  13. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesSearchItem.js +7 -0
  14. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RemoveFromCommunity/RemoveFromCommunityAction.js +1 -1
  15. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/index.js +3 -0
  16. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/button.overrides +7 -0
  17. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/views/feed.overrides +22 -0
  18. {invenio_app_rdm-14.0.0b3.dev2.dist-info → invenio_app_rdm-14.0.0b3.dev4.dist-info}/METADATA +16 -1
  19. {invenio_app_rdm-14.0.0b3.dev2.dist-info → invenio_app_rdm-14.0.0b3.dev4.dist-info}/RECORD +23 -23
  20. {invenio_app_rdm-14.0.0b3.dev2.dist-info → invenio_app_rdm-14.0.0b3.dev4.dist-info}/WHEEL +0 -0
  21. {invenio_app_rdm-14.0.0b3.dev2.dist-info → invenio_app_rdm-14.0.0b3.dev4.dist-info}/entry_points.txt +0 -0
  22. {invenio_app_rdm-14.0.0b3.dev2.dist-info → invenio_app_rdm-14.0.0b3.dev4.dist-info}/licenses/LICENSE +0 -0
  23. {invenio_app_rdm-14.0.0b3.dev2.dist-info → invenio_app_rdm-14.0.0b3.dev4.dist-info}/top_level.txt +0 -0
@@ -17,6 +17,6 @@
17
17
  #
18
18
  # See PEP 0440 for details - https://www.python.org/dev/peps/pep-0440
19
19
 
20
- __version__ = "14.0.0b3.dev2"
20
+ __version__ = "14.0.0b3.dev4"
21
21
 
22
22
  __all__ = ("__version__",)
@@ -9,6 +9,7 @@
9
9
  data-pending-communities-search-config='{{ search_app_rdm_record_requests_config(app_id="InvenioAppRdm.RecordRequests", endpoint=record_ui["links"]["requests"]) | tojson }}'
10
10
  data-permissions='{{ permissions | tojson }}'
11
11
  data-record='{{ record_ui | tojson }}'
12
+ data-record-requests='{{ record_requests | default({}) | tojson }}'
12
13
  class='sidebar-container'
13
14
  >
14
15
 
@@ -15,6 +15,7 @@ from pathlib import Path
15
15
 
16
16
  from flask import abort, current_app, g, redirect, render_template, request, url_for
17
17
  from flask_login import current_user
18
+ from flask_principal import AnonymousIdentity
18
19
  from invenio_base.utils import obj_or_import_string
19
20
  from invenio_communities.communities.resources.serializer import (
20
21
  UICommunityJSONSerializer,
@@ -28,7 +29,10 @@ from invenio_rdm_records.proxies import current_rdm_records
28
29
  from invenio_rdm_records.records.systemfields.access.access_settings import (
29
30
  AccessSettings,
30
31
  )
32
+ from invenio_rdm_records.requests import CommunityInclusion, CommunitySubmission
31
33
  from invenio_rdm_records.resources.serializers import UIJSONSerializer
34
+ from invenio_requests.proxies import current_requests_service
35
+ from invenio_search.api import dsl
32
36
  from invenio_stats.proxies import current_stats
33
37
  from invenio_users_resources.proxies import current_user_resources
34
38
  from marshmallow import ValidationError
@@ -99,6 +103,43 @@ def get_record_community(record):
99
103
  return None, None
100
104
 
101
105
 
106
+ def get_record_requests(record, identity):
107
+ """Return all requests that concern this record.
108
+
109
+ Output: {<Community-UUID>: <Request-UUID>}
110
+ """
111
+ can_review = current_rdm_records.records_service.check_permission(
112
+ identity, "review", record=record._record
113
+ )
114
+ if not can_review:
115
+ return {}
116
+
117
+ if type(identity) is AnonymousIdentity:
118
+ return {} # secret link users do not have permissions to search requests
119
+
120
+ record_requests = current_requests_service.search(
121
+ identity,
122
+ extra_filter=dsl.Q(
123
+ "bool",
124
+ must=[
125
+ dsl.Q("term", **{"topic.record": record["id"]}),
126
+ dsl.Q(
127
+ "terms",
128
+ **{
129
+ "type": [
130
+ CommunityInclusion.type_id,
131
+ CommunitySubmission.type_id,
132
+ ]
133
+ },
134
+ ),
135
+ ],
136
+ ),
137
+ params={"sort": "oldest"},
138
+ )
139
+
140
+ return {r["receiver"]["community"]: r["id"] for r in record_requests}
141
+
142
+
102
143
  class PreviewFile:
103
144
  """Preview file implementation for InvenioRDM.
104
145
 
@@ -238,6 +279,8 @@ def record_detail(
238
279
  )
239
280
  theme = resolved_community_ui.get("theme", {}) if resolved_community else None
240
281
 
282
+ record_requests = get_record_requests(record, g.identity)
283
+
241
284
  return render_community_theme_template(
242
285
  current_app.config.get("APP_RDM_RECORD_LANDING_PAGE_TEMPLATE"),
243
286
  theme=theme,
@@ -267,6 +310,7 @@ def record_detail(
267
310
  is_draft=is_draft,
268
311
  community=resolved_community,
269
312
  community_ui=resolved_community_ui,
313
+ record_requests=record_requests,
270
314
  external_resources=get_external_resources(record),
271
315
  user_avatar=avatar,
272
316
  record_deletion=record_deletion,
@@ -19,8 +19,15 @@
19
19
  {%- block request_header %}
20
20
  {% if is_user_dashboard %}
21
21
  {% set back_button_url = url_for("invenio_app_rdm_users.requests") %}
22
- {% else %}
22
+ {% elif community %}
23
23
  {% set back_button_url = url_for("invenio_communities.communities_requests", pid_value=community.id) %}
24
+ {% else %}
25
+ {#
26
+ if you access from a secret link there is no dashboard or community
27
+ /access/requests/<id>?token=<token>
28
+ back button is not rendered if there is no URL
29
+ #}
30
+ {% set back_button_url = "" %}
24
31
  {% endif %}
25
32
  {% from "invenio_requests/macros/request_header.html" import inclusion_request_header %}
26
33
  {{ inclusion_request_header(
@@ -186,7 +186,9 @@ def user_dashboard_request_view(request, **kwargs):
186
186
  has_record_topic = has_topic and "record" in request["topic"]
187
187
  has_community_topic = has_topic and "community" in request["topic"]
188
188
  is_record_inclusion = request_type == CommunityInclusion.type_id
189
- request_permissions = request.has_permissions_to(["action_accept"])
189
+ request_permissions = request.has_permissions_to(
190
+ ["action_accept", "lock_request", "create_comment"]
191
+ )
190
192
 
191
193
  if has_record_topic:
192
194
  topic = _resolve_topic_record(request)
@@ -290,7 +292,9 @@ def community_dashboard_request_view(request, community, community_ui, **kwargs)
290
292
  permissions = community.has_permissions_to(
291
293
  ["update", "read", "search_requests", "search_invites", "submit_record"]
292
294
  )
293
- request_permissions = request.has_permissions_to(["action_accept"])
295
+ request_permissions = request.has_permissions_to(
296
+ ["action_accept", "lock_request", "create_comment"]
297
+ )
294
298
  # Add request specific permissions so that reviewers can be selected from community curators
295
299
  permissions.update(request_permissions)
296
300
 
@@ -46,7 +46,7 @@ class SimpleCopyButton extends React.Component {
46
46
  SimpleCopyButton.propTypes = {
47
47
  text: PropTypes.string.isRequired,
48
48
  onCopy: PropTypes.func.isRequired,
49
- url: PropTypes.func,
49
+ url: PropTypes.string,
50
50
  hoverState: PropTypes.func,
51
51
  size: PropTypes.string,
52
52
  };
@@ -130,7 +130,7 @@ export class CopyButton extends Component {
130
130
  CopyButton.propTypes = {
131
131
  popUpPosition: PropTypes.string,
132
132
  text: PropTypes.string,
133
- url: PropTypes.func,
133
+ url: PropTypes.string,
134
134
  size: PropTypes.string,
135
135
  };
136
136
 
@@ -93,6 +93,7 @@ export class CommunitiesManagement extends Component {
93
93
  recordUserCommunitySearchConfig,
94
94
  searchConfig,
95
95
  record,
96
+ recordRequests,
96
97
  } = this.props;
97
98
  const { communities, loading, error, manageCommunitiesModalOpen } = this.state;
98
99
  return (
@@ -126,6 +127,7 @@ export class CommunitiesManagement extends Component {
126
127
  loading={loading}
127
128
  maxDisplayedCommunities={MAX_COMMUNITIES}
128
129
  branded={record.parent?.communities?.default}
130
+ recordRequests={recordRequests}
129
131
  />
130
132
  <RecordCommunitiesListModal
131
133
  id="record-communities-list-modal"
@@ -136,6 +138,7 @@ export class CommunitiesManagement extends Component {
136
138
  recordCommunityEndpoint={recordCommunityEndpoint}
137
139
  permissions={permissions}
138
140
  recordParent={record.parent}
141
+ recordRequests={recordRequests}
139
142
  />
140
143
 
141
144
  {!loading && communities?.length > MAX_COMMUNITIES && (
@@ -168,4 +171,9 @@ CommunitiesManagement.propTypes = {
168
171
  userCommunitiesMemberships: PropTypes.object.isRequired,
169
172
  searchConfig: PropTypes.object.isRequired,
170
173
  record: PropTypes.object.isRequired,
174
+ recordRequests: PropTypes.object,
175
+ };
176
+
177
+ CommunitiesManagement.defaultProps = {
178
+ recordRequests: {},
171
179
  };
@@ -173,7 +173,7 @@ export class CommunitiesManagementDropdown extends Component {
173
173
  CommunitiesManagementDropdown.propTypes = {
174
174
  userCommunitiesMemberships: PropTypes.object.isRequired,
175
175
  recordCommunityEndpoint: PropTypes.string.isRequired,
176
- recordCommunitySearchConfig: PropTypes.string.isRequired,
176
+ recordCommunitySearchConfig: PropTypes.object.isRequired,
177
177
  recordUserCommunitySearchConfig: PropTypes.string.isRequired,
178
178
  toggleManageCommunitiesModal: PropTypes.func.isRequired,
179
179
  actionSucceed: PropTypes.func,
@@ -57,7 +57,7 @@ export class ManageDefaultBrandingAction extends Component {
57
57
  <Popup
58
58
  trigger={
59
59
  <Button
60
- size="tiny"
60
+ size="mini"
61
61
  labelPosition="left"
62
62
  icon="paint brush"
63
63
  floated="right"
@@ -81,7 +81,7 @@ export class ManageDefaultBrandingAction extends Component {
81
81
  <Popup
82
82
  trigger={
83
83
  <Button
84
- size="tiny"
84
+ size="mini"
85
85
  labelPosition="left"
86
86
  icon="paint brush"
87
87
  floated="right"
@@ -111,7 +111,7 @@ export class ManageDefaultBrandingAction extends Component {
111
111
  negative
112
112
  floated="right"
113
113
  className="community-branding-error"
114
- size="tiny"
114
+ size="mini"
115
115
  >
116
116
  {error}
117
117
  </Message>
@@ -23,7 +23,8 @@ import {
23
23
 
24
24
  export class RecordCommunitiesList extends Component {
25
25
  render() {
26
- const { communities, loading, error, maxDisplayedCommunities } = this.props;
26
+ const { communities, loading, error, maxDisplayedCommunities, recordRequests } =
27
+ this.props;
27
28
  let Element = null;
28
29
 
29
30
  if (loading) {
@@ -56,49 +57,71 @@ export class RecordCommunitiesList extends Component {
56
57
  } else if (communities?.length > 0) {
57
58
  const communityItems = communities
58
59
  ?.slice(0, maxDisplayedCommunities)
59
- .map((community) => (
60
- <Grid key={community.id}>
61
- <Grid.Row verticalAlign="middle">
62
- <Grid.Column width={2}>
63
- <Image wrapped size="mini" src={community.links.logo} alt="" />
64
- </Grid.Column>
65
- <Grid.Column width={14}>
66
- <Item.Content>
67
- <Item.Header className="ui">
68
- <Header as="a" href={community.links.self_html} size="small">
69
- {community.metadata.title}
70
- {/* Show the icon for communities allowing children, and for subcommunities */}
71
- {(community.children?.allow ||
72
- community.parent !== undefined) && (
73
- <p className="ml-5 display-inline-block">
74
- <Popup
75
- content="Verified community"
76
- trigger={
77
- <Icon
78
- size="small"
79
- color="green"
80
- name="check circle outline"
81
- />
82
- }
83
- position="top center"
84
- />
85
- </p>
60
+ .map((community) => {
61
+ const viewRequest = community.id in recordRequests;
62
+ return (
63
+ <Grid key={community.id}>
64
+ <Grid.Row verticalAlign="middle">
65
+ <Grid.Column width={3}>
66
+ <Image wrapped size="mini" src={community.links.logo} alt="" />
67
+ </Grid.Column>
68
+ <Grid.Column width={13} className="pl-0">
69
+ <Item.Content>
70
+ <Item.Header className="ui">
71
+ <Header as="a" href={community.links.self_html} size="small">
72
+ {community.metadata.title}
73
+ {/* Show the icon for communities allowing children, and for subcommunities */}
74
+ {(community.children?.allow ||
75
+ community.parent !== undefined) && (
76
+ <p className="ml-5 display-inline-block">
77
+ <Popup
78
+ content="Verified community"
79
+ trigger={
80
+ <Icon
81
+ size="small"
82
+ color="green"
83
+ name="check circle outline"
84
+ />
85
+ }
86
+ position="top center"
87
+ />
88
+ </p>
89
+ )}
90
+ </Header>
91
+ {community.parent && (
92
+ <HeaderSubheader>
93
+ {i18next.t("Part of")}{" "}
94
+ <a href={`/communities/${community.parent.slug}`}>
95
+ {i18next.t(community.parent.metadata.title)}
96
+ </a>
97
+ </HeaderSubheader>
86
98
  )}
87
- </Header>
88
- {community.parent && (
89
- <HeaderSubheader>
90
- {i18next.t("Part of")}{" "}
91
- <a href={`/communities/${community.parent.slug}`}>
92
- {i18next.t(community.parent.metadata.title)}
93
- </a>
94
- </HeaderSubheader>
95
- )}
96
- </Item.Header>
97
- </Item.Content>
98
- </Grid.Column>
99
- </Grid.Row>
100
- </Grid>
101
- ));
99
+ {viewRequest && (
100
+ <div>
101
+ <small>
102
+ <b>
103
+ <a
104
+ // building request link as the self_html of the request is
105
+ // /requests/<uuid> which doesn't resolve as missing
106
+ // /communities/ or /me/. We prefer /communities/ here
107
+ href={`${community.links.self_html}requests/${
108
+ recordRequests[community.id]
109
+ }`}
110
+ >
111
+ <Icon name="discussions" className="mr-5" />
112
+ {i18next.t("View comments")}
113
+ </a>
114
+ </b>
115
+ </small>
116
+ </div>
117
+ )}
118
+ </Item.Header>
119
+ </Item.Content>
120
+ </Grid.Column>
121
+ </Grid.Row>
122
+ </Grid>
123
+ );
124
+ });
102
125
 
103
126
  Element = (
104
127
  <>
@@ -116,10 +139,12 @@ RecordCommunitiesList.propTypes = {
116
139
  communities: PropTypes.array,
117
140
  loading: PropTypes.bool,
118
141
  error: PropTypes.string,
142
+ recordRequests: PropTypes.object,
119
143
  };
120
144
 
121
145
  RecordCommunitiesList.defaultProps = {
122
146
  communities: undefined,
123
147
  loading: false,
124
148
  error: "",
149
+ recordRequests: {},
125
150
  };
@@ -32,6 +32,7 @@ export class RecordCommunitiesListModal extends Component {
32
32
  handleOnClose,
33
33
  trigger,
34
34
  permissions,
35
+ recordRequests,
35
36
  } = this.props;
36
37
  const { recordParent } = this.state;
37
38
 
@@ -59,6 +60,7 @@ export class RecordCommunitiesListModal extends Component {
59
60
  permissions={permissions}
60
61
  recordParent={recordParent}
61
62
  updateRecordCallback={this.handleRecordUpdate}
63
+ recordRequests={recordRequests}
62
64
  />
63
65
 
64
66
  <Modal.Actions>
@@ -78,9 +80,11 @@ RecordCommunitiesListModal.propTypes = {
78
80
  handleOnOpen: PropTypes.func.isRequired,
79
81
  permissions: PropTypes.object.isRequired,
80
82
  recordParent: PropTypes.object.isRequired,
83
+ recordRequests: PropTypes.object,
81
84
  };
82
85
 
83
86
  RecordCommunitiesListModal.defaultProps = {
84
87
  modalOpen: false,
85
88
  trigger: undefined,
89
+ recordRequests: {},
86
90
  };
@@ -30,8 +30,13 @@ export class RecordCommunitiesSearch extends Component {
30
30
  };
31
31
 
32
32
  render() {
33
- const { recordCommunityEndpoint, permissions, recordParent, updateRecordCallback } =
34
- this.props;
33
+ const {
34
+ recordCommunityEndpoint,
35
+ permissions,
36
+ recordParent,
37
+ updateRecordCallback,
38
+ recordRequests,
39
+ } = this.props;
35
40
  const overriddenComponents = {
36
41
  [`${appName}.ResultsList.item`]: parametrize(RecordCommunitiesSearchItem, {
37
42
  recordCommunityEndpoint: recordCommunityEndpoint,
@@ -39,6 +44,7 @@ export class RecordCommunitiesSearch extends Component {
39
44
  updateRecordCallback: updateRecordCallback,
40
45
  permissions: permissions,
41
46
  recordParent: recordParent,
47
+ recordRequests: recordRequests,
42
48
  }),
43
49
  };
44
50
 
@@ -95,4 +101,9 @@ RecordCommunitiesSearch.propTypes = {
95
101
  updateRecordCallback: PropTypes.func.isRequired,
96
102
  permissions: PropTypes.object.isRequired,
97
103
  recordParent: PropTypes.object.isRequired,
104
+ recordRequests: PropTypes.object,
105
+ };
106
+
107
+ RecordCommunitiesSearch.defaultProps = {
108
+ recordRequests: {},
98
109
  };
@@ -13,6 +13,7 @@ export class RecordCommunitiesSearchItem extends Component {
13
13
  recordCommunityEndpoint,
14
14
  recordParent,
15
15
  permissions: { can_manage: canManage },
16
+ recordRequests,
16
17
  } = this.props;
17
18
 
18
19
  const isCommunityDefault = recordParent?.communities?.default === result?.id;
@@ -36,6 +37,7 @@ export class RecordCommunitiesSearchItem extends Component {
36
37
  actions={actions}
37
38
  result={result}
38
39
  isCommunityDefault={isCommunityDefault}
40
+ recordRequests={recordRequests}
39
41
  />
40
42
  );
41
43
  }
@@ -48,4 +50,9 @@ RecordCommunitiesSearchItem.propTypes = {
48
50
  updateRecordCallback: PropTypes.func.isRequired,
49
51
  permissions: PropTypes.object.isRequired,
50
52
  recordParent: PropTypes.object.isRequired,
53
+ recordRequests: PropTypes.object,
54
+ };
55
+
56
+ RecordCommunitiesSearchItem.defaultProps = {
57
+ recordRequests: {},
51
58
  };
@@ -91,7 +91,7 @@ export class RemoveFromCommunityAction extends Component {
91
91
  return (
92
92
  <>
93
93
  <Button
94
- size="tiny"
94
+ size="mini"
95
95
  negative
96
96
  labelPosition="left"
97
97
  icon="trash"
@@ -101,6 +101,7 @@ if (sidebarCommunitiesManageDiv) {
101
101
  );
102
102
  const permissions = JSON.parse(sidebarCommunitiesManageDiv.dataset.permissions);
103
103
  const record = JSON.parse(sidebarCommunitiesManageDiv.dataset.record);
104
+ const recordRequests = JSON.parse(sidebarCommunitiesManageDiv.dataset.recordRequests);
104
105
  ReactDOM.render(
105
106
  <OverridableContext.Provider value={overriddenComponents}>
106
107
  <Overridable
@@ -112,6 +113,7 @@ if (sidebarCommunitiesManageDiv) {
112
113
  permissions={permissions}
113
114
  searchConfig={pendingCommunitiesSearchConfig}
114
115
  record={record}
116
+ recordRequests={recordRequests}
115
117
  >
116
118
  <CommunitiesManagement
117
119
  userCommunitiesMemberships={userCommunitiesMemberships}
@@ -121,6 +123,7 @@ if (sidebarCommunitiesManageDiv) {
121
123
  permissions={permissions}
122
124
  searchConfig={pendingCommunitiesSearchConfig}
123
125
  record={record}
126
+ recordRequests={recordRequests}
124
127
  />
125
128
  </Overridable>
126
129
  </OverridableContext.Provider>,
@@ -76,3 +76,10 @@
76
76
  }
77
77
  }
78
78
  }
79
+
80
+ /* lock request */
81
+ .ui.button.request-lock-button {
82
+ text-align: left;
83
+ background-color: transparent;
84
+ padding-left: 0;
85
+ }
@@ -2,6 +2,10 @@
2
2
 
3
3
  .requests-event-item {
4
4
  box-sizing: border-box;
5
+
6
+ &.selected .event, &:target .event {
7
+ outline: 2px solid @primaryColor;
8
+ }
5
9
  }
6
10
 
7
11
  .requests-event-container {
@@ -78,6 +82,16 @@
78
82
 
79
83
  .text {
80
84
  width: auto;
85
+
86
+ &.extra blockquote {
87
+ margin-left: 0.5rem;
88
+ padding-left: 0.75rem;
89
+ color: @mutedTextColor;
90
+
91
+ & > blockquote {
92
+ margin-left: 0;
93
+ }
94
+ }
81
95
  }
82
96
 
83
97
  &.requests-action-event {
@@ -160,6 +174,7 @@
160
174
  border-left: @extraTextPointer;
161
175
  font-size: @extraTextFontSize;
162
176
  line-height: @extraTextLineHeight;
177
+
163
178
  }
164
179
 
165
180
  /*--------------
@@ -233,4 +248,11 @@
233
248
  }
234
249
  }
235
250
 
251
+ .ui.popup.requests-event-body-popup {
252
+ padding: 0;
253
+ border: none;
236
254
 
255
+ .ui.button {
256
+ margin: 0;
257
+ }
258
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: invenio-app-rdm
3
- Version: 14.0.0b3.dev2
3
+ Version: 14.0.0b3.dev4
4
4
  Summary: Invenio Research Data Management.
5
5
  Home-page: https://github.com/inveniosoftware/invenio-app-rdm
6
6
  Author: CERN
@@ -101,6 +101,21 @@ https://inveniordm.docs.cern.ch
101
101
  Changes
102
102
  =======
103
103
 
104
+ Version v14.0.0b3.dev4 (released 2025-12-08)
105
+
106
+ - fix: ensure that pages render if accessed via secret link
107
+ - UI: change button icon and text
108
+ - chore: drill recordRequests into the modal
109
+ - fix: restrict to only community sub/inc reqs
110
+ - frontend: add direct link to request if user has access
111
+ - feat(css): styles for quote replies
112
+ - fix(requests_ui): Inject lock_request and create_comment permissions
113
+ - fix: correct types
114
+
115
+ Version v14.0.0b3.dev3 (released 2025-11-21)
116
+
117
+ - feat(css): request comment deep links
118
+
104
119
  Version v14.0.0b3.dev2 (released 2025-11-21)
105
120
 
106
121
  - fix: revert mapping.js symlink
@@ -1,4 +1,4 @@
1
- invenio_app_rdm/__init__.py,sha256=SDbca7QR87fVoWcdzSB1HkMhsF0cwluqvbDUhZjUW-s,704
1
+ invenio_app_rdm/__init__.py,sha256=k4QghfN9paNzfK0Ma_8sbPtJvvDrJlK7_Xp379LAEJ4,704
2
2
  invenio_app_rdm/cli.py,sha256=G6QqNU2W6n6ICtTMnpeKFXIsdorncDmVXwwwsGH5F2k,2746
3
3
  invenio_app_rdm/config.py,sha256=pigyCXGUMru2krv-ZJ15iosbm3UBk9dmiAQauYvzWbk,53632
4
4
  invenio_app_rdm/ext.py,sha256=K7syn5CU5If7yOclFeNOCZX_u5q6VB7NJEQVm41mlng,5286
@@ -70,7 +70,7 @@ invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details
70
70
  invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/stats.html,sha256=T-J48dh0mtIZf1LmaEKjS4ki5sv5kxv38lSkU45Xz1g,4373
71
71
  invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/subjects.html,sha256=bYER2zAbf7XtM5sMXNzO1GwaLHpZQbdhhMZiMP5yRwU,1518
72
72
  invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/citations.html,sha256=5Sdg_gwGOgm0qLRv4-CUmDNx7PYlOsa5XPGjDdx7k20,258
73
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/communities.html,sha256=VsAa3NxRPHVOD-5hyMhIcIhK0P9Y2f0X1k4mr4Ghb0c,1644
73
+ invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/communities.html,sha256=2ZvfvISLRHFQRBGvNnDGIoClwjx9s8TEJPF3yUQl0lU,1714
74
74
  invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/details.html,sha256=J5z4zxhSZDcKE2ZEdyhcRMIKKVCyKGE6DTeGysijwRU,2123
75
75
  invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/export.html,sha256=RfPvs17eTUkWfWA6o9jRWqjUeDyTKL0XyreGR0UXLt4,1404
76
76
  invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/external_resources.html,sha256=bE1wqTkQdJkBHpO_9Rr2TZcf7CrRChdCjzcr0dK9UdE,1944
@@ -92,7 +92,7 @@ invenio_app_rdm/records_ui/views/__init__.py,sha256=9DaDls04IQv7fYttDjLofIWGsRRj
92
92
  invenio_app_rdm/records_ui/views/decorators.py,sha256=t4Mt7bkidwq3tKE-3sMUSLIR7GxaOewwAng3s9bAMz0,16347
93
93
  invenio_app_rdm/records_ui/views/deposits.py,sha256=vckL56fcyOFcrQ0YSxPtx-jk7AAwzKQrxjIrXcIVSyQ,24636
94
94
  invenio_app_rdm/records_ui/views/filters.py,sha256=dtAjJ5NmPvxEYZJeldW5oxrj0D0AYXobNelii57Tfdo,7455
95
- invenio_app_rdm/records_ui/views/records.py,sha256=H1lZaKzr1QdX8QKvlm_-p4lPXMy6nQqHcB4NIlSYyAQ,16785
95
+ invenio_app_rdm/records_ui/views/records.py,sha256=NAaIypSCr4Wrjahc4y7VRVXmeg2HTfLwl_MR9LW1ybQ,18201
96
96
  invenio_app_rdm/redirector/__init__.py,sha256=AYCTGmfbmkHW3YJXMqXlWBXcBrUsta-QmL9ULX2bjwA,243
97
97
  invenio_app_rdm/redirector/resource.py,sha256=XuH6ZK0HVE5LdXoorlm8aI3deizvnZ5gFa9d1ihYosk,3312
98
98
  invenio_app_rdm/redirector/views.py,sha256=CTJ3EGEFKfc0lFwNb9pwH7MbMLiqaWnF8LA3xGIwahc,563
@@ -100,7 +100,7 @@ invenio_app_rdm/requests_ui/__init__.py,sha256=wc2y0djrYmH9_vUq39P0IWW6R63FVXfKH
100
100
  invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/community-inclusion/index.html,sha256=wcJC7ZG4hznfVEEe_ydmsb1UNNTIWvUbLFhY35k-VQs,389
101
101
  invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/community-invitation/community_dashboard.html,sha256=3soWIke5l4eRAmZw2UeW6wu-AcT6ms4K_9U6DIYxMmw,1153
102
102
  invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/community-invitation/user_dashboard.html,sha256=ppUbbIROa_zED4WFTB6qqRbbJxewzjc6wKDzKhVglak,778
103
- invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/community-submission/index.html,sha256=nJIHevyCGQua_H67IV0mnFiQjNjcQYsZTieQgvP48JY,3452
103
+ invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/community-submission/index.html,sha256=8MiOmcyWmfz6PnsjhA0gd7AB2_vb_H62yvi6ZQas9qM,3703
104
104
  invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/file-modification/index.html,sha256=4TruFY1vSFz5bJAdsRHhEe4xTS4sgb_fq_HOBKUYz_o,2492
105
105
  invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/guest-access-request/index.html,sha256=RXtoMrLFvEGHuy2YgoyCkpjEJmUVehFbmXvX1_7qGtY,1978
106
106
  invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/macros/request_header.html,sha256=Iado6BmcFFswmvQ9IrdtgSyAzJr5AIT2BP2IDg-B-8U,2695
@@ -109,7 +109,7 @@ invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/subcommunity/
109
109
  invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/subcommunity-invitation/index.html,sha256=347Saf8Fv78uevCbK2nFiOtNFUT0QyZSZS7lgoNzHdQ,1448
110
110
  invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/user-access-request/index.html,sha256=ltSP9sYPnpmCKMDYpZYU25Wxr3Dfqe2RNDxm6bVjX_I,1779
111
111
  invenio_app_rdm/requests_ui/views/__init__.py,sha256=7QiAyRq8Eu84IXwjzxK63vNeTZnowZ5P85xtw7XgRjs,397
112
- invenio_app_rdm/requests_ui/views/requests.py,sha256=V38eXliWOVXbAzbDTvOuvifk6iyURXn1OxMgCcEN6uE,15273
112
+ invenio_app_rdm/requests_ui/views/requests.py,sha256=dMimAd5AldgLuCPBzZ7LCAAwghzbEo-mVHC4dquJZCA,15369
113
113
  invenio_app_rdm/requests_ui/views/ui.py,sha256=DBysYQa__gOCg-pikO6HmoVLmRmMAVWeTBiYhPa7PmA,2359
114
114
  invenio_app_rdm/theme/__init__.py,sha256=QbkxNjjOmGKRlie96HfTXgnFeVQjOX0GdiZnHP7pIhs,277
115
115
  invenio_app_rdm/theme/views.py,sha256=mrcxejY9PlYwEqh8f0ojKX4CtmD9jz4f9rU-5aLZszU,4457
@@ -175,7 +175,7 @@ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/communityRecordsSear
175
175
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/communityRecordsSearch/components.js,sha256=k26jDWt0BWIrhnuGF-t0iNmudXdniO8YPkquF8VK7gk,271
176
176
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/communityRecordsSearch/index.js,sha256=8Ev-tdRIWl2HhB7Y8YR30dXK-A4ePyShOsb9A9X-GhQ,2193
177
177
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/CompactStats.js,sha256=_QNFYvYQJQgAjAWidxxGTX5YxAGhIUvZnOMxAKBnYxA,1374
178
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/CopyButton.js,sha256=uBcEXzGJYZ7dPIdQBxPqxLvwP6Z5QVg1x-YRncRDW3k,3550
178
+ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/CopyButton.js,sha256=tIWybsEB9V4qCwX0Yra8PDFIj-bEYvUistR_dcZR7IU,3554
179
179
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/DisplayPartOfCommunities.js,sha256=bSmhuwSWk4CW80mqa4ZZbjfa-_NsiJ1IxQ9veDy6sAM,2751
180
180
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/DisplayVerifiedCommunity.js,sha256=m3rT8jJ3440ZX22zZog8bHatWltYXwvmw_tu6tJUM9k,1506
181
181
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/FileModificationUntil.js,sha256=3GtEW_IaP6TBKzMBBX1eYD-DuJbM31ps-dbjdgpLfc8,1254
@@ -190,28 +190,28 @@ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/index.js,sha
190
190
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/frontpage/RecordsList.js,sha256=PkLpiCl7sNSlQoCo7xxZ_H6QvWqK_TydoseIiKvtuMw,4176
191
191
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/frontpage/index.js,sha256=X0tsSvLwGPzSFQEf4J1zPZbFRCiYeJq5CnEXr_J5LsU,900
192
192
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/AccessRequestForm.js,sha256=5GRlVkJQpwrY9wk4KI5Tmqmll2d3cEls8isJZjvoA9Q,8798
193
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/CommunitiesManagement.js,sha256=dG0-R9Ddb-RK8mxnfUYFifyx5R2Pzgqj0mvPq_8Zwwo,5712
194
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/CommunitiesManagementDropdown.js,sha256=qocsinvtbWEqAi8kgqNqx7c0X-_evRmCz2bPTaMQlcI,5953
193
+ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/CommunitiesManagement.js,sha256=V04OaFLy0_AgzZgtaNvEYvyZrXuflIOejlS6io5ZXQY,5927
194
+ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/CommunitiesManagementDropdown.js,sha256=1XXvWFJmpZl4LpqKXmvWtfjNPo0-0TRYTrKZDaX4fZg,5953
195
195
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/EditButton.js,sha256=WJ5lNpbPcd_Kymn_TYklSTfkCJRPhpFeT6cWcR48mSQ,1452
196
196
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ExportDropdown.js,sha256=fDqs5sel6Zo1oPkJT1XbR3dtHXvvgVuDhe_sg_-D690,1969
197
197
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ManageButton.js,sha256=Sf5mBYLq3ydpb10cwBFbqUGqn0hsQ3aap3ujkdMTB9g,3872
198
198
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCitationField.js,sha256=XYfXsQejNeC1R0spndn0qDrqvz6w3bj5UlPEIgT4U24,4757
199
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesList.js,sha256=wORVCOjlyX2mIsDU9J0MwWFE4Zw9CCL5inWpV7m8lsM,4004
199
+ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesList.js,sha256=w9iPhdQWJDpc9eXUFfUMqFp1GOjLHriAuVzAgIysHTs,5217
200
200
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordManagement.js,sha256=cViV1fQ_1xvd_JUV3toffX-nuWgkKiy7WGtZcg5tV5Y,4297
201
201
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordVersionsList.js,sha256=ZJaD4fW2z00tcektXVz0eLXu6oGLLW-NUjV86neuDjM,7141
202
202
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/access.js,sha256=FVcpKl22zMi1GssbLZAj1pO98c6Em_wg_yBIdfBJor0,938
203
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/index.js,sha256=ETWFzdM61Uy94bUwT2uzjM11aIk6Lt2MOzxmPswrjoA,5177
203
+ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/index.js,sha256=qFNRHzkO0lHv8sQGZchXQgrNKl-IcGqPAV-j4-E7NxE,5348
204
204
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/theme.js,sha256=TieqbbmJrxVKlkD5Kvsw6F-sbpucxSV9dv30Y6pXKjI,3144
205
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ManageDefaultBrandingAction/ManageDefaultBrandingAction.js,sha256=qNWpe3KyZ8NDHKocG6XKJzb6w3fIQk3muWN126pUo9w,3529
205
+ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ManageDefaultBrandingAction/ManageDefaultBrandingAction.js,sha256=ti3NaV7kZ0cVl82Aj3l4b7cLjDiKmI2qGsjWEOKxLU0,3529
206
206
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/PendingCommunitiesModal/PendingCommunitiesModal.js,sha256=G9OwLxKqX73w_7D1k7BHOzMeLmokowMfJQg5Km7J8RA,1797
207
207
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/PendingCommunitiesModal/PendingCommunitiesSearch.js,sha256=8kiiICVaJ0m2K_5cPbiHo8tN8Q_AweSmlBIkx-aJ-dA,2753
208
208
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/PendingCommunitiesModal/PendingCommunityRequestItem.js,sha256=dQH-Ec5btlFoXPf110IoswM_RYy19ia2onJr_iC5P78,1080
209
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesListModal.js,sha256=2YsFRDs2eyLtm46jz91x17jVU2Y72i7e7OFas-2WsSo,2465
210
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesSearch.js,sha256=bNkexo7L1fz5rzaxoZCM4R9GRdnZcdTRr-djR4k2t5o,3079
211
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesSearchItem.js,sha256=7Mvz7C1_S_MfsJoN8-iyAaw9Y7aBPwBa6MH6O0gWhuw,1667
209
+ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesListModal.js,sha256=cy5BePvS5Pl-SLwupD2-b-BSGmDBMFAVkD7DDTcjqiA,2587
210
+ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesSearch.js,sha256=SAXLukTf_fiD7N6O7-YYEZU08z7_rqOtpZQY3dSDqZM,3267
211
+ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesSearchItem.js,sha256=zCjCiWz0HBxu4QFJ5cF8NJIU7PTVyf1r9omogvEUbGs,1836
212
212
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/index.js,sha256=lf_UCmT3y3IPc47X6KESV4RGhTbjdXX8bQrn8ngJbqc,221
213
213
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitySubmission/RecordCommunitySubmissionModal.js,sha256=LM1RACmC3PS_o4txek-czaLvWD8OgjOM76aVK5jk8oE,5117
214
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RemoveFromCommunity/RemoveFromCommunityAction.js,sha256=O5aHzH-oQsagurnU0e4pFc4B_4BRTbPuk0Ifk_T_WFw,5859
214
+ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RemoveFromCommunity/RemoveFromCommunityAction.js,sha256=EKfguFnluLjw4Pdm4t4Xm_r0ZNPj_Xij8gmNyfmpjCk,5859
215
215
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/ShareButton.js,sha256=TKa1b_NUGD-DUqrqvQE2SwDI6Gr-HP246ymhDvQtj3A,1785
216
216
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/ShareModal.js,sha256=pmHn5MQnQ41cuHt6iUWxloimkpZILzm4-TE_eqgwcuw,7249
217
217
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessLinks/AccessDropdown.js,sha256=0-Fune91rH-7B57kYvZxNlIemg-xLgxZ5LIbHGJY2PE,3068
@@ -257,7 +257,7 @@ invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/
257
257
  invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/message.variables,sha256=mDRGjqL2avCh326NEin4h0z7bTP9QiE0nQxV_c9X40k,224
258
258
  invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/table.overrides,sha256=x26vg15BUVB4OjSbIol0EGY2XF9NlPDMvfRIsYl-ots,4104
259
259
  invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/table.variables,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
260
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/button.overrides,sha256=QestyL7BrYQVskNiPIk3YEJKXVzJJLn4UbNnTV7N-aA,1388
260
+ invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/button.overrides,sha256=SlAYdbQF6awibEurtsB5s74XHo1hAqYWRdJmw_tFa9s,1515
261
261
  invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/button.variables,sha256=rxOygY7OLVGLcY9n1Ny-qI-cC6sFqtYMmDS1stzxszw,170
262
262
  invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/container.overrides,sha256=KYUGvQqDLcgUUCiUreJ2eVXN85B800H3pZV3O2sXVpI,2826
263
263
  invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/container.variables,sha256=pq_DrgmlkubeyqvRYhhv7LXbWYJ8q_hbTOWVpDxG6A8,237
@@ -295,7 +295,7 @@ invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/tran
295
295
  invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/transition.variables,sha256=LxC404-t4GRykg6qSUf4KDoDX9OgRvVlOp9LhVtTj3o,139
296
296
  invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/views/card.overrides,sha256=QKS9FOgRu0wFAcRzSq_HTt1lxiEBsXuq5xBwJB2nr7M,3348
297
297
  invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/views/card.variables,sha256=3KceqH6Y0rQsbWgH3IPuXHE9ThE6cEygSrOsW5XcWto,83
298
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/views/feed.overrides,sha256=UrqZnqS3ttlVtpUEmcHaVctQAyEmCWP8Cn0OBs4_LTo,4636
298
+ invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/views/feed.overrides,sha256=0n01Fs7lMiJBQ05EUAjYXk9mYvDlpIGVbStXG2x70OE,5019
299
299
  invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/views/feed.variables,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
300
300
  invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/views/item.overrides,sha256=m8gkMU_yKP9YIbVQ-A9eZIAj7dTmz0R25aZ5nWOYuCE,3059
301
301
  invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/views/item.variables,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -498,9 +498,9 @@ invenio_app_rdm/users_ui/views/__init__.py,sha256=SMdY2NJj9GICfr3Xuok7qdNYVtA2bJ
498
498
  invenio_app_rdm/users_ui/views/dashboard.py,sha256=iUn2PrODAwb8ugmMosJKAjPhUzjCiWiAWoXQr9RUFuc,1793
499
499
  invenio_app_rdm/users_ui/views/ui.py,sha256=W_eXM8dLVIrNHQB2UEh37C9BYoHauft6RyvcDNFHovA,1742
500
500
  invenio_app_rdm/utils/files.py,sha256=CruDyO2gDVadSlWEJD-WHpWHeOQ0juh-Ei9jz3D9yjc,3923
501
- invenio_app_rdm-14.0.0b3.dev2.dist-info/licenses/LICENSE,sha256=AZXFHRrZa5s4m9DV7zZr4bPGTMUvcEPCodeV_AmFI8k,1204
502
- invenio_app_rdm-14.0.0b3.dev2.dist-info/METADATA,sha256=TTlOQKxyUHk5f2xFpERIzW_AN2icuVuqdaOE4bur3q8,20888
503
- invenio_app_rdm-14.0.0b3.dev2.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
504
- invenio_app_rdm-14.0.0b3.dev2.dist-info/entry_points.txt,sha256=MwtT1SN5saWOgTYhNb5y0YGA9VGAi0kXN0cykIfsb4U,2405
505
- invenio_app_rdm-14.0.0b3.dev2.dist-info/top_level.txt,sha256=quZejDUw2vLfKQboNIuVLJ9fxZifdnCT_s2PNf1dfmk,16
506
- invenio_app_rdm-14.0.0b3.dev2.dist-info/RECORD,,
501
+ invenio_app_rdm-14.0.0b3.dev4.dist-info/licenses/LICENSE,sha256=AZXFHRrZa5s4m9DV7zZr4bPGTMUvcEPCodeV_AmFI8k,1204
502
+ invenio_app_rdm-14.0.0b3.dev4.dist-info/METADATA,sha256=oDk83L3-6qmOcrinCqkl0jDGks3MW6nObUl41VpM2P4,21396
503
+ invenio_app_rdm-14.0.0b3.dev4.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
504
+ invenio_app_rdm-14.0.0b3.dev4.dist-info/entry_points.txt,sha256=MwtT1SN5saWOgTYhNb5y0YGA9VGAi0kXN0cykIfsb4U,2405
505
+ invenio_app_rdm-14.0.0b3.dev4.dist-info/top_level.txt,sha256=quZejDUw2vLfKQboNIuVLJ9fxZifdnCT_s2PNf1dfmk,16
506
+ invenio_app_rdm-14.0.0b3.dev4.dist-info/RECORD,,