eea.volto.policy 5.0__zip → 5.2__zip

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 (205) hide show
  1. {eea.volto.policy-5.0/eea.volto.policy.egg-info → eea.volto.policy-5.2}/PKG-INFO +15 -1
  2. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/docs/HISTORY.txt +14 -0
  3. eea.volto.policy-5.2/eea/volto/policy/behaviors/configure.zcml +15 -0
  4. eea.volto.policy-5.2/eea/volto/policy/behaviors/sidenavigation.py +13 -0
  5. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/configure.zcml +1 -0
  6. eea.volto.policy-5.2/eea/volto/policy/permissions.zcml +12 -0
  7. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/profiles/default/catalog.xml +1 -0
  8. eea.volto.policy-5.2/eea/volto/policy/profiles/default/registry/side_nav_types.xml +11 -0
  9. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/profiles/default/registry.xml +3 -0
  10. eea.volto.policy-5.2/eea/volto/policy/restapi/blocks.py +32 -0
  11. eea.volto.policy-5.2/eea/volto/policy/restapi/configure.zcml +13 -0
  12. eea.volto.policy-5.2/eea/volto/policy/restapi/serializer/__init__.py +1 -0
  13. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/restapi/serializer/configure.zcml +2 -0
  14. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/restapi/serializer/dxfields.py +12 -0
  15. eea.volto.policy-5.2/eea/volto/policy/restapi/services/__init__.py +1 -0
  16. eea.volto.policy-5.2/eea/volto/policy/restapi/services/configure.zcml +6 -0
  17. eea.volto.policy-5.2/eea/volto/policy/restapi/services/contextnavigation/__init__.py +1 -0
  18. eea.volto.policy-5.2/eea/volto/policy/restapi/services/contextnavigation/configure.zcml +20 -0
  19. eea.volto.policy-5.2/eea/volto/policy/restapi/services/contextnavigation/get.py +298 -0
  20. eea.volto.policy-5.2/eea/volto/policy/version.txt +1 -0
  21. {eea.volto.policy-5.0 → eea.volto.policy-5.2/eea.volto.policy.egg-info}/PKG-INFO +15 -1
  22. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea.volto.policy.egg-info/SOURCES.txt +9 -0
  23. eea.volto.policy-5.0/eea/volto/policy/behaviors/configure.zcml +0 -7
  24. eea.volto.policy-5.0/eea/volto/policy/restapi/configure.zcml +0 -6
  25. eea.volto.policy-5.0/eea/volto/policy/restapi/serializer/__init__.py +0 -2
  26. eea.volto.policy-5.0/eea/volto/policy/version.txt +0 -1
  27. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/CONTRIBUTING.md +0 -0
  28. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/MANIFEST.in +0 -0
  29. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/README.rst +0 -0
  30. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/docs/LICENSE.GPL +0 -0
  31. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/docs/LICENSE.txt +0 -0
  32. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/__init__.py +0 -0
  33. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/__init__.py +0 -0
  34. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/README.txt +0 -0
  35. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/__init__.py +0 -0
  36. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/behaviors/__init__.py +0 -0
  37. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/browser/__init__.py +0 -0
  38. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/browser/configure.zcml +0 -0
  39. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/browser/teaser.py +0 -0
  40. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/contentrules/__init__.py +0 -0
  41. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/contentrules/actions.py +0 -0
  42. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/contentrules/configure.zcml +0 -0
  43. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/image_scales/__init__.py +0 -0
  44. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/image_scales/adapters.py +0 -0
  45. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/image_scales/configure.zcml +0 -0
  46. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/image_scales/indexer.py +0 -0
  47. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/image_scales/interfaces.py +0 -0
  48. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/interfaces.py +0 -0
  49. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/__init__.py +0 -0
  50. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/bg/LC_MESSAGES/eea.mo +0 -0
  51. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/bg/LC_MESSAGES/eea.po +0 -0
  52. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/bg/LC_MESSAGES/plone.mo +0 -0
  53. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/bg/LC_MESSAGES/plone.po +0 -0
  54. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/cs/LC_MESSAGES/eea.mo +0 -0
  55. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/cs/LC_MESSAGES/eea.po +0 -0
  56. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/cs/LC_MESSAGES/plone.mo +0 -0
  57. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/cs/LC_MESSAGES/plone.po +0 -0
  58. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/da/LC_MESSAGES/eea.mo +0 -0
  59. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/da/LC_MESSAGES/eea.po +0 -0
  60. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/da/LC_MESSAGES/plone.mo +0 -0
  61. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/da/LC_MESSAGES/plone.po +0 -0
  62. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/de/LC_MESSAGES/eea.mo +0 -0
  63. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/de/LC_MESSAGES/eea.po +0 -0
  64. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/de/LC_MESSAGES/plone.mo +0 -0
  65. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/de/LC_MESSAGES/plone.po +0 -0
  66. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/eea.pot +0 -0
  67. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/el/LC_MESSAGES/eea.mo +0 -0
  68. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/el/LC_MESSAGES/eea.po +0 -0
  69. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/el/LC_MESSAGES/plone.mo +0 -0
  70. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/el/LC_MESSAGES/plone.po +0 -0
  71. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/en/LC_MESSAGES/eea.mo +0 -0
  72. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/en/LC_MESSAGES/eea.po +0 -0
  73. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/en/LC_MESSAGES/plone.mo +0 -0
  74. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/en/LC_MESSAGES/plone.po +0 -0
  75. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/es/LC_MESSAGES/eea.mo +0 -0
  76. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/es/LC_MESSAGES/eea.po +0 -0
  77. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/es/LC_MESSAGES/plone.mo +0 -0
  78. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/es/LC_MESSAGES/plone.po +0 -0
  79. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/et/LC_MESSAGES/eea.mo +0 -0
  80. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/et/LC_MESSAGES/eea.po +0 -0
  81. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/et/LC_MESSAGES/plone.mo +0 -0
  82. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/et/LC_MESSAGES/plone.po +0 -0
  83. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/eu/LC_MESSAGES/eea.mo +0 -0
  84. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/eu/LC_MESSAGES/eea.po +0 -0
  85. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/eu/LC_MESSAGES/plone.mo +0 -0
  86. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/eu/LC_MESSAGES/plone.po +0 -0
  87. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/fi/LC_MESSAGES/eea.mo +0 -0
  88. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/fi/LC_MESSAGES/eea.po +0 -0
  89. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/fi/LC_MESSAGES/plone.mo +0 -0
  90. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/fi/LC_MESSAGES/plone.po +0 -0
  91. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/fr/LC_MESSAGES/eea.mo +0 -0
  92. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/fr/LC_MESSAGES/eea.po +0 -0
  93. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/fr/LC_MESSAGES/plone.mo +0 -0
  94. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/fr/LC_MESSAGES/plone.po +0 -0
  95. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/hr/LC_MESSAGES/eea.mo +0 -0
  96. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/hr/LC_MESSAGES/eea.po +0 -0
  97. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/hr/LC_MESSAGES/plone.mo +0 -0
  98. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/hr/LC_MESSAGES/plone.po +0 -0
  99. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/hu/LC_MESSAGES/eea.mo +0 -0
  100. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/hu/LC_MESSAGES/eea.po +0 -0
  101. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/hu/LC_MESSAGES/plone.mo +0 -0
  102. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/hu/LC_MESSAGES/plone.po +0 -0
  103. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/is/LC_MESSAGES/eea.mo +0 -0
  104. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/is/LC_MESSAGES/eea.po +0 -0
  105. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/is/LC_MESSAGES/plone.mo +0 -0
  106. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/is/LC_MESSAGES/plone.po +0 -0
  107. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/it/LC_MESSAGES/eea.mo +0 -0
  108. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/it/LC_MESSAGES/eea.po +0 -0
  109. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/it/LC_MESSAGES/plone.mo +0 -0
  110. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/it/LC_MESSAGES/plone.po +0 -0
  111. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/kl/LC_MESSAGES/eea.mo +0 -0
  112. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/kl/LC_MESSAGES/eea.po +0 -0
  113. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/kl/LC_MESSAGES/plone.mo +0 -0
  114. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/kl/LC_MESSAGES/plone.po +0 -0
  115. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/lt/LC_MESSAGES/eea.mo +0 -0
  116. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/lt/LC_MESSAGES/eea.po +0 -0
  117. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/lt/LC_MESSAGES/plone.mo +0 -0
  118. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/lt/LC_MESSAGES/plone.po +0 -0
  119. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/lv/LC_MESSAGES/eea.mo +0 -0
  120. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/lv/LC_MESSAGES/eea.po +0 -0
  121. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/lv/LC_MESSAGES/plone.mo +0 -0
  122. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/lv/LC_MESSAGES/plone.po +0 -0
  123. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/mt/LC_MESSAGES/eea.mo +0 -0
  124. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/mt/LC_MESSAGES/eea.po +0 -0
  125. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/mt/LC_MESSAGES/plone.mo +0 -0
  126. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/mt/LC_MESSAGES/plone.po +0 -0
  127. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/nl/LC_MESSAGES/eea.mo +0 -0
  128. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/nl/LC_MESSAGES/eea.po +0 -0
  129. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/nl/LC_MESSAGES/plone.mo +0 -0
  130. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/nl/LC_MESSAGES/plone.po +0 -0
  131. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/no/LC_MESSAGES/eea.mo +0 -0
  132. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/no/LC_MESSAGES/eea.po +0 -0
  133. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/no/LC_MESSAGES/plone.mo +0 -0
  134. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/no/LC_MESSAGES/plone.po +0 -0
  135. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/pl/LC_MESSAGES/eea.mo +0 -0
  136. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/pl/LC_MESSAGES/eea.po +0 -0
  137. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/pl/LC_MESSAGES/plone.mo +0 -0
  138. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/pl/LC_MESSAGES/plone.po +0 -0
  139. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/plone-manual.pot +0 -0
  140. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/pt/LC_MESSAGES/eea.mo +0 -0
  141. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/pt/LC_MESSAGES/eea.po +0 -0
  142. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/pt/LC_MESSAGES/plone.mo +0 -0
  143. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/pt/LC_MESSAGES/plone.po +0 -0
  144. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/pt_BR/LC_MESSAGES/eea.mo +0 -0
  145. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/pt_BR/LC_MESSAGES/eea.po +0 -0
  146. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/pt_BR/LC_MESSAGES/plone.mo +0 -0
  147. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/pt_BR/LC_MESSAGES/plone.po +0 -0
  148. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/ro/LC_MESSAGES/eea.mo +0 -0
  149. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/ro/LC_MESSAGES/eea.po +0 -0
  150. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/ro/LC_MESSAGES/plone.mo +0 -0
  151. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/ro/LC_MESSAGES/plone.po +0 -0
  152. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/ru/LC_MESSAGES/eea.mo +0 -0
  153. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/ru/LC_MESSAGES/eea.po +0 -0
  154. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/ru/LC_MESSAGES/plone.mo +0 -0
  155. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/ru/LC_MESSAGES/plone.po +0 -0
  156. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/sk/LC_MESSAGES/eea.mo +0 -0
  157. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/sk/LC_MESSAGES/eea.po +0 -0
  158. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/sk/LC_MESSAGES/plone.mo +0 -0
  159. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/sk/LC_MESSAGES/plone.po +0 -0
  160. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/sl/LC_MESSAGES/eea.mo +0 -0
  161. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/sl/LC_MESSAGES/eea.po +0 -0
  162. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/sl/LC_MESSAGES/plone.mo +0 -0
  163. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/sl/LC_MESSAGES/plone.po +0 -0
  164. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/sv/LC_MESSAGES/eea.mo +0 -0
  165. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/sv/LC_MESSAGES/eea.po +0 -0
  166. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/sv/LC_MESSAGES/plone.mo +0 -0
  167. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/sv/LC_MESSAGES/plone.po +0 -0
  168. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/tr/LC_MESSAGES/eea.mo +0 -0
  169. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/tr/LC_MESSAGES/eea.po +0 -0
  170. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/tr/LC_MESSAGES/plone.mo +0 -0
  171. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/tr/LC_MESSAGES/plone.po +0 -0
  172. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/update.sh +0 -0
  173. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/zh_TW/LC_MESSAGES/eea.mo +0 -0
  174. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/zh_TW/LC_MESSAGES/eea.po +0 -0
  175. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/zh_TW/LC_MESSAGES/plone.mo +0 -0
  176. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/locales/zh_TW/LC_MESSAGES/plone.po +0 -0
  177. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/overrides.zcml +0 -0
  178. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/profiles/default/browserlayer.xml +0 -0
  179. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/profiles/default/contentrules.xml +0 -0
  180. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/profiles/default/metadata.xml +0 -0
  181. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/profiles/uninstall/browserlayer.xml +0 -0
  182. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/profiles.zcml +0 -0
  183. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/restapi/__init__.py +0 -0
  184. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/restapi/deserializer/__init__.py +0 -0
  185. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/restapi/deserializer/configure.zcml +0 -0
  186. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/restapi/deserializer/dxfields.py +0 -0
  187. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/restapi/navigation/configure.zcml +0 -0
  188. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/restapi/navigation/navigation.py +0 -0
  189. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/restapi/serializer/summary.py +0 -0
  190. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/setuphandlers.py +0 -0
  191. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/tests/__init__.py +0 -0
  192. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/tests/base.py +0 -0
  193. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/tests/test_doctests.py +0 -0
  194. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/upgrades/__init__.py +0 -0
  195. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/upgrades/configure.zcml +0 -0
  196. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/vocabularies/__init__.py +0 -0
  197. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea/volto/policy/vocabularies/configure.zcml +0 -0
  198. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea.volto.policy.egg-info/dependency_links.txt +0 -0
  199. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea.volto.policy.egg-info/entry_points.txt +0 -0
  200. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea.volto.policy.egg-info/namespace_packages.txt +0 -0
  201. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea.volto.policy.egg-info/not-zip-safe +0 -0
  202. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea.volto.policy.egg-info/requires.txt +0 -0
  203. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/eea.volto.policy.egg-info/top_level.txt +0 -0
  204. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/setup.cfg +0 -0
  205. {eea.volto.policy-5.0 → eea.volto.policy-5.2}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: eea.volto.policy
