Skip to content

Commit d1c48cc

Browse files
committed
fix: templates for guest and user access
1 parent 55140f4 commit d1c48cc

File tree

4 files changed

+105
-112
lines changed
  • invenio_app_rdm

4 files changed

+105
-112
lines changed

invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/guest-access-request/index.html

Lines changed: 43 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -7,60 +7,54 @@
77
under the terms of the MIT License; see LICENSE file for more details.
88
#}
99

10-
{# allows to have conversation/record tab #}
10+
{#
11+
Renders the request details page for guest access requests.
12+
Extends community-submission to have conversation/record tabs.
13+
#}
14+
1115
{% extends "invenio_requests/community-submission/index.html" %}
1216

1317
{% set title = _("Access request") %}
14-
15-
{% from "invenio_requests/macros/request_header.html" import inclusion_request_header %}
16-
17-
{% block page_body %}
18-
{%- if not (current_user and current_user.is_authenticated) %}
19-
<div class=rel-mt-2>
20-
{{ super.super() }}
18+
{% set active_dashboard_menu_item = 'requests' %}
19+
20+
{%- block request_header %}
21+
{% from "invenio_requests/macros/request_header.html" import inclusion_request_header %}
22+
23+
{%- if current_user and current_user.is_authenticated %}
24+
{%- set back_button_url = url_for("invenio_app_rdm_users.requests") %}
25+
{{ inclusion_request_header(
26+
request=invenio_request,
27+
record=record,
28+
accepted=request_is_accepted,
29+
back_button_url=back_button_url,
30+
back_button_text=_("Back to requests")
31+
) }}
32+
33+
<div class="rel-mt-1">
34+
<p>
35+
<strong>{{ _("Access level:") }}</strong>
36+
{{ invenio_request.payload.permission }}
37+
</p>
2138
</div>
22-
{% else %}
23-
{{ super.super() }}
24-
{% endif %}
25-
{%- block request_body %}
26-
<div class="ui container request-detail-page">
27-
28-
{%- block request_header %}
29-
{%- if current_user and current_user.is_authenticated %}
30-
{# only display the header for the receiver #}
31-
{%- set back_button_url = url_for("invenio_app_rdm_users.requests") %}
32-
{{ inclusion_request_header(
33-
back_button_url=back_button_url,
34-
back_button_text=_("Back to requests"),
35-
request=invenio_request,
36-
accepted=request_is_accepted
37-
) }}
38-
39-
{%- else %}
40-
<div class="ui grid rel-mt-2">
41-
<div class="twelve wide column">
42-
<strong>Access level:</strong>
43-
{{ invenio_request.payload.permission }}
4439

45-
</div>
46-
<div id="request-actions" class="four wide column text-align-right">
47-
</div>
48-
</div>
49-
{%- endif %}
50-
51-
<div class="ui container rel-mt-2">
52-
{%- block user_dashboard_body %}
53-
{%- endblock user_dashboard_body %}
54-
</div>
55-
56-
<div class="ui divider"></div>
40+
{%- else %}
41+
<div class="computer-flex-header rel-mt-2">
42+
<div class="mb-10">
43+
<h2 class="ui header request-header">{{ invenio_request.title }}</h2>
44+
</div>
45+
<div id="request-actions" class="flex align-items-start ml-auto mb-10">
46+
</div>
47+
</div>
5748

58-
{%- endblock request_header %}
49+
<div class="rel-mt-1">
50+
<p>
51+
<strong>{{ _("Access level:") }}</strong>
52+
{{ invenio_request.payload.permission }}
53+
</p>
54+
</div>
55+
{%- endif %}
5956

60-
{%- block request_timeline %}
61-
{{ super() }}
62-
{%- endblock request_timeline %}
57+
{%- block user_dashboard_body %}
58+
{%- endblock user_dashboard_body %}
6359

64-
</div>
65-
{% endblock request_body %}
66-
{% endblock page_body %}
60+
{%- endblock request_header %}

invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/user-access-request/index.html

Lines changed: 46 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -6,54 +6,55 @@
66
Invenio is free software; you can redistribute it and/or modify it
77
under the terms of the MIT License; see LICENSE file for more details.
88
#}
9-
{% set title = invenio_request.title %}
9+
1010
{% extends "invenio_requests/details/index.html" %}
11-
{% from "invenio_requests/macros/request_header.html" import inclusion_request_header %}
1211

13-
{% block page_body %}
14-
{%- if not (current_user and current_user.is_authenticated) %}
15-
<div class=rel-mt-2>
16-
{{ super.super() }}
17-
</div>
18-
{% else %}
19-
{{ super.super() }}
20-
{% endif %}
21-
{%- block request_body %}
22-
<div class="ui container request-detail-page">
23-
24-
{% block request_header %}
25-
{% set back_button_url = url_for("invenio_app_rdm_users.requests") %}
26-
{{ inclusion_request_header(
27-
back_button_url=back_button_url,
28-
back_button_text=_("Back to requests"),
12+
{% set active_dashboard_menu_item = 'requests' %}
13+
14+
{%- block request_header %}
15+
{% set back_button_url = url_for("invenio_app_rdm_users.requests") %}
16+
{% from "invenio_requests/macros/request_header.html" import inclusion_request_header %}
17+
{{ inclusion_request_header(
2918
request=invenio_request,
30-
accepted=request_is_accepted
19+
record=record,
20+
accepted=request_is_accepted,
21+
back_button_url=back_button_url,
22+
back_button_text=_("Back to requests")
3123
) }}
3224

33-
<div>
34-
<p>
35-
<strong>Access level:</strong>
36-
{{ invenio_request.payload.permission }}
37-
</p>
38-
<p>
39-
<strong>Record:</strong>
40-
<a
41-
href="{{ url_for('invenio_app_rdm_records.record_detail', pid_value=invenio_request.topic.record) }}"
42-
rel="noopener noreferrer" target="_blank"
43-
title="{{ _('Opens in new tab') }}"
44-
>
45-
{{ invenio_request.topic.record }}
46-
</a>
47-
</p>
48-
</div>
49-
{% endblock %}
50-
{%- block request_timeline %}
51-
{{ super() }}
52-
{%- endblock request_timeline %}
53-
25+
<div class="rel-mt-1">
26+
<p>
27+
<strong>{{ _("Access level:") }}</strong>
28+
{{ invenio_request.payload.permission }}
29+
</p>
30+
<p>
31+
<strong>{{ _("Record:") }}</strong>
32+
<a
33+
href="{{ url_for('invenio_app_rdm_records.record_detail', pid_value=invenio_request.topic.record) }}"
34+
rel="noopener noreferrer" target="_blank"
35+
title="{{ _('Opens in new tab') }}"
36+
>
37+
{{ invenio_request.topic.record }}
38+
</a>
39+
</p>
40+
</div>
41+
42+
<div class="ui divider"></div>
43+
{%- endblock request_header %}
44+
45+
{% block request_timeline %}
46+
<div
47+
class="ui container rdm-tab-container fluid rel-pt-2 ml-0-mobile mr-0-mobile"
48+
id="request-user-access-tab-container"
49+
>
50+
<div
51+
class="ui bottom attached tab segment active borderless p-0"
52+
data-tab="conversation"
53+
role="tabpanel"
54+
aria-labelledby="conversation-tab"
55+
id="conversation-tab-panel"
56+
>
57+
{{ super() }}
5458
</div>
55-
{% endblock request_body %}
56-
{% endblock page_body %}
57-
58-
59-
{% set active_dashboard_menu_item = 'requests' %}
59+
</div>
60+
{% endblock request_timeline %}

invenio_app_rdm/requests_ui/views/requests.py

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,12 @@ def _resolve_topic_record(request):
9393
record = current_rdm_records_service.read_draft(
9494
g.identity, pid, expand=True
9595
)
96-
except (NoResultFound, PIDDoesNotExistError, RecordDeletedException):
96+
except (
97+
NoResultFound,
98+
PIDDoesNotExistError,
99+
RecordDeletedException,
100+
PermissionDeniedError,
101+
):
97102
# We catch PIDDoesNotExistError because a published record with
98103
# a soft-deleted draft will raise this error. The lines below
99104
# will catch the case that a id does not exists and raise a
@@ -102,7 +107,7 @@ def _resolve_topic_record(request):
102107
try:
103108
# read published record
104109
record = current_rdm_records_service.read(g.identity, pid, expand=True)
105-
except (NoResultFound, RecordDeletedException):
110+
except (NoResultFound, RecordDeletedException, PermissionDeniedError):
106111
# record tab not displayed when the record is not found
107112
# the request is probably not open anymore
108113
pass
@@ -131,17 +136,16 @@ def _resolve_topic_record(request):
131136

132137
def _resolve_record_or_draft_files(record, request):
133138
"""Resolve the record's or draft's files."""
134-
request_type = request["type"]
135-
is_record_inclusion = request_type == CommunityInclusion.type_id
136139
if record and record["files"]["enabled"]:
137140
record_pid = record["id"]
141+
is_draft = record.get("is_draft", False)
138142
try:
139-
if is_record_inclusion:
140-
files = files_service().list_files(id_=record_pid, identity=g.identity)
141-
else:
143+
if is_draft:
142144
files = draft_files_service().list_files(
143145
id_=record_pid, identity=g.identity
144146
)
147+
else:
148+
files = files_service().list_files(id_=record_pid, identity=g.identity)
145149
except NoResultFound:
146150
files = files_service().list_files(id_=record_pid, identity=g.identity)
147151
return files.to_dict()
@@ -150,17 +154,16 @@ def _resolve_record_or_draft_files(record, request):
150154

151155
def _resolve_record_or_draft_media_files(record, request):
152156
"""Resolve the record's or draft's media files."""
153-
request_type = request["type"]
154-
is_record_inclusion = request_type == CommunityInclusion.type_id
155157
if record and record["media_files"]["enabled"]:
156158
record_pid = record["id"]
159+
is_draft = record.get("is_draft", False)
157160
try:
158-
if is_record_inclusion:
159-
media_files = media_files_service().list_files(
161+
if is_draft:
162+
media_files = draft_media_files_service().list_files(
160163
id_=record_pid, identity=g.identity
161164
)
162165
else:
163-
media_files = draft_media_files_service().list_files(
166+
media_files = media_files_service().list_files(
164167
id_=record_pid, identity=g.identity
165168
)
166169
except NoResultFound:

invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/overridableRegistry/mapping.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,4 @@
44
// Invenio App RDM is free software; you can redistribute it and/or modify it
55
// under the terms of the MIT License; see LICENSE file for more details.
66

7-
import { TimelineFeedHeader } from "../requests/timeline/overrides/TimelineFeedHeader";
8-
9-
export const overriddenComponents = {
10-
// Guest Access Request customisation
11-
"TimelineFeed.header": TimelineFeedHeader,
12-
};
7+
export const overriddenComponents = {};

0 commit comments

Comments
 (0)