invenio-app-rdm 13.0.1__py2.py3-none-any.whl → 13.0.3__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 (134) hide show
  1. invenio_app_rdm/__init__.py +1 -1
  2. invenio_app_rdm/config.py +1 -0
  3. invenio_app_rdm/fixtures/pages.py +5 -2
  4. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/files.html +2 -2
  5. invenio_app_rdm/records_ui/views/decorators.py +23 -9
  6. invenio_app_rdm/records_ui/views/deposits.py +17 -3
  7. invenio_app_rdm/records_ui/views/records.py +3 -2
  8. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/search/components.js +2 -2
  9. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ar/messages.po +141 -115
  10. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ar/translations.json +52 -53
  11. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/bg/messages.po +132 -66
  12. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/bg/translations.json +52 -29
  13. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ca/messages.po +132 -66
  14. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ca/translations.json +52 -29
  15. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/cs/messages.po +148 -105
  16. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/cs/translations.json +52 -41
  17. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/da/messages.po +130 -64
  18. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/da/translations.json +52 -29
  19. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/de/messages.po +142 -100
  20. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/de/translations.json +53 -30
  21. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/el/messages.po +135 -69
  22. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/el/translations.json +52 -29
  23. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/es/messages.po +137 -99
  24. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/es/translations.json +52 -29
  25. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/et/messages.po +132 -66
  26. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/et/translations.json +52 -29
  27. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/fa/messages.po +130 -64
  28. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/fa/translations.json +52 -29
  29. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/fr/messages.po +134 -98
  30. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/fr/translations.json +52 -29
  31. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/hr/messages.po +132 -72
  32. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/hr/translations.json +52 -35
  33. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/hu/messages.po +138 -94
  34. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/hu/translations.json +52 -29
  35. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/it/messages.po +133 -73
  36. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/it/translations.json +52 -29
  37. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ja/messages.po +132 -60
  38. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ja/translations.json +52 -23
  39. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ka/messages.po +132 -66
  40. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ka/translations.json +52 -29
  41. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ko/messages.po +130 -58
  42. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ko/translations.json +52 -23
  43. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/lt/messages.po +132 -78
  44. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/lt/translations.json +52 -41
  45. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/no/messages.po +132 -66
  46. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/no/translations.json +52 -29
  47. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/pl/messages.po +133 -79
  48. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/pl/translations.json +52 -41
  49. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/pt/messages.po +130 -70
  50. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/pt/translations.json +52 -29
  51. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ro/messages.po +133 -75
  52. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ro/translations.json +52 -35
  53. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ru/messages.po +137 -100
  54. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ru/translations.json +52 -41
  55. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/sk/messages.po +131 -77
  56. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/sk/translations.json +52 -41
  57. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/sv/messages.po +154 -97
  58. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/sv/translations.json +56 -33
  59. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/tr/messages.po +134 -91
  60. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/tr/translations.json +52 -29
  61. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/uk/messages.po +134 -80
  62. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/uk/translations.json +52 -41
  63. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/zh_CN/messages.po +133 -61
  64. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/zh_CN/translations.json +52 -23
  65. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/zh_TW/messages.po +132 -60
  66. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/zh_TW/translations.json +52 -23
  67. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/help/search.de.html +2 -2
  68. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/help/search.en.html +4 -4
  69. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/help/search.sv.html +4 -4
  70. invenio_app_rdm/translations/ar/LC_MESSAGES/messages.mo +0 -0
  71. invenio_app_rdm/translations/ar/LC_MESSAGES/messages.po +367 -269
  72. invenio_app_rdm/translations/bg/LC_MESSAGES/messages.mo +0 -0
  73. invenio_app_rdm/translations/bg/LC_MESSAGES/messages.po +353 -255
  74. invenio_app_rdm/translations/ca/LC_MESSAGES/messages.mo +0 -0
  75. invenio_app_rdm/translations/ca/LC_MESSAGES/messages.po +356 -258
  76. invenio_app_rdm/translations/cs/LC_MESSAGES/messages.mo +0 -0
  77. invenio_app_rdm/translations/cs/LC_MESSAGES/messages.po +370 -270
  78. invenio_app_rdm/translations/da/LC_MESSAGES/messages.mo +0 -0
  79. invenio_app_rdm/translations/da/LC_MESSAGES/messages.po +353 -255
  80. invenio_app_rdm/translations/de/LC_MESSAGES/messages.mo +0 -0
  81. invenio_app_rdm/translations/de/LC_MESSAGES/messages.po +369 -271
  82. invenio_app_rdm/translations/el/LC_MESSAGES/messages.mo +0 -0
  83. invenio_app_rdm/translations/el/LC_MESSAGES/messages.po +356 -258
  84. invenio_app_rdm/translations/es/LC_MESSAGES/messages.mo +0 -0
  85. invenio_app_rdm/translations/es/LC_MESSAGES/messages.po +357 -259
  86. invenio_app_rdm/translations/et/LC_MESSAGES/messages.mo +0 -0
  87. invenio_app_rdm/translations/et/LC_MESSAGES/messages.po +355 -257
  88. invenio_app_rdm/translations/fa/LC_MESSAGES/messages.mo +0 -0
  89. invenio_app_rdm/translations/fa/LC_MESSAGES/messages.po +353 -255
  90. invenio_app_rdm/translations/fr/LC_MESSAGES/messages.mo +0 -0
  91. invenio_app_rdm/translations/fr/LC_MESSAGES/messages.po +358 -260
  92. invenio_app_rdm/translations/hr/LC_MESSAGES/messages.mo +0 -0
  93. invenio_app_rdm/translations/hr/LC_MESSAGES/messages.po +353 -255
  94. invenio_app_rdm/translations/hu/LC_MESSAGES/messages.mo +0 -0
  95. invenio_app_rdm/translations/hu/LC_MESSAGES/messages.po +369 -270
  96. invenio_app_rdm/translations/it/LC_MESSAGES/messages.mo +0 -0
  97. invenio_app_rdm/translations/it/LC_MESSAGES/messages.po +354 -256
  98. invenio_app_rdm/translations/ja/LC_MESSAGES/messages.mo +0 -0
  99. invenio_app_rdm/translations/ja/LC_MESSAGES/messages.po +353 -255
  100. invenio_app_rdm/translations/ka/LC_MESSAGES/messages.mo +0 -0
  101. invenio_app_rdm/translations/ka/LC_MESSAGES/messages.po +354 -256
  102. invenio_app_rdm/translations/ko/LC_MESSAGES/messages.mo +0 -0
  103. invenio_app_rdm/translations/ko/LC_MESSAGES/messages.po +355 -257
  104. invenio_app_rdm/translations/lt/LC_MESSAGES/messages.mo +0 -0
  105. invenio_app_rdm/translations/lt/LC_MESSAGES/messages.po +354 -256
  106. invenio_app_rdm/translations/no/LC_MESSAGES/messages.mo +0 -0
  107. invenio_app_rdm/translations/no/LC_MESSAGES/messages.po +353 -255
  108. invenio_app_rdm/translations/pl/LC_MESSAGES/messages.mo +0 -0
  109. invenio_app_rdm/translations/pl/LC_MESSAGES/messages.po +353 -255
  110. invenio_app_rdm/translations/pt/LC_MESSAGES/messages.mo +0 -0
  111. invenio_app_rdm/translations/pt/LC_MESSAGES/messages.po +353 -255
  112. invenio_app_rdm/translations/ro/LC_MESSAGES/messages.mo +0 -0
  113. invenio_app_rdm/translations/ro/LC_MESSAGES/messages.po +359 -261
  114. invenio_app_rdm/translations/ru/LC_MESSAGES/messages.mo +0 -0
  115. invenio_app_rdm/translations/ru/LC_MESSAGES/messages.po +356 -258
  116. invenio_app_rdm/translations/sk/LC_MESSAGES/messages.mo +0 -0
  117. invenio_app_rdm/translations/sk/LC_MESSAGES/messages.po +355 -257
  118. invenio_app_rdm/translations/sv/LC_MESSAGES/messages.mo +0 -0
  119. invenio_app_rdm/translations/sv/LC_MESSAGES/messages.po +377 -276
  120. invenio_app_rdm/translations/tr/LC_MESSAGES/messages.mo +0 -0
  121. invenio_app_rdm/translations/tr/LC_MESSAGES/messages.po +358 -260
  122. invenio_app_rdm/translations/uk/LC_MESSAGES/messages.mo +0 -0
  123. invenio_app_rdm/translations/uk/LC_MESSAGES/messages.po +356 -258
  124. invenio_app_rdm/translations/zh_CN/LC_MESSAGES/messages.mo +0 -0
  125. invenio_app_rdm/translations/zh_CN/LC_MESSAGES/messages.po +355 -257
  126. invenio_app_rdm/translations/zh_TW/LC_MESSAGES/messages.mo +0 -0
  127. invenio_app_rdm/translations/zh_TW/LC_MESSAGES/messages.po +353 -255
  128. invenio_app_rdm/upgrade_scripts/migrate_12_0_to_13_0.py +101 -4
  129. {invenio_app_rdm-13.0.1.dist-info → invenio_app_rdm-13.0.3.dist-info}/METADATA +34 -1
  130. {invenio_app_rdm-13.0.1.dist-info → invenio_app_rdm-13.0.3.dist-info}/RECORD +134 -134
  131. {invenio_app_rdm-13.0.1.dist-info → invenio_app_rdm-13.0.3.dist-info}/WHEEL +0 -0
  132. {invenio_app_rdm-13.0.1.dist-info → invenio_app_rdm-13.0.3.dist-info}/entry_points.txt +0 -0
  133. {invenio_app_rdm-13.0.1.dist-info → invenio_app_rdm-13.0.3.dist-info}/licenses/LICENSE +0 -0
  134. {invenio_app_rdm-13.0.1.dist-info → invenio_app_rdm-13.0.3.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__ = "13.0.1"
20
+ __version__ = "13.0.3"
21
21
 
22
22
  __all__ = ("__version__",)
invenio_app_rdm/config.py CHANGED
@@ -1181,6 +1181,7 @@ PAGES_DEFAULT_TEMPLATE = "invenio_app_rdm/default_static_page.html"
1181
1181
 
1182
1182
  PAGES_TEMPLATES = [
1183
1183
  ("invenio_app_rdm/default_static_page.html", "Default"),
1184
+ ("invenio_communities/default_static_page.html", "Community"),
1184
1185
  ]
1185
1186
  """List of available templates for pages."""
1186
1187
 
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
- # Copyright (C) 2022-2024 CERN.
3
+ # Copyright (C) 2022-2025 CERN.
4
4
  # Copyright (C) 2025 University of Münster.
5
5
  #
6
6
  # Invenio App RDM is free software; you can redistribute it and/or modify
@@ -68,6 +68,9 @@ class StaticPages(FixtureMixin):
68
68
  ),