3
- Version: 5.0
3
+ Version: 5.2
4
4
  Summary: An add-on for Plone
5
5
  Home-page: https://github.com/eea/eea.volto.policy
6
6
  Author: European Environment Agency: IDM2 A-Team
@@ -128,6 +128,20 @@ EEA_ - European Environment Agency (EU)
128
128
  Changelog
129
129
  =========
130
130
 
131
+ 5.2 - (2024-08-19)
132
+ ---------------------------
133
+ * Feature: Check for permissions when serializing restricted blocks
134
+ [razvanMiu - refs #273963]
135
+ * Feature: Customized context navigation endpoint to filter portal_type
136
+ [ichim-david - refs #270999]
137
+ * Fix: Depth of context navigation endpoint by passing depth parameter
138
+ [ichim-david - refs #270999]
139
+
140
+ 5.1 - (2024-07-22)
141
+ ---------------------------
142
+ * Change: Release
143
+ [avoinea]
144
+
131
145
  5.0 - (2024-06-11)
132
146
  ---------------------------
133
147
  * Breaking: Requires `plone.volto >= 4.1.0`
@@ -1,6 +1,20 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ 5.2 - (2024-08-19)
5
+ ---------------------------
6
+ * Feature: Check for permissions when serializing restricted blocks
7
+ [razvanMiu - refs #273963]
8
+ * Feature: Customized context navigation endpoint to filter portal_type
9
+ [ichim-david - refs #270999]
10
+ * Fix: Depth of context navigation endpoint by passing depth parameter
11
+ [ichim-david - refs #270999]
12
+
13
+ 5.1 - (2024-07-22)
14
+ ---------------------------
15
+ * Change: Release
16
+ [avoinea]
17
+
4
18
  5.0 - (2024-06-11)
5
19
  ---------------------------
6
20
  * Breaking: Requires `plone.volto >= 4.1.0`
@@ -0,0 +1,15 @@
1
+ <configure
2
+ xmlns="http://namespaces.zope.org/zope"
3
+ xmlns:plone="http://namespaces.plone.org/plone"
4
+ i18n_domain="eea">
5
+
6
+
7
+ <plone:behavior
8
+ name="eea.side_nav_title"
9
+ title="EEA Side Navigation title"
10
+ description="Used by the side navigation block"
11
+ provides=".sidenavigation.IEEASideNavTitle"
12
+ />
13
+
14
+
15
+ </configure>
@@ -0,0 +1,13 @@
1
+ """Side navigation behaviors"""
2
+ from plone.app.dexterity import _
3
+ from plone.autoform.interfaces import IFormFieldProvider
4
+ from plone.supermodel import model
5
+ from zope.interface import provider
6
+ from zope.schema import TextLine
7
+
8
+
9
+ @provider(IFormFieldProvider)
10
+ class IEEASideNavTitle(model.Schema):
11
+ """Behavior interface to set a title for the side navigation."""
12
+
13
+ side_nav_title = TextLine(title=_("Side Navigation title"), required=False)
@@ -9,6 +9,7 @@
9
9
 
10
10
  <include package="plone.volto" />
11
11
  <include file="profiles.zcml" />
12
+ <include file="permissions.zcml" />
12
13
 
13
14
  <include package=".browser" />
14
15
  <include package=".behaviors" />
@@ -0,0 +1,12 @@
1
+ <configure
2
+ xmlns="http://namespaces.zope.org/zope"
3
+ xmlns:zcml="http://namespaces.zope.org/zcml"
4
+ >
5
+ <configure zcml:condition="installed AccessControl.security">
6
+ <permission
7
+ id="eea.blocks.manageRestrictedBlocks"
8
+ title="EEA: Manage restricted blocks"
9
+ />
10
+ </configure>
11
+
12
+ </configure>
@@ -1,4 +1,5 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
2
  <object meta_type="Plone Catalog Tool" name="portal_catalog">
3
3
  <column value="image_scales" />
4
+ <column value="side_nav_title" />
4
5
  </object>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0"?>
2
+ <registry>
3
+ <record name="plone.side_nav_types"
4
+ interface="Products.CMFPlone.interfaces.controlpanel.INavigationSchema"
5
+ field="side_nav_types">
6
+ <value>
7
+ <element>Document</element>
8
+ </value>
9
+ </record>
10
+
11
+ </registry>
@@ -20,4 +20,7 @@
20
20
  <element>huge 1920:65536</element>
21
21
  </value>
22
22
  </record>
23
+ <records interface="plone.restapi.bbb.INavigationSchema"
24
+ prefix="plone"
25
+ />
23
26
  </registry>
@@ -0,0 +1,32 @@
1
+ """ block-related utils """
2
+
3
+ from plone import api
4
+ from plone.restapi.behaviors import IBlocks
5
+ from plone.restapi.interfaces import IBlockFieldSerializationTransformer
6
+ from zope.component import adapter
7
+ from zope.interface import implementer
8
+ from zope.publisher.interfaces.browser import IBrowserRequest
9
+
10
+
11
+ @implementer(IBlockFieldSerializationTransformer)
12
+ @adapter(IBlocks, IBrowserRequest)
13
+ class RestrictedBlockSerializationTransformer:
14
+ """Restricted Block serialization"""
15
+
16
+ order = 9999
17
+ block_type = None
18
+
19
+ def __init__(self, context, request):
20
+ self.context = context
21
+ self.request = request
22
+
23
+ def __call__(self, value):
24
+ restrictedBlock = value.get("restrictedBlock", False)
25
+ if not restrictedBlock:
26
+ return value
27
+ if restrictedBlock and api.user.has_permission(
28
+ 'EEA: Manage restricted blocks', obj=self.context):
29
+ return value
30
+ return {
31
+ "@type": "empty"
32
+ }
@@ -0,0 +1,13 @@
1
+ <configure xmlns="http://namespaces.zope.org/zope" xmlns:plone="http://namespaces.plone.org/plone">
2
+ <include package="plone.restapi" />
3
+ <include package=".deserializer" />
4
+ <include package=".navigation" />
5
+ <include package=".serializer" />
6
+ <include package=".services" />
7
+
8
+ <!-- Serializations -->
9
+ <subscriber
10
+ provides="plone.restapi.interfaces.IBlockFieldSerializationTransformer"
11
+ factory=".blocks.RestrictedBlockSerializationTransformer" />
12
+
13
+ </configure>
@@ -0,0 +1 @@
1
+ """RestAPI serializer"""
@@ -4,6 +4,8 @@
4
4
  >
5
5
 
6
6
  <adapter factory=".dxfields.DateTimeFieldSerializer" />
7
+ <adapter factory=".dxfields.EEAPrimaryFileFieldTarget" />
8
+
7
9
  <utility
8
10
  factory=".summary.EEAJSONSummarySerializerMetadata"
9
11
  name="plone.restapi.eea_summary_serializer_metadata"
@@ -4,10 +4,13 @@ from plone.app.dexterity.behaviors.metadata import IPublication
4
4
  from plone.dexterity.interfaces import IDexterityContent
5
5
  from plone.restapi.interfaces import IFieldSerializer
6
6
  from plone.restapi.serializer.dxfields import DefaultFieldSerializer
7
+ from plone.restapi.serializer.dxfields import DefaultPrimaryFieldTarget
8
+ from plone.namedfile.interfaces import INamedFileField
7
9
  from zope.component import adapter
8
10
  from zope.interface import implementer
9
11
  from zope.schema.interfaces import IDatetime
10
12
 
13
+
11
14
  from eea.volto.policy.interfaces import IEeaVoltoPolicyLayer
12
15
  try:
13
16
  from eea.coremetadata.metadata import ICoreMetadata
@@ -34,3 +37,12 @@ class DateTimeFieldSerializer(DefaultFieldSerializer):
34
37
  # timezone
35
38
  return getattr(self.context, self.field.__name__)()
36
39
  return value
40
+
41
+
42
+ @adapter(INamedFileField, IDexterityContent, IEeaVoltoPolicyLayer)
43
+ class EEAPrimaryFileFieldTarget(DefaultPrimaryFieldTarget):
44
+ """ EEAPrimaryFileFieldTarget adapter of PrimaryFileFieldTarget
45
+ """
46
+ def __call__(self):
47
+ if self.field.__name__ == 'file':
48
+ return
@@ -0,0 +1 @@
1
+ """RestAPI services"""
@@ -0,0 +1,6 @@
1
+ <configure
2
+ xmlns="http://namespaces.zope.org/zope"
3
+ xmlns:zcml="http://namespaces.zope.org/zcml"
4
+ >
5
+ <include package=".contextnavigation" />
6
+ </configure>
@@ -0,0 +1 @@
1
+ """ RestAPI context navigation services """
@@ -0,0 +1,20 @@
1
+ <configure
2
+ xmlns="http://namespaces.zope.org/zope"
3
+ xmlns:plone="http://namespaces.plone.org/plone"
4
+ >
5
+
6
+ <adapter
7
+ factory=".get.EEAContextNavigation"
8
+ name="contextnavigation"
9
+ />
10
+
11
+ <plone:service
12
+ method="GET"
13
+ factory=".get.EEAContextNavigationGet"
14
+ for="zope.interface.Interface"
15
+ permission="zope2.View"
16
+ name="@contextnavigation"
17
+ layer="plone.restapi.interfaces.IPloneRestapiLayer"
18
+ />
19
+
20
+ </configure>
@@ -0,0 +1,298 @@
1
+ """EEA Context Navigation"""
2
+
3
+ from zope.component import getUtility
4
+ from zope.component import adapter
5
+ from zope.schema.interfaces import IFromUnicode
6
+ from zope.interface import implementer
7
+ from zope.interface import Interface
8
+ from Products.CMFPlone.utils import normalizeString
9
+ from plone.app.layout.navigation.root import getNavigationRoot
10
+ from plone.app.dexterity import _
11
+ from plone.restapi.services.contextnavigation import get as original_get
12
+ from plone.restapi.interfaces import IExpandableElement, IPloneRestapiLayer
13
+ from plone.registry.interfaces import IRegistry
14
+ from plone.restapi import bbb as restapi_bbb
15
+ from plone.restapi.bbb import safe_hasattr
16
+ from plone import schema
17
+ from plone import api
18
+
19
+
20
+ class IEEANavigationPortlet(original_get.INavigationPortlet):
21
+ """Custom schema for navigation portlet"""
22
+
23
+ portal_type = schema.Tuple(
24
+ title=_("Displayed content types"),
25
+ description=_("The content types that should be shown in the navigati"
26
+ "on"),
27
+ required=False,
28
+ default=(),
29
+ missing_value=(),
30
+ value_type=schema.Choice(
31
+ source="plone.app.vocabularies.ReallyUserFriendlyTypes"
32
+ ),
33
+ )
34
+
35
+
36
+ class IEEAContextNavigationSchema(restapi_bbb.INavigationSchema):
37
+ """Custom schema for context navigation"""
38
+
39
+ side_nav_types = schema.Tuple(
40
+ title=_("Displayed content types within the side navigation"),
41
+ description=_("The content types that should be shown in the "
42
+ "side navigation"),
43
+ required=False,
44
+ default=("Document",),
45
+ missing_value=(),
46
+ value_type=schema.Choice(
47
+ source="plone.app.vocabularies.ReallyUserFriendlyTypes"
48
+ ),
49
+ )
50
+
51
+
52
+ restapi_bbb.INavigationSchema = IEEAContextNavigationSchema
53
+
54
+
55
+ def eea_extract_data(_obj_schema, raw_data, prefix):
56
+ """Custom extract data function for navigation portlet"""
57
+ obj_schema = IEEANavigationPortlet
58
+ obj_schema_names = list(obj_schema)
59
+ data = original_get.Data({})
60
+ for name in obj_schema_names:
61
+ field = obj_schema[name]
62
+ raw_value = raw_data.get(prefix + name, field.default)
63
+
64
+ if isinstance(field, schema.Tuple):
65
+ value = raw_value.split(',') if ',' in raw_value else raw_value
66
+ else:
67
+ value = IFromUnicode(field).fromUnicode(raw_value)
68
+
69
+ data[name] = value
70
+
71
+ return data
72
+
73
+
74
+ class EEAContextNavigationQueryBuilder(original_get.QueryBuilder):
75
+ """Custom QueryBuilder for context navigation"""
76
+
77
+ def getSideNavTypes(self, context):
78
+ """Get the side navigation types"""
79
+ registry = getUtility(IRegistry)
80
+ return registry.get("plone.side_nav_types", ())
81
+
82
+ def __init__(self, context, data):
83
+ super().__init__(context, data)
84
+
85
+ depth = data.bottomLevel
86
+
87
+ if depth == 0:
88
+ depth = 999
89
+
90
+ root = original_get.get_root(context, data.root_path)
91
+ if root is not None:
92
+ rootPath = "/".join(root.getPhysicalPath())
93
+ else:
94
+ rootPath = getNavigationRoot(context)
95
+
96
+ # EEA modification to always use the rootPath for query
97
+ self.query["path"] = {"query": rootPath, "depth": depth,
98
+ "navtree": 1}
99
+
100
+ self.query["portal_type"] = data.portal_type or self.getSideNavTypes(
101
+ context)
102
+
103
+ topLevel = data.topLevel
104
+ if topLevel and topLevel > 0:
105
+ # EEA modification to use bottomLevel for depth of navtree_start
106
+ self.query["path"]["navtree_start"] = depth
107
+
108
+
109
+ original_get.QueryBuilder = EEAContextNavigationQueryBuilder
110
+
111
+
112
+ class EEANavigationPortletRenderer(original_get.NavigationPortletRenderer):
113
+ """Custom NavigationPortletRenderer for context navigation"""
114
+
115
+ def render(self):
116
+ """Render the navigation portlet"""
117
+ res = {
118
+ "title": self.title(),
119
+ "url": self.heading_link_target(),
120
+ "has_custom_name": bool(self.hasName()),
121
+ "items": [],
122
+ "available": self.available,
123
+ }
124
+ if not res["available"]:
125
+ return res
126
+
127
+ if self.include_top():
128
+ root = self.navigation_root()
129
+ root_is_portal = self.root_is_portal()
130
+
131
+ if root is None:
132
+ root = self.urltool.getPortalObject()
133
+ root_is_portal = True
134
+
135
+ if safe_hasattr(self.context, "getRemoteUrl"):
136
+ root_url = root.getRemoteUrl()
137
+ else:
138
+ root_url = original_get.get_url(root)
139
+
140
+ root_title = "Home" if root_is_portal else \
141
+ root.pretty_title_or_id()
142
+ root_type = (
143
+ "plone-site"
144
+ if root_is_portal
145
+ else normalizeString(root.portal_type, context=root)
146
+ )
147
+ normalized_id = normalizeString(root.Title(), context=root)
148
+
149
+ if root_is_portal:
150
+ state = ""
151
+ else:
152
+ state = api.content.get_state(root)
153
+
154
+ res["items"].append(
155
+ {
156
+ "@id": root.absolute_url(),
157
+ "description": root.Description() or "",
158
+ "href": root_url,
159
+ "icon": "",
160
+ "is_current": bool(self.root_item_class()),
161
+ "is_folderish": True,
162
+ "is_in_path": True,
163
+ "items": [],
164
+ "normalized_id": normalized_id,
165
+ "thumb": "",
166
+ # set title to side_nav_title if available
167
+ "title": getattr(root, "side_nav_title", root_title),
168
+ "type": root_type,
169
+ "review_state": state,
170
+ }
171
+ )
172
+
173
+ res["items"].extend(self.createNavTree())
174
+
175
+ return res
176
+
177
+ def recurse(self, children, level, bottomLevel):
178
+ """Recurse through the navigation tree"""
179
+ res = []
180
+
181
+ show_thumbs = not self.data.no_thumbs
182
+ show_icons = not self.data.no_icons
183
+
184
+ thumb_scale = self.thumb_scale()
185
+
186
+ for node in children:
187
+ brain = node["item"]
188
+
189
+ icon = ""
190
+
191
+ if show_icons:
192
+ if node["portal_type"] == "File":
193
+ icon = self.getMimeTypeIcon(node)
194
+
195
+ has_thumb = brain.getIcon
196
+ thumb = ""
197
+
198
+ if show_thumbs and has_thumb and thumb_scale:
199
+ thumb = "{}/@@images/image/{}".format(
200
+ node["item"].getURL(), thumb_scale
201
+ )
202
+
203
+ show_children = node["show_children"]
204
+ item_remote_url = node["getRemoteUrl"]
205
+ use_remote_url = node["useRemoteUrl"]
206
+ item_url = node["getURL"]
207
+ item = {
208
+ "@id": item_url,
209
+ "description": node["Description"],
210
+ "href": item_remote_url if use_remote_url else item_url,
211
+ "icon": icon,
212
+ "is_current": node["currentItem"],
213
+ "is_folderish": node["show_children"],
214
+ "is_in_path": node["currentParent"],
215
+ "items": [],
216
+ "normalized_id": node["normalized_id"],
217
+ "review_state": node["review_state"] or "",
218
+ "thumb": thumb,
219
+ "title": node.get("side_nav_title", node["Title"]),
220
+ "type": node["normalized_portal_type"],
221
+ }
222
+
223
+ if node.get("nav_title", False):
224
+ item.update({"title": node["nav_title"]})
225
+
226
+ if node.get("side_nav_title", False):
227
+ item.update({"side_nav_title": node["side_nav_title"]})
228
+
229
+ nodechildren = node["children"]
230
+
231
+ if (nodechildren and show_children and
232
+ ((level <= bottomLevel) or (bottomLevel == 0))):
233
+ item["items"] = self.recurse(
234
+ nodechildren, level=level + 1, bottomLevel=bottomLevel
235
+ )
236
+
237
+ res.append(item)
238
+
239
+ return res
240
+
241
+
242
+ @implementer(IExpandableElement)
243
+ @adapter(Interface, IPloneRestapiLayer)
244
+ class EEAContextNavigation:
245
+ """Custom context navigation"""
246
+ def __init__(self, context, request):
247
+ self.context = context
248
+ self.request = request
249
+
250
+ def __call__(self, expand=False, prefix="expand.contextnavigation."):
251
+ result = {
252
+ "contextnavigation": {
253
+ "@id": f"{self.context.absolute_url()}/@contextnavigation"
254
+ }
255
+ }
256
+ if not expand:
257
+ return result
258
+ print("REQUEST FORM", self.request.form)
259
+ data = eea_extract_data(
260
+ IEEANavigationPortlet,
261
+ self.request.form,
262
+ prefix)
263
+ renderer = EEANavigationPortletRenderer(
264
+ self.context, self.request, data)
265
+ res = renderer.render()
266
+ result["contextnavigation"].update(res)
267
+ return result
268
+
269
+ def getNavTree(self):
270
+ """ getNavTree"""
271
+ # compatibility method with NavigationPortletRenderer, only for tests
272
+ return self.__call__(expand=True)["contextnavigation"]
273
+
274
+
275
+ class EEAContextNavigationGet(original_get.ContextNavigationGet):
276
+ """Custom ContextNavigationGet for context navigation"""
277
+
278
+ def reply(self):
279
+ """Reply with context navigation"""
280
+ navigation = EEAContextNavigation(self.context, self.request)
281
+ return navigation(expand=True, prefix="expand.contextnavigation.")[
282
+ "contextnavigation"
283
+ ]
284
+
285
+
286
+ class EEANavtreeStrategy(original_get.NavtreeStrategy):
287
+ """Custom NavtreeStrategy for context navigation"""
288
+
289
+ def decoratorFactory(self, node):
290
+ """Decorate the navigation tree"""
291
+ new_node = super().decoratorFactory(node)
292
+ if getattr(new_node["item"], "side_nav_title", False):
293
+ new_node["side_nav_title"] = new_node["item"].side_nav_title
294
+ return new_node
295
+
296
+
297
+ # Monkey patch the original NavtreeStrategy
298
+ original_get.NavtreeStrategy = EEANavtreeStrategy
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: eea.volto.policy
3
- Version: 5.0
3
+ Version: 5.2
4
4
  Summary: An add-on for Plone
5
5
  Home-page: https://github.com/eea/eea.volto.policy
6
6
  Author: European Environment Agency: IDM2 A-Team
@@ -128,6 +128,20 @@ EEA_ - European Environment Agency (EU)
128
128
  Changelog
129
129
  =========
130
130
 
131
+ 5.2 - (2024-08-19)
132
+ ---------------------------
133
+ * Feature: Check for permissions when serializing restricted blocks
134
+ [razvanMiu - refs #273963]
135
+ * Feature: Customized context navigation endpoint to filter portal_type
136
+ [ichim-david - refs #270999]
137
+ * Fix: Depth of context navigation endpoint by passing depth parameter
138
+ [ichim-david - refs #270999]
139
+
140
+ 5.1 - (2024-07-22)
141
+ ---------------------------
142
+ * Change: Release
143
+ [avoinea]
144
+
131
145
  5.0 - (2024-06-11)
132
146
  ---------------------------
133
147
  * Breaking: Requires `plone.volto >= 4.1.0`
@@ -20,11 +20,13 @@ eea/volto/policy/__init__.py
20
20
  eea/volto/policy/configure.zcml
21
21
  eea/volto/policy/interfaces.py
22
22
  eea/volto/policy/overrides.zcml
23
+ eea/volto/policy/permissions.zcml
23
24
  eea/volto/policy/profiles.zcml
24
25
  eea/volto/policy/setuphandlers.py
25
26
  eea/volto/policy/version.txt
26
27
  eea/volto/policy/behaviors/__init__.py
27
28
  eea/volto/policy/behaviors/configure.zcml
29
+ eea/volto/policy/behaviors/sidenavigation.py
28
30
  eea/volto/policy/browser/__init__.py
29
31
  eea/volto/policy/browser/configure.zcml
30
32
  eea/volto/policy/browser/teaser.py
@@ -169,8 +171,10 @@ eea/volto/policy/profiles/default/catalog.xml
169
171
  eea/volto/policy/profiles/default/contentrules.xml
170
172
  eea/volto/policy/profiles/default/metadata.xml
171
173
  eea/volto/policy/profiles/default/registry.xml
174
+ eea/volto/policy/profiles/default/registry/side_nav_types.xml
172
175
  eea/volto/policy/profiles/uninstall/browserlayer.xml
173
176
  eea/volto/policy/restapi/__init__.py
177
+ eea/volto/policy/restapi/blocks.py
174
178
  eea/volto/policy/restapi/configure.zcml
175
179
  eea/volto/policy/restapi/deserializer/__init__.py
176
180
  eea/volto/policy/restapi/deserializer/configure.zcml
@@ -181,6 +185,11 @@ eea/volto/policy/restapi/serializer/__init__.py
181
185
  eea/volto/policy/restapi/serializer/configure.zcml
182
186
  eea/volto/policy/restapi/serializer/dxfields.py
183
187
  eea/volto/policy/restapi/serializer/summary.py
188
+ eea/volto/policy/restapi/services/__init__.py
189
+ eea/volto/policy/restapi/services/configure.zcml
190
+ eea/volto/policy/restapi/services/contextnavigation/__init__.py
191
+ eea/volto/policy/restapi/services/contextnavigation/configure.zcml
192
+ eea/volto/policy/restapi/services/contextnavigation/get.py
184
193
  eea/volto/policy/tests/__init__.py
185
194
  eea/volto/policy/tests/base.py
186
195
  eea/volto/policy/tests/test_doctests.py
@@ -1,7 +0,0 @@
1
- <configure
2
- xmlns="http://namespaces.zope.org/zope"
3
- xmlns:plone="http://namespaces.plone.org/plone"
4
- i18n_domain="eea">
5
-
6
-
7
- </configure>
@@ -1,6 +0,0 @@
1
- <configure xmlns="http://namespaces.zope.org/zope">
2
- <include package="plone.restapi" />
3
- <include package=".deserializer" />
4
- <include package=".serializer" />
5
- <include package=".navigation" />
6
- </configure>
@@ -1,2 +0,0 @@
1
- """ RestAPI serializer
2
- """
@@ -1 +0,0 @@
1
- 5.0