Skip to content

Commit

Permalink
record details: handle files in pending/failed state
Browse files Browse the repository at this point in the history
* don't include render of pending/failed files and media files in landing page and in request view
* closes zenodo/rdm-project#471
  • Loading branch information
anikachurilova committed Nov 10, 2023
1 parent c95e832 commit c107044
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -240,16 +240,17 @@ <h1 id="record-title" class="wrap-overflowing-text">{{ metadata.title }}</h1>
{# record has files BUT passed files are empty. This happens when we display are request. #}
{%- if files and record.files.enabled -%}
<section id="record-files" class="rel-mt-2 rel-mb-3" aria-label="{{ _('Files') }}">
<h2 id="files-heading">{{ _('Files') }}</h2>
{%- if permissions.can_read_files -%}
{# record has files AND user can see files #}
{%- set files = files|order_entries %}

{%- if files|has_previewable_files -%}
{%-set preview_file = files|select_preview_file(default_preview=record.files.default_preview) %}
{{ preview_file_box(preview_file, record.id, is_preview, record, include_deleted) }}
{%- endif -%}
{{ file_list_box(files, record.id, is_preview, include_deleted, record) }}
{%- if files|length > 0 -%}
<h2 id="files-heading">{{ _('Files') }}</h2>
{%- if files|has_previewable_files -%}
{%-set preview_file = files|select_preview_file(default_preview=record.files.default_preview) %}
{{ preview_file_box(preview_file, record.id, is_preview, record, include_deleted) }}
{%- endif -%}
{{ file_list_box(files, record.id, is_preview, include_deleted, record) }}
{% endif %}
{% else %}
{# record has files BUT user does not have permission to see files #}
<div class="ui accordion panel mb-10 {{ record.ui.access_status.id }}"
Expand Down
13 changes: 13 additions & 0 deletions invenio_app_rdm/records_ui/views/records.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,20 @@ def record_detail(
):
"""Record detail page (aka landing page)."""
files_dict = None if files is None else files.to_dict()
if files_dict is not None:
files_dict["entries"] = [
entry
for entry in files_dict.get("entries", [])
if entry.get("status", None) == "completed"
]

media_files_dict = None if media_files is None else media_files.to_dict()
if media_files_dict is not None:
media_files_dict["entries"] = [
entry
for entry in media_files_dict.get("entries", [])
if entry.get("status", None) == "completed"
]

access = record._record.parent["access"]
if "settings" not in access or access["settings"] is None:
Expand Down
20 changes: 18 additions & 2 deletions invenio_app_rdm/requests_ui/views/requests.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,15 @@ def _resolve_record_or_draft_files(record, request):
)
except NoResultFound:
files = files_service().list_files(id_=record_pid, identity=g.identity)
return files.to_dict()

files_dict = None if files is None else files.to_dict()
if files_dict is not None:
files_dict["entries"] = [
entry
for entry in files_dict.get("entries", [])
if entry.get("status", None) == "completed"
]
return files_dict
return None


Expand All @@ -132,7 +140,15 @@ def _resolve_record_or_draft_media_files(record, request):
media_files = media_files_service().list_files(
id_=record_pid, identity=g.identity
)
return media_files.to_dict()

media_files_dict = None if media_files is None else media_files.to_dict()
if media_files_dict is not None:
media_files_dict["entries"] = [
entry
for entry in media_files_dict.get("entries", [])
if entry.get("status", None) == "completed"
]
return media_files_dict
return None


Expand Down

0 comments on commit c107044

Please sign in to comment.