imio.smartweb.core 1.2.12__py3-none-any.whl → 1.2.68__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 (361) hide show
  1. imio/smartweb/core/behaviors/categorization.py +24 -0
  2. imio/smartweb/core/behaviors/configure.zcml +7 -0
  3. imio/smartweb/core/browser/configure.zcml +41 -1
  4. imio/smartweb/core/browser/controlpanel.py +41 -0
  5. imio/smartweb/core/browser/dashboards/configure.zcml +0 -2
  6. imio/smartweb/core/browser/dashboards/plausible.py +4 -4
  7. imio/smartweb/core/browser/faceted/block_view.pt +4 -4
  8. imio/smartweb/core/browser/faceted/summary_view.pt +4 -4
  9. imio/smartweb/core/browser/forms.py +3 -3
  10. imio/smartweb/core/browser/redirect_to_main_react_view.py +52 -0
  11. imio/smartweb/core/browser/search/search.pt +2 -1
  12. imio/smartweb/core/browser/search/search.py +4 -0
  13. imio/smartweb/core/browser/sitemap.py +148 -0
  14. imio/smartweb/core/browser/static/icons/action-delete.svg +3 -0
  15. imio/smartweb/core/browser/static/icons/action-e-guichet.svg +1 -1
  16. imio/smartweb/core/browser/static/icons/action-email.svg +1 -1
  17. imio/smartweb/core/browser/static/icons/action-engagement-2.svg +4 -0
  18. imio/smartweb/core/browser/static/icons/action-engagement.svg +1 -1
  19. imio/smartweb/core/browser/static/icons/action-nous-contacter.svg +1 -1
  20. imio/smartweb/core/browser/static/icons/action-nous-rejoindre.svg +2 -1
  21. imio/smartweb/core/browser/static/icons/action-organiser-un-evenement.svg +1 -1
  22. imio/smartweb/core/browser/static/icons/action-panneaux.svg +3 -0
  23. imio/smartweb/core/browser/static/icons/action-signaler-un-probleme.svg +1 -1
  24. imio/smartweb/core/browser/static/icons/action-voir-plan.svg +1 -1
  25. imio/smartweb/core/browser/static/icons/action-vote.svg +3 -0
  26. imio/smartweb/core/browser/static/icons/categorie-associations.svg +1 -1
  27. imio/smartweb/core/browser/static/icons/categorie-attention.svg +3 -0
  28. imio/smartweb/core/browser/static/icons/categorie-avis-et-enquetes.svg +1 -1
  29. imio/smartweb/core/browser/static/icons/categorie-cinema.svg +1 -1
  30. imio/smartweb/core/browser/static/icons/categorie-commerce.svg +1 -1
  31. imio/smartweb/core/browser/static/icons/categorie-concert.svg +1 -1
  32. imio/smartweb/core/browser/static/icons/categorie-culture.svg +1 -1
  33. imio/smartweb/core/browser/static/icons/categorie-demarches.svg +1 -1
  34. imio/smartweb/core/browser/static/icons/categorie-enfance.svg +1 -1
  35. imio/smartweb/core/browser/static/icons/categorie-enseignement.svg +1 -1
  36. imio/smartweb/core/browser/static/icons/categorie-environnement-gestion-des-dechets.svg +1 -1
  37. imio/smartweb/core/browser/static/icons/categorie-exposition.svg +1 -1
  38. imio/smartweb/core/browser/static/icons/categorie-horaires.svg +1 -1
  39. imio/smartweb/core/browser/static/icons/categorie-infos-travaux-2.svg +4 -0
  40. imio/smartweb/core/browser/static/icons/categorie-infos-travaux.svg +1 -1
  41. imio/smartweb/core/browser/static/icons/categorie-mandataires.svg +1 -1
  42. imio/smartweb/core/browser/static/icons/categorie-mobilite.svg +1 -1
  43. imio/smartweb/core/browser/static/icons/categorie-mon-dossier.svg +1 -1
  44. imio/smartweb/core/browser/static/icons/categorie-nature.svg +3 -0
  45. imio/smartweb/core/browser/static/icons/categorie-parc-de-stationnement.svg +1 -1
  46. imio/smartweb/core/browser/static/icons/categorie-parcs-a-conteneurs.svg +4 -0
  47. imio/smartweb/core/browser/static/icons/categorie-parcs-et-jardins.svg +1 -1
  48. imio/smartweb/core/browser/static/icons/categorie-plus.svg +3 -0
  49. imio/smartweb/core/browser/static/icons/categorie-primes-2.svg +5 -0
  50. imio/smartweb/core/browser/static/icons/categorie-primes.svg +1 -1
  51. imio/smartweb/core/browser/static/icons/categorie-sport-courir.svg +1 -1
  52. imio/smartweb/core/browser/static/icons/categorie-sport-natation.svg +4 -0
  53. imio/smartweb/core/browser/static/icons/categorie-sport-velo.svg +1 -1
  54. imio/smartweb/core/browser/static/icons/categorie-tourisme.svg +1 -1
  55. imio/smartweb/core/browser/static/icons/organisation-academie-musique.svg +1 -1
  56. imio/smartweb/core/browser/static/icons/organisation-centre-sportif.svg +1 -1
  57. imio/smartweb/core/browser/static/icons/organisation-cpas.svg +1 -1
  58. imio/smartweb/core/browser/static/icons/organisation-ecole-des-arts.svg +1 -1
  59. imio/smartweb/core/browser/static/icons/organisation-ecole-sac.svg +4 -0
  60. imio/smartweb/core/browser/static/icons/organisation-ecole.svg +1 -1
  61. imio/smartweb/core/browser/static/icons/organisation-mobilite.svg +1 -1
  62. imio/smartweb/core/browser/static/icons/organisation-scout.svg +3 -0
  63. imio/smartweb/core/browser/static/icons/reseausocial-behance.svg +3 -0
  64. imio/smartweb/core/browser/static/icons/reseausocial-facebook.svg +1 -1
  65. imio/smartweb/core/browser/static/icons/reseausocial-linkedin.svg +3 -0
  66. imio/smartweb/core/browser/static/icons/reseausocial-twitter.svg +3 -13
  67. imio/smartweb/core/browser/static/icons/reseausocial-vimeo.svg +1 -1
  68. imio/smartweb/core/browser/static/icons/reseausocial-youtube.svg +1 -1
  69. imio/smartweb/core/browser/static/icons/vue-actualites.svg +1 -1
  70. imio/smartweb/core/browser/static/icons/vue-agenda.svg +1 -1
  71. imio/smartweb/core/browser/static/icons/vue-annuaire.svg +1 -1
  72. imio/smartweb/core/browser/static/smartweb-edit-compiled.css +1 -1
  73. imio/smartweb/core/browser/static/smartweb-edit-compiled.js +1 -1
  74. imio/smartweb/core/browser/static/smartweb-view-compiled.css +1 -1
  75. imio/smartweb/core/browser/static/smartweb-view-compiled.js +1 -1
  76. imio/smartweb/core/browser/static/src/edit.js +5 -0
  77. imio/smartweb/core/browser/static/src/edit.less +42 -0
  78. imio/smartweb/core/browser/static/src/view.js +11 -0
  79. imio/smartweb/core/browser/static/src/view.less +4 -0
  80. imio/smartweb/core/browser/utils.py +5 -32
  81. imio/smartweb/core/browser/vocabulary.py +40 -0
  82. imio/smartweb/core/contents/__init__.py +4 -0
  83. imio/smartweb/core/contents/configure.zcml +1 -0
  84. imio/smartweb/core/contents/cropping.py +1 -1
  85. imio/smartweb/core/contents/folder/block_view.pt +8 -8
  86. imio/smartweb/core/contents/folder/summary_view.pt +4 -4
  87. imio/smartweb/core/contents/pages/cirkwi/content.py +5 -0
  88. imio/smartweb/core/contents/pages/cirkwi/view.py +2 -1
  89. imio/smartweb/core/contents/pages/portal_page/view.py +3 -0
  90. imio/smartweb/core/contents/pages/views.py +3 -1
  91. imio/smartweb/core/contents/publication/configure.zcml +5 -0
  92. imio/smartweb/core/contents/publication/content.py +23 -0
  93. imio/smartweb/core/contents/rest/base.py +24 -10
  94. imio/smartweb/core/contents/rest/configure.zcml +7 -0
  95. imio/smartweb/core/contents/rest/directory/content.py +2 -2
  96. imio/smartweb/core/contents/rest/directory/endpoint.py +2 -2
  97. imio/smartweb/core/contents/rest/directory/view.pt +3 -1
  98. imio/smartweb/core/contents/rest/directory/view.py +3 -0
  99. imio/smartweb/core/contents/rest/events/content.py +15 -2
  100. imio/smartweb/core/contents/rest/events/endpoint.py +5 -7
  101. imio/smartweb/core/contents/rest/events/view.pt +6 -1
  102. imio/smartweb/core/contents/rest/events/view.py +15 -0
  103. imio/smartweb/core/contents/rest/news/content.py +8 -2
  104. imio/smartweb/core/contents/rest/news/endpoint.py +4 -2
  105. imio/smartweb/core/contents/rest/news/view.pt +5 -1
  106. imio/smartweb/core/contents/rest/news/view.py +11 -0
  107. imio/smartweb/core/contents/rest/search/endpoint.py +4 -4
  108. imio/smartweb/core/contents/rest/traversal.py +18 -0
  109. imio/smartweb/core/contents/rest/utils.py +98 -0
  110. imio/smartweb/core/contents/rest/view.py +11 -0
  111. imio/smartweb/core/contents/sections/common_templates/carousel.pt +6 -2
  112. imio/smartweb/core/contents/sections/common_templates/table.pt +22 -8
  113. imio/smartweb/core/contents/sections/configure.zcml +18 -0
  114. imio/smartweb/core/contents/sections/contact/content.py +2 -2
  115. imio/smartweb/core/contents/sections/contact/utils.py +2 -154
  116. imio/smartweb/core/contents/sections/events/content.py +12 -4
  117. imio/smartweb/core/contents/sections/events/view.py +20 -2
  118. imio/smartweb/core/contents/sections/external_content/configure.zcml +29 -0
  119. imio/smartweb/core/contents/sections/external_content/view.pt +25 -7
  120. imio/smartweb/core/contents/sections/external_content/view_idelux_waste.pt +50 -0
  121. imio/smartweb/core/contents/sections/external_content/view_inbw_containers_affluence.pt +91 -0
  122. imio/smartweb/core/contents/sections/external_content/view_odwb_widget.pt +20 -0
  123. imio/smartweb/core/contents/sections/external_content/views.py +306 -125
  124. imio/smartweb/core/contents/sections/files/content.py +7 -1
  125. imio/smartweb/core/contents/sections/files/view.py +40 -12
  126. imio/smartweb/core/contents/sections/links/view.py +5 -0
  127. imio/smartweb/core/contents/sections/macros.pt +39 -9
  128. imio/smartweb/core/contents/sections/news/content.py +11 -3
  129. imio/smartweb/core/contents/sections/news/view.py +20 -2
  130. imio/smartweb/core/contents/sections/text/view.pt +5 -4
  131. imio/smartweb/core/contents/sections/text/views.py +2 -0
  132. imio/smartweb/core/contents/sections/views.py +81 -4
  133. imio/smartweb/core/interfaces.py +15 -0
  134. imio/smartweb/core/profiles/default/actions.xml +15 -0
  135. imio/smartweb/core/profiles/default/diff_tool.xml +8 -0
  136. imio/smartweb/core/profiles/default/metadata.xml +1 -1
  137. imio/smartweb/core/profiles/default/registry/plone.xml +21 -4
  138. imio/smartweb/core/profiles/default/repositorytool.xml +1 -0
  139. imio/smartweb/core/profiles/default/taxonomies/page_category.xml +16 -0
  140. imio/smartweb/core/profiles/default/taxonomies/procedure_category.xml +26 -0
  141. imio/smartweb/core/profiles/default/types/Collection.xml +13 -0
  142. imio/smartweb/core/profiles/default/types/File.xml +13 -0
  143. imio/smartweb/core/profiles/default/types/Image.xml +13 -0
  144. imio/smartweb/core/profiles/default/types/imio.smartweb.BlockLink.xml +5 -0
  145. imio/smartweb/core/profiles/default/types/imio.smartweb.CirkwiView.xml +1 -0
  146. imio/smartweb/core/profiles/default/types/imio.smartweb.DirectoryView.xml +1 -0
  147. imio/smartweb/core/profiles/default/types/imio.smartweb.EventsView.xml +2 -0
  148. imio/smartweb/core/profiles/default/types/imio.smartweb.Folder.xml +1 -0
  149. imio/smartweb/core/profiles/default/types/imio.smartweb.NewsView.xml +2 -0
  150. imio/smartweb/core/profiles/default/types/imio.smartweb.Page.xml +1 -0
  151. imio/smartweb/core/profiles/default/types/imio.smartweb.PortalPage.xml +1 -0
  152. imio/smartweb/core/profiles/default/types/imio.smartweb.Procedure.xml +1 -0
  153. imio/smartweb/core/profiles/default/types/imio.smartweb.Publication.xml +38 -0
  154. imio/smartweb/core/profiles/default/types/imio.smartweb.SectionEvents.xml +1 -0
  155. imio/smartweb/core/profiles/default/types/imio.smartweb.SectionFiles.xml +2 -0
  156. imio/smartweb/core/profiles/default/types/imio.smartweb.SectionHTML.xml +0 -1
  157. imio/smartweb/core/profiles/default/types/imio.smartweb.SectionNews.xml +1 -0
  158. imio/smartweb/core/profiles/default/types.xml +1 -0
  159. imio/smartweb/core/profiles/icons/basic/registry.xml +120 -0
  160. imio/smartweb/core/profiles/testing/types/imio.smartweb.DirectoryView.xml +11 -0
  161. imio/smartweb/core/profiles/testing/types/imio.smartweb.EventsView.xml +11 -0
  162. imio/smartweb/core/profiles/testing/types/imio.smartweb.NewsView.xml +11 -0
  163. imio/smartweb/core/profiles/validation/contentrules.xml +102 -0
  164. imio/smartweb/core/profiles.zcml +8 -0
  165. imio/smartweb/core/rest/authentic_sources.py +23 -11
  166. imio/smartweb/core/subscribers.py +24 -0
  167. imio/smartweb/core/subscribers.zcml +4 -0
  168. imio/smartweb/core/tests/resources/json_iadeliberations_institutions.json +60 -0
  169. imio/smartweb/core/tests/resources/json_iadeliberations_publication.json +105 -0
  170. imio/smartweb/core/tests/resources/json_iadeliberations_publications.json +270 -0
  171. imio/smartweb/core/tests/resources/json_rest_events.json +6 -2
  172. imio/smartweb/core/tests/resources/json_rest_news.json +2 -2
  173. imio/smartweb/core/tests/resources/json_rest_specific_events.json +1 -1
  174. imio/smartweb/core/tests/test_cropping.py +4 -4
  175. imio/smartweb/core/tests/test_htmx_in_sections.py +131 -0
  176. imio/smartweb/core/tests/test_iadeliberations.py +136 -0
  177. imio/smartweb/core/tests/test_icons.py +1 -1
  178. imio/smartweb/core/tests/test_redirect_to_main_react_view.py +79 -0
  179. imio/smartweb/core/tests/test_rest.py +283 -22
  180. imio/smartweb/core/tests/test_section_contact.py +2 -2
  181. imio/smartweb/core/tests/test_section_events.py +28 -5
  182. imio/smartweb/core/tests/test_section_external_content.py +26 -25
  183. imio/smartweb/core/tests/test_section_news.py +30 -8
  184. imio/smartweb/core/tests/test_sections.py +38 -15
  185. imio/smartweb/core/tests/test_sitemap.py +174 -0
  186. imio/smartweb/core/tests/test_vocabularies.py +61 -4
  187. imio/smartweb/core/tests/test_vocabulary.py +43 -0
  188. imio/smartweb/core/tests/utils.py +15 -0
  189. imio/smartweb/core/upgrades/configure.zcml +180 -0
  190. imio/smartweb/core/upgrades/profiles/1051_to_1052/actions.xml +20 -0
  191. imio/smartweb/core/upgrades/profiles/1052_to_1053/diff_tool.xml +8 -0
  192. imio/smartweb/core/upgrades/profiles/1052_to_1053/repositorytool.xml +9 -0
  193. imio/smartweb/core/upgrades/profiles/1052_to_1053/types/imio.smartweb.SectionHTML.xml +14 -0
  194. imio/smartweb/core/upgrades/profiles/1053_to_1054/registry.xml +39 -0
  195. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/Collection.xml +13 -0
  196. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/File.xml +13 -0
  197. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/Image.xml +13 -0
  198. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.BlockLink.xml +12 -0
  199. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.CirkwiView.xml +12 -0
  200. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.DirectoryView.xml +12 -0
  201. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.EventsView.xml +12 -0
  202. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.Folder.xml +12 -0
  203. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.NewsView.xml +12 -0
  204. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.Page.xml +12 -0
  205. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.PortalPage.xml +12 -0
  206. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.Procedure.xml +12 -0
  207. imio/smartweb/core/upgrades/profiles/1055_to_1056/types/imio.smartweb.SectionFiles.xml +12 -0
  208. imio/smartweb/core/upgrades/profiles/1056_to_1057/types/imio.smartweb.EventsView.xml +11 -0
  209. imio/smartweb/core/upgrades/profiles/1056_to_1057/types/imio.smartweb.NewsView.xml +11 -0
  210. imio/smartweb/core/upgrades/profiles/1056_to_1057/types/imio.smartweb.SectionEvents.xml +11 -0
  211. imio/smartweb/core/upgrades/profiles/1056_to_1057/types/imio.smartweb.SectionNews.xml +11 -0
  212. imio/smartweb/core/upgrades/profiles/1057_to_1058/taxonomies/page_category.cfg +9 -0
  213. imio/smartweb/core/upgrades/profiles/1057_to_1058/taxonomies/page_category.xml +73 -0
  214. imio/smartweb/core/upgrades/profiles/1057_to_1058/taxonomies/procedure_category.cfg +9 -0
  215. imio/smartweb/core/upgrades/profiles/1057_to_1058/taxonomies/procedure_category.xml +118 -0
  216. imio/smartweb/core/upgrades/profiles/1058_to_1059/registry/linkedin-icon.xml +126 -0
  217. imio/smartweb/core/upgrades/profiles/1059_to_1060/registry/iadeliberation.xml +9 -0
  218. imio/smartweb/core/upgrades/profiles/1060_to_1061/types/imio.smartweb.Publication.xml +38 -0
  219. imio/smartweb/core/upgrades/profiles/1060_to_1061/types/imio.smartweb.SectionFiles.xml +11 -0
  220. imio/smartweb/core/upgrades/profiles/1060_to_1061/types.xml +4 -0
  221. imio/smartweb/core/upgrades/profiles/1060_to_1061/workflows.xml +6 -0
  222. imio/smartweb/core/utils.py +65 -3
  223. imio/smartweb/core/viewlets/configure.zcml +43 -0
  224. imio/smartweb/core/viewlets/external_content.py +13 -5
  225. imio/smartweb/core/viewlets/footer.pt +5 -0
  226. imio/smartweb/core/viewlets/footer.py +5 -0
  227. imio/smartweb/core/viewlets/htmx.py +15 -0
  228. imio/smartweb/core/viewlets/htmx_js_header.pt +59 -0
  229. imio/smartweb/core/viewlets/httpheaders.py +13 -0
  230. imio/smartweb/core/viewlets/odwb_widget_header.pt +19 -0
  231. imio/smartweb/core/viewlets/offcanvas.pt +2 -1
  232. imio/smartweb/core/viewlets/ogp_tag_header.pt +19 -0
  233. imio/smartweb/core/viewlets/ogptags.py +144 -0
  234. imio/smartweb/core/viewlets/social.py +23 -0
  235. imio/smartweb/core/vocabularies.py +66 -2
  236. imio/smartweb/core/vocabularies.zcml +18 -0
  237. imio/smartweb/core/webcomponents/build/1c1605a5fe9a2b10a88f.png +1 -0
  238. imio/smartweb/core/webcomponents/build/524db40e119aa11f4478.png +1 -0
  239. imio/smartweb/core/webcomponents/build/57d3b7cb1ab874660b39.svg +1 -0
  240. imio/smartweb/core/webcomponents/build/6cf03871df23ed2ee8b3.png +1 -0
  241. imio/smartweb/core/webcomponents/build/css/373.smartweb-webcomponents-compiled.css +1 -0
  242. imio/smartweb/core/webcomponents/build/css/486.smartweb-webcomponents-compiled.css +1 -0
  243. imio/smartweb/core/webcomponents/build/css/884.smartweb-webcomponents-compiled.css +1 -0
  244. imio/smartweb/core/webcomponents/build/css/919.smartweb-webcomponents-compiled.css +1 -0
  245. imio/smartweb/core/webcomponents/build/css/smartweb-webcomponents-compiled.css +1 -1
  246. imio/smartweb/core/webcomponents/build/js/218.smartweb-webcomponents-compiled.js +2 -0
  247. imio/smartweb/core/webcomponents/build/js/218.smartweb-webcomponents-compiled.js.LICENSE.txt +16 -0
  248. imio/smartweb/core/webcomponents/build/js/373.smartweb-webcomponents-compiled.js +2 -0
  249. imio/smartweb/core/webcomponents/build/js/373.smartweb-webcomponents-compiled.js.LICENSE.txt +10 -0
  250. imio/smartweb/core/webcomponents/build/js/486.smartweb-webcomponents-compiled.js +1 -0
  251. imio/smartweb/core/webcomponents/build/js/499.smartweb-webcomponents-compiled.js +2 -0
  252. imio/smartweb/core/webcomponents/build/js/{212.smartweb-webcomponents-compiled.js.LICENSE.txt → 499.smartweb-webcomponents-compiled.js.LICENSE.txt} +1 -8
  253. imio/smartweb/core/webcomponents/build/js/799.smartweb-webcomponents-compiled.js +2 -0
  254. imio/smartweb/core/webcomponents/build/js/824.smartweb-webcomponents-compiled.js +2 -0
  255. imio/smartweb/core/webcomponents/build/js/828.smartweb-webcomponents-compiled.js +2 -0
  256. imio/smartweb/core/webcomponents/build/js/828.smartweb-webcomponents-compiled.js.LICENSE.txt +32 -0
  257. imio/smartweb/core/webcomponents/build/js/884.smartweb-webcomponents-compiled.js +1 -0
  258. imio/smartweb/core/webcomponents/build/js/919.smartweb-webcomponents-compiled.js +1 -0
  259. imio/smartweb/core/webcomponents/build/js/963.smartweb-webcomponents-compiled.js +2 -0
  260. imio/smartweb/core/webcomponents/build/js/963.smartweb-webcomponents-compiled.js.LICENSE.txt +3 -0
  261. imio/smartweb/core/webcomponents/build/js/smartweb-webcomponents-compiled.js +1 -1
  262. imio/smartweb/core/webcomponents/build/js/smartweb-webcomponents-compiled.js.LICENSE.txt +11 -14
  263. imio/smartweb/core/webcomponents/package.json +46 -44
  264. imio/smartweb/core/webcomponents/src/assets/contentIcon/download.svg +1 -0
  265. imio/smartweb/core/webcomponents/src/components/Annuaire/Annuaire.jsx +160 -92
  266. imio/smartweb/core/webcomponents/src/components/Annuaire/Annuaire.scss +250 -157
  267. imio/smartweb/core/webcomponents/src/components/Annuaire/ContactCard/ContactCard.jsx +113 -81
  268. imio/smartweb/core/webcomponents/src/components/Annuaire/ContactContent/ContactContent.jsx +394 -188
  269. imio/smartweb/core/webcomponents/src/components/Annuaire/ContactList/ContactList.jsx +26 -9
  270. imio/smartweb/core/webcomponents/src/components/Annuaire/Filters/Filter.jsx +213 -100
  271. imio/smartweb/core/webcomponents/src/components/Annuaire/index.js +1 -1
  272. imio/smartweb/core/webcomponents/src/components/Events/EventCard/EventCard.jsx +86 -0
  273. imio/smartweb/core/webcomponents/src/components/Events/EventContent/EventContent.jsx +615 -0
  274. imio/smartweb/core/webcomponents/src/components/Events/EventList/EventList.jsx +67 -0
  275. imio/smartweb/core/webcomponents/src/components/Events/Events.jsx +181 -103
  276. imio/smartweb/core/webcomponents/src/components/Events/Events.scss +316 -182
  277. imio/smartweb/core/webcomponents/src/components/Events/Filters/Filter.jsx +275 -80
  278. imio/smartweb/core/webcomponents/src/components/Filters/DateFilter.jsx +136 -0
  279. imio/smartweb/core/webcomponents/src/components/Filters/DateFilter.scss +104 -0
  280. imio/smartweb/core/webcomponents/src/components/Filters/IamData.jsx +42 -0
  281. imio/smartweb/core/webcomponents/src/components/Filters/MainFilter.scss +227 -0
  282. imio/smartweb/core/webcomponents/src/components/Filters/PublicTargetData.jsx +94 -0
  283. imio/smartweb/core/webcomponents/src/components/Filters/SelectStyles.js +58 -0
  284. imio/smartweb/core/webcomponents/src/components/Filters/TaxonomyFilter.jsx +149 -0
  285. imio/smartweb/core/webcomponents/src/components/Filters/TaxonomyFilter.scss +70 -0
  286. imio/smartweb/core/webcomponents/src/components/News/Filters/Filter.jsx +139 -83
  287. imio/smartweb/core/webcomponents/src/components/News/News.jsx +141 -74
  288. imio/smartweb/core/webcomponents/src/components/News/News.scss +41 -15
  289. imio/smartweb/core/webcomponents/src/components/News/NewsCard/NewsCard.jsx +96 -0
  290. imio/smartweb/core/webcomponents/src/components/News/NewsContent/NewsContent.jsx +309 -0
  291. imio/smartweb/core/webcomponents/src/components/News/NewsList/NewsList.jsx +76 -0
  292. imio/smartweb/core/webcomponents/src/components/Search/ContactResult/ContactResult.jsx +28 -14
  293. imio/smartweb/core/webcomponents/src/components/Search/EventsResult/EventsResult.jsx +28 -14
  294. imio/smartweb/core/webcomponents/src/components/Search/Filters/Filter.jsx +51 -32
  295. imio/smartweb/core/webcomponents/src/components/Search/NewsResult/NewsResult.jsx +29 -15
  296. imio/smartweb/core/webcomponents/src/components/Search/Search.jsx +18 -13
  297. imio/smartweb/core/webcomponents/src/components/Search/Search.scss +125 -105
  298. imio/smartweb/core/webcomponents/src/components/Search/WebResult/WebResult.jsx +19 -6
  299. imio/smartweb/core/webcomponents/src/components/Search/index.js +1 -1
  300. imio/smartweb/core/webcomponents/src/hooks/ScrollContext.jsx +3 -0
  301. imio/smartweb/core/webcomponents/src/hooks/useAxios.js +3 -6
  302. imio/smartweb/core/webcomponents/src/hooks/useFilterQuery.js +1 -2
  303. imio/smartweb/core/webcomponents/src/index.scss +246 -211
  304. imio/smartweb/core/webcomponents/src/utils/Map.jsx +159 -0
  305. imio/smartweb/core/webcomponents/src/{components/Annuaire/ContactMap/ContactMap.scss → utils/Map.scss} +2 -2
  306. imio/smartweb/core/webcomponents/src/utils/translation.js +283 -14
  307. imio.smartweb.core-1.2.68-py3.11-nspkg.pth +2 -0
  308. {imio.smartweb.core-1.2.12.dist-info → imio.smartweb.core-1.2.68.dist-info}/METADATA +548 -3
  309. {imio.smartweb.core-1.2.12.dist-info → imio.smartweb.core-1.2.68.dist-info}/RECORD +317 -240
  310. {imio.smartweb.core-1.2.12.dist-info → imio.smartweb.core-1.2.68.dist-info}/WHEEL +1 -1
  311. imio/smartweb/core/webcomponents/build/assets/location-bla.1423bcce16ddcb21141430cac1428dc1.svg +0 -1
  312. imio/smartweb/core/webcomponents/build/assets/next-react-white.819cb069ac8eec300a9db6a7707712d6.svg +0 -1
  313. imio/smartweb/core/webcomponents/build/assets/next-react.17bc43ff4a6a86f4520f5782f6a89a72.svg +0 -1
  314. imio/smartweb/core/webcomponents/build/assets/search.57bdbf5b191499cd77514097d1c4972c.svg +0 -1
  315. imio/smartweb/core/webcomponents/build/css/267.smartweb-webcomponents-compiled.css +0 -1
  316. imio/smartweb/core/webcomponents/build/css/323.smartweb-webcomponents-compiled.css +0 -1
  317. imio/smartweb/core/webcomponents/build/css/552.smartweb-webcomponents-compiled.css +0 -1
  318. imio/smartweb/core/webcomponents/build/css/779.smartweb-webcomponents-compiled.css +0 -1
  319. imio/smartweb/core/webcomponents/build/js/144.smartweb-webcomponents-compiled.js +0 -2
  320. imio/smartweb/core/webcomponents/build/js/212.smartweb-webcomponents-compiled.js +0 -2
  321. imio/smartweb/core/webcomponents/build/js/267.smartweb-webcomponents-compiled.js +0 -1
  322. imio/smartweb/core/webcomponents/build/js/323.smartweb-webcomponents-compiled.js +0 -2
  323. imio/smartweb/core/webcomponents/build/js/323.smartweb-webcomponents-compiled.js.LICENSE.txt +0 -1
  324. imio/smartweb/core/webcomponents/build/js/552.smartweb-webcomponents-compiled.js +0 -2
  325. imio/smartweb/core/webcomponents/build/js/552.smartweb-webcomponents-compiled.js.LICENSE.txt +0 -1
  326. imio/smartweb/core/webcomponents/build/js/565.smartweb-webcomponents-compiled.js +0 -1
  327. imio/smartweb/core/webcomponents/build/js/612.smartweb-webcomponents-compiled.js +0 -2
  328. imio/smartweb/core/webcomponents/build/js/612.smartweb-webcomponents-compiled.js.LICENSE.txt +0 -1
  329. imio/smartweb/core/webcomponents/build/js/779.smartweb-webcomponents-compiled.js +0 -1
  330. imio/smartweb/core/webcomponents/build/js/9.smartweb-webcomponents-compiled.js +0 -2
  331. imio/smartweb/core/webcomponents/build/js/969.smartweb-webcomponents-compiled.js +0 -2
  332. imio/smartweb/core/webcomponents/build/js/969.smartweb-webcomponents-compiled.js.LICENSE.txt +0 -642
  333. imio/smartweb/core/webcomponents/pnpm-lock.yaml +0 -7066
  334. imio/smartweb/core/webcomponents/src/assets/facebook-news.svg +0 -1
  335. imio/smartweb/core/webcomponents/src/assets/location-bla.svg +0 -1
  336. imio/smartweb/core/webcomponents/src/assets/next-react.svg +0 -1
  337. imio/smartweb/core/webcomponents/src/assets/search.svg +0 -1
  338. imio/smartweb/core/webcomponents/src/assets/skeleton.svg +0 -1
  339. imio/smartweb/core/webcomponents/src/components/Annuaire/ContactMap/ContactMap.jsx +0 -156
  340. imio/smartweb/core/webcomponents/src/components/Annuaire/Skeleton/LoaderCss.jsx +0 -7
  341. imio/smartweb/core/webcomponents/src/components/Annuaire/Skeleton/Skeleton.jsx +0 -20
  342. imio/smartweb/core/webcomponents/src/components/Events/ContactCard/ContactCard.jsx +0 -49
  343. imio/smartweb/core/webcomponents/src/components/Events/ContactContent/ContactContent.jsx +0 -400
  344. imio/smartweb/core/webcomponents/src/components/Events/ContactList/ContactList.jsx +0 -42
  345. imio/smartweb/core/webcomponents/src/components/Events/ContactMap/ContactMap.jsx +0 -156
  346. imio/smartweb/core/webcomponents/src/components/Events/Skeleton/Skeleton.jsx +0 -20
  347. imio/smartweb/core/webcomponents/src/components/News/ContactCard/ContactCard.jsx +0 -78
  348. imio/smartweb/core/webcomponents/src/components/News/ContactContent/ContactContent.jsx +0 -261
  349. imio/smartweb/core/webcomponents/src/components/News/ContactList/ContactList.jsx +0 -37
  350. imio/smartweb/core/webcomponents/src/components/News/ContactMap/ContactMap.jsx +0 -127
  351. imio/smartweb/core/webcomponents/src/components/News/ContactMap/ContactMap.scss +0 -4
  352. imio/smartweb/core/webcomponents/src/components/News/Skeleton/Skeleton.jsx +0 -20
  353. imio/smartweb/core/webcomponents/src/components/Search/Skeleton/Skeleton.jsx +0 -20
  354. imio.smartweb.core-1.2.12-py3.10-nspkg.pth +0 -3
  355. /imio/smartweb/core/{webcomponents/src/components/Events/ContactMap/ContactMap.scss → contents/publication/__init__.py} +0 -0
  356. /imio/smartweb/core/webcomponents/build/js/{144.smartweb-webcomponents-compiled.js.LICENSE.txt → 799.smartweb-webcomponents-compiled.js.LICENSE.txt} +0 -0
  357. /imio/smartweb/core/webcomponents/build/js/{9.smartweb-webcomponents-compiled.js.LICENSE.txt → 824.smartweb-webcomponents-compiled.js.LICENSE.txt} +0 -0
  358. {imio.smartweb.core-1.2.12.dist-info → imio.smartweb.core-1.2.68.dist-info}/LICENSE.GPL +0 -0
  359. {imio.smartweb.core-1.2.12.dist-info → imio.smartweb.core-1.2.68.dist-info}/LICENSE.rst +0 -0
  360. {imio.smartweb.core-1.2.12.dist-info → imio.smartweb.core-1.2.68.dist-info}/namespace_packages.txt +0 -0
  361. {imio.smartweb.core-1.2.12.dist-info → imio.smartweb.core-1.2.68.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,118 @@
1
+ <?xml version='1.0' encoding='utf-8'?>
2
+ <vdex xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.imsglobal.org/xsd/imsvdex_v1p0" xsi:schemaLocation="http://www.imsglobal.org/xsd/imsvdex_v1p0 imsvdex_v1p0.xsd http://www.imsglobal.org/xsd/imsmd_rootv1p2p1 imsmd_rootv1p2p1.xsd" profileType="hierarchicalTokenTerms" orderSignificant="false" language="fr">
3
+ <vocabName>
4
+ <langstring language="fr">Catégorie d'une démarche</langstring>
5
+ <langstring language="en">Procedure category</langstring>
6
+ <langstring language="nl">Procedurecategorie</langstring>
7
+ <langstring language="de">Verfahrenskategorie</langstring>
8
+ </vocabName>
9
+ <vocabIdentifier>procedure_category</vocabIdentifier>
10
+ <term>
11
+ <termIdentifier>actes</termIdentifier>
12
+ <caption>
13
+ <langstring language="fr">Acte (naissance, mariage, décès, etc.)</langstring>
14
+ <langstring language="en">Act (birth, marriage, death, etc.)</langstring>
15
+ <langstring language="nl">Akte (geboorte, huwelijk, overlijden, enz.)</langstring>
16
+ <langstring language="de">Urkunde (Geburt, Ehe, Tod, usw.)</langstring>
17
+ </caption>
18
+ </term>
19
+ <term>
20
+ <termIdentifier>autorisation_carte</termIdentifier>
21
+ <caption>
22
+ <langstring language="fr">Autorisation et carte</langstring>
23
+ <langstring language="en">Authorization and card</langstring>
24
+ <langstring language="nl">Vergunning en kaart</langstring>
25
+ <langstring language="de">Genehmigung und Karte</langstring>
26
+ </caption>
27
+ </term>
28
+ <term>
29
+ <termIdentifier>certificat</termIdentifier>
30
+ <caption>
31
+ <langstring language="fr">Certificat (de vie, d'hérédité, etc.)</langstring>
32
+ <langstring language="en">Certificate (of life, inheritance, etc.)</langstring>
33
+ <langstring language="nl">Certificaat (van leven, van erfenis, enz.)</langstring>
34
+ <langstring language="de">Bescheinigung (des Lebens, des Erbes, usw.)</langstring>
35
+ </caption>
36
+ </term>
37
+ <term>
38
+ <termIdentifier>declaration</termIdentifier>
39
+ <caption>
40
+ <langstring language="fr">Déclaration</langstring>
41
+ <langstring language="en">Statement</langstring>
42
+ <langstring language="nl">Verklaring</langstring>
43
+ <langstring language="de">Erklärung</langstring>
44
+ </caption>
45
+ </term>
46
+ <term>
47
+ <termIdentifier>demande</termIdentifier>
48
+ <caption>
49
+ <langstring language="fr">Demande (concession funéraire, changement de prénom, etc.)</langstring>
50
+ <langstring language="en">Request (funeral concession, change of first name, etc.)</langstring>
51
+ <langstring language="nl">Aanvraag (begrafenisconcessie, naamsverandering, enz.)</langstring>
52
+ <langstring language="de">Antrag (Begräbnis Konzession, Namensänderung, usw.)</langstring>
53
+ </caption>
54
+ </term>
55
+ <term>
56
+ <termIdentifier>document_d_identite</termIdentifier>
57
+ <caption>
58
+ <langstring language="fr">Document d'identité</langstring>
59
+ <langstring language="en">Identity document</langstring>
60
+ <langstring language="nl">Identiteitsdocument</langstring>
61
+ <langstring language="de">Ausweisdokument</langstring>
62
+ </caption>
63
+ </term>
64
+ <term>
65
+ <termIdentifier>extrait_de_registre</termIdentifier>
66
+ <caption>
67
+ <langstring language="fr">Extrait de registre</langstring>
68
+ <langstring language="en">Register extract</langstring>
69
+ <langstring language="nl">Uittreksel uit het register</langstring>
70
+ <langstring language="de">Registerauszug</langstring>
71
+ </caption>
72
+ </term>
73
+ <term>
74
+ <termIdentifier>information_pratique</termIdentifier>
75
+ <caption>
76
+ <langstring language="fr">Information pratique</langstring>
77
+ <langstring language="en">Practical information</langstring>
78
+ <langstring language="nl">Praktische informatie</langstring>
79
+ <langstring language="de">Praktische Information</langstring>
80
+ </caption>
81
+ </term>
82
+ <term>
83
+ <termIdentifier>inscription</termIdentifier>
84
+ <caption>
85
+ <langstring language="fr">Inscription</langstring>
86
+ <langstring language="en">Registration</langstring>
87
+ <langstring language="nl">Inschrijving</langstring>
88
+ <langstring language="de">Anmeldung</langstring>
89
+ </caption>
90
+ </term>
91
+ <term>
92
+ <termIdentifier>permis</termIdentifier>
93
+ <caption>
94
+ <langstring language="fr">Permis</langstring>
95
+ <langstring language="en">License</langstring>
96
+ <langstring language="nl">Vergunning</langstring>
97
+ <langstring language="de">Erlaubnis</langstring>
98
+ </caption>
99
+ </term>
100
+ <term>
101
+ <termIdentifier>plainte_et_reclamation</termIdentifier>
102
+ <caption>
103
+ <langstring language="fr">Plainte et réclamation</langstring>
104
+ <langstring language="en">Complaint</langstring>
105
+ <langstring language="nl">Klacht</langstring>
106
+ <langstring language="de">Beschwerde</langstring>
107
+ </caption>
108
+ </term>
109
+ <term>
110
+ <termIdentifier>prime_et_aide</termIdentifier>
111
+ <caption>
112
+ <langstring language="fr">Prime et aide</langstring>
113
+ <langstring language="en">Bonus and aid</langstring>
114
+ <langstring language="nl">Premie en hulp</langstring>
115
+ <langstring language="de">Prämie und Hilfe</langstring>
116
+ </caption>
117
+ </term>
118
+ </vdex>
@@ -0,0 +1,126 @@
1
+ <?xml version="1.0"?>
2
+ <registry
3
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
4
+ i18n:domain="imio.smartweb">
5
+
6
+ <record name="smartweb.icon.action.delete"
7
+ interface="imio.smartweb.core.interfaces.ISmartwebIcon">
8
+ <field type="plone.registry.field.TextLine">
9
+ <title i18n:translate="">Action - Delete</title>
10
+ </field>
11
+ <value key="resource">++plone++imio.smartweb.core/icons/action-delete.svg</value>
12
+ </record>
13
+
14
+ <record name="smartweb.icon.action.hiring-2"
15
+ interface="imio.smartweb.core.interfaces.ISmartwebIcon">
16
+ <field type="plone.registry.field.TextLine">
17
+ <title i18n:translate="">Action - Hiring - 2</title>
18
+ </field>
19
+ <value key="resource">++plone++imio.smartweb.core/icons/action-engagement-2.svg</value>
20
+ </record>
21
+
22
+ <record name="smartweb.icon.action.signs"
23
+ interface="imio.smartweb.core.interfaces.ISmartwebIcon">
24
+ <field type="plone.registry.field.TextLine">
25
+ <title i18n:translate="">Action - Signs</title>
26
+ </field>
27
+ <value key="resource">++plone++imio.smartweb.core/icons/action-panneaux.svg</value>
28
+ </record>
29
+
30
+ <record name="smartweb.icon.action.vote"
31
+ interface="imio.smartweb.core.interfaces.ISmartwebIcon">
32
+ <field type="plone.registry.field.TextLine">
33
+ <title i18n:translate="">Action - Vote</title>
34
+ </field>
35
+ <value key="resource">++plone++imio.smartweb.core/icons/action-vote.svg</value>
36
+ </record>
37
+
38
+ <record name="smartweb.icon.category.attention"
39
+ interface="imio.smartweb.core.interfaces.ISmartwebIcon">
40
+ <field type="plone.registry.field.TextLine">
41
+ <title i18n:translate="">Category - Attention</title>
42
+ </field>
43
+ <value key="resource">++plone++imio.smartweb.core/icons/categorie-attention.svg</value>
44
+ </record>
45
+
46
+ <record name="smartweb.icon.category.works-2"
47
+ interface="imio.smartweb.core.interfaces.ISmartwebIcon">
48
+ <field type="plone.registry.field.TextLine">
49
+ <title i18n:translate="">Category - Works - 2</title>
50
+ </field>
51
+ <value key="resource">++plone++imio.smartweb.core/icons/categorie-infos-travaux-2.svg</value>
52
+ </record>
53
+
54
+ <record name="smartweb.icon.category.nature"
55
+ interface="imio.smartweb.core.interfaces.ISmartwebIcon">
56
+ <field type="plone.registry.field.TextLine">
57
+ <title i18n:translate="">Category - Nature</title>
58
+ </field>
59
+ <value key="resource">++plone++imio.smartweb.core/icons/categorie-nature.svg</value>
60
+ </record>
61
+
62
+ <record name="smartweb.icon.category.containerpark"
63
+ interface="imio.smartweb.core.interfaces.ISmartwebIcon">
64
+ <field type="plone.registry.field.TextLine">
65
+ <title i18n:translate="">Category - Containerpark</title>
66
+ </field>
67
+ <value key="resource">++plone++imio.smartweb.core/icons/categorie-parcs-a-conteneurs.svg</value>
68
+ </record>
69
+
70
+ <record name="smartweb.icon.category.more"
71
+ interface="imio.smartweb.core.interfaces.ISmartwebIcon">
72
+ <field type="plone.registry.field.TextLine">
73
+ <title i18n:translate="">Category - More</title>
74
+ </field>
75
+ <value key="resource">++plone++imio.smartweb.core/icons/categorie-plus.svg</value>
76
+ </record>
77
+
78
+ <record name="smartweb.icon.category.bonuses-2"
79
+ interface="imio.smartweb.core.interfaces.ISmartwebIcon">
80
+ <field type="plone.registry.field.TextLine">
81
+ <title i18n:translate="">Category - Bonuses 2</title>
82
+ </field>
83
+ <value key="resource">++plone++imio.smartweb.core/icons/categorie-primes-2.svg</value>
84
+ </record>
85
+
86
+ <record name="smartweb.icon.category.sport.swim"
87
+ interface="imio.smartweb.core.interfaces.ISmartwebIcon">
88
+ <field type="plone.registry.field.TextLine">
89
+ <title i18n:translate="">Category - Sport - Swim</title>
90
+ </field>
91
+ <value key="resource">++plone++imio.smartweb.core/icons/categorie-sport-natation.svg</value>
92
+ </record>
93
+
94
+ <record name="smartweb.icon.organization.school-2"
95
+ interface="imio.smartweb.core.interfaces.ISmartwebIcon">
96
+ <field type="plone.registry.field.TextLine">
97
+ <title i18n:translate="">Organization - School - 2</title>
98
+ </field>
99
+ <value key="resource">++plone++imio.smartweb.core/icons/organisation-ecole-sac.svg</value>
100
+ </record>
101
+
102
+ <record name="smartweb.icon.organization.boyscout"
103
+ interface="imio.smartweb.core.interfaces.ISmartwebIcon">
104
+ <field type="plone.registry.field.TextLine">
105
+ <title i18n:translate="">Organization - Boyscout</title>
106
+ </field>
107
+ <value key="resource">++plone++imio.smartweb.core/icons/organisation-scout.svg</value>
108
+ </record>
109
+
110
+ <record name="smartweb.icon.socialnetwork.behance"
111
+ interface="imio.smartweb.core.interfaces.ISmartwebIcon">
112
+ <field type="plone.registry.field.TextLine">
113
+ <title i18n:translate="">Social network - Behance</title>
114
+ </field>
115
+ <value key="resource">++plone++imio.smartweb.core/icons/reseausocial-behance.svg</value>
116
+ </record>
117
+
118
+ <record name="smartweb.icon.socialnetwork.linkedin"
119
+ interface="imio.smartweb.core.interfaces.ISmartwebIcon">
120
+ <field type="plone.registry.field.TextLine">
121
+ <title i18n:translate="">Social network - Linkedin</title>
122
+ </field>
123
+ <value key="resource">++plone++imio.smartweb.core/icons/reseausocial-linkedin.svg</value>
124
+ </record>
125
+
126
+ </registry>
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0"?>
2
+ <registry
3
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
4
+ i18n:domain="imio.smartweb">
5
+
6
+ <records interface="imio.smartweb.core.browser.controlpanel.ISmartwebControlPanel"
7
+ prefix="smartweb" />
8
+
9
+ </registry>
@@ -0,0 +1,38 @@
1
+ <?xml version="1.0"?>
2
+ <object xmlns:i18n="http://xml.zope.org/namespaces/i18n"
3
+ name="imio.smartweb.Publication"
4
+ meta_type="Dexterity FTI"
5
+ i18n:domain="imio.smartweb">
6
+
7
+ <!-- Basic properties -->
8
+ <property
9
+ i18n:translate=""
10
+ name="title">Publication</property>
11
+ <property
12
+ i18n:translate=""
13
+ name="description">IA.Deliberations : Publication</property>
14
+
15
+ <property name="icon_expr">string:bounding-box-circles</property>
16
+
17
+ <!-- Hierarchy control -->
18
+ <property name="global_allow">False</property>
19
+
20
+ <!-- Schema, class and security -->
21
+ <!-- if we can add a page, we can add a page section -->
22
+ <property name="add_permission">imio.smartweb.core.AddPage</property>
23
+ <property name="klass">imio.smartweb.core.contents.Publication</property>
24
+ <property name="schema">imio.smartweb.core.contents.IPublication</property>
25
+
26
+ <!-- Enabled behaviors -->
27
+ <property name="behaviors" purge="false">
28
+ <element value="plone.shortname"/>
29
+ <element value="plone.leadimage"/>
30
+ <element value="solr.fields" />
31
+ </property>
32
+
33
+ <!-- View information -->
34
+ <property name="default_view">view</property>
35
+ <property name="default_view_fallback">False</property>
36
+ <property name="immediate_view">view</property>
37
+
38
+ </object>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0"?>
2
+ <object xmlns:i18n="http://xml.zope.org/namespaces/i18n"
3
+ name="imio.smartweb.SectionFiles"
4
+ meta_type="Dexterity FTI"
5
+ i18n:domain="imio.smartweb">
6
+
7
+ <property name="allowed_content_types" purge="false">
8
+ <element value="imio.smartweb.Publication" />
9
+ </property>
10
+
11
+ </object>
@@ -0,0 +1,4 @@
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
+ <object name="portal_types" meta_type="Plone Types Tool">
3
+ <object meta_type="Dexterity FTI" name="imio.smartweb.Publication"/>
4
+ </object>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0"?>
2
+ <object name="portal_workflow" meta_type="Plone Workflow Tool">
3
+ <bindings>
4
+ <type type_id="imio.smartweb.Publication"/>
5
+ </bindings>
6
+ </object>
@@ -2,6 +2,7 @@
2
2
 
3
3
  from Acquisition import aq_parent
4
4
  from collective.taxonomy.interfaces import ITaxonomy
5
+ from imio.smartweb.common.utils import is_log_active
5
6
  from imio.smartweb.core.config import WCA_URL
6
7
  from imio.smartweb.core.contents import IFolder
7
8
  from more_itertools import chunked
@@ -14,6 +15,7 @@ from Products.CMFPlone.utils import base_hasattr
14
15
  from zope.component import getSiteManager
15
16
  from zope.component import queryMultiAdapter
16
17
 
18
+ import base64
17
19
  import hashlib
18
20
  import json
19
21
  import logging
@@ -69,7 +71,8 @@ def get_json(url, auth=None, timeout=5):
69
71
  return None
70
72
  if response.status_code != 200:
71
73
  return None
72
- return json.loads(response.text)
74
+ if response.text:
75
+ return json.loads(response.text)
73
76
 
74
77
 
75
78
  def get_wca_token(client_id, client_secret):
@@ -91,6 +94,8 @@ def get_wca_token(client_id, client_secret):
91
94
  }
92
95
  response = requests.post(WCA_URL, headers=headers, data=payload)
93
96
  id_token = response.json().get("id_token")
97
+ if is_log_active():
98
+ logger.info(f"WCA token retrieved : {id_token}")
94
99
  return "Bearer {0}".format(id_token)
95
100
 
96
101
 
@@ -111,7 +116,7 @@ def batch_results(iterable, batch_size):
111
116
  return list(chunked(iterable, batch_size, strict=False))
112
117
 
113
118
 
114
- def reindexParent(obj, event):
119
+ def reindexParent(obj, event=None):
115
120
  parent = aq_parent(obj)
116
121
  if parent is not None:
117
122
  # in some cases (ex: relation breaking), we do not get the object in
@@ -132,7 +137,7 @@ def get_default_content_id(obj):
132
137
 
133
138
  def get_scale_url(context, request, fieldname, scale_name, orientation=""):
134
139
  if orientation:
135
- m = re.match(r"(portrait|paysage)_(\w+)", scale_name)
140
+ m = re.match(r"(portrait|paysage|carre)_(\w+)", scale_name)
136
141
  if m:
137
142
  # remove existing orientation (if any) from scale name
138
143
  scale_name = m.group(2)
@@ -165,3 +170,60 @@ def get_scale_url(context, request, fieldname, scale_name, orientation=""):
165
170
  modified_hash = hash_md5(modification_date)
166
171
  url = f"{brain.getURL()}/@@images/{fieldname}/{scale_name}?cache_key={modified_hash}"
167
172
  return url
173
+
174
+
175
+ def get_plausible_vars():
176
+ env_plausible_url = os.getenv("SMARTWEB_PLAUSIBLE_URL", "")
177
+ env_plausible_site = os.getenv("SMARTWEB_PLAUSIBLE_SITE", "")
178
+ env_plausible_token = os.getenv("SMARTWEB_PLAUSIBLE_TOKEN", "")
179
+
180
+ plausible_url = (
181
+ env_plausible_url
182
+ if (env_plausible_url and env_plausible_url != "")
183
+ else api.portal.get_registry_record("smartweb.plausible_url")
184
+ )
185
+ plausible_site = (
186
+ env_plausible_site
187
+ if (env_plausible_site and env_plausible_site != "")
188
+ else api.portal.get_registry_record("smartweb.plausible_site")
189
+ )
190
+ plausible_token = (
191
+ env_plausible_token
192
+ if (env_plausible_token and env_plausible_token != "")
193
+ else api.portal.get_registry_record("smartweb.plausible_token")
194
+ )
195
+ if all([plausible_site, plausible_url, plausible_token]):
196
+ plausible_vars = {
197
+ "plausible_url": plausible_url,
198
+ "plausible_site": plausible_site,
199
+ "plausible_token": plausible_token,
200
+ }
201
+ return plausible_vars
202
+ else:
203
+ return None
204
+
205
+
206
+ def get_iadeliberation_url_from_registry():
207
+ iadeliberation_url = api.portal.get_registry_record("smartweb.iadeliberations_url")
208
+ return iadeliberation_url
209
+
210
+
211
+ def get_iadeliberation_institution_from_registry():
212
+ iadeliberation_institution = api.portal.get_registry_record(
213
+ "smartweb.iadeliberations_institution"
214
+ )
215
+ return iadeliberation_institution
216
+
217
+
218
+ def get_iadeliberation_json(url):
219
+ iadeliberation_user = api.portal.get_registry_record(
220
+ "smartweb.iadeliberations_api_username"
221
+ )
222
+ iadeliberation_pwd = api.portal.get_registry_record(
223
+ "smartweb.iadeliberation_api_password"
224
+ )
225
+ usrPass = f"{iadeliberation_user}:{iadeliberation_pwd}".encode("utf-8")
226
+ b64Val = base64.b64encode(usrPass)
227
+ json = get_json(url, auth=f"Basic {b64Val.decode('utf-8')}", timeout=20)
228
+
229
+ return json
@@ -36,6 +36,16 @@
36
36
  permission="zope.Public"
37
37
  />
38
38
 
39
+ <browser:viewlet
40
+ name="imio.smartweb.odwb_widget_header"
41
+ for="*"
42
+ manager="plone.app.layout.viewlets.interfaces.IHTTPHeaders"
43
+ layer="imio.smartweb.core.interfaces.IImioSmartwebCoreLayer"
44
+ template="odwb_widget_header.pt"
45
+ class=".external_content.OdwbWidgetHeaderViewlet"
46
+ permission="zope.Public"
47
+ />
48
+
39
49
  <browser:viewlet
40
50
  name="imio.smartweb.header_actions"
41
51
  for="*"
@@ -295,6 +305,17 @@
295
305
  />
296
306
  </configure>
297
307
 
308
+ <browser:viewlet
309
+ name="plone.htmlhead.socialtags"
310
+ for="imio.smartweb.core.contents.IRestView"
311
+ view="imio.smartweb.core.interfaces.IOgpViewUtils"
312
+ manager="plone.app.layout.viewlets.interfaces.IHtmlHead"
313
+ layer="imio.smartweb.core.interfaces.IImioSmartwebCoreLayer"
314
+ template="ogp_tag_header.pt"
315
+ class=".ogptags.OgpTagsViewlet"
316
+ permission="zope2.View"
317
+ />
318
+
298
319
  <configure package="collective.messagesviewlet.browser">
299
320
  <browser:viewlet
300
321
  name="message-viewlet"
@@ -307,6 +328,28 @@
307
328
  />
308
329
  </configure>
309
330
 
331
+ <browser:viewlet
332
+ name="smartweb.htmx.js"
333
+ for="imio.smartweb.core.contents.IPage"
334
+ view="imio.smartweb.core.interfaces.IHtmxViewUtils"
335
+ manager="plone.app.layout.viewlets.interfaces.IHtmlHead"
336
+ layer="imio.smartweb.core.interfaces.IImioSmartwebCoreLayer"
337
+ template="htmx_js_header.pt"
338
+ class=".htmx.HtmxViewlet"
339
+ permission="zope2.View"
340
+ />
341
+
342
+ <browser:viewlet
343
+ name="smartweb.htmx.js"
344
+ for="imio.smartweb.core.contents.IPortalPage"
345
+ view="imio.smartweb.core.interfaces.IHtmxViewUtils"
346
+ manager="plone.app.layout.viewlets.interfaces.IHtmlHead"
347
+ layer="imio.smartweb.core.interfaces.IImioSmartwebCoreLayer"
348
+ template="htmx_js_header.pt"
349
+ class=".htmx.HtmxViewlet"
350
+ permission="zope2.View"
351
+ />
352
+
310
353
  <!-- Overrides to change viewlets managers -->
311
354
 
312
355
  <configure package="plone.app.multilingual.browser">
@@ -7,8 +7,16 @@ class ArcgisHeaderViewlet(HeaderViewlet):
7
7
  def update(self):
8
8
  super(ArcgisHeaderViewlet, self).update()
9
9
 
10
- # def getHeaders(self):
11
- # import pdb;pdb.set_trace()
12
- # result = super(ArcgisHeaderViewlet, self).getHeaders()
13
- # result.append(("prefix", "og: http://ogp.me/ns#"))
14
- # return result
10
+
11
+ class OdwbWidgetHeaderViewlet(HeaderViewlet):
12
+
13
+ def should_render(self):
14
+ view = self.view
15
+ if hasattr(view, "should_display_odwb_widget_viewlet"):
16
+ return view.should_display_odwb_widget_viewlet
17
+ return False
18
+
19
+ def render(self):
20
+ # if self.should_render():
21
+ return self.index()
22
+ # return ""
@@ -6,6 +6,11 @@
6
6
  tal:attributes="id view/css_id;
7
7
  style view/background_style;
8
8
  class string:smartweb-footer ${footer/css_class}">
9
+ <a class="show-on-focus skip-before-footer"
10
+ tal:define="url view/current_page_url"
11
+ tal:attributes="href string:${url}#content-header"
12
+ i18n:domain="imio.smartweb"
13
+ i18n:translate="">Skip to navigation</a>
9
14
  <div class="container">
10
15
  <div class="row">
11
16
  <tal:bcl tal:repeat="section view/sections">
@@ -8,6 +8,7 @@ from plone.app.layout.navigation.interfaces import INavigationRoot
8
8
  from plone.app.layout.viewlets import common
9
9
  from Products.CMFPlone.interfaces.siteroot import IPloneSiteRoot
10
10
  from Products.CMFPlone.utils import parent
11
+ from zope.component import getMultiAdapter
11
12
 
12
13
 
13
14
  class BaseFooterViewlet(common.ViewletBase):
@@ -28,9 +29,13 @@ class BaseFooterViewlet(common.ViewletBase):
28
29
  return " ".join([css_bg_image, css_bg_size])
29
30
 
30
31
  def update(self):
32
+ context_state = getMultiAdapter(
33
+ (self.context, self.request), name="plone_context_state"
34
+ )
31
35
  if not self.available():
32
36
  return
33
37
  self.sections = self.footer.listFolderContents()
38
+ self.current_page_url = context_state.current_page_url
34
39
 
35
40
 
36
41
  class FooterViewlet(BaseFooterViewlet):
@@ -0,0 +1,15 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ from plone import api
4
+ from plone.app.layout.viewlets.httpheaders import HeaderViewlet
5
+
6
+
7
+ class HtmxViewlet(HeaderViewlet):
8
+ """htmx"""
9
+
10
+ def update(self):
11
+ super(HtmxViewlet, self).update()
12
+
13
+ @property
14
+ def is_anonymous(self):
15
+ return api.user.is_anonymous()
@@ -0,0 +1,59 @@
1
+ <tal:cond condition="python:not view.is_anonymous">
2
+ <script src="https://unpkg.com/htmx.org@1.9.10/dist/htmx.js"></script>
3
+
4
+ <script type="text/javascript">
5
+ $(document).ready(function() {
6
+ /**
7
+ Manage section size
8
+ When clicking on link (<a>) with class "section_size", display the form to select the section size
9
+ */
10
+ $(".manage-section > a.section_size").on("click", function(event) {
11
+ event.preventDefault();
12
+ var clickedElement = event.target;
13
+ var uid = clickedElement.getAttribute("uid");
14
+ var sizesForm = $("#sizesForm_" + uid);
15
+ // Get <select>
16
+ var selectElement = document.querySelector("#sizesForm_" + uid + " > select");
17
+ sizesForm.css({ "display": "inline-block", "position": "absolute", "zIndex": "2" });
18
+ selectElement.selectedIndex = -1;
19
+ selectElement.size = selectElement.options.length;
20
+ selectElement.focus();
21
+ selectElement.addEventListener('focusout', function(event) {
22
+ sizesForm.css("display", "none");
23
+ });
24
+ });
25
+
26
+ /**
27
+ Manage section size
28
+ When submitting the form, update the section size and the class of the parent element
29
+ (to directly resize the section)
30
+ */
31
+ $(".manage-section > form").on("htmx:afterRequest", function(event) {
32
+ event.preventDefault();
33
+ var response = JSON.parse(event.detail.xhr.response);
34
+ var currentForm = event.target;
35
+ var uid = currentForm.getAttribute("hx-boost");
36
+ var link = document.getElementById("selected_size_" + uid);
37
+ var parent = currentForm.closest('.sortable-section');
38
+ var lst_parent_classes = $(parent).attr("class").split(" ");
39
+ var new_parent_classes = ""
40
+ var find = false;
41
+ for (var i = 0; i < lst_parent_classes.length; i++) {
42
+ if (lst_parent_classes[i].startsWith("col-")) {
43
+ find = true;
44
+ lst_parent_classes[i] = response.id;
45
+ }
46
+ new_parent_classes += new_parent_classes + " " + lst_parent_classes[i];
47
+ }
48
+ // "col-" can not be found if there is no section size defined
49
+ if (find == false) {
50
+ new_parent_classes += " " + response.id;
51
+ }
52
+ $(parent).removeClass().addClass(new_parent_classes);
53
+ currentForm.style.display = "none";
54
+ link.innerText = response.title;
55
+ link.style.display = "inline-block";
56
+ });
57
+ });
58
+ </script>
59
+ </tal:cond>
@@ -0,0 +1,13 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ from plone.app.layout.viewlets.httpheaders import HTTPCachingHeaders
4
+
5
+
6
+ class MyHTTPCachingHeaders(HTTPCachingHeaders):
7
+ def update(self):
8
+ super(MyHTTPCachingHeaders, self).update()
9
+
10
+ def getHeaders(self):
11
+ result = super(MyHTTPCachingHeaders, self).getHeaders()
12
+ result.append(("prefix", "og: http://ogp.me/ns#"))
13
+ return result