wagtail 6.0.1__py3-none-any.whl → 6.0.2__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 (186) hide show
  1. wagtail/__init__.py +1 -1
  2. wagtail/admin/locale/ca/LC_MESSAGES/django.mo +0 -0
  3. wagtail/admin/locale/ca/LC_MESSAGES/django.po +122 -0
  4. wagtail/admin/locale/es/LC_MESSAGES/django.mo +0 -0
  5. wagtail/admin/locale/es/LC_MESSAGES/django.po +6 -6
  6. wagtail/admin/locale/fr/LC_MESSAGES/django.mo +0 -0
  7. wagtail/admin/locale/fr/LC_MESSAGES/django.po +70 -3
  8. wagtail/admin/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  9. wagtail/admin/locale/he_IL/LC_MESSAGES/django.po +2 -6
  10. wagtail/admin/locale/he_IL/LC_MESSAGES/djangojs.mo +0 -0
  11. wagtail/admin/locale/he_IL/LC_MESSAGES/djangojs.po +2 -2
  12. wagtail/admin/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  13. wagtail/admin/locale/hr_HR/LC_MESSAGES/django.po +4 -0
  14. wagtail/admin/locale/hu/LC_MESSAGES/django.mo +0 -0
  15. wagtail/admin/locale/hu/LC_MESSAGES/django.po +142 -2
  16. wagtail/admin/locale/it/LC_MESSAGES/django.mo +0 -0
  17. wagtail/admin/locale/it/LC_MESSAGES/django.po +80 -8
  18. wagtail/admin/locale/it/LC_MESSAGES/djangojs.mo +0 -0
  19. wagtail/admin/locale/it/LC_MESSAGES/djangojs.po +14 -2
  20. wagtail/admin/locale/lv/LC_MESSAGES/django.mo +0 -0
  21. wagtail/admin/locale/lv/LC_MESSAGES/django.po +154 -1
  22. wagtail/admin/locale/sl/LC_MESSAGES/django.mo +0 -0
  23. wagtail/admin/locale/sl/LC_MESSAGES/django.po +145 -2
  24. wagtail/admin/locale/sv/LC_MESSAGES/django.mo +0 -0
  25. wagtail/admin/locale/sv/LC_MESSAGES/django.po +77 -3
  26. wagtail/admin/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
  27. wagtail/admin/locale/zh_Hant/LC_MESSAGES/django.po +17 -1
  28. wagtail/admin/static/wagtailadmin/css/core.css +1 -1
  29. wagtail/admin/static/wagtailadmin/js/vendor.js +1 -1
  30. wagtail/admin/templates/wagtailadmin/admin_base.html +1 -0
  31. wagtail/admin/templates/wagtailadmin/collections/edit.html +0 -1
  32. wagtail/admin/templates/wagtailadmin/generic/form.html +1 -0
  33. wagtail/admin/templates/wagtailadmin/generic/index_results.html +8 -0
  34. wagtail/admin/templates/wagtailadmin/home/workflow_objects_to_moderate.html +0 -1
  35. wagtail/admin/templates/wagtailadmin/pages/_editor_js.html +0 -1
  36. wagtail/admin/templates/wagtailadmin/pages/index.html +0 -2
  37. wagtail/admin/templates/wagtailadmin/shared/headers/slim_header.html +1 -1
  38. wagtail/admin/tests/api/test_pages.py +26 -10
  39. wagtail/admin/tests/viewsets/test_model_viewset.py +10 -0
  40. wagtail/admin/views/generic/base.py +3 -0
  41. wagtail/admin/views/generic/models.py +0 -9
  42. wagtail/admin/widgets/button.py +1 -2
  43. wagtail/contrib/forms/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  44. wagtail/contrib/forms/locale/he_IL/LC_MESSAGES/django.po +2 -2
  45. wagtail/contrib/redirects/locale/fr/LC_MESSAGES/django.po +2 -2
  46. wagtail/contrib/redirects/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  47. wagtail/contrib/redirects/locale/he_IL/LC_MESSAGES/django.po +2 -2
  48. wagtail/contrib/search_promotions/locale/fr/LC_MESSAGES/django.po +2 -2
  49. wagtail/contrib/search_promotions/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  50. wagtail/contrib/search_promotions/locale/he_IL/LC_MESSAGES/django.po +2 -2
  51. wagtail/contrib/search_promotions/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  52. wagtail/contrib/search_promotions/locale/hr_HR/LC_MESSAGES/django.po +41 -2
  53. wagtail/contrib/search_promotions/locale/it/LC_MESSAGES/django.mo +0 -0
  54. wagtail/contrib/search_promotions/locale/it/LC_MESSAGES/django.po +9 -3
  55. wagtail/contrib/settings/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  56. wagtail/contrib/settings/locale/he_IL/LC_MESSAGES/django.po +2 -2
  57. wagtail/contrib/settings/locale/tr/LC_MESSAGES/django.mo +0 -0
  58. wagtail/contrib/settings/locale/tr/LC_MESSAGES/django.po +6 -2
  59. wagtail/contrib/styleguide/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  60. wagtail/contrib/styleguide/locale/he_IL/LC_MESSAGES/django.po +2 -2
  61. wagtail/contrib/table_block/blocks.py +1 -1
  62. wagtail/contrib/table_block/locale/ca/LC_MESSAGES/django.mo +0 -0
  63. wagtail/contrib/table_block/locale/ca/LC_MESSAGES/django.po +27 -2
  64. wagtail/contrib/table_block/locale/hu/LC_MESSAGES/django.mo +0 -0
  65. wagtail/contrib/table_block/locale/hu/LC_MESSAGES/django.po +27 -2
  66. wagtail/contrib/table_block/locale/it/LC_MESSAGES/django.mo +0 -0
  67. wagtail/contrib/table_block/locale/it/LC_MESSAGES/django.po +27 -2
  68. wagtail/contrib/table_block/tests.py +6 -0
  69. wagtail/contrib/typed_table_block/locale/ca/LC_MESSAGES/django.mo +0 -0
  70. wagtail/contrib/typed_table_block/locale/ca/LC_MESSAGES/django.po +12 -2
  71. wagtail/contrib/typed_table_block/locale/hu/LC_MESSAGES/django.mo +0 -0
  72. wagtail/contrib/typed_table_block/locale/hu/LC_MESSAGES/django.po +12 -2
  73. wagtail/contrib/typed_table_block/locale/it/LC_MESSAGES/django.mo +0 -0
  74. wagtail/contrib/typed_table_block/locale/it/LC_MESSAGES/django.po +12 -2
  75. wagtail/documents/locale/fr/LC_MESSAGES/django.po +2 -2
  76. wagtail/documents/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  77. wagtail/documents/locale/he_IL/LC_MESSAGES/django.po +2 -2
  78. wagtail/documents/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  79. wagtail/documents/locale/hr_HR/LC_MESSAGES/django.po +19 -2
  80. wagtail/documents/locale/hu/LC_MESSAGES/django.mo +0 -0
  81. wagtail/documents/locale/hu/LC_MESSAGES/django.po +16 -2
  82. wagtail/documents/locale/it/LC_MESSAGES/django.mo +0 -0
  83. wagtail/documents/locale/it/LC_MESSAGES/django.po +19 -2
  84. wagtail/embeds/locale/fr/LC_MESSAGES/django.po +2 -2
  85. wagtail/embeds/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  86. wagtail/embeds/locale/he_IL/LC_MESSAGES/django.po +2 -2
  87. wagtail/images/locale/ca/LC_MESSAGES/django.mo +0 -0
  88. wagtail/images/locale/ca/LC_MESSAGES/django.po +12 -0
  89. wagtail/images/locale/fr/LC_MESSAGES/django.po +2 -2
  90. wagtail/images/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  91. wagtail/images/locale/he_IL/LC_MESSAGES/django.po +2 -2
  92. wagtail/images/locale/hu/LC_MESSAGES/django.mo +0 -0
  93. wagtail/images/locale/hu/LC_MESSAGES/django.po +28 -2
  94. wagtail/images/locale/it/LC_MESSAGES/django.mo +0 -0
  95. wagtail/images/locale/it/LC_MESSAGES/django.po +14 -2
  96. wagtail/locale/es/LC_MESSAGES/django.mo +0 -0
  97. wagtail/locale/es/LC_MESSAGES/django.po +3 -2
  98. wagtail/locale/fr/LC_MESSAGES/django.po +2 -2
  99. wagtail/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  100. wagtail/locale/he_IL/LC_MESSAGES/django.po +2 -2
  101. wagtail/locale/it/LC_MESSAGES/django.mo +0 -0
  102. wagtail/locale/it/LC_MESSAGES/django.po +5 -5
  103. wagtail/locale/sl/LC_MESSAGES/django.mo +0 -0
  104. wagtail/locale/sl/LC_MESSAGES/django.po +27 -2
  105. wagtail/locales/locale/ar/LC_MESSAGES/django.po +1 -1
  106. wagtail/locales/locale/be/LC_MESSAGES/django.po +1 -1
  107. wagtail/locales/locale/bg/LC_MESSAGES/django.po +1 -1
  108. wagtail/locales/locale/ca/LC_MESSAGES/django.po +1 -1
  109. wagtail/locales/locale/cs/LC_MESSAGES/django.po +1 -1
  110. wagtail/locales/locale/cy/LC_MESSAGES/django.po +1 -1
  111. wagtail/locales/locale/da/LC_MESSAGES/django.po +1 -1
  112. wagtail/locales/locale/de/LC_MESSAGES/django.po +1 -1
  113. wagtail/locales/locale/el/LC_MESSAGES/django.po +1 -1
  114. wagtail/locales/locale/es/LC_MESSAGES/django.po +1 -1
  115. wagtail/locales/locale/et/LC_MESSAGES/django.po +2 -2
  116. wagtail/locales/locale/fa/LC_MESSAGES/django.po +1 -1
  117. wagtail/locales/locale/fi/LC_MESSAGES/django.po +1 -1
  118. wagtail/locales/locale/fr/LC_MESSAGES/django.po +1 -1
  119. wagtail/locales/locale/gl/LC_MESSAGES/django.po +1 -1
  120. wagtail/locales/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  121. wagtail/locales/locale/he_IL/LC_MESSAGES/django.po +3 -3
  122. wagtail/locales/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  123. wagtail/locales/locale/hu/LC_MESSAGES/django.po +1 -1
  124. wagtail/locales/locale/id_ID/LC_MESSAGES/django.po +1 -1
  125. wagtail/locales/locale/is_IS/LC_MESSAGES/django.po +1 -1
  126. wagtail/locales/locale/it/LC_MESSAGES/django.po +1 -1
  127. wagtail/locales/locale/ja/LC_MESSAGES/django.po +1 -1
  128. wagtail/locales/locale/ko/LC_MESSAGES/django.po +1 -1
  129. wagtail/locales/locale/lt/LC_MESSAGES/django.po +1 -1
  130. wagtail/locales/locale/lv/LC_MESSAGES/django.po +1 -1
  131. wagtail/locales/locale/mi/LC_MESSAGES/django.po +1 -1
  132. wagtail/locales/locale/mn/LC_MESSAGES/django.po +1 -1
  133. wagtail/locales/locale/my/LC_MESSAGES/django.po +1 -1
  134. wagtail/locales/locale/nb/LC_MESSAGES/django.po +1 -1
  135. wagtail/locales/locale/nl/LC_MESSAGES/django.po +1 -1
  136. wagtail/locales/locale/pl/LC_MESSAGES/django.po +1 -1
  137. wagtail/locales/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  138. wagtail/locales/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  139. wagtail/locales/locale/ro/LC_MESSAGES/django.po +1 -1
  140. wagtail/locales/locale/ru/LC_MESSAGES/django.po +1 -1
  141. wagtail/locales/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  142. wagtail/locales/locale/sl/LC_MESSAGES/django.po +1 -1
  143. wagtail/locales/locale/sv/LC_MESSAGES/django.po +1 -1
  144. wagtail/locales/locale/tet/LC_MESSAGES/django.po +1 -1
  145. wagtail/locales/locale/th/LC_MESSAGES/django.po +1 -1
  146. wagtail/locales/locale/tr/LC_MESSAGES/django.po +1 -1
  147. wagtail/locales/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  148. wagtail/locales/locale/uk/LC_MESSAGES/django.po +1 -1
  149. wagtail/locales/locale/vi/LC_MESSAGES/django.po +1 -1
  150. wagtail/locales/locale/zh/LC_MESSAGES/django.po +1 -1
  151. wagtail/locales/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  152. wagtail/locales/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  153. wagtail/sites/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  154. wagtail/sites/locale/he_IL/LC_MESSAGES/django.po +2 -2
  155. wagtail/sites/locale/ro/LC_MESSAGES/django.mo +0 -0
  156. wagtail/sites/locale/ro/LC_MESSAGES/django.po +3 -2
  157. wagtail/sites/templates/wagtailsites/create.html +0 -1
  158. wagtail/sites/templates/wagtailsites/edit.html +0 -1
  159. wagtail/snippets/locale/de/LC_MESSAGES/django.mo +0 -0
  160. wagtail/snippets/locale/de/LC_MESSAGES/django.po +2 -2
  161. wagtail/snippets/locale/fr/LC_MESSAGES/django.po +2 -2
  162. wagtail/snippets/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  163. wagtail/snippets/locale/he_IL/LC_MESSAGES/django.po +2 -2
  164. wagtail/snippets/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  165. wagtail/snippets/locale/hr_HR/LC_MESSAGES/django.po +6 -2
  166. wagtail/snippets/locale/lv/LC_MESSAGES/django.mo +0 -0
  167. wagtail/snippets/locale/lv/LC_MESSAGES/django.po +12 -0
  168. wagtail/snippets/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
  169. wagtail/snippets/locale/zh_Hant/LC_MESSAGES/django.po +4 -0
  170. wagtail/snippets/templates/wagtailsnippets/snippets/create.html +1 -2
  171. wagtail/snippets/templates/wagtailsnippets/snippets/edit.html +1 -2
  172. wagtail/snippets/tests/test_viewset.py +32 -0
  173. wagtail/users/locale/fr/LC_MESSAGES/django.po +2 -2
  174. wagtail/users/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  175. wagtail/users/locale/he_IL/LC_MESSAGES/django.po +2 -2
  176. wagtail/users/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  177. wagtail/users/locale/hr_HR/LC_MESSAGES/django.po +13 -2
  178. wagtail/users/templates/wagtailusers/groups/includes/group_form_js.html +0 -1
  179. wagtail/users/templates/wagtailusers/users/create.html +0 -5
  180. wagtail/users/templates/wagtailusers/users/edit.html +0 -5
  181. {wagtail-6.0.1.dist-info → wagtail-6.0.2.dist-info}/METADATA +2 -2
  182. {wagtail-6.0.1.dist-info → wagtail-6.0.2.dist-info}/RECORD +186 -186
  183. {wagtail-6.0.1.dist-info → wagtail-6.0.2.dist-info}/LICENSE +0 -0
  184. {wagtail-6.0.1.dist-info → wagtail-6.0.2.dist-info}/WHEEL +0 -0
  185. {wagtail-6.0.1.dist-info → wagtail-6.0.2.dist-info}/entry_points.txt +0 -0
  186. {wagtail-6.0.1.dist-info → wagtail-6.0.2.dist-info}/top_level.txt +0 -0
