invenio-app-rdm 13.0.0b3.dev16__py2.py3-none-any.whl → 13.0.0b3.dev18__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 (42) hide show
  1. invenio_app_rdm/__init__.py +1 -1
  2. invenio_app_rdm/communities_ui/sitemap.py +63 -0
  3. invenio_app_rdm/communities_ui/views/communities.py +9 -8
  4. invenio_app_rdm/communities_ui/views/ui.py +1 -1
  5. invenio_app_rdm/config.py +14 -0
  6. invenio_app_rdm/records_ui/sitemap.py +44 -0
  7. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/detail.html +46 -47
  8. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/access-form.html +1 -1
  9. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/citation.html +1 -1
  10. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/creatibutors.html +9 -9
  11. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/description.html +1 -1
  12. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/details.html +22 -22
  13. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/meta.html +8 -8
  14. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/communities.html +6 -6
  15. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/details.html +8 -8
  16. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/export.html +2 -2
  17. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/keywords_subjects.html +1 -1
  18. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/licenses.html +2 -2
  19. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/locations.html +1 -1
  20. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/manage_menu.html +1 -1
  21. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/metrics.html +1 -1
  22. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/technical_metadata.html +2 -2
  23. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/versions.html +1 -1
  24. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/stats.html +2 -2
  25. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/subjects.html +1 -1
  26. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/doi.html +2 -2
  27. invenio_app_rdm/records_ui/views/records.py +2 -1
  28. invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/community-submission/index.html +2 -2
  29. invenio_app_rdm/requests_ui/views/requests.py +6 -3
  30. invenio_app_rdm/theme/{static → templates/semantic-ui/invenio_app_rdm}/robots.txt +4 -0
  31. invenio_app_rdm/theme/views.py +6 -2
  32. {invenio_app_rdm-13.0.0b3.dev16.dist-info → invenio_app_rdm-13.0.0b3.dev18.dist-info}/METADATA +16 -3
  33. {invenio_app_rdm-13.0.0b3.dev16.dist-info → invenio_app_rdm-13.0.0b3.dev18.dist-info}/RECORD +41 -38
  34. {invenio_app_rdm-13.0.0b3.dev16.dist-info → invenio_app_rdm-13.0.0b3.dev18.dist-info}/WHEEL +1 -1
  35. tests/conftest.py +126 -8
  36. tests/ui/conftest.py +6 -8
  37. tests/ui/test_robotstxt.py +35 -0
  38. tests/ui/test_sitemaps.py +85 -0
  39. tests/ui/test_static.py +0 -25
  40. {invenio_app_rdm-13.0.0b3.dev16.dist-info → invenio_app_rdm-13.0.0b3.dev18.dist-info}/entry_points.txt +0 -0
  41. {invenio_app_rdm-13.0.0b3.dev16.dist-info → invenio_app_rdm-13.0.0b3.dev18.dist-info}/licenses/LICENSE +0 -0
  42. {invenio_app_rdm-13.0.0b3.dev16.dist-info → invenio_app_rdm-13.0.0b3.dev18.dist-info}/top_level.txt +0 -0
@@ -12,35 +12,35 @@
12
12
  show_alternate_identifiers, show_related_identifiers, show_funding, show_dates %}
13
13
 
14
14
  {% set hasContent = namespace(value=false) %}
