imio.smartweb.common 1.2.35__tar.gz → 1.2.37__tar.gz

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 (176) hide show
  1. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/CHANGES.rst +20 -0
  2. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/PKG-INFO +21 -1
  3. imio_smartweb_common-1.2.37/requirements-6.1.txt +1 -0
  4. imio_smartweb_common-1.2.37/requirements.txt +1 -0
  5. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/setup.py +1 -1
  6. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/profiles/default/metadata.xml +1 -1
  7. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/profiles/default/registry/tinymce.xml +1 -1
  8. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/rest/configure.zcml +10 -0
  9. imio_smartweb_common-1.2.37/src/imio/smartweb/common/rest/endpoint.py +175 -0
  10. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/configure.zcml +19 -0
  11. imio_smartweb_common-1.2.37/src/imio/smartweb/common/upgrades/profiles/1032_to_1033/registry/tinymce.xml +86 -0
  12. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/vocabularies.py +35 -0
  13. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/vocabularies.zcml +12 -0
  14. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio.smartweb.common.egg-info/PKG-INFO +21 -1
  15. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio.smartweb.common.egg-info/SOURCES.txt +2 -0
  16. imio_smartweb_common-1.2.35/requirements-6.1.txt +0 -1
  17. imio_smartweb_common-1.2.35/requirements.txt +0 -1
  18. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/CONTRIBUTORS.rst +0 -0
  19. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/DEVELOP.rst +0 -0
  20. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/LICENSE.GPL +0 -0
  21. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/LICENSE.rst +0 -0
  22. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/MANIFEST.in +0 -0
  23. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/README.rst +0 -0
  24. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/docs/conf.py +0 -0
  25. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/docs/index.rst +0 -0
  26. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/requirements-6.0.txt +0 -0
  27. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/requirements-coverage.txt +0 -0
  28. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/setup.cfg +0 -0
  29. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/__init__.py +0 -0
  30. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/__init__.py +0 -0
  31. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/__init__.py +0 -0
  32. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/adapters.py +0 -0
  33. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/adapters.zcml +0 -0
  34. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/behaviors/__init__.py +0 -0
  35. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/behaviors/configure.zcml +0 -0
  36. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/behaviors/iam.py +0 -0
  37. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/behaviors/topics.py +0 -0
  38. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/__init__.py +0 -0
  39. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/collective_taxonomy_controlpanel.py +0 -0
  40. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/configure.zcml +0 -0
  41. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/cropping.py +0 -0
  42. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/description.pt +0 -0
  43. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/description.py +0 -0
  44. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/edit_taxonomy_data.pt +0 -0
  45. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/forms.py +0 -0
  46. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/overrides/plone.app.z3cform.templates.widget.pt +0 -0
  47. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/privacy/__init__.py +0 -0
  48. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/privacy/configure.zcml +0 -0
  49. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/privacy/form.py +0 -0
  50. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/privacy/utils.py +0 -0
  51. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/privacy/views.py +0 -0
  52. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/scaling.py +0 -0
  53. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/static/Makefile +0 -0
  54. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/static/package.json +0 -0
  55. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/static/smartweb-common-edit-compiled.css +0 -0
  56. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/static/smartweb-common-edit-compiled.js +0 -0
  57. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/static/smartweb-common-view-compiled.css +0 -0
  58. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/static/smartweb-common-view-compiled.js +0 -0
  59. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/static/src/edit.js +0 -0
  60. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/static/src/edit.less +0 -0
  61. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/static/src/view.js +0 -0
  62. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/static/src/view.less +0 -0
  63. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/static/webpack.config.js +0 -0
  64. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/browser/vocabulary.py +0 -0
  65. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/caching.py +0 -0
  66. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/caching_overrides.zcml +0 -0
  67. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/config.py +0 -0
  68. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/configure.zcml +0 -0
  69. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/contact_utils.py +0 -0
  70. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/faceted/__init__.py +0 -0
  71. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/faceted/configure.zcml +0 -0
  72. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/faceted/utils.py +0 -0
  73. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/faceted/widget.pt +0 -0
  74. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/faceted/widget.py +0 -0
  75. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/indexers.py +0 -0
  76. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/indexers.zcml +0 -0
  77. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/interfaces.py +0 -0
  78. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/permissions.zcml +0 -0
  79. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/privacy.py +0 -0
  80. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/privacy.zcml +0 -0
  81. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/profiles/default/actions.xml +0 -0
  82. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/profiles/default/browserlayer.xml +0 -0
  83. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/profiles/default/catalog.xml +0 -0
  84. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/profiles/default/registry/registry.xml +0 -0
  85. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/profiles/default/rolemap.xml +0 -0
  86. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/profiles/testing/catalog.xml +0 -0
  87. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/profiles/testing/metadata.xml +0 -0
  88. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/profiles/testing/registry.xml +0 -0
  89. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/profiles/testing/types/Collection.xml +0 -0
  90. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/profiles/testing/types/Document.xml +0 -0
  91. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/profiles/testing/types/Folder.xml +0 -0
  92. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/profiles/uninstall/browserlayer.xml +0 -0
  93. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/profiles.zcml +0 -0
  94. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/rest/__init__.py +0 -0
  95. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/rest/odwb.py +0 -0
  96. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/rest/search_filters.py +0 -0
  97. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/rest/utils.py +0 -0
  98. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/serializers/__init__.py +0 -0
  99. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/serializers/configure.zcml +0 -0
  100. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/serializers/summary.py +0 -0
  101. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/setuphandlers.py +0 -0
  102. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/sharing/__init__.py +0 -0
  103. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/sharing/configure.zcml +0 -0
  104. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/sharing/localroles.py +0 -0
  105. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/sharing/permissions.py +0 -0
  106. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/sharing/permissions.zcml +0 -0
  107. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/subscribers.py +0 -0
  108. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/subscribers.zcml +0 -0
  109. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/testing.py +0 -0
  110. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/testing.zcml +0 -0
  111. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/__init__.py +0 -0
  112. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/resources/image.png +0 -0
  113. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/resources/image_1400x800.png +0 -0
  114. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/resources/image_1800x700.png +0 -0
  115. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/robot/test_example.robot +0 -0
  116. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/test_cropping.py +0 -0
  117. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/test_description.py +0 -0
  118. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/test_forms.py +0 -0
  119. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/test_indexes.py +0 -0
  120. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/test_local_roles.py +0 -0
  121. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/test_permissions.py +0 -0
  122. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/test_privacy.py +0 -0
  123. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/test_rest.py +0 -0
  124. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/test_robot.py +0 -0
  125. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/test_setup.py +0 -0
  126. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/test_subscribers.py +0 -0
  127. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/test_taxonomy.py +0 -0
  128. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/test_text.py +0 -0
  129. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/test_utils.py +0 -0
  130. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/test_viewlets.py +0 -0
  131. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/test_vocabularies.py +0 -0
  132. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/test_vocabulary.py +0 -0
  133. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/tests/test_widgets.py +0 -0
  134. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/__init__.py +0 -0
  135. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/profiles/1007_to_1008/rolemap.xml +0 -0
  136. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/profiles/1008_to_1009/actions.xml +0 -0
  137. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/profiles/1009_to_1010/registry/tiny_nonbreakingspace.xml +0 -0
  138. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/profiles/1010_to_1011/registry/resources.xml +0 -0
  139. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/profiles/1010_to_1011/registry/scales.xml +0 -0
  140. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/profiles/1010_to_1011/registry/tinymce.xml +0 -0
  141. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/profiles/1011_to_1012/registry/bundles.xml +0 -0
  142. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/profiles/1013_to_1014/registry/tinymce.xml +0 -0
  143. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/profiles/1014_to_1015/registry/syndication.xml +0 -0
  144. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/profiles/1015_to_1016/registry/patched-faceted-jquery.xml +0 -0
  145. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/profiles/1016_to_1017/registry/scales.xml +0 -0
  146. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/profiles/1017_to_1018/registry.xml +0 -0
  147. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/profiles/1018_to_1019/registry/scales.xml +0 -0
  148. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/profiles/1022_to_1023/registry/scales.xml +0 -0
  149. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/profiles/1023_to_1024/registry/scales.xml +0 -0
  150. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/profiles/1025_to_1026/registry/scales.xml +0 -0
  151. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/profiles/1027_to_1028/restored-faceted-jquery.xml +0 -0
  152. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/profiles/1028_to_1029/registry.xml +0 -0
  153. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/profiles/1029_to_1030/registry.xml +0 -0
  154. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/profiles/1030_to_1031/registry/tinymce.xml +0 -0
  155. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/profiles/1031_to_1032/registry/tinymce.xml +0 -0
  156. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/upgrades/upgrades.py +0 -0
  157. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/utility_overrides.zcml +0 -0
  158. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/utils.py +0 -0
  159. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/viewlets/__init__.py +0 -0
  160. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/viewlets/analytics.pt +0 -0
  161. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/viewlets/colophon.pt +0 -0
  162. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/viewlets/colophon.py +0 -0
  163. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/viewlets/configure.zcml +0 -0
  164. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/viewlets/privacy.pt +0 -0
  165. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/viewlets/privacy.py +0 -0
  166. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/viewlets/skip_to_content.pt +0 -0
  167. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/viewlets/skip_to_content.py +0 -0
  168. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/widgets/__init__.py +0 -0
  169. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/widgets/select.py +0 -0
  170. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/widgets/templates/ajaxselect_display.pt +0 -0
  171. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio/smartweb/common/widgets.zcml +0 -0
  172. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio.smartweb.common.egg-info/dependency_links.txt +0 -0
  173. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio.smartweb.common.egg-info/namespace_packages.txt +0 -0
  174. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio.smartweb.common.egg-info/not-zip-safe +0 -0
  175. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio.smartweb.common.egg-info/requires.txt +0 -0
  176. {imio_smartweb_common-1.2.35 → imio_smartweb_common-1.2.37}/src/imio.smartweb.common.egg-info/top_level.txt +0 -0