@@ -56,6 +56,7 @@
56
56
  <script src="{% versioned_static 'wagtailadmin/js/wagtailadmin.js' %}"></script>
57
57
  <script src="{% versioned_static 'wagtailadmin/js/telepath/telepath.js' %}"></script>
58
58
  <script src="{% versioned_static 'wagtailadmin/js/sidebar.js' %}"></script>
59
+ <script src="{% versioned_static 'wagtailadmin/js/modal-workflow.js' %}"></script>
59
60
 
60
61
  {% hook_output 'insert_global_admin_js' %}
61
62
 
@@ -7,6 +7,5 @@
7
7
 
8
8
  {% block extra_js %}
9
9
  {{ block.super }}
10
- <script src="{% versioned_static 'wagtailadmin/js/modal-workflow.js' %}"></script>
11
10
  <script src="{% versioned_static 'wagtailadmin/js/privacy-switch.js' %}"></script>
12
11
  {% endblock %}
@@ -44,6 +44,7 @@
44
44
  {% block extra_js %}
45
45
  {{ block.super }}
46
46
  {{ media.js }}
47
+ {% include "wagtailadmin/pages/_editor_js.html" %}
47
48
  {% endblock %}
48
49
 
49
50
  {% block extra_css %}
@@ -12,6 +12,14 @@
12
12
  </template>