69
69
  "lang": lang[0],
70
70
  "description": entry.get("description", ""),
71
- "template_name": current_app.config["PAGES_DEFAULT_TEMPLATE"],
71
+ "template_name": entry.get(
72
+ "template_name",
73
+ current_app.config["PAGES_DEFAULT_TEMPLATE"],
74
+ ),
72
75
  }
73
76
  current_pages_service.create(system_identity, data)
@@ -1,5 +1,5 @@
1
1
  {#
2
- Copyright (C) 2020-2024 CERN.
2
+ Copyright (C) 2020-2025 CERN.
3
3
  Copyright (C) 2023 Northwestern University.
4
4
  Copyright (C) 2021 Graz University of Technology.
5
5
  Copyright (C) 2021 TU Wien.
@@ -123,7 +123,7 @@ To access its content, please download it and open it locally.') }}
123
123
  <a href="{{ file_url_download }}">{{ file.key }}</a>
124
124
  </div>
125
125
  {%- if not is_remote_file %}
126
- <small class="ui text-muted font-tiny">{{ file.checksum }}
126
+ <small class="ui text-muted font-tiny">{{ file.checksum or _("Checksum not yet calculated.") }}
127
127
  <div class="ui icon inline-block" data-tooltip="{{_('This is the file fingerprint (checksum), which can be used to verify the file integrity.')}}">
128
128
  <i class="question circle checksum icon"></i>
129
129
  </div>
@@ -23,6 +23,7 @@ from invenio_rdm_records.proxies import current_rdm_records
23
23
  from invenio_rdm_records.resources.serializers.signposting import (
24
24
  FAIRSignpostingProfileLvl1Serializer,
25
25
  )
26
+ from invenio_rdm_records.services.errors import RecordDeletedException
26
27
  from invenio_records_resources.services.errors import PermissionDeniedError
27
28
  from sqlalchemy.orm.exc import NoResultFound
28
29
 
@@ -224,16 +225,28 @@ def pass_file_item(is_media=False):
224
225
  )