@@ -2,6 +2,26 @@ Changelog
2
2
  =========
3
3
 
4
4
 
5
+ 1.2.37 (2025-09-03)
6
+ -------------------
7
+
8
+ - Add new @find endpoint to find content in instance
9
+ [boulch]
10
+
11
+
12
+ 1.2.36 (2025-06-25)
13
+ -------------------
14
+
15
+ - WEB-4278 : Create translated (de) iam vocabulary for e-guichet (citizen project)
16
+ [boulch]
17
+
18
+ - WEB-4278 : Create translated (de) topics vocabulary for e-guichet (citizen project)
19
+ [boulch]
20
+
21
+ - WEB-4269 : Add Horizontal Rule option to the insert menu in TinyMCE
22
+ [remdub]
23
+
24
+
5
25
  1.2.35 (2025-05-26)
6
26
  -------------------
7
27
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: imio.smartweb.common
3
- Version: 1.2.35
3
+ Version: 1.2.37
4
4
  Summary: Common utilities, vocabularies, taxonomies for imio.smartweb & co products
5
5
  Home-page: https://github.com/imio/imio.smartweb.common
6
6
  Author: iMio
@@ -178,6 +178,26 @@ Changelog
178
178
  =========
179
179
 
180
180
 
181
+ 1.2.37 (2025-09-03)
182
+ -------------------
183
+
184
+ - Add new @find endpoint to find content in instance
185
+ [boulch]
186
+
187
+
188
+ 1.2.36 (2025-06-25)
189
+ -------------------
190
+
191
+ - WEB-4278 : Create translated (de) iam vocabulary for e-guichet (citizen project)
192
+ [boulch]
193
+
194
+ - WEB-4278 : Create translated (de) topics vocabulary for e-guichet (citizen project)
195
+ [boulch]
196
+
197
+ - WEB-4269 : Add Horizontal Rule option to the insert menu in TinyMCE
198
+ [remdub]
199
+
200
+
181
201
  1.2.35 (2025-05-26)