13
13
  {% endif %}
14
14
 
15
+ {% if render_buttons_fragment %}
16
+ <template data-controller="w-teleport" data-w-teleport-target-value="#w-slim-header-buttons" data-w-teleport-reset-value="true">
17
+ {% for button in header_buttons %}
18
+ {% component button %}
19
+ {% endfor %}
20
+ </template>
21
+ {% endif %}
22
+
15
23
  {% if is_searching and view.show_other_searches %}
16
24
  <div class="nice-padding">
17
25
  {% search_other %}
@@ -89,7 +89,6 @@
89
89
  </table>
90
90
  {% endpanel %}
91
91
 
92
- <script src="{% versioned_static 'wagtailadmin/js/modal-workflow.js' %}"></script>
93
92
  <script src="{% versioned_static 'wagtailadmin/js/workflow-action.js' %}"></script>
94
93
  <script>
95
94
  document.querySelectorAll('[data-controller="w-dropdown"]').forEach((e) => {
@@ -18,7 +18,6 @@
18
18
  <script src="{% versioned_static 'wagtailadmin/js/vendor/rangy-core.js' %}"></script>
19
19
  <script src="{% versioned_static 'wagtailadmin/js/vendor/mousetrap.min.js' %}"></script>
20
20
  <script src="{% versioned_static 'wagtailadmin/js/expanding-formset.js' %}"></script>
21
- <script src="{% versioned_static 'wagtailadmin/js/modal-workflow.js' %}"></script>
22
21
  <script src="{% versioned_static 'wagtailadmin/js/page-editor.js' %}"></script>
23
22
  <script src="{% versioned_static 'wagtailadmin/js/preview-panel.js' %}"></script>
24
23
  <script src="{% versioned_static 'wagtailadmin/js/privacy-switch.js' %}"></script>
@@ -23,8 +23,6 @@
23
23
  {% block extra_js %}
24
24
  {{ block.super }}
25
25
 
26
- {% comment %} modal-workflow is required by the view restrictions interface {% endcomment %}
27
- <script src="{% versioned_static 'wagtailadmin/js/modal-workflow.js' %}"></script>
28
26
  <script src="{% versioned_static 'wagtailadmin/js/privacy-switch.js' %}"></script>
29
27
 
30
28
  {% comment %}
@@ -49,7 +49,7 @@
49
49
  {% if actions or block_actions %}
50
50
  {# Actions divider #}
51
51
  <div class="w-w-px w-h-[30px] w-ml-auto sm:w-ml-0 w-bg-border-furniture"></div>
52
- <div class="w-flex w-items-center w-ml-3">
52
+ <div id="w-slim-header-buttons" class="w-flex w-items-center w-ml-3">
53
53
  {% firstof actions block_actions %}
54
54
  </div>
55
55
  {% endif %}
@@ -1310,7 +1310,7 @@ class TestCopyPageAction(AdminAPITestCase, TestCase):
1310
1310
  self.assertEqual(response.status_code, 403)
1311
1311
  content = json.loads(response.content.decode("utf-8"))
1312
1312
  self.assertEqual(
1313
- content, {"detail": "You do not have permission to perform this action."}
1313
+ content, {"detail": "You do not have permission to copy this page"}
1314
1314
  )
1315
1315
 
1316
1316
  def test_recursively_copy_into_self(self):
@@ -1348,7 +1348,7 @@ class TestCopyPageAction(AdminAPITestCase, TestCase):
1348
1348
  self.assertEqual(response.status_code, 403)
1349
1349
  content = json.loads(response.content.decode("utf-8"))
1350
1350
  self.assertEqual(
1351
- content, {"detail": "You do not have permission to perform this action."}
1351
+ content, {"detail": "You do not have permission to copy this page"}
1352
1352
  )
1353
1353
 
1354
1354
  def test_without_publish_permissions_at_destination_with_keep_live(self):
@@ -1375,7 +1375,12 @@ class TestCopyPageAction(AdminAPITestCase, TestCase):
1375
1375
  self.assertEqual(response.status_code, 403)
1376
1376
  content = json.loads(response.content.decode("utf-8"))
1377
1377
  self.assertEqual(
1378
- content, {"detail": "You do not have permission to perform this action."}
1378
+ content,
1379
+ {
1380
+ "detail": (
1381
+ "You do not have permission to publish a page at the destination"
1382
+ )
1383
+ },
1379
1384
  )
1380
1385
 
1381
1386
  def test_respects_page_creation_rules(self):
@@ -1385,7 +1390,7 @@ class TestCopyPageAction(AdminAPITestCase, TestCase):
1385
1390
  self.assertEqual(response.status_code, 403)
1386
1391
  content = json.loads(response.content.decode("utf-8"))
1387
1392
  self.assertEqual(
1388
- content, {"detail": "You do not have permission to perform this action."}
1393
+ content, {"detail": "You do not have permission to copy this page"}
1389
1394
  )
1390
1395
 
1391
1396
  def test_copy_page_slug_in_use(self):
@@ -1512,7 +1517,7 @@ class TestDeletePageAction(AdminAPITestCase, TestCase):
1512
1517
  self.assertEqual(response.status_code, 403)
1513
1518
  content = json.loads(response.content.decode("utf-8"))
1514
1519
  self.assertEqual(
1515
- content, {"detail": "You do not have permission to perform this action."}
1520
+ content, {"detail": "You do not have permission to delete this page"}
1516
1521
  )
1517
1522
 
1518
1523
  # Page is still there
@@ -1560,7 +1565,7 @@ class TestPublishPageAction(AdminAPITestCase, TestCase):
1560
1565
  self.assertEqual(response.status_code, 403)
1561
1566
  content = json.loads(response.content.decode("utf-8"))
1562
1567
  self.assertEqual(
1563
- content, {"detail": "You do not have permission to perform this action."}
1568
+ content, {"detail": "You do not have permission to publish this page"}
1564
1569
  )
1565
1570
 
1566
1571
  def test_publish_alias_page(self):
@@ -1650,7 +1655,7 @@ class TestUnpublishPageAction(AdminAPITestCase, TestCase):
1650
1655
  self.assertEqual(response.status_code, 403)
1651
1656
  content = json.loads(response.content.decode("utf-8"))
1652
1657
  self.assertEqual(
1653
- content, {"detail": "You do not have permission to perform this action."}
1658
+ content, {"detail": "You do not have permission to unpublish this page"}
1654
1659
  )
1655
1660
 
1656
1661
 
@@ -1682,7 +1687,13 @@ class TestMovePageAction(AdminAPITestCase, TestCase):
1682
1687
 
1683
1688
  content = json.loads(response.content.decode("utf-8"))
1684
1689
  self.assertEqual(
1685
- content, {"detail": "You do not have permission to perform this action."}
1690
+ content,
1691
+ {
1692
+ "detail": (
1693
+ "You do not have permission to move the page to the "
1694
+ "target specified."
1695
+ ),
1696
+ },
1686
1697
  )
1687
1698
 
1688
1699
  def test_move_page_without_destination_page_id(self):
@@ -1955,7 +1966,12 @@ class TestCreatePageAliasAction(AdminAPITestCase, TestCase):
1955
1966
 
1956
1967
  content = json.loads(response.content.decode("utf-8"))
1957
1968
  self.assertEqual(
1958
- content, {"detail": "You do not have permission to perform this action."}
1969
+ content,
1970
+ {
1971
+ "detail": (
1972
+ "You do not have permission to publish a page at the destination"
1973
+ ),
1974
+ },
1959
1975
  )
1960
1976
 
1961
1977
 
@@ -2012,7 +2028,7 @@ class TestRevertToPageRevisionAction(AdminAPITestCase, TestCase):
2012
2028
 
2013
2029
  content = json.loads(response.content.decode("utf-8"))
2014
2030
  self.assertEqual(
2015
- content, {"detail": "You do not have permission to perform this action."}
2031
+ content, {"detail": "You do not have permission to edit this page"}
2016
2032
  )
2017
2033
 
2018
2034
  def test_revert_to_page_revision_without_revision_id(self):
@@ -14,6 +14,7 @@ from django.utils.timezone import make_aware
14
14
  from openpyxl import load_workbook
15
15
 
16
16
  from wagtail.admin.admin_url_finder import AdminURLFinder
17
+ from wagtail.admin.staticfiles import versioned_static
17
18
  from wagtail.log_actions import log
18
19
  from wagtail.models import ModelLogEntry
19
20
  from wagtail.test.testapp.models import (
@@ -1448,6 +1449,10 @@ class TestEditHandler(WagtailTestUtils, TestCase):
1448
1449
  response = self.client.get(self.url)
1449
1450
  self.assertEqual(response.status_code, 200)
1450
1451
  self.assertTemplateUsed(response, "wagtailadmin/shared/panel.html")
1452
+ # Many features from the Panels API are powered by client-side JS in
1453
+ # _editor_js.html. We need to make sure that this template is included
1454
+ # in the response for now.
1455
+ self.assertTemplateUsed(response, "wagtailadmin/pages/_editor_js.html", count=1)
1451
1456
 
1452
1457
  soup = self.get_soup(response.content)
1453
1458
 
@@ -1464,6 +1469,11 @@ class TestEditHandler(WagtailTestUtils, TestCase):
1464
1469
  self.assertIsNotNone(rendered_heading)
1465
1470
  self.assertEqual(rendered_heading.text.strip(), expected_heading)
1466
1471
 
1472
+ # Ensure modal-workflow.js is included, as it's needed by choosers
1473
+ modal_workflow_js = versioned_static("wagtailadmin/js/modal-workflow.js")
1474
+ modal_workflow_script = soup.select_one(f'script[src="{modal_workflow_js}"]')
1475
+ self.assertIsNotNone(modal_workflow_script)
1476
+
1467
1477
 
1468
1478
  class TestDefaultMessages(WagtailTestUtils, TestCase):
1469
1479
  def setUp(self):
@@ -442,5 +442,8 @@ class BaseListingView(WagtailAdminTemplateMixin, BaseListView):
442
442
  and self.filters
443
443
  and self.results_only
444
444
  )
445
+ context["render_buttons_fragment"] = (
446
+ context.get("header_buttons") and self.results_only
447
+ )
445
448
 
446
449
  return context
@@ -334,7 +334,6 @@ class IndexView(
334
334
  self.add_item_label,
335
335
  url=self.add_url,
336
336
  icon_name="plus",
337
- attrs={"data-w-link-reflect-keys-value": '["locale"]'},
338
337
  )
339
338
  )
340
339
  return buttons
@@ -349,10 +348,6 @@ class IndexView(
349
348
  url=self.xlsx_export_url,
350
349
  icon_name="download",
351
350
  priority=90,
352
- attrs={
353
- "data-controller": "w-link",
354
- "data-w-link-preserve-keys-value": '["export"]',
355
- },
356
351
  )
357
352
  )
358
353
  buttons.append(
@@ -361,10 +356,6 @@ class IndexView(
361
356
  url=self.csv_export_url,
362
357
  icon_name="download",
363
358
  priority=100,
364
- attrs={
365
- "data-controller": "w-link",
366
- "data-w-link-preserve-keys-value": '["export"]',
367
- },
368
359
  )
369
360
  )
370
361
 
@@ -109,9 +109,8 @@ class HeaderButton(Button):
109
109
  attrs = attrs.copy()
110
110
  attrs.update(
111
111
  {
112
- "data-controller": "w-tooltip w-link",
112
+ "data-controller": "w-tooltip",
113
113
  "data-w-tooltip-content-value": label,
114
- "data-action": "w-swap:success@document->w-link#setParamsFromSwapRequest",
115
114
  "aria-label": label,
116
115
  }
117
116
  )
@@ -17,8 +17,8 @@ msgstr ""
17
17
  "Content-Type: text/plain; charset=UTF-8\n"
18
18
  "Content-Transfer-Encoding: 8bit\n"
19
19
  "Language: he_IL\n"
20
- "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % "
21
- "1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
20
+ "Plural-Forms: nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % "
21
+ "1 == 0) ? 1: 2;\n"
22
22
 
23
23
  msgid "Date from"
24
24
  msgstr "מתאריך"
@@ -6,8 +6,8 @@
6
6
  # Axel Haustant, 2016
7
7
  # Axel Haustant, 2016
8
8
  # Bertrand Bordage <bordage.bertrand@gmail.com>, 2015,2017-2018
9
- # fpoulain <fpoulain@metrodore.fr>, 2018
10
- # fpoulain <fpoulain@metrodore.fr>, 2018
9
+ # 69c761fa404d2f74d5a7a2904d9e6f47_dc2dbc9 <f37077798760362881f9d396b6e22ec7_1878>, 2018
10
+ # 69c761fa404d2f74d5a7a2904d9e6f47_dc2dbc9 <f37077798760362881f9d396b6e22ec7_1878>, 2018
11
11
  # Léo <leo@naeka.fr>, 2016
12
12
  # Loic Teixeira, 2020-2022
13
13
  # nahuel, 2014
@@ -20,8 +20,8 @@ msgstr ""
20
20
  "Content-Type: text/plain; charset=UTF-8\n"
21
21
  "Content-Transfer-Encoding: 8bit\n"
22
22
  "Language: he_IL\n"
23
- "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % "
24
- "1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
23
+ "Plural-Forms: nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % "
24
+ "1 == 0) ? 1: 2;\n"
25
25
 
26
26
  msgid "Type"
27
27
  msgstr "סוג"
@@ -5,8 +5,8 @@
5
5
  # Translators:
6
6
  # Adrien <laadrien@gmail.com>, 2014
7
7
  # Bertrand Bordage <bordage.bertrand@gmail.com>, 2015,2018
8
- # fpoulain <fpoulain@metrodore.fr>, 2018
9
- # fpoulain <fpoulain@metrodore.fr>, 2018
8
+ # 69c761fa404d2f74d5a7a2904d9e6f47_dc2dbc9 <f37077798760362881f9d396b6e22ec7_1878>, 2018
9
+ # 69c761fa404d2f74d5a7a2904d9e6f47_dc2dbc9 <f37077798760362881f9d396b6e22ec7_1878>, 2018
10
10
  # Léo <leo@naeka.fr>, 2016
11
11
  # Loic Teixeira, 2020,2022
12
12
  # Loic Teixeira, 2020,2022-2023
@@ -19,8 +19,8 @@ msgstr ""
19
19
  "Content-Type: text/plain; charset=UTF-8\n"
20
20
  "Content-Transfer-Encoding: 8bit\n"
21
21
  "Language: he_IL\n"
22
- "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % "
23
- "1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
22
+ "Plural-Forms: nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % "
23
+ "1 == 0) ? 1: 2;\n"
24
24
 
25
25
  msgid "Search term(s)/phrase"
26
26
  msgstr "חיפוש מושגים/משפט"
@@ -3,14 +3,14 @@
3
3
  # This file is distributed under the same license as the PACKAGE package.
4
4
  #
5
5
  # Translators:
6
- # Dino Aljević <dino8890@protonmail.com>, 2020,2022-2023
6
+ # Dino Aljević <dino8890@protonmail.com>, 2020,2022-2024
7
7
  msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: Wagtail\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
11
  "POT-Creation-Date: 2024-01-24 13:51+0000\n"
12
12
  "PO-Revision-Date: 2015-08-26 14:04+0000\n"
13
- "Last-Translator: Dino Aljević <dino8890@protonmail.com>, 2020,2022-2023\n"
13
+ "Last-Translator: Dino Aljević <dino8890@protonmail.com>, 2020,2022-2024\n"
14
14
  "Language-Team: Croatian (Croatia) (http://app.transifex.com/torchbox/wagtail/"
15
15
  "language/hr_HR/)\n"
16
16
  "MIME-Version: 1.0\n"
@@ -36,15 +36,37 @@ msgstr ""
36
36
  msgid "Please specify at least one recommendation for this search term."
37
37
  msgstr "Molimo navedite barem jednu preporuku za ovaj pojam."
38
38
 
39
+ msgid "You must enter an external link text if you enter an external link URL."
40
+ msgstr ""
41
+ "Potrebno je unijeti tekst vanjske poveznice ako uneste URL vanjske poveznice."
42
+
43
+ msgid "You must recommend a page OR an external link."
44
+ msgstr "Potrebno je preporučiti stranicu ILI vanjsku poveznicu."
45
+
46
+ msgid "Please only select a page OR enter an external link."
47
+ msgstr "Molimo odaberite samo stranicu ILI vanjsku poveznicu."
48
+
39
49
  msgid "Query Daily Hits"
40
50
  msgstr "Dnevni pregledi za upit"
41
51
 
42
52
  msgid "page"
43
53
  msgstr "stranica"
44
54
 
55
+ msgid "Choose an internal page for this promotion"
56
+ msgstr "Odaberite unutarnju stranicu za promociju"
57
+
58
+ msgid "External link URL"
59
+ msgstr "URL vanjske poveznice"
60
+
61
+ msgid "Alternatively, use an external link for this promotion"
62
+ msgstr "Ili iskoristite vanjsku poveznicu za promociju"
63
+
45
64
  msgid "description"
46
65
  msgstr "opis"
47
66
 
67
+ msgid "Applies to internal page or external link"
68
+ msgstr "Za unutarnju stranicu ili vanjsku poveznicu"
69
+
48
70
  msgid "search promotion"
49
71
  msgstr "Promocija pretraživanja"
50
72
 
@@ -54,6 +76,17 @@ msgstr "Dodaj promociju"
54
76
  msgid "Add search pick"
55
77
  msgstr "Dodaj promovirani rezultat"
56
78
 
79
+ msgid ""
80
+ "<p>Promoted search results are a means of recommending specific pages or "
81
+ "external links that might not organically come high up in search results. E."
82
+ "g recommending your primary donation page to a user searching with the less "
83
+ "common term \"<em>giving</em>\".</p>"
84
+ msgstr ""
85
+ "<p> Promovirani rezultati pretraživanja su način za preporuku određenih "
86
+ "stranica ili vanjskih poveznica koje se možda neće priordno pojaviti pri "
87
+ "vrhu u rezultatima pretraživanja. Npr. preporuka glavne stranice za donacije "
88
+ "korisniku koji pretražuje manje učestao pojam \"<em>darivanje</em>\".</p>"
89
+
57
90
  msgid ""
58
91
  "<p>The \"Search term(s)/phrase\" field below must contain the full and exact "
59
92
  "search for which you wish to provide recommended results, <em>including</em> "
@@ -96,9 +129,15 @@ msgstr "Pomakni gore"
96
129
  msgid "Move down"
97
130
  msgstr "Pomakni dolje"
98
131
 
132
+ msgid "Recommended search result"
133
+ msgstr "Preporučeni rezultat pretraživanja"
134
+
99
135
  msgid "Promoted search results"
100
136
  msgstr "Promovirani rezultati pretraživanja"
101
137
 
138
+ msgid "Add a recommended result"
139
+ msgstr "Dodaj preporučeni rezultat"
140
+
102
141
  msgid "Search Terms"
103
142
  msgstr "Pojmovi za pretraživanje"
104
143
 
@@ -7,7 +7,7 @@
7
7
  # Giacomo Ghizzani <giacomo.ghz@gmail.com>, 2015,2017
8
8
  # giammi <gian-maria.daffre@giammi.org>, 2018
9
9
  # giammi <gian-maria.daffre@giammi.org>, 2018
10
- # Marco Badan <marco.badan@gmail.com>, 2021-2022
10
+ # Marco Badan <marco.badan@gmail.com>, 2021-2022,2024
11
11
  # Sandro Badalamenti <sandro@mailinator.com>, 2019
12
12
  msgid ""
13
13
  msgstr ""
@@ -15,7 +15,7 @@ msgstr ""
15
15
  "Report-Msgid-Bugs-To: \n"
16
16
  "POT-Creation-Date: 2024-01-24 13:51+0000\n"
17
17
  "PO-Revision-Date: 2015-08-26 14:04+0000\n"
18
- "Last-Translator: Sandro Badalamenti <sandro@mailinator.com>, 2019\n"
18
+ "Last-Translator: Marco Badan <marco.badan@gmail.com>, 2021-2022,2024\n"
19
19
  "Language-Team: Italian (http://app.transifex.com/torchbox/wagtail/language/"
20
20
  "it/)\n"
21
21
  "MIME-Version: 1.0\n"
@@ -29,7 +29,7 @@ msgid "Wagtail search promotions"
29
29
  msgstr "Ricerca in evidenza Wagtail"
30
30
 
31
31
  msgid "Search term(s)/phrase"
32
- msgstr "Cerca termine(i)/frase"
32
+ msgstr "Termine/i di ricerca/frase"
33
33
 
34
34
  msgid ""
35
35
  "Enter the full search string to match. An exact match is required for your "
@@ -104,9 +104,15 @@ msgstr "Sposta su"
104
104
  msgid "Move down"
105
105
  msgstr "Sposta giù"
106
106
 
107
+ msgid "Recommended search result"
108
+ msgstr "Risultato di ricerca consigliato"
109
+
107
110
  msgid "Promoted search results"
108
111
  msgstr "Risultati di ricerca in evidenza"
109
112
 
113
+ msgid "Add a recommended result"
114
+ msgstr "Aggiungi un risultato consigliato"
115
+
110
116
  msgid "Search Terms"
111
117
  msgstr "Termini di ricerca"
112
118
 
@@ -20,8 +20,8 @@ msgstr ""
20
20
  "Content-Type: text/plain; charset=UTF-8\n"
21
21
  "Content-Transfer-Encoding: 8bit\n"
22
22
  "Language: he_IL\n"
23
- "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % "
24
- "1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
23
+ "Plural-Forms: nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % "
24
+ "1 == 0) ? 1: 2;\n"
25
25
 
26
26
  msgid "default"
27
27
  msgstr "ברירת מחדל"
@@ -4,7 +4,7 @@
4
4
  #
5
5
  # Translators:
6
6
  # Ahmet Sarıcan <asarican@gmail.com>, 2019
7
- # Cihad GÜNDOĞDU <cihadgundogdu@gmail.com>, 2016,2019
7
+ # Cihad GÜNDOĞDU <cihadgundogdu@gmail.com>, 2016,2019,2024
8
8
  # Fatih Koç koç <fatihinemaili@gmail.com>, 2021
9
9
  # Halim Turan <halim_turan_61@hotmail.com>, 2022
10
10
  # José Luis <alagunajs@gmail.com>, 2017
@@ -17,7 +17,7 @@ msgstr ""
17
17
  "Report-Msgid-Bugs-To: \n"
18
18
  "POT-Creation-Date: 2024-01-24 13:51+0000\n"
19
19
  "PO-Revision-Date: 2016-03-01 19:20+0000\n"
20
- "Last-Translator: Saadettin Yasir AKEL <yasirakel@gmail.com>, 2016\n"
20
+ "Last-Translator: Cihad GÜNDOĞDU <cihadgundogdu@gmail.com>, 2016,2019,2024\n"
21
21
  "Language-Team: Turkish (http://app.transifex.com/torchbox/wagtail/language/"
22
22
  "tr/)\n"
23
23
  "MIME-Version: 1.0\n"
@@ -29,6 +29,10 @@ msgstr ""
29
29
  msgid "default"
30
30
  msgstr "varsayılan"
31
31
 
32
+ #, python-format
33
+ msgid "%(site_setting)s for %(site)s"
34
+ msgstr "%(site)s için %(site_setting)s"
35
+
32
36
  msgid "Site"
33
37
  msgstr "Site"
34
38
 
@@ -16,8 +16,8 @@ msgstr ""
16
16
  "Content-Type: text/plain; charset=UTF-8\n"
17
17
  "Content-Transfer-Encoding: 8bit\n"
18
18
  "Language: he_IL\n"
19
- "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % "
20
- "1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
19
+ "Plural-Forms: nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % "
20
+ "1 == 0) ? 1: 2;\n"
21
21
 
22
22
  msgid "Save"
23
23
  msgstr "שמור"
@@ -132,7 +132,7 @@ class TableBlock(FieldBlock):
132
132
  value for the header choice. I would really like to have this default to "" and force the
133
133
  editor to reaffirm they don't want any headers, but that woud be a breaking change.
134
134
  """
135
- if not value.get("table_header_choice", ""):
135
+ if value and not value.get("table_header_choice", ""):
136
136
  if value.get("first_row_is_table_header", False) and value.get(
137
137
  "first_col_is_header", False
138
138
  ):
@@ -3,14 +3,14 @@
3
3
  # This file is distributed under the same license as the PACKAGE package.
4
4
  #
5
5
  # Translators:
6
- # Roger Pons <rogerpons@gmail.com>, 2017,2020,2023
6
+ # Roger Pons <rogerpons@gmail.com>, 2017,2020,2023-2024
7
7
  msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: Wagtail\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
11
  "POT-Creation-Date: 2024-01-24 13:51+0000\n"
12
12
  "PO-Revision-Date: 2016-05-11 20:23+0000\n"
13
- "Last-Translator: Roger Pons <rogerpons@gmail.com>, 2017,2020,2023\n"
13
+ "Last-Translator: Roger Pons <rogerpons@gmail.com>, 2017,2020,2023-2024\n"
14
14
  "Language-Team: Catalan (http://app.transifex.com/torchbox/wagtail/language/"
15
15
  "ca/)\n"
16
16
  "MIME-Version: 1.0\n"
@@ -25,11 +25,36 @@ msgstr "Bloc de taula de Wagtail"
25
25
  msgid "Row header"
26
26
  msgstr "Capçalera de fila"
27
27
 
28
+ msgid "Table headers"
29
+ msgstr "Capçaleres de taules"
30
+
31
+ msgid "Display the first row as a header"
32
+ msgstr "Mostrar la primera fila com a capçalera"
33
+
34
+ msgid "Display the first column as a header"
35
+ msgstr "Mostrar la primera columna com a capçalera"
36
+
28
37
  msgid "Column header"
29
38
  msgstr "Capçalera de columna"
30
39
 
40
+ msgid "Display the first row AND first column as headers"
41
+ msgstr "Mostrar la primera fila i la primera columna com a capçaleres"
42
+
43
+ msgid "No headers"
44
+ msgstr "Sense capçaleres"
45
+
46
+ msgid "Which cells should be displayed as headers?"
47
+ msgstr "Quines cel·les s'han de mostrar com a capçaleres?"
48
+
31
49
  msgid "Table caption"
32
50
  msgstr "Llegenda de taula"
33
51
 
52
+ msgid ""
53
+ "A heading that identifies the overall topic of the table, and is useful for "
54
+ "screen reader users."
55
+ msgstr ""
56
+ "Una capçalera que identifica el tema general de la taula i és útil per als "
57
+ "usuaris de lectors de pantalla."
58
+
34
59
  msgid "Table"
35
60
  msgstr "Taula"