15
- {% set hasContent.value = record.ui.additional_titles or
15
+ {% set hasContent.value = record_ui["ui"]["additional_titles"] or
16
16
  metadata.identifiers or
17
- record.ui.related_identifiers or
17
+ record_ui["ui"]["related_identifiers"] or
18
18
  metadata.funding or
19
- record.ui.dates or
19
+ record_ui["ui"]["dates"] or
20
20
  metadata.references
21
21
  %}
22
22
 
23
23
  {# Check if custom field has values if no other content #}
24
- {% if record.ui.custom_fields and not hasContent.value %}
24
+ {% if record_ui["ui"]["custom_fields"] and not hasContent.value %}
25
25
  {% for section_cfg in custom_fields_ui %}
26
26
  {% for field_cfg in section_cfg.fields %}
27
- {% if record.custom_fields.get(field_cfg.field) %}
27
+ {% if record_ui["custom_fields"].get(field_cfg.field) %}
28
28
  {% set hasContent.value = true %}
29
29
  {% endif %}
30
30
  {% endfor %}
31
31
  {% endfor %}
32
32
  {% endif %}
33
33
 
34
- {% set rights = record.ui.get('rights') %}
35
- {% set funding = record.ui.get('funding') %}
34
+ {% set rights = record_ui["ui"].get('rights') %}
35
+ {% set funding = record_ui["ui"].get('funding') %}
36
36
 
37
37
  {% if hasContent.value %}
38
38
  <h2 id="record-details-heading">{{ _('Additional details') }}</h2>
39
39
 
40
40
  <div class="ui divider"></div>
41
41
 
42
- {% if record.ui.additional_titles %}
43
- {% if record.ui.additional_titles|length > 5 %}
42
+ {% if record_ui["ui"]["additional_titles"] %}
43
+ {% if record_ui["ui"]["additional_titles"]|length > 5 %}
44
44
  <div class="ui fluid accordion padded grid rel-mb-1">
45
45
  <div class="active title sixteen wide mobile four wide tablet three wide computer column">
46
46
  <h3 class="ui header">
@@ -63,7 +63,7 @@ show_alternate_identifiers, show_related_identifiers, show_funding, show_dates %
63
63
  class="active content sixteen wide mobile twelve wide tablet thirteen wide computer column"
64
64
  >
65
65
  <dl class="details-list">
66
- {{ show_add_titles(record.ui.additional_titles) }}
66
+ {{ show_add_titles(record_ui["ui"]["additional_titles"]) }}
67
67
  </dl>
68
68
  </div>
69
69
  </div>
@@ -74,7 +74,7 @@ show_alternate_identifiers, show_related_identifiers, show_funding, show_dates %
74
74
  </div>
75
75
  <div class="sixteen wide mobile twelve wide tablet thirteen wide computer column">
76
76
  <dl class="details-list">
77
- {{ show_add_titles(record.ui.additional_titles) }}
77
+ {{ show_add_titles(record_ui["ui"]["additional_titles"]) }}
78
78
  </dl>
79
79
  </div>
80
80
  </div>
@@ -125,8 +125,8 @@ show_alternate_identifiers, show_related_identifiers, show_funding, show_dates %
125
125
  <div class="ui divider"></div>
126
126
  {% endif %}
127
127
 
128
- {% if record.ui.related_identifiers %}
129
- {% if record.ui.related_identifiers|length > 5 %}
128
+ {% if record_ui["ui"]["related_identifiers"] %}
129
+ {% if record_ui["ui"]["related_identifiers"]|length > 5 %}
130
130
  <div class="ui fluid accordion padded grid rel-mb-1">
131
131
  <div class="active title sixteen wide mobile four wide tablet three wide computer column">
132
132
  <h3 class="ui header">
@@ -148,7 +148,7 @@ show_alternate_identifiers, show_related_identifiers, show_funding, show_dates %
148
148
  aria-labelledby="related-works-accordion-trigger"
149
149
  class="active content sixteen wide mobile twelve wide tablet thirteen wide computer column"
150
150
  >
151
- {{ show_related_identifiers(record.ui.related_identifiers) }}
151
+ {{ show_related_identifiers(record_ui["ui"]["related_identifiers"]) }}
152
152
  </div>
153
153
  </div>
154
154
  {% else %}
@@ -157,7 +157,7 @@ show_alternate_identifiers, show_related_identifiers, show_funding, show_dates %
157
157
  <h3 class="ui header">{{ _('Related works') }}</h3>
158
158
  </div>
159
159
  <div class="sixteen wide mobile twelve wide tablet thirteen wide computer column">
160
- {{ show_related_identifiers(record.ui.related_identifiers) }}
160
+ {{ show_related_identifiers(record_ui["ui"]["related_identifiers"]) }}
161
161
  </div>
162
162
  </div>
163
163
  {% endif %}
@@ -207,8 +207,8 @@ show_alternate_identifiers, show_related_identifiers, show_funding, show_dates %
207
207
  <div class="ui divider"></div>
208
208
  {% endif %}
209
209
 
210
- {% if record.ui.dates %}
211
- {% if record.ui.dates|length > 5 %}
210
+ {% if record_ui["ui"]["dates"] %}
211
+ {% if record_ui["ui"]["dates"]|length > 5 %}
212
212
  <div class="ui fluid accordion padded grid rel-mb-1">
213
213
  <div class="active title sixteen wide mobile four wide tablet three wide computer column">
214
214
  <h3 class="ui header">
@@ -231,7 +231,7 @@ show_alternate_identifiers, show_related_identifiers, show_funding, show_dates %
231
231
  class="active content sixteen wide mobile twelve wide tablet thirteen wide computer column"
232
232
  >
233
233
  <dl class="details-list">
234
- {{ show_dates(record.ui.dates) }}
234
+ {{ show_dates(record_ui["ui"]["dates"]) }}
235
235
  </dl>
236
236
  </div>
237
237
  </div>
@@ -242,7 +242,7 @@ show_alternate_identifiers, show_related_identifiers, show_funding, show_dates %
242
242
  </div>
243
243
  <div class="sixteen wide mobile twelve wide tablet thirteen wide computer column">
244
244
  <dl class="details-list">
245
- {{ show_dates(record.ui.dates) }}
245
+ {{ show_dates(record_ui["ui"]["dates"]) }}
246
246
  </dl>
247
247
  </div>
248
248
  </div>
@@ -250,14 +250,14 @@ show_alternate_identifiers, show_related_identifiers, show_funding, show_dates %
250
250
  <div class="ui divider"></div>
251
251
  {% endif %}
252
252
 
253
- {% if record.custom_fields %}
253
+ {% if record_ui["custom_fields"] %}
254
254
 
255
255
  {%- for section_cfg in custom_fields_ui %}
256
256
  {% set section_has_fields = namespace(value=false) %}
257
257
  {% set section_format = section_cfg.section | replace(" ", "-") %}
258
258
  {# Show the section if at least one of its fields is in record #}
259
259
  {% for field_cfg in section_cfg.fields %}
260
- {% if record.custom_fields.get(field_cfg.field) %}
260
+ {% if record_ui["custom_fields"].get(field_cfg.field) %}
261
261
  {% set section_has_fields.value = true %}
262
262
  {% endif %}
263
263
  {% endfor %}
@@ -286,7 +286,7 @@ show_alternate_identifiers, show_related_identifiers, show_funding, show_dates %
286
286
  >
287
287
  {% set section_format = section_cfg.section | replace(" ", "-") %}
288
288
  <dl class="details-list">
289
- {{ show_section_custom_fields(record.ui.custom_fields, section_cfg.fields) }}
289
+ {{ show_section_custom_fields(record_ui["ui"]["custom_fields"], section_cfg.fields) }}
290
290
  </dl>
291
291
  </div>
292
292
  </div>
@@ -10,18 +10,18 @@ it under the terms of the MIT License; see LICENSE file for more details.
10
10
 
11
11
  {%- from "invenio_formatter/macros/meta.html" import meta_twittercard, meta_opengraph, meta_highwire -%}
12
12
 
13
- {%- set meta_title = record.metadata.title|striptags -%}
14
- {%- set meta_description = record.metadata.description|striptags -%}
15
- {%- set meta_authors = record.metadata.creators|map(attribute='person_or_org')|map(attribute='name') -%}
16
- {%- set files = record.files %}
13
+ {%- set meta_title = record_ui["metadata"]["title"]|striptags -%}
14
+ {%- set meta_description = record_ui["metadata"]["description"]|striptags -%}
15
+ {%- set meta_authors = record_ui["metadata"]["creators"]|map(attribute='person_or_org')|map(attribute='name') -%}
16
+ {%- set files = record_ui["files"] %}
17
17
 
18
- {{- meta_highwire(meta_title,meta_description,authors=meta_authors,publisher=meta_publisher,publication_date=record.publication_date|from_isodate,doi=record.pids.get("doi", {}).get("identifier"),keywords=record.metadata.subjects | map(attribute="subject"),url=record.links.self_html) }}
19
- {{- meta_opengraph(meta_title, meta_description, url=record.links.self_html) }}
18
+ {{- meta_highwire(meta_title,meta_description,authors=meta_authors,publisher=meta_publisher,publication_date=record_ui["publication_date"]|from_isodate,doi=record_ui["pids"].get("doi", {}).get("identifier"),keywords=record_ui["metadata"]["subjects"] | map(attribute="subject"),url=record_ui["links"]["self_html"]) }}
19
+ {{- meta_opengraph(meta_title, meta_description, url=record_ui["links"]["self_html"]) }}
20
20
  {{- meta_twittercard(meta_title, meta_description) }}
21
21
 
22
22
  {%- if permissions.can_read_files -%}
23
23
  {%- for file_name, file in files.entries.items() or {} -%}
24
- {%- set file_url = url_for("invenio_app_rdm_records.record_file_download", pid_value=record.id, filename=file_name,
24
+ {%- set file_url = url_for("invenio_app_rdm_records.record_file_download", pid_value=record_ui["id"], filename=file_name,
25
25
  _external=True) %}
26
26
  {##}
27
27
  {%- if file.ext == "pdf" %}
@@ -33,4 +33,4 @@ _external=True) %}
33
33
  {%- endfor %}
34
34
  {% endif %}
35
35
 
36
- <link rel="canonical" href="{{ record.links.self_html }}">
36
+ <link rel="canonical" href="{{ record_ui["links"]["self_html"] }}">
@@ -1,12 +1,12 @@
1
1
  <div
2
2
  id="sidebar-communities-manage"
3
3
  data-user-communities-memberships='{{ user_communities_memberships | tojson }}'
4
- data-record-community-endpoint="{{ record.links.communities }}"
5
- data-record-community-search-endpoint="{{ record.links['communities-suggestions'] }}"
6
- data-record-user-community-search-endpoint="{{ record.links['user-communities-suggestions'] }}"
7
- data-pending-communities-search-config='{{ search_app_rdm_record_requests_config(app_id="InvenioAppRdm.RecordRequests", endpoint=record.links.requests) | tojson }}'
8
- data-record-community-search-config='{{ search_app_rdm_record_communities_config(app_id="InvenioAppRdm.RecordCommunitiesSuggestions", endpoint=record.links["communities-suggestions"]) | tojson }}'
9
- data-record-user-community-search-config='{{ search_app_rdm_record_user_communities_config(app_id="InvenioAppRdm.RecordUserCommunitiesSuggestions", endpoint=record.links["communities-suggestions"]) | tojson }}'
4
+ data-record-community-endpoint="{{ record_ui['links']['communities'] }}"
5
+ data-record-community-search-endpoint="{{ record_ui['links']['communities-suggestions'] }}"
6
+ data-record-user-community-search-endpoint="{{ record_ui['links']['user-communities-suggestions'] }}"
7
+ data-pending-communities-search-config='{{ search_app_rdm_record_requests_config(app_id="InvenioAppRdm.RecordRequests", endpoint=record_ui['links']['requests']) | tojson }}'
8
+ data-record-community-search-config='{{ search_app_rdm_record_communities_config(app_id="InvenioAppRdm.RecordCommunitiesSuggestions", endpoint=record_ui['links']["communities-suggestions"]) | tojson }}'
9
+ data-record-user-community-search-config='{{ search_app_rdm_record_user_communities_config(app_id="InvenioAppRdm.RecordUserCommunitiesSuggestions", endpoint=record_ui['links']["communities-suggestions"]) | tojson }}'
10
10
  data-permissions='{{ permissions | tojson }}'
11
11
  class="sidebar-container"
12
12
  >
@@ -11,7 +11,7 @@
11
11
  {%- from "invenio_app_rdm/records/macros/detail.html" import
12
12
  list_languages, show_dates, show_detail, show_detail_conference, show_detail_thesis %}
13
13
 
14
- {%- set id_doi = record.pids.get('doi', {}).get('identifier') %}
14
+ {%- set id_doi = record_ui["pids"].get('doi', {}).get('identifier') %}
15
15
 
16
16
  <div class="sidebar-container">
17
17
  <h2 class="ui medium top attached header mt-0">{{ _('Details')}}</h2>
@@ -21,14 +21,14 @@
21
21
  {% if id_doi %}
22
22
  {%- include "invenio_app_rdm/records/details/doi.html" %}
23
23
  {% endif %}
24
- {{ show_detail(_('Resource type'), record.ui.resource_type.title_l10n) if record.ui.resource_type }}
25
- {{ show_detail(_('Publication date'), record.ui.publication_date_l10n) if record.ui.publication_date_l10n }}
24
+ {{ show_detail(_('Resource type'), record_ui["ui"]["resource_type"]["title_l10n"]) if record_ui["ui"]["resource_type"] }}
25
+ {{ show_detail(_('Publication date'), record_ui["ui"]["publication_date_l10n"]) if record_ui["ui"]["publication_date_l10n"] }}
26
26
  {{ show_detail(_('Publisher'), metadata.publisher) if metadata.publisher }}
27
- {{ show_detail(_('Published in'), record.ui.publishing_information.journal) if record.ui.get('publishing_information', {}).get('journal') }}
28
- {{ show_detail(_('Imprint'), record.ui.publishing_information.imprint) if record.ui.get('publishing_information', {}).get('imprint') }}
29
- {{ show_detail_thesis(_('Thesis'), record.ui.publishing_information.thesis) if record.ui.get('publishing_information', {}).get('thesis', {}) }}
30
- {{ show_detail(_('Conference'), show_detail_conference(record.ui.conference)) if record.ui.conference }}
31
- {{ show_detail(_('Languages'), list_languages(record.ui.languages)) if record.ui.languages }}
27
+ {{ show_detail(_('Published in'), record_ui["ui"]["publishing_information"]["journal"]) if record_ui["ui"].get('publishing_information', {}).get('journal') }}
28
+ {{ show_detail(_('Imprint'), record_ui["ui"]["publishing_information"]["imprint"]) if record_ui["ui"].get('publishing_information', {}).get('imprint') }}
29
+ {{ show_detail_thesis(_('Thesis'), record_ui["ui"]["publishing_information"]["thesis"]) if record_ui["ui"].get('publishing_information', {}).get('thesis', {}) }}
30
+ {{ show_detail(_('Conference'), show_detail_conference(record_ui["ui"]["conference"])) if record_ui["ui"]["conference"] }}
31
+ {{ show_detail(_('Languages'), list_languages(record_ui["ui"]["languages"])) if record_ui["ui"]["languages"] }}
32
32
  {{ show_detail(_('Formats'), ", ".join(metadata.formats)) if metadata.formats }}
33
33
  {{ show_detail(_('Sizes'), ", ".join(metadata.sizes)) if metadata.sizes }}
34
34
  </dl>
@@ -20,9 +20,9 @@
20
20
  {%- for fmt, val in config.get("APP_RDM_RECORD_EXPORTERS", {}).items() -%}
21
21
  {%- set name = val.get("name", fmt) -%}
22
22
  {% if is_preview %}
23
- {%- set export_url = url_for('invenio_app_rdm_records.record_export', pid_value=record.id, export_format=fmt, preview=1) -%}
23
+ {%- set export_url = url_for('invenio_app_rdm_records.record_export', pid_value=record_ui["id"], export_format=fmt, preview=1) -%}
24
24
  {% else %}
25
- {%- set export_url = url_for('invenio_app_rdm_records.record_export', pid_value=record.id, export_format=fmt) -%}
25
+ {%- set export_url = url_for('invenio_app_rdm_records.record_export', pid_value=record_ui["id"], export_format=fmt) -%}
26
26
  {% endif %}
27
27
 
28
28
  {% set formats = formats.append({ 'name': name, 'export_url': export_url }) %}
@@ -8,7 +8,7 @@
8
8
  it under the terms of the MIT License; see LICENSE file for more details.
9
9
  #}
10
10
 
11
- {% if record.metadata.subjects %}
11
+ {% if record_ui["metadata"]["subjects"] %}
12
12
  <div class="sidebar-container">
13
13
  <h2 class="ui medium top attached header mt-0">{{ _('Keywords and subjects') }}</h2>
14
14
  <div id="keywords-and-subjects" aria-label="{{ _('Keywords and subjects') }}"
@@ -19,8 +19,8 @@
19
19
  {% endif %}
20
20
  {% endmacro %}
21
21
 
22
- {% set rights = record.ui.get('rights', []) %}
23
- {% set copyrights = record.get('metadata', {}).get('copyright') %}
22
+ {% set rights = record_ui["ui"].get('rights', []) %}
23
+ {% set copyrights = record_ui.get('metadata', {}).get('copyright') %}
24
24
  {% if rights or copyrights %}
25
25
  <div class="sidebar-container">
26
26
  <h2 class="ui medium top attached header mt-0">{{ _('Rights') }}</h2>
@@ -7,7 +7,7 @@ it under the terms of the MIT License; see LICENSE file for more details.
7
7
 
8
8
  {%- from "invenio_app_rdm/records/macros/locations.html" import render_feature %}
9
9
 
10
- {% set locations = record.ui.get('locations') %}
10
+ {% set locations = record_ui["ui"].get('locations') %}
11
11
 
12
12
  {%- if locations %}
13
13
  <div class="sidebar-container">
@@ -12,7 +12,7 @@ it under the terms of the MIT License; see LICENSE file for more details.
12
12
  >
13
13
  <div class="column"
14
14
  id="recordManagement"
15
- data-record='{{ record | tojson }}'
15
+ data-record='{{ record_ui | tojson }}'
16
16
  data-permissions='{{ permissions | tojson }}'
17
17
  data-is-draft="{{ is_draft | tojson }}"
18
18
  data-is-preview-submission-request="{{ is_preview_submission_request | tojson }}"
@@ -8,7 +8,7 @@
8
8
  it under the terms of the MIT License; see LICENSE file for more details.
9
9
  #}
10
10
 
11
- {% if record.stats %}
11
+ {% if record_ui["stats"] %}
12
12
  <section id="metrics" aria-label="{{ _('Metrics') }}" class="ui segment rdm-sidebar sidebar-container">
13
13
  {%- include "invenio_app_rdm/records/details/stats.html" %}
14
14
  </section>
@@ -9,12 +9,12 @@
9
9
  <dl class="m-0">
10
10
  <dt class="inline"><small>{{ _("Created") }}</small></dt>
11
11
  <dd class="inline">
12
- <small>{{ record.ui.created_date_l10n_long }}</small>
12
+ <small>{{ record_ui["ui"]["created_date_l10n_long"] }}</small>
13
13
  </dd>
14
14
  <div>
15
15
  <dt class="rel-mt-1 inline"><small>{{ _("Modified") }}</small></dt>
16
16
  <dd class="inline">
17
- <small>{{ record.ui.updated_date_l10n_long }}</small>
17
+ <small>{{ record_ui["ui"]["updated_date_l10n_long"] }}</small>
18
18
  </dd>
19
19
  </div>
20
20
  </dl>
@@ -12,7 +12,7 @@
12
12
  <h2 class="ui medium top attached header mt-0">{{ _('Versions')}}</h2>
13
13
  <div id="record-versions" class="ui segment rdm-sidebar bottom attached pl-0 pr-0 pt-0">
14
14
  <div class="versions">
15
- <div id="recordVersions" data-record='{{ record | tojson }}' data-preview='{{ is_preview | tojson }}'>
15
+ <div id="recordVersions" data-record='{{ record_ui | tojson }}' data-preview='{{ is_preview | tojson }}'>
16
16
  <div class="rel-p-1"></div>
17
17
  <div class="ui fluid placeholder rel-mr-1 rel-ml-1"></div>
18
18
  <div class="header">
@@ -7,8 +7,8 @@
7
7
  {% from "invenio_app_rdm/records/macros/stats_popup.html" import stats_popup %}
8
8
 
9
9
  <div class="ui tiny two statistics rel-mt-1">
10
- {% set all_versions = record.stats.all_versions %}
11
- {% set this_version = record.stats.this_version %}
10
+ {% set all_versions = record_ui["stats"]["all_versions"] %}
11
+ {% set this_version = record_ui["stats"]["this_version"] %}
12
12
 
13
13
  <div class="ui statistic">
14
14
  <div class="value">{{ all_versions.unique_views|compact_number(max_value=1_000_000) }}</div>
@@ -7,7 +7,7 @@
7
7
  it under the terms of the MIT License; see LICENSE file for more details.
8
8
  #}
9
9
 
10
- {%- set subjects = record.metadata.subjects -%}
10
+ {%- set subjects = record_ui["metadata"]["subjects"] -%}
11
11
 
12
12
  {% if subjects %}
13
13
  {% set keywords = subjects|rejectattr("scheme")|list %}
@@ -5,7 +5,7 @@
5
5
  it under the terms of the MIT License; see LICENSE file for more details.
6
6
  #}
7
7
 
8
- {% macro show_doi(doi_value, record, badge_id="record-doi-badge", modal_id="doi-modal", subheader=None, parent_doi=false) %}
8
+ {% macro show_doi(doi_value, record_ui, badge_id="record-doi-badge", modal_id="doi-modal", subheader=None, parent_doi=false) %}
9
9
  <dt class="ui tiny header">{{_('DOI')}}
10
10
  {% if subheader %}
11
11
  <i><span class="doi sub header">{{subheader}}</span></i></dt>
@@ -27,7 +27,7 @@
27
27
  <pre>{{ doi_value }}</pre>
28
28
  </h4>
29
29
  {% from "semantic-ui/invenio_formatter/macros/badges.html" import badges_formats_list %}
30
- {{ badges_formats_list(url_for('invenio_formatter_badges.badge', title='DOI', value=doi_value, ext='svg', _external=True, _scheme='https'), record.links.parent_doi if parent_doi else record.links.doi) }}
30
+ {{ badges_formats_list(url_for('invenio_formatter_badges.badge', title='DOI', value=doi_value, ext='svg', _external=True, _scheme='https'), record_ui["links"]["parent_doi"] if parent_doi else record_ui["links"]["doi"]) }}
31
31
  </div>
32
32
  </div>
33
33
  </dd>
@@ -233,7 +233,8 @@ def record_detail(
233
233
  return render_community_theme_template(
234
234
  current_app.config.get("APP_RDM_RECORD_LANDING_PAGE_TEMPLATE"),
235
235
  theme=theme,
236
- record=record_ui,
236
+ record=record,
237
+ record_ui=record_ui,
237
238
  files=files_dict,
238
239
  media_files=media_files_dict,
239
240
  user_communities_memberships=get_user_communities_memberships(),
@@ -52,7 +52,7 @@
52
52
  {{ _("Conversation") }}
53
53
  </a>
54
54
 
55
- {% if record %}
55
+ {% if record_ui %}
56
56
  <a
57
57
  role="tab"
58
58
  class="item"
@@ -103,7 +103,7 @@
103
103
  {% endif %}
104
104
 
105
105
  {# The record tab content needs to be last since the HTML structure is complex and breaks following tab contents #}
106
- {% if record %}
106
+ {% if record_ui %}
107
107
  <div
108
108
  class="ui bottom attached tab segment borderless"
109
109
  data-tab="record"
@@ -270,7 +270,8 @@ def user_dashboard_request_view(request, **kwargs):
270
270
  base_template="invenio_app_rdm/users/base.html",
271
271
  user_avatar=avatar,
272
272
  invenio_request=request.to_dict(),
273
- record=record_ui,
273
+ record_ui=record_ui,
274
+ record=record,
274
275
  checks=checks,
275
276
  permissions=topic["permissions"],
276
277
  is_preview=is_draft, # preview only when draft
@@ -303,7 +304,8 @@ def user_dashboard_request_view(request, **kwargs):
303
304
  f"invenio_requests/{request_type}/index.html",
304
305
  base_template="invenio_app_rdm/users/base.html",
305
306
  user_avatar=avatar,
306
- record=record_ui,
307
+ record=record,
308
+ record_ui=record_ui,
307
309
  permissions=topic["permissions"],
308
310
  invenio_request=request.to_dict(),
309
311
  request_is_accepted=request_is_accepted,
@@ -351,7 +353,8 @@ def community_dashboard_request_view(request, community, community_ui, **kwargs)
351
353
  theme=community.to_dict().get("theme", {}),
352
354
  base_template="invenio_communities/details/base.html",
353
355
  invenio_request=request.to_dict(),
354
- record=record_ui,
356
+ record=record,
357
+ record_ui=record_ui,
355
358
  community=community,
356
359
  community_ui=community_ui,
357
360
  checks=checks,
@@ -9,3 +9,7 @@ Disallow: /login
9
9
  Disallow: /logout
10
10
  Disallow: /records/*/preview
11
11
  Crawl-delay: 10
12
+
13
+ {%- for url_of_sitemap_index in urls_of_sitemap_indices %}
14
+ Sitemap: {{ url_of_sitemap_index }}
15
+ {%- endfor %}
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  # Copyright (C) 2019-2024 CERN.
4
- # Copyright (C) 2019-2020 Northwestern University.
4
+ # Copyright (C) 2019-2025 Northwestern University.
5
5
  # Copyright (C) 2021 TU Wien.
6
6
  # Copyright (C) 2023-2024 Graz University of Technology.
7
7
  # Copyright (C) 2024 KTH Royal Institute of Technology.
@@ -17,6 +17,7 @@ from invenio_db import db
17
17
  from invenio_i18n import get_locale
18
18
  from invenio_i18n import lazy_gettext as _
19
19
  from invenio_pages.views import create_page_view
20
+ from invenio_sitemap import iterate_urls_of_sitemap_indices
20
21
  from invenio_users_resources.forms import NotificationsForm
21
22
 
22
23
  from invenio_app_rdm.views import create_url_rule
@@ -67,7 +68,10 @@ def index():
67
68
 
68
69
  def robots():
69
70
  """Robots.txt."""
70
- return current_app.send_static_file("robots.txt")
71
+ return render_template(
72
+ "invenio_app_rdm/robots.txt",
73
+ urls_of_sitemap_indices=iterate_urls_of_sitemap_indices(),
74
+ )
71
75
 
72
76
 
73
77
  def help_search():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: invenio-app-rdm
3
- Version: 13.0.0b3.dev16
3
+ Version: 13.0.0b3.dev18
4
4
  Summary: Invenio Research Data Management.
5
5
  Home-page: https://github.com/inveniosoftware/invenio-app-rdm
6
6
  Author: CERN
@@ -40,16 +40,19 @@ 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
43
44
  Requires-Dist: invenio-communities<19.0.0,>=18.2.0
44
- Requires-Dist: invenio-rdm-records<19.0.0,>=18.4.0
45
+ Requires-Dist: invenio-rdm-records<19.0.0,>=18.14.0
45
46
  Requires-Dist: CairoSVG<3.0.0,>=2.5.2
46
47
  Requires-Dist: invenio-banners<5.0.0,>=4.0.0
47
48
  Requires-Dist: invenio-pages<6.0.0,>=5.0.0
48
49
  Requires-Dist: invenio-audit-logs<1.0.0,>=0.1.0
50
+ Requires-Dist: invenio-sitemap<2.0.0,>=0.1.0
49
51
  Provides-Extra: tests
50
52
  Requires-Dist: pytest-black-ng>=0.4.0; extra == "tests"
51
53
  Requires-Dist: pytest-invenio<4.0.0,>=3.3.0; extra == "tests"
52
54
  Requires-Dist: Sphinx>=4.5.0; extra == "tests"
55
+ Requires-Dist: time-machine<3.0.0,>=2.12.0; extra == "tests"
53
56
  Provides-Extra: elasticsearch7
54
57
  Requires-Dist: invenio-search[elasticsearch7]<4.0.0,>=3.0.0; extra == "elasticsearch7"
55
58
  Provides-Extra: opensearch1
@@ -98,7 +101,17 @@ https://inveniordm.docs.cern.ch
98
101
  Changes
99
102
  =======
100
103
 
101
- Versino v13.0.0b3.dev16 (released 2025-05-23)
104
+ Version v13.0.0b3.dev18 (released 2025-06-02)
105
+
106
+ - installation: add collections dependency
107
+ - views: rename record_ui correctly
108
+
109
+ Version v13.0.0b3.dev17 (released 2025-06-02)
110
+
111
+ - Move collections implementaiton to Invenio-Collections
112
+ - Integrate Invenio-Sitemap
113
+
114
+ Version v13.0.0b3.dev16 (released 2025-05-23)
102
115
 
103
116
  - administration: audit_logs: Add View Changes and View Log button and modals
104
117