182
202
  -------------------
183
203
 
@@ -0,0 +1 @@
1
+ -r https://dist.plone.org/release/6.1.1/requirements.txt
@@ -0,0 +1 @@
1
+ -r https://dist.plone.org/release/6.1.1/requirements.txt
@@ -16,7 +16,7 @@ long_description = "\n\n".join(
16
16
 
17
17
  setup(
18
18
  name="imio.smartweb.common",
19
- version="1.2.35",
19
+ version="1.2.37",
20
20
  description="Common utilities, vocabularies, taxonomies for imio.smartweb & co products",
21
21
  long_description=long_description,
22
22
  # Get more from https://pypi.org/classifiers/
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <metadata>
3
- <version>1032</version>
3
+ <version>1033</version>
4
4
  <dependencies>
5
5
  <dependency>profile-plone.restapi:default</dependency>
6
6
  <dependency>profile-eea.facetednavigation:default</dependency>
@@ -107,7 +107,7 @@
107
107
  },
108
108
  "insert": {
109
109
  "title": "Insert",
110
- "items": ""
110
+ "items": "hr"
111
111
  },
112
112
  "table": {
113
113
  "title": "Table",
@@ -10,4 +10,14 @@
10
10
  permission="zope2.View"
11
11
  />
12
12
 
13
+ <plone:service
14
+ name="@find"
15
+ method="GET"
16
+ accept="application/json"
17
+ for="zope.interface.Interface"
18
+ factory=".endpoint.FindEndpoint"
19
+ permission="zope2.View"
20
+ layer="imio.smartweb.common.interfaces.IImioSmartwebCommonLayer"
21
+ />
22
+
13
23
  </configure>
@@ -0,0 +1,175 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ from collections import Counter
4
+ from imio.smartweb.common.rest.utils import get_json
5
+ from plone import api
6
+ from plone.restapi.search.handler import SearchHandler
7
+ from plone.restapi.search.utils import unflatten_dotted_dict
8
+ from plone.restapi.services import Service
9
+ from Products.CMFCore.utils import getToolByName
10
+ from zExceptions import Unauthorized
11
+
12
+ import json
13
+ import logging
14
+
15
+ logger = logging.getLogger("imio.smartweb.common")
16
+
17
+
18
+ class FindEndpointHandler(SearchHandler):
19
+ def search(self, query=None):
20
+ results = {"items": []}
21
+ portal = api.portal.get()
22
+ get_types_url = f"{portal.absolute_url()}/@types"
23
+ auth_header = self.request._orig_env.get("HTTP_AUTHORIZATION", None)
24
+ types = get_json(get_types_url, auth=auth_header, timeout=20)
25
+ if not types:
26
+ raise Unauthorized("No types found, you are not allowed to search")
27
+ self._constrain_query_by_path(query)
28
+ if not query.get("path"):
29
+ query["path"] = {"query": "/Plone"}
30
+ # query = self._parse_query(query)
31
+ if query.get("type_of_request") == "count_contents_types":
32
+ results = self.count_contents_types(query)
33
+ elif query.get("type_of_request") == "find_big_files_or_images":
34
+ results = self.find_big_files_or_images(query)
35
+ elif query.get("type_of_request") == "get_max_depth":
36
+ results = self.get_max_depth()
37
+ elif query.get("type_of_request") == "check_value_of_field":
38
+ results = self.check_value_of_field(
39
+ query.get("portal_type"),
40
+ query.get("field_name"),
41
+ query.get("expected_values"),
42
+ )
43
+ else:
44
+ return super().search(query)
45
+ return results
46
+
47
+ def count_contents_types(self, query):
48
+ results = {"items": []}
49
+ if query.get("operator") == "and":
50
+ query["path"]["depth"] = -1
51
+ lazy_resultset = self.catalog.searchResults(**query)
52
+ results = {
53
+ "items": [
54
+ {
55
+ "portal_type": query.get("portal_type"),
56
+ "nb_items": len(lazy_resultset),
57
+ }
58
+ ]
59
+ }
60
+ else:
61
+ portal_types = (
62
+ query.get("portal_type")
63
+ if isinstance(query.get("portal_type"), list)
64
+ else [query.get("portal_type")] if query.get("portal_type") else []
65
+ )
66
+ for portal_type in portal_types:
67
+ new_query = query.copy()
68
+ new_query["portal_type"] = portal_type
69
+ lazy_resultset = self.catalog.searchResults(**new_query)
70
+ results["items"].append(
71
+ {"portal_type": portal_type, "nb_items": len(lazy_resultset)}
72
+ )
73
+ # fullobjects = False
74
+ # results = getMultiAdapter((lazy_resultset, self.request), ISerializeToJson)(
75
+ # fullobjects=fullobjects
76
+ # )
77
+ return results
78
+
79
+ def find_big_files_or_images(self, query):
80
+ SIZE_LIMIT = query.get("size", "1000000")
81
+ results = {"items": []}
82
+ lazy_resultset = self.catalog.searchResults(**query)
83
+ for brain in lazy_resultset:
84
+ obj = brain.getObject()
85
+ blob = getattr(obj, "file", None) or getattr(obj, "image", None)
86
+ if blob and hasattr(blob, "getSize"):
87
+ size = blob.getSize()
88
+ if size > int(SIZE_LIMIT):
89
+ results["items"].append(
90
+ {
91
+ "title": obj.title,
92
+ "portal_type": obj.portal_type,
93
+ "url": obj.absolute_url(),
94
+ "size": round(size / (1024 * 1024), 2),
95
+ }
96
+ )
97
+ return results
98
+
99
+ def get_max_depth(self):
100
+ portal = api.portal.get()
101
+ catalog = getToolByName(portal, "portal_catalog")
102
+
103
+ max_depth = 0
104
+ results = {"items": []}
105
+
106
+ for brain in catalog():
107
+ path = brain.getPath()
108
+ depth = len(path.strip("/").split("/"))
109
+ if depth > max_depth:
110
+ max_depth = depth
111
+ results["items"] = [{"path": path, "depth": depth}]
112
+ elif depth == max_depth:
113
+ results["items"].append({"path": path, "depth": depth})
114
+ results["max_depth"] = max_depth
115
+ return results
116
+
117
+ def check_value_of_field(self, portal_type, field_name, expected_values):
118
+ """
119
+ Analyse la répartition des valeurs d'un champ dans les objets d'un content_type donné.
120
+ query sample : http://localhost:8085/Plone/@find?portal_type=imio.events.Event&field_name=event_type&expected_values=["activity", "event-driven"]&type_of_request=check_value_of_field
121
+
122
+ :param content_type: str, le portal_type (ex: "Event")
123
+ :param field_name: str, field name (ex: "event_type")
124
+ :param expected_values: list, list of values we want to check (ex: ["activity", "event-driven"])
125
+ :return: dict {valeur: {"count": n, "percent": x.xx}}
126
+ """
127
+ brains = self.catalog(portal_type=portal_type)
128
+
129
+ total = len(brains)
130
+ if total == 0:
131
+ return {}
132
+
133
+ # Récupération des valeurs réelles dans les objets
134
+ values = []
135
+ for brain in brains:
136
+ obj = brain.getObject()
137
+ value = getattr(obj, field_name, None)
138
+ if isinstance(value, (list, tuple)): # cas champ multi-valué
139
+ values.extend(value)
140
+ else:
141
+ values.append(value)
142
+ counter = Counter(values)
143
+
144
+ # Calcul stats seulement pour expected_values
145
+ result = {}
146
+ expected_values = normalize_query_param(expected_values)
147
+ for val in expected_values:
148
+ count = counter.get(val, 0)
149
+ percent = (count / total) * 100 if total > 0 else 0
150
+ result[val] = {"count": count, "percent": round(percent, 2)}
151
+ return result
152
+
153
+
154
+ class FindEndpoint(Service):
155
+ def reply(self):
156
+ query = self.request.form.copy()
157
+ query = unflatten_dotted_dict(query)
158
+ return FindEndpointHandler(self.context, self.request).search(query)
159
+
160
+
161
+ def normalize_query_param(value):
162
+ if isinstance(value, list):
163
+ return value
164
+
165
+ if isinstance(value, str):
166
+ val = value.strip()
167
+ # Try to parse json list
168
+ if val.startswith("[") and val.endswith("]"):
169
+ try:
170
+ return json.loads(val)
171
+ except json.JSONDecodeError:
172
+ return [val]
173
+ else:
174
+ return [val]
175
+ return [value]
@@ -157,6 +157,14 @@
157
157
  directory="profiles/1031_to_1032"
158
158
  />
159
159
 
160
+ <genericsetup:registerProfile
161
+ name="upgrade_1032_to_1033"
162
+ title="Upgrade common from 1032 to 1033"
163
+ description="Add HorizontalRule to TinyMCE7"
164
+ provides="Products.GenericSetup.interfaces.EXTENSION"
165
+ directory="profiles/1032_to_1033"
166
+ />
167
+
160
168
  <genericsetup:upgradeStep
161
169
  title="Configure first official release"
162
170
  description="Run needed registry step"
@@ -496,4 +504,15 @@
496
504
  />
497
505
  </genericsetup:upgradeSteps>
498
506
 
507
+ <genericsetup:upgradeSteps
508
+ profile="imio.smartweb.common:default"
509
+ source="1032"
510
+ destination="1033"
511
+ >
512
+ <genericsetup:upgradeDepends
513
+ title="Add HorizontalRule to TinyMCE7"
514
+ import_profile="imio.smartweb.common.upgrades:upgrade_1032_to_1033"
515
+ />
516
+ </genericsetup:upgradeSteps>
517
+
499
518
  </configure>
@@ -0,0 +1,86 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <registry>
3
+
4
+ <!-- See possible values in https://www.tiny.cloud/docs/tinymce/latest/available-menu-items/ -->
5
+ <record interface="plone.base.interfaces.controlpanel.ITinyMCESchema"
6
+ name="plone.menu"
7
+ >
8
+ <value purge="true">
9
+ {
10
+ "file": {
11
+ "title": "File",
12
+ "items": ""
13
+ },
14
+ "tools": {
15
+ "title": "Tools",
16
+ "items": ""
17
+ },
18
+ "table": {
19
+ "title": "Table",
20
+ "items": ""
21
+ },
22
+ "edit": {
23
+ "title": "Edit",
24
+ "items": "undo redo | cut copy paste | searchreplace selectall"
25
+ },
26
+ "format": {
27
+ "title": "Format",
28
+ "items": ""
29
+ },
30
+ "insert": {
31
+ "title": "Insert",
32
+ "items": "hr"
33
+ },
34
+ "table": {
35
+ "title": "Table",
36
+ "items": "inserttable deletetable | cell row column"
37
+ },
38
+ "view": {
39
+ "title": "View",
40
+ "items": "visualblocks preview fullscreen"
41
+ }
42
+ }
43
+ </value>
44
+ </record>
45
+
46
+ <!-- See paste_as_text options in https://www.tiny.cloud/docs/tinymce/latest/copy-and-paste/#paste_as_text -->
47
+ <!-- See style_formats options in https://www.tiny.cloud/docs/tinymce/latest/user-formatting-options/#style_formats -->
48
+ <!-- See default table options in https://www.tiny.cloud/docs/tinymce/latest/table-options/ -->
49
+ <!-- See plugin table options in https://www.tiny.cloud/docs/tinymce/latest/table/ -->
50
+ <record interface="plone.base.interfaces.controlpanel.ITinyMCESchema"
51
+ name="plone.other_settings"
52
+ >
53
+ <value>
54
+ {
55
+ "paste_as_text": true,
56
+ "style_formats": [
57
+ {
58
+ "block": "p",
59
+ "title": "Paragraphe"
60
+ },
61
+ {
62
+ "block": "h2",
63
+ "title": "Titre 2"
64
+ },
65
+ {
66
+ "block": "h3",
67
+ "title": "Titre 3"
68
+ },
69
+ {
70
+ "block": "h4",
71
+ "title": "Titre 4"
72
+ },
73
+ {
74
+ "block": "mark",
75
+ "title": "Mise en évidence"
76
+ },
77
+ {
78
+ "block": "blockquote",
79
+ "title": "Citation"
80
+ }
81
+ ]
82
+ }
83
+ </value>
84
+ </record>
85
+
86
+ </registry>
@@ -5,6 +5,7 @@ from plone import api
5
5
  from plone.i18n.normalizer.interfaces import IIDNormalizer
6
6
  from plone.registry.interfaces import IRegistry
7
7
  from zope.component import getUtility
8
+ from zope.i18n import translate
8
9
  from zope.i18n.locales import locales
9
10
  from zope.schema.vocabulary import SimpleTerm
10
11
  from zope.schema.vocabulary import SimpleVocabulary
@@ -40,6 +41,23 @@ class TopicsVocabularyFactory:
40
41
  TopicsVocabulary = TopicsVocabularyFactory()
41
42
 
42
43
 
44
+ class TopicsDeVocabularyFactory:
45
+ def __call__(self, context=None):
46
+ vocabulary = TopicsVocabularyFactory()(context)
47
+ translated_terms = [
48
+ SimpleTerm(
49
+ value=term.value,
50
+ token=term.token,
51
+ title=translate(term.title, target_language="de"),
52
+ )
53
+ for term in vocabulary
54
+ ]
55
+ return SimpleVocabulary(translated_terms)
56
+
57
+
58
+ TopicsDeVocabulary = TopicsDeVocabularyFactory()
59
+
60
+
43
61
  class IAmVocabularyFactory:
44
62
  def __call__(self, context=None):
45
63
  iam = [
@@ -61,6 +79,23 @@ class IAmVocabularyFactory:
61
79
  IAmVocabulary = IAmVocabularyFactory()
62
80
 
63
81
 
82
+ class IAmDeVocabularyFactory:
83
+ def __call__(self, context=None):
84
+ vocabulary = IAmVocabularyFactory()(context)
85
+ translated_terms = [
86
+ SimpleTerm(
87
+ value=term.value,
88
+ token=term.token,
89
+ title=translate(term.title, target_language="de"),
90
+ )
91
+ for term in vocabulary
92
+ ]
93
+ return SimpleVocabulary(translated_terms)
94
+
95
+
96
+ IAmDeVocabulary = IAmDeVocabularyFactory()
97
+
98
+
64
99
  class CountriesVocabularyFactory:
65
100
  def __call__(self, context=None, lang=None):
66
101
  normalizer = getUtility(IIDNormalizer)
@@ -7,11 +7,23 @@
7
7
  provides="zope.schema.interfaces.IVocabularyFactory"
8
8
  />
9
9
 
10
+ <utility
11
+ name="imio.smartweb.vocabulary.Topics_de"
12
+ component=".vocabularies.TopicsDeVocabulary"
13
+ provides="zope.schema.interfaces.IVocabularyFactory"
14
+ />
15
+
10
16
  <utility
11
17
  name="imio.smartweb.vocabulary.IAm"
12
18
  component=".vocabularies.IAmVocabulary"
13
19
  provides="zope.schema.interfaces.IVocabularyFactory"
14
20
  />
21
+
22
+ <utility
23
+ name="imio.smartweb.vocabulary.IAm_de"
24
+ component=".vocabularies.IAmDeVocabulary"
25
+ provides="zope.schema.interfaces.IVocabularyFactory"
26
+ />
15
27
 
16
28
  <utility
17
29
  name="imio.smartweb.vocabulary.Countries"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: imio.smartweb.common
3
- Version: 1.2.35
3
+ Version: 1.2.37
4
4
  Summary: Common utilities, vocabularies, taxonomies for imio.smartweb & co products
5
5
  Home-page: https://github.com/imio/imio.smartweb.common
6
6
  Author: iMio
@@ -178,6 +178,26 @@ Changelog
178
178
  =========
179
179
 
180
180
 
181
+ 1.2.37 (2025-09-03)
182
+ -------------------
183
+
184
+ - Add new @find endpoint to find content in instance
185
+ [boulch]
186
+
187
+
188
+ 1.2.36 (2025-06-25)
189
+ -------------------
190
+
191
+ - WEB-4278 : Create translated (de) iam vocabulary for e-guichet (citizen project)
192
+ [boulch]
193
+
194
+ - WEB-4278 : Create translated (de) topics vocabulary for e-guichet (citizen project)
195
+ [boulch]
196
+
197
+ - WEB-4269 : Add Horizontal Rule option to the insert menu in TinyMCE
198
+ [remdub]
199
+
200
+
181
201
  1.2.35 (2025-05-26)
182
202
  -------------------
183
203
 
@@ -99,6 +99,7 @@ src/imio/smartweb/common/profiles/testing/types/Folder.xml
99
99
  src/imio/smartweb/common/profiles/uninstall/browserlayer.xml
100
100
  src/imio/smartweb/common/rest/__init__.py
101
101
  src/imio/smartweb/common/rest/configure.zcml
102
+ src/imio/smartweb/common/rest/endpoint.py
102
103
  src/imio/smartweb/common/rest/odwb.py
103
104
  src/imio/smartweb/common/rest/search_filters.py
104
105
  src/imio/smartweb/common/rest/utils.py
@@ -157,6 +158,7 @@ src/imio/smartweb/common/upgrades/profiles/1028_to_1029/registry.xml
157
158
  src/imio/smartweb/common/upgrades/profiles/1029_to_1030/registry.xml
158
159
  src/imio/smartweb/common/upgrades/profiles/1030_to_1031/registry/tinymce.xml
159
160
  src/imio/smartweb/common/upgrades/profiles/1031_to_1032/registry/tinymce.xml
161
+ src/imio/smartweb/common/upgrades/profiles/1032_to_1033/registry/tinymce.xml
160
162
  src/imio/smartweb/common/viewlets/__init__.py
161
163
  src/imio/smartweb/common/viewlets/analytics.pt
162
164
  src/imio/smartweb/common/viewlets/colophon.pt
@@ -1 +0,0 @@
1
- -r https://dist.plone.org/release/6.1-latest/requirements.txt
@@ -1 +0,0 @@
1
- -r https://dist.plone.org/release/6.1-latest/requirements.txt