225
226
  record_service = media_files_service if is_media else files_service
226
227
 
227
- if is_preview:
228
- try:
229
- item = draft_service().get_file_content(**read_kwargs)
230
- except NoResultFound:
228
+ try:
229
+ if is_preview:
230
+ try:
231
+ item = draft_service().get_file_content(**read_kwargs)
232
+ except NoResultFound:
233
+ item = record_service().get_file_content(**read_kwargs)
234
+ else:
231
235
  item = record_service().get_file_content(**read_kwargs)
232
- else:
233
- item = record_service().get_file_content(**read_kwargs)
234
236
 
235
- kwargs["file_item"] = item
236
- return f(**kwargs)
237
+ kwargs["file_item"] = item
238
+ return f(**kwargs)
239
+
240
+ except RecordDeletedException:
241
+ # Redirect to the record page which has proper tombstone handling
242
+ return redirect(
243
+ url_for(
244
+ "invenio_app_rdm_records.record_detail",
245
+ pid_value=pid_value,
246
+ ),
247
+ # Use 302 (temporary) instead of 301 since records can be restored
248
+ code=302,
249
+ )
237
250
 
238
251
  return view
239
252
 
@@ -358,7 +371,8 @@ def pass_draft_community(f):
358
371
  comid = request.args.get("community")
359
372
  if comid:
360
373
  community = current_communities.service.read(id_=comid, identity=g.identity)
361
- kwargs["community"] = UICommunityJSONSerializer().dump_obj(
374
+ kwargs["community"] = community
375
+ kwargs["community_ui"] = UICommunityJSONSerializer().dump_obj(
362
376
  community.to_dict()
363
377
  )
364
378
 
@@ -15,6 +15,9 @@ from copy import deepcopy
15
15
 
16
16
  from flask import current_app, g, redirect
17
17
  from flask_login import login_required
18
+ from invenio_communities.communities.resources.serializer import (
19
+ UICommunityJSONSerializer,
20
+ )
18
21
  from invenio_communities.errors import CommunityDeletedError
19
22
  from invenio_communities.proxies import current_communities
20
23
  from invenio_communities.views.communities import render_community_theme_template
@@ -446,7 +449,7 @@ def new_record():
446
449
  @login_required
447
450
  @no_cache_response
448
451
  @pass_draft_community
449
- def deposit_create(community=None):
452
+ def deposit_create(community=None, community_ui=None):
450
453
  """Create a new deposit."""
451
454
  can_create = current_rdm_records.records_service.check_permission(
452
455
  g.identity, "create"
@@ -456,7 +459,7 @@ def deposit_create(community=None):
456
459
 
457
460
  community_theme = None
458
461
  if community is not None:
459
- community_theme = community.get("theme", {})
462
+ community_theme = community_ui.get("theme", {})
460
463
 
461
464
  community_use_jinja_header = bool(community_theme)
462
465
  dashboard_routes = current_app.config["APP_RDM_USER_DASHBOARD_ROUTES"]
@@ -479,9 +482,10 @@ def deposit_create(community=None):
479
482
  searchbar_config=dict(searchUrl=get_search_url()),
480
483
  record=new_record(),
481
484
  community=community,
485
+ community_ui=community_ui,
482
486
  community_use_jinja_header=community_use_jinja_header,
483
487
  files=dict(default_preview=None, entries=[], links={}),
484
- preselectedCommunity=community,
488
+ preselectedCommunity=community_ui,
485
489
  files_locked=False,
486
490
  permissions=get_record_permissions(
487
491
  [
@@ -517,6 +521,13 @@ def deposit_edit(pid_value, draft=None, draft_files=None, files_locked=True):
517
521
  ui_serializer = UIJSONSerializer()
518
522
  record = ui_serializer.dump_obj(draft.to_dict())
519
523
 
524
+ published_record = None
525
+ # if editing draft of a published record
526
+ if record.get("status") == "published":
527
+ _record = service.read(g.identity, id_=record["id"]).to_dict()
528
+ published_record = ui_serializer.dump_obj(_record)
529
+
530
+ community_ui = None
520
531
  community_theme = None
521
532
  community = record.get("expanded", {}).get("parent", {}).get("review", {}).get(
522
533
  "receiver"
@@ -531,6 +542,7 @@ def deposit_edit(pid_value, draft=None, draft_files=None, files_locked=True):
531
542
  id_=community["id"], identity=g.identity
532
543
  )
533
544
  community_theme = community.to_dict().get("theme", {})
545
+ community_ui = UICommunityJSONSerializer().dump_obj(community.to_dict())
534
546
  except CommunityDeletedError:
535
547
  pass
536
548
 
@@ -553,6 +565,7 @@ def deposit_edit(pid_value, draft=None, draft_files=None, files_locked=True):
553
565
  hide_community_selection=community_use_jinja_header,
554
566
  is_doi_required=is_doi_required,
555
567
  record=draft._record,
568
+ published_record=published_record,
556
569
  )
557
570
 
558
571
  if is_doi_required and not record.get("pids", {}).get("doi"):
@@ -573,6 +586,7 @@ def deposit_edit(pid_value, draft=None, draft_files=None, files_locked=True):
573
586
  forms_config=form_config,
574
587
  record=record,
575
588
  community=community,
589
+ community_ui=community_ui,
576
590
  community_use_jinja_header=community_use_jinja_header,
577
591
  files=files_dict,
578
592
  searchbar_config=dict(searchUrl=get_search_url()),
@@ -223,12 +223,12 @@ def record_detail(
223
223
  .get("owned_by", {})
224
224
  )
225
225
  resolved_community, _ = get_record_community(record_ui)
226
- resolved_community = (
226
+ resolved_community_ui = (
227
227
  UICommunityJSONSerializer().dump_obj(resolved_community.to_dict())
228
228
  if resolved_community
229
229
  else None
230
230
  )
231
- theme = resolved_community.get("theme", {}) if resolved_community else None
231
+ theme = resolved_community_ui.get("theme", {}) if resolved_community else None
232
232
 
233
233
  return render_community_theme_template(
234
234
  current_app.config.get("APP_RDM_RECORD_LANDING_PAGE_TEMPLATE"),
@@ -256,6 +256,7 @@ def record_detail(
256
256
  include_deleted=include_deleted,
257
257
  is_draft=is_draft,
258
258
  community=resolved_community,
259
+ community_ui=resolved_community_ui,
259
260
  external_resources=get_external_resources(record),
260
261
  user_avatar=avatar,
261
262
  record_owner_id=(
@@ -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) 2021-2022 New York University.
@@ -204,7 +204,7 @@ export const RDMEmptyResults = ({ queryString, searchPath, resetQuery }) => {
204
204
  <Grid.Column width={12} textAlign="center">
205
205
  <Header as="h2">
206
206
  {i18next.t("We couldn't find any matches for {{- search}}", {
207
- search: (queryString && `'${queryString}'`) || "your search",
207
+ search: (queryString && `'${queryString}'`) || i18next.t("your search"),
208
208
  })}
209
209
  </Header>
210
210
  </Grid.Column>
@@ -1,15 +1,15 @@
1
1
  #
2
2
  # Translators:
3
- # Tibor Simko <tibor.simko@cern.ch>, 2024
4
- # Bessem Aamira <bessemamira@gmail.com>, 2025
3
+ # Tibor Simko <tibor.simko@cern.ch>, 2025
5
4
  # Salaheddine Ben Ali <salaheddine.benali@cnudst.tn>, 2025
5
+ # Bessem Aamira <bessemamira@gmail.com>, 2025
6
6
  #
7
7
  msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: i18next-conv\n"
10
- "POT-Creation-Date: 2025-03-27T16:30:16.192Z\n"
10
+ "POT-Creation-Date: 2025-07-22T14:13:07.642Z\n"
11
11
  "PO-Revision-Date: 2021-07-14 16:07+0000\n"
12
- "Last-Translator: Salaheddine Ben Ali <salaheddine.benali@cnudst.tn>, 2025\n"
12
+ "Last-Translator: Bessem Aamira <bessemamira@gmail.com>, 2025\n"
13
13
  "Language-Team: Arabic (https://app.transifex.com/inveniosoftware/teams/23537/ar/)\n"
14
14
  "Content-Type: text/plain; charset=UTF-8\n"
15
15
  "Content-Transfer-Encoding: 8bit\n"
@@ -17,8 +17,35 @@ msgstr ""
17
17
  "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
18
18
  "mime-version: 1.0\n"
19
19
 
20
- msgid "Basic information"
21
- msgstr "المعلومات الأساسية"
20
+ msgid "Recent changes"
21
+ msgstr ""
22
+
23
+ msgid "Audit Log Details"
24
+ msgstr ""
25
+
26
+ msgid "Resource"
27
+ msgstr ""
28
+
29
+ msgid "Resource ID"
30
+ msgstr ""
31
+
32
+ msgid "Action"
33
+ msgstr "نشاط"
34
+
35
+ msgid "User"
36
+ msgstr "مستخدم"
37
+
38
+ msgid "Created"
39
+ msgstr "تمّ الإنشاء"
40
+
41
+ msgid "No revision ID found."
42
+ msgstr ""
43
+
44
+ msgid "Unable to fetch revisions."
45
+ msgstr ""
46
+
47
+ msgid "Cancel revision comparison"
48
+ msgstr ""
22
49
 
23
50
  msgid "Impersonate user"
24
51
  msgstr "محاكاة لشخصيّة المستخدم"
@@ -45,11 +72,17 @@ msgid ""
45
72
  "proceed."
46
73
  msgstr "يرجى قراءة البيانات التّالية بعناية والتّأكّد منها قبل المواصلة."
47
74
 
48
- msgid "You are about to impersonate user <bold>{{email}}(id: {{id}})</bold>."
49
- msgstr "أنت على وشك محاكاة شخصية المستخدم <bold>{{email}}(id: {{id}})</bold>."
75
+ msgid "You are about to impersonate user "
76
+ msgstr ""
77
+
78
+ msgid "You "
79
+ msgstr ""
50
80
 
51
- msgid "You <bold>MUST</bold> logout after completing your inquiry."
52
- msgstr "أنت <bold>ملزم</bold> بتسجيل الخروج بعد الانتهاء من استفسارك."
81
+ msgid "MUST"
82
+ msgstr ""
83
+
84
+ msgid " logout after completing your inquiry."
85
+ msgstr ""
53
86
 
54
87
  msgid "Close"
55
88
  msgstr "غلق"
@@ -65,10 +98,8 @@ msgstr "ملاحظة"
65
98
 
66
99
  msgid ""
67
100
  "This is the default quota that will be applied to any NEW records created by"
68
- " this user it will NOT update quota of existing records."
101
+ " this user - it will NOT update quota of existing records."
69
102
  msgstr ""
70
- "هذه هي الكوتا الجزافيّة التي سيتم تطبيقها على أي تسجيلات جديدة ينشئها هذا "
71
- "المستخدم - ولن يتم تحديث حصة التّسجيلات الموجودة سابقا."
72
103
 
73
104
  msgid "Quota of {{id}} was set to {{quota}} {{unit}}"
74
105
  msgstr "الكوتا {{id}} حدّدت بـ {{quota}} {{unit}}"
@@ -148,6 +179,9 @@ msgstr "روابط"
148
179
  msgid "Set quota for record {{recordId}}"
149
180
  msgstr "ثبّت الكوتا للتّسجيلة {{recordId}}"
150
181
 
182
+ msgid "Compare revisions"
183
+ msgstr ""
184
+
151
185
  msgid "Delete record"
152
186
  msgstr "إحذف التسجيلة"
153
187
 
@@ -184,8 +218,8 @@ msgstr "إصدار"
184
218
  msgid "Owner"
185
219
  msgstr "المالك"
186
220
 
187
- msgid "Created"
188
- msgstr "تمّ الإنشاء"
221
+ msgid "System"
222
+ msgstr "نظام"
189
223
 
190
224
  msgid "Files"
191
225
  msgstr "الملفّات"
@@ -240,9 +274,6 @@ msgstr "وقع حظر {{name}} المستخدم"
240
274
  msgid "Error"
241
275
  msgstr "خطأ"
242
276
 
243
- msgid "User"
244
- msgstr "مستخدم"
245
-
246
277
  msgid "Email"
247
278
  msgstr "البريد الإلكتروني"
248
279
 
@@ -264,6 +295,12 @@ msgstr "جيت هوب GitHub"
264
295
  msgid "Updated"
265
296
  msgstr "محينة"
266
297
 
298
+ msgid "Drafts"
299
+ msgstr "مسودات"
300
+
301
+ msgid "Moderation"
302
+ msgstr "الإشراف"
303
+
267
304
  msgid "Restore"
268
305
  msgstr "إسترجع"
269
306
 
@@ -300,18 +337,12 @@ msgstr "تنقية النتائج"
300
337
  msgid "Search records in community..."
301
338
  msgstr "البحث في سجلات المجتمع..."
302
339
 
340
+ msgid "results found"
341
+ msgstr ""
342
+
303
343
  msgid "Sort by"
304
344
  msgstr "مرتبة حسب"
305
345
 
306
- msgid " results found"
307
- msgid_plural " results found"
308
- msgstr[0] "تم العثور على النتائج"
309
- msgstr[1] "تم العثور على النتائج"
310
- msgstr[2] "تم العثور على النتائج"
311
- msgstr[3] "تم العثور على النتائج"
312
- msgstr[4] "تم العثور على النتائج"
313
- msgstr[5] "تم العثور على النتائج"
314
-
315
346
  msgid "Search records..."
316
347
  msgstr "البحث عن تسجيلات..."
317
348
 
@@ -351,17 +382,17 @@ msgstr "لا يوجد عنوان"
351
382
  msgid "Uploaded on {{uploadDate}}"
352
383
  msgstr "محمّل في {{uploadDate}}"
353
384
 
354
- msgid "Published in: {{publishInfo}}"
355
- msgstr "نشر في: {{publishInfo}}"
385
+ msgid "Published in: {{- publishInfo }}"
386
+ msgstr ""
387
+
388
+ msgid "Recommendation"
389
+ msgstr ""
356
390
 
357
- msgid "{{count}} more versions exist for this record"
358
- msgid_plural "{{count}} more versions exist for this record"
359
- msgstr[0] "هناك {{count}} إصدارات أخرى موجودة لهذه التسجيلة"
360
- msgstr[1] "هناك {{count}} إصدارات أخرى موجودة لهذه التسجيلة"
361
- msgstr[2] "هناك {{count}} إصدارات أخرى موجودة لهذه التسجيلة"
362
- msgstr[3] "هناك {{count}} إصدارات أخرى موجودة لهذه التسجيلة"
363
- msgstr[4] "هناك {{count}} إصدارات أخرى موجودة لهذه التسجيلة"
364
- msgstr[5] "هناك {{count}} إصدارات أخرى موجودة لهذه التسجيلة"
391
+ msgid "This check is recommended but not mandatory."
392
+ msgstr ""
393
+
394
+ msgid "This check indicates a critical issue that must be addressed."
395
+ msgstr ""
365
396
 
366
397
  msgid "Person"
367
398
  msgstr "شخص"
@@ -369,6 +400,9 @@ msgstr "شخص"
369
400
  msgid "The record has no files."
370
401
  msgstr "التّسجيلة لا تحتوي على ملفّات."
371
402
 
403
+ msgid "Basic information"
404
+ msgstr "المعلومات الأساسية"
405
+
372
406
  msgid "Creators"
373
407
  msgstr "المنشؤون"
374
408
 
@@ -452,15 +486,6 @@ msgstr "حدث خطأ أثناء معالجة المجتمعات."
452
486
  msgid "Communities"
453
487
  msgstr "المجتمعات"
454
488
 
455
- msgid "View all {{count}} communities"
456
- msgid_plural "View all {{count}} communities"
457
- msgstr[0] "عرض جميع {{count}} المجتمعات"
458
- msgstr[1] "عرض جميع {{count}} المجتمعات"
459
- msgstr[2] "عرض جميع {{count}} المجتمعات"
460
- msgstr[3] "عرض جميع {{count}} المجتمعات"
461
- msgstr[4] "عرض جميع {{count}} المجتمعات"
462
- msgstr[5] "عرض جميع {{count}} المجتمعات "
463
-
464
489
  msgid "Submit to community"
465
490
  msgstr "قدّم للمجتمع"
466
491
 
@@ -494,6 +519,15 @@ msgstr "التّصرّف في التسجيلة"
494
519
  msgid "Manage user"
495
520
  msgstr "إدارة المستخدم"
496
521
 
522
+ msgid "Block user"
523
+ msgstr ""
524
+
525
+ msgid "Block User"
526
+ msgstr ""
527
+
528
+ msgid "Blocking the user will delete all existing records of the user."
529
+ msgstr ""
530
+
497
531
  msgid "Remove branding"
498
532
  msgstr "حذف الوسام"
499
533
 
@@ -528,6 +562,9 @@ msgstr "أسلوب"
528
562
  msgid "This record is not included in any communities yet."
529
563
  msgstr "هذه التّسجيلة غير مدرجة بعد في أحد المجتمعات."
530
564
 
565
+ msgid "Part of"
566
+ msgstr ""
567
+
531
568
  msgid "Search for community..."
532
569
  msgstr "البحث عن مجتمع..."
533
570
 
@@ -558,32 +595,21 @@ msgstr " يمكن الإطلاع على الإصدار المنشور فقط."
558
595
  msgid "An error occurred while fetching the versions."
559
596
  msgstr "حدث خطأ أثناء معالجة الإصدار."
560
597
 
561
- msgid "View all {{count}} versions"
562
- msgid_plural "View all {{count}} versions"
563
- msgstr[0] "عرض جميع {{count}} الإصدارات"
564
- msgstr[1] "عرض جميع {{count}} الإصدارات"
565
- msgstr[2] "عرض جميع {{count}} الإصدارات"
566
- msgstr[3] "عرض جميع {{count}} الإصدارات"
567
- msgstr[4] "عرض جميع {{count}} الإصدارات"
568
- msgstr[5] "عرض جميع {{count}} الإصدارات"
598
+ msgid "Cite all versions?"
599
+ msgstr ""
569
600
 
570
- msgid ""
571
- "<0><0>Cite all versions?</0> You can cite all versions by using the DOI "
572
- "<3></3>. This DOI represents all versions, and will always resolve to the "
573
- "latest one. <5>Read more</5>.</0>"
601
+ msgid "You can cite all versions by using the DOI"
574
602
  msgstr ""
575
- "<0><0>هل تريد الاستشهاد بجميع الإصدارات؟</0> يمكنك الاستشهاد بجميع الإصدارات"
576
- " باستخدام DOI<3></3>. يمثل هذا الـ DOI جميع الإصدارات، وسيُرجع دائمًا إلى "
577
- "الإصدار الأحدث. <5>إقرأ المزيد</5>.</0>"
578
603
 
579
604
  msgid ""
580
- "<0><0>Cite all versions?</0> You can cite all versions by using the DOI . "
581
- "The DOI is registered when the first version is published. <4>Read "
582
- "more</4>.</0>"
605
+ "This DOI represents all versions, and will always resolve to the latest one."
606
+ msgstr ""
607
+
608
+ msgid "Read more"
609
+ msgstr "إقراء المزيد"
610
+
611
+ msgid "The DOI is registered when the first version is published."
583
612
  msgstr ""
584
- "<0><0>هل تريد الاستشهاد بجميع الإصدارات؟</0> يمكنك الاستشهاد بجميع الإصدارات"
585
- " باستخدام DOI. هذا الـ DOI قد سجّل عند نشر الإصدار الأوّل. <4>إقرأ "
586
- "المزيد</4>.</0>"
587
613
 
588
614
  msgid "Remove"
589
615
  msgstr "حذف"
@@ -600,6 +626,18 @@ msgstr "هل انت متأكد من حذف التّسجيلة من هذا الم
600
626
  msgid "I understand the consequences:"
601
627
  msgstr "أنا أتفهّم النتائج:"
602
628
 
629
+ msgid "Members of the community "
630
+ msgstr ""
631
+
632
+ msgid " will "
633
+ msgstr ""
634
+
635
+ msgid "lose their access"
636
+ msgstr ""
637
+
638
+ msgid " to the record."
639
+ msgstr ""
640
+
603
641
  msgid ""
604
642
  "The record can only be re-included in the community by going through a new "
605
643
  "review by the community curators."
@@ -619,13 +657,6 @@ msgstr "إلغاء"
619
657
  msgid "Confirm removal"
620
658
  msgstr "تأكيد الحذف"
621
659
 
622
- msgid ""
623
- "Members of the community <1>\"<1>{{communityTitle}}</1>\"</1> will <4>lose "
624
- "their access</4> to the record."
625
- msgstr ""
626
- "أعضاء المجتمع<1> \"<1>{{communityTitle}}</1>\"</1> <4>سيفقدون إمكانية "
627
- "الوصول</4> إلى التسجيلة."
628
-
629
660
  msgid "Select permissions"
630
661
  msgstr "إختر الأذون"
631
662
 
@@ -668,15 +699,18 @@ msgstr "يمكن عرض الملفات المقيدة لجميع إصدارات
668
699
  msgid "Can preview drafts"
669
700
  msgstr "يمكن معاينة المسودات"
670
701
 
671
- msgid "Can view drafts and restricted files of all versions of this record."
672
- msgstr "يمكن عرض المسودات و الملفات المقيدة لجميع إصدارات هذه التسجيلة."
702
+ msgid ""
703
+ "Can view drafts, restricted files, and comment on associated draft requests "
704
+ "of all versions of this record."
705
+ msgstr ""
673
706
 
674
707
  msgid "Can edit"
675
708
  msgstr "يمكن التعديل"
676
709
 
677
710
  msgid ""
678
- "Can edit drafts and view restricted files of all versions of this record."
679
- msgstr "يمكن فتح المسودات و الملفات المقيدة لجميع إصدارات هذه التسجيلة."
711
+ "Can edit drafts, view restricted files, and comment on associated draft "
712
+ "requests of all versions of this record."
713
+ msgstr ""
680
714
 
681
715
  msgid ""
682
716
  "Can view (view access link can be created only after the record is "
@@ -775,11 +809,9 @@ msgid "Can manage"
775
809
  msgstr "يمكن إدارتها"
776
810
 
777
811
  msgid ""
778
- "Can manage access, edit drafts and view restricted files of all versions of "
779
- "this record."
812
+ "Can manage access, edit drafts, view restricted files, and comment on "
813
+ "associated draft requests of all versions of this record."
780
814
  msgstr ""
781
- "يمكنك إدارة الوصول وتحرير المسودات وعرض الملفات المقيدة لجميع إصدارات هذه "
782
- "التسجيلة."
783
815
 
784
816
  msgid "You don't have permissions to share this record."
785
817
  msgstr "غير مخول لك مشاركة السجل."
@@ -848,24 +880,41 @@ msgstr "إبدا من جديد"
848
880
  msgid "ProTip"
849
881
  msgstr "نصيحة محترف"
850
882
 
883
+ msgid "will give you all the publications from 2025 until today."
884
+ msgstr ""
885
+
886
+ msgid "For more tips, check out our "
887
+ msgstr "لمزيد من النصائح، قم بالاطلاع على "
888
+
851
889
  msgid "Search guide"
852
890
  msgstr "دليل البحث"
853
891
 
854
- msgid ""
855
- "<0>For more tips, check out our <2>search guide</2> for defining advanced "
856
- "search queries.</0>"
892
+ msgid "search guide"
893
+ msgstr "دليل البحث"
894
+
895
+ msgid "for defining advanced search queries."
896
+ msgstr ""
897
+
898
+ msgid "This community has no subcommunities"
899
+ msgstr ""
900
+
901
+ msgid "Logging in..."
902
+ msgstr ""
903
+
904
+ msgid "Logging out..."
857
905
  msgstr ""
858
- "<0>لمزيد من النصائح، راجع <2>دليل البحث الخاص بنا</2> لتحديد استعلامات البحث"
859
- " المتقدمة advanced search queries.</0>"
860
906
 
861
907
  msgid "Search in my communities..."
862
908
  msgstr "البحث في مجتمعاتي..."
863
909
 
910
+ msgid "My communities"
911
+ msgstr "مجتمعاتي"
912
+
864
913
  msgid "View"
865
914
  msgstr "عرض"
866
915
 
867
- msgid "Published in: {{publishedIn}}"
868
- msgstr "نشر في: {{publishedIn}}"
916
+ msgid "Published in: {{- publishedIn }}"
917
+ msgstr ""
869
918
 
870
919
  msgid "In review"
871
920
  msgstr "بصدد التقييم"
@@ -903,6 +952,9 @@ msgstr "إيداع جديد"
903
952
  msgid "Search in my uploads..."
904
953
  msgstr "البحث في التحميلات خاصّتي..."
905
954
 
955
+ msgid "My uploads"
956
+ msgstr ""
957
+
906
958
  msgid "ORCID profile"
907
959
  msgstr "الملف الشخصي أوركيد ORCID"
908
960
 
@@ -923,29 +975,3 @@ msgstr "شعار ج ن د GND"
923
975
 
924
976
  msgid "No name"
925
977
  msgstr "لا يوجد اسم"
926
-
927
- msgid "and {{count}} other"
928
- msgid_plural "and {{count}} other"
929
- msgstr[0] "و {{count}} أخرى"
930
- msgstr[1] "و {{count}} أخرى"
931
- msgstr[2] "و {{count}} أخرى"
932
- msgstr[3] "و {{count}} أخرى"
933
- msgstr[4] "و {{count}} أخرى"
934
- msgstr[5] "و {{count}} أخرى"
935
-
936
- msgid "and {{count}} others"
937
- msgid_plural "and {{count}} others"
938
- msgstr[0] "و {{count}} آخرين"
939
- msgstr[1] "و {{count}} آخرين"
940
- msgstr[2] "و {{count}} آخرين"
941
- msgstr[3] "و {{count}} آخرين"
942
- msgstr[4] "و {{count}} آخرين"
943
- msgstr[5] "و {{count}} آخرين"
944
-
945
- msgctxt ""
946
- "date:[2017-01-01 TO *]</0> will give you all the publications from 2017 "
947
- "until today.</0>"
948
- msgid "<0><0>metadata.publication"
949
- msgstr ""
950
- "<0><0>metadata.publication_date:[2017-01-01 TO *]</0>سيقدم لكم جميع "
951
- "الإصدارات من عام 2017 حتى اليوم.</0>"