imio.smartweb.common 1.2.25__tar.gz → 1.2.27__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 (162) hide show
  1. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/CHANGES.rst +16 -1
  2. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/PKG-INFO +17 -2
  3. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/setup.py +1 -1
  4. imio_smartweb_common-1.2.27/src/imio/smartweb/common/adapters.py +47 -0
  5. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/adapters.zcml +6 -0
  6. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/cropping.py +4 -5
  7. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/configure.zcml +1 -0
  8. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/utils.py +26 -0
  9. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/viewlets/skip_to_content.pt +2 -2
  10. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio.smartweb.common.egg-info/PKG-INFO +17 -2
  11. imio_smartweb_common-1.2.25/src/imio/smartweb/common/adapters.py +0 -19
  12. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/CONTRIBUTORS.rst +0 -0
  13. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/DEVELOP.rst +0 -0
  14. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/LICENSE.GPL +0 -0
  15. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/LICENSE.rst +0 -0
  16. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/MANIFEST.in +0 -0
  17. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/README.rst +0 -0
  18. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/docs/conf.py +0 -0
  19. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/docs/index.rst +0 -0
  20. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/requirements-coverage.txt +0 -0
  21. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/requirements.txt +0 -0
  22. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/setup.cfg +0 -0
  23. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/__init__.py +0 -0
  24. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/__init__.py +0 -0
  25. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/__init__.py +0 -0
  26. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/behaviors/__init__.py +0 -0
  27. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/behaviors/configure.zcml +0 -0
  28. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/behaviors/iam.py +0 -0
  29. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/behaviors/topics.py +0 -0
  30. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/__init__.py +0 -0
  31. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/collective_taxonomy_controlpanel.py +0 -0
  32. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/configure.zcml +0 -0
  33. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/description.pt +0 -0
  34. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/description.py +0 -0
  35. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/edit_taxonomy_data.pt +0 -0
  36. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/forms.py +0 -0
  37. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/overrides/plone.app.z3cform.templates.widget.pt +0 -0
  38. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/privacy/__init__.py +0 -0
  39. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/privacy/configure.zcml +0 -0
  40. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/privacy/form.py +0 -0
  41. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/privacy/utils.py +0 -0
  42. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/privacy/views.py +0 -0
  43. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/scaling.py +0 -0
  44. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/static/Makefile +0 -0
  45. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/static/package.json +0 -0
  46. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/static/smartweb-common-edit-compiled.css +0 -0
  47. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/static/smartweb-common-edit-compiled.js +0 -0
  48. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/static/smartweb-common-view-compiled.css +0 -0
  49. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/static/smartweb-common-view-compiled.js +0 -0
  50. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/static/src/edit.js +0 -0
  51. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/static/src/edit.less +0 -0
  52. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/static/src/view.js +0 -0
  53. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/static/src/view.less +0 -0
  54. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/static/webpack.config.js +0 -0
  55. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/browser/vocabulary.py +0 -0
  56. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/caching.py +0 -0
  57. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/caching_overrides.zcml +0 -0
  58. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/config.py +0 -0
  59. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/contact_utils.py +0 -0
  60. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/faceted/__init__.py +0 -0
  61. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/faceted/configure.zcml +0 -0
  62. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/faceted/utils.py +0 -0
  63. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/faceted/widget.pt +0 -0
  64. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/faceted/widget.py +0 -0
  65. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/indexers.py +0 -0
  66. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/indexers.zcml +0 -0
  67. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/interfaces.py +0 -0
  68. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/permissions.zcml +0 -0
  69. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/privacy.py +0 -0
  70. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/privacy.zcml +0 -0
  71. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/profiles/default/actions.xml +0 -0
  72. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/profiles/default/browserlayer.xml +0 -0
  73. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/profiles/default/catalog.xml +0 -0
  74. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/profiles/default/metadata.xml +0 -0
  75. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/profiles/default/registry.xml +0 -0
  76. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/profiles/default/rolemap.xml +0 -0
  77. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/profiles/testing/catalog.xml +0 -0
  78. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/profiles/testing/metadata.xml +0 -0
  79. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/profiles/testing/registry.xml +0 -0
  80. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/profiles/testing/types/Collection.xml +0 -0
  81. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/profiles/testing/types/Document.xml +0 -0
  82. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/profiles/testing/types/Folder.xml +0 -0
  83. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/profiles/uninstall/browserlayer.xml +0 -0
  84. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/profiles.zcml +0 -0
  85. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/rest/__init__.py +0 -0
  86. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/rest/configure.zcml +0 -0
  87. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/rest/odwb.py +0 -0
  88. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/rest/search_filters.py +0 -0
  89. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/rest/utils.py +0 -0
  90. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/setuphandlers.py +0 -0
  91. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/sharing/__init__.py +0 -0
  92. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/sharing/configure.zcml +0 -0
  93. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/sharing/localroles.py +0 -0
  94. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/sharing/permissions.py +0 -0
  95. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/sharing/permissions.zcml +0 -0
  96. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/subscribers.py +0 -0
  97. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/subscribers.zcml +0 -0
  98. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/testing.py +0 -0
  99. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/testing.zcml +0 -0
  100. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/__init__.py +0 -0
  101. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/resources/image.png +0 -0
  102. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/resources/image_1400x800.png +0 -0
  103. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/resources/image_1800x700.png +0 -0
  104. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/robot/test_example.robot +0 -0
  105. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/test_cropping.py +0 -0
  106. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/test_description.py +0 -0
  107. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/test_forms.py +0 -0
  108. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/test_indexes.py +0 -0
  109. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/test_local_roles.py +0 -0
  110. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/test_permissions.py +0 -0
  111. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/test_privacy.py +0 -0
  112. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/test_rest.py +0 -0
  113. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/test_robot.py +0 -0
  114. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/test_setup.py +0 -0
  115. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/test_subscribers.py +0 -0
  116. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/test_taxonomy.py +0 -0
  117. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/test_text.py +0 -0
  118. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/test_utils.py +0 -0
  119. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/test_viewlets.py +0 -0
  120. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/test_vocabularies.py +0 -0
  121. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/test_vocabulary.py +0 -0
  122. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/tests/test_widgets.py +0 -0
  123. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/__init__.py +0 -0
  124. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/configure.zcml +0 -0
  125. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/profiles/1007_to_1008/rolemap.xml +0 -0
  126. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/profiles/1008_to_1009/actions.xml +0 -0
  127. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/profiles/1009_to_1010/registry/tiny_nonbreakingspace.xml +0 -0
  128. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/profiles/1010_to_1011/registry/resources.xml +0 -0
  129. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/profiles/1010_to_1011/registry/scales.xml +0 -0
  130. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/profiles/1010_to_1011/registry/tinymce.xml +0 -0
  131. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/profiles/1011_to_1012/registry/bundles.xml +0 -0
  132. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/profiles/1013_to_1014/registry/tinymce.xml +0 -0
  133. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/profiles/1014_to_1015/registry/syndication.xml +0 -0
  134. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/profiles/1015_to_1016/registry/patched-faceted-jquery.xml +0 -0
  135. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/profiles/1016_to_1017/registry/scales.xml +0 -0
  136. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/profiles/1017_to_1018/registry.xml +0 -0
  137. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/profiles/1018_to_1019/registry/scales.xml +0 -0
  138. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/profiles/1022_to_1023/registry/scales.xml +0 -0
  139. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/profiles/1023_to_1024/registry/scales.xml +0 -0
  140. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/profiles/1025_to_1026/registry/scales.xml +0 -0
  141. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/profiles/1027_to_1028/restored-faceted-jquery.xml +0 -0
  142. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/profiles/1028_to_1029/registry.xml +0 -0
  143. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/profiles/1029_to_1030/registry.xml +0 -0
  144. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/upgrades/upgrades.py +0 -0
  145. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/viewlets/__init__.py +0 -0
  146. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/viewlets/analytics.pt +0 -0
  147. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/viewlets/colophon.pt +0 -0
  148. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/viewlets/colophon.py +0 -0
  149. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/viewlets/configure.zcml +0 -0
  150. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/viewlets/privacy.pt +0 -0
  151. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/viewlets/privacy.py +0 -0
  152. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/viewlets/skip_to_content.py +0 -0
  153. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/vocabularies.py +0 -0
  154. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/vocabularies.zcml +0 -0
  155. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/widgets/__init__.py +0 -0
  156. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio/smartweb/common/widgets/select.py +0 -0
  157. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio.smartweb.common.egg-info/SOURCES.txt +0 -0
  158. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio.smartweb.common.egg-info/dependency_links.txt +0 -0
  159. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio.smartweb.common.egg-info/namespace_packages.txt +0 -0
  160. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio.smartweb.common.egg-info/not-zip-safe +0 -0
  161. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio.smartweb.common.egg-info/requires.txt +0 -0
  162. {imio_smartweb_common-1.2.25 → imio_smartweb_common-1.2.27}/src/imio.smartweb.common.egg-info/top_level.txt +0 -0
@@ -2,6 +2,20 @@ Changelog
2
2
  =========
3
3
 
4
4
 
5
+ 1.2.27 (2025-03-19)
6
+ -------------------
7
+
8
+ - WEB-4122 : Create adapter/validator to filter valid image mimetype in our solutions
9
+ [boulch]
10
+
11
+
12
+ 1.2.26 (2025-03-12)
13
+ -------------------
14
+
15
+ - WEB-4212: Fixe i18n:domain for skip to content
16
+ [thomlamb]
17
+
18
+
5
19
  1.2.25 (2025-03-10)
6
20
  -------------------
7
21
 
@@ -51,7 +65,8 @@ Changelog
51
65
  1.2.19 (2025-01-09)
52
66
  -------------------
53
67
 
54
- - Nothing changed yet.
68
+ - WEB-4153 : Override @vocabularies endpoint to add a cache ruleset on it
69
+ [remdub]
55
70
 
56
71
 
57
72
  1.2.18 (2024-07-01)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: imio.smartweb.common
3
- Version: 1.2.25
3
+ Version: 1.2.27
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
@@ -174,6 +174,20 @@ Changelog
174
174
  =========
175
175
 
176
176
 
177
+ 1.2.27 (2025-03-19)
178
+ -------------------
179
+
180
+ - WEB-4122 : Create adapter/validator to filter valid image mimetype in our solutions
181
+ [boulch]
182
+
183
+
184
+ 1.2.26 (2025-03-12)
185
+ -------------------
186
+
187
+ - WEB-4212: Fixe i18n:domain for skip to content
188
+ [thomlamb]
189
+
190
+
177
191
  1.2.25 (2025-03-10)
178
192
  -------------------
179
193
 
@@ -223,7 +237,8 @@ Changelog
223
237
  1.2.19 (2025-01-09)
224
238
  -------------------
225
239
 
226
- - Nothing changed yet.
240
+ - WEB-4153 : Override @vocabularies endpoint to add a cache ruleset on it
241
+ [remdub]
227
242
 
228
243
 
229
244
  1.2.18 (2024-07-01)
@@ -16,7 +16,7 @@ long_description = "\n\n".join(
16
16
 
17
17
  setup(
18
18
  name="imio.smartweb.common",
19
- version="1.2.25",
19
+ version="1.2.27",
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/
@@ -0,0 +1,47 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ from imio.smartweb.common.utils import get_image_format
4
+ from plone.namedfile.interfaces import IAvailableSizes
5
+ from plone.namedfile.interfaces import INamedImageField
6
+ from plone.namedfile.field import InvalidImageFile
7
+ from plone.namedfile.utils import get_contenttype
8
+ from zope.component import adapter
9
+ from zope.component import getUtility
10
+ from zope.interface import Interface
11
+
12
+
13
+ class BaseCroppingProvider(object):
14
+ def __init__(self, context):
15
+ self.context = context
16
+
17
+ def get_scales(self, fieldname, request=None):
18
+ if self.context.portal_type == "Image":
19
+ # imio.smartweb.core override get_scales.
20
+ # so this is only available for authentic sources
21
+ return []
22
+ allowed_sizes = getUtility(IAvailableSizes)()
23
+ scales = list(allowed_sizes.keys())
24
+ scales.remove("banner")
25
+ return scales
26
+
27
+
28
+ @adapter(INamedImageField, Interface)
29
+ class ImageContenttypeValidator:
30
+ def __init__(self, field, value):
31
+ self.field = field
32
+ self.value = value
33
+
34
+ def __call__(self):
35
+ if self.value is None:
36
+ return
37
+ mimetype = get_image_format(self.value)
38
+
39
+ valid_mimetypes = [
40
+ "image/gif",
41
+ "image/jpeg",
42
+ "image/png",
43
+ "image/svg+xml",
44
+ "image/webp",
45
+ ]
46
+ if mimetype not in valid_mimetypes:
47
+ raise InvalidImageFile(mimetype, self.field.__name__)
@@ -7,4 +7,10 @@
7
7
  factory=".adapters.BaseCroppingProvider"
8
8
  />
9
9
 
10
+ <adapter
11
+ factory=".adapters.ImageContenttypeValidator"
12
+ provides="plone.namedfile.field.IPluggableImageFieldValidation"
13
+ name="smartweb_image_contenttype"
14
+ />
15
+
10
16
  </configure>
@@ -51,11 +51,10 @@ class SmartwebCroppingImageScalingFactory(CroppingImageScalingFactory):
51
51
  ):
52
52
  storage = Storage(self.context)
53
53
  self.box = storage.read(fieldname, scale)
54
- if scale is not None:
55
- if "portrait" in scale or "paysage" in scale or "carre" in scale:
56
- orientation = scale.split("_")[0]
57
- # take cropping box from "affiche" scale
58
- self.box = storage.read(fieldname, f"{orientation}_affiche")
54
+ if scale and ("portrait" in scale or "paysage" in scale or "carre" in scale):
55
+ orientation = scale.split("_")[0]
56
+ # take cropping box from "affiche" scale
57
+ self.box = storage.read(fieldname, f"{orientation}_affiche")
59
58
  if self.box:
60
59
  mode = "contain"
61
60
  else:
@@ -1,6 +1,7 @@
1
1
  <configure
2
2
  xmlns="http://namespaces.zope.org/zope">
3
3
 
4
+ <include package="z3c.unconfigure" file="meta.zcml" />
4
5
  <include package="collective.taxonomy" />
5
6
  <include package="eea.facetednavigation" />
6
7
  <include package="eea.facetednavigation" file="meta.zcml" />
@@ -1,9 +1,11 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  from Acquisition import aq_parent
4
+ from io import BytesIO
4
5
  from imio.smartweb.common.config import TRANSLATED_VOCABULARIES
5
6
  from imio.smartweb.common.interfaces import ICropping
6
7
  from imio.smartweb.locales import SmartwebMessageFactory as _
8
+ from PIL import Image
7
9
  from plone import api
8
10
  from plone.app.imagecropping.storage import Storage
9
11
  from plone.dexterity.utils import iterSchemata
@@ -203,3 +205,27 @@ def get_parent_of_type(context, content_type):
203
205
  return parent
204
206
  parent = aq_parent(parent)
205
207
  return None
208
+
209
+
210
+ def _get_pil_mimetype(pil_image):
211
+ """Retourne le MIME type d'une image PIL."""
212
+ format_to_mime = {
213
+ "JPEG": "image/jpeg",
214
+ "PNG": "image/png",
215
+ "GIF": "image/gif",
216
+ "BMP": "image/bmp",
217
+ "TIFF": "image/tiff",
218
+ "WEBP": "image/webp",
219
+ "SVG": "image/svg+xml",
220
+ }
221
+ return format_to_mime.get(pil_image.format, "application/octet-stream")
222
+
223
+
224
+ def get_image_format(named_blob_image):
225
+ """Détecte le format d'une image à partir de son contenu binaire."""
226
+ if named_blob_image and named_blob_image.data:
227
+ try:
228
+ with Image.open(BytesIO(named_blob_image.data)) as img:
229
+ return _get_pil_mimetype(img)
230
+ except Exception:
231
+ return None
@@ -1,11 +1,11 @@
1
1
  <a class="show-on-focus"
2
2
  tal:define="url view/current_page_url"
3
3
  tal:attributes="href string:${url}#content"
4
- i18n:domain="smartweb"
4
+ i18n:domain="imio.smartweb"
5
5
  i18n:translate="">Skip to content</a>
6
6
 
7
7
  <a class="show-on-focus"
8
8
  tal:define="url view/current_page_url"
9
9
  tal:attributes="href string:${url}#portal-footer-wrapper"
10
- i18n:domain="smartweb"
10
+ i18n:domain="imio.smartweb"
11
11
  i18n:translate="">Skip to footer</a>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: imio.smartweb.common
3
- Version: 1.2.25
3
+ Version: 1.2.27
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
@@ -174,6 +174,20 @@ Changelog
174
174
  =========
175
175
 
176
176
 
177
+ 1.2.27 (2025-03-19)
178
+ -------------------
179
+
180
+ - WEB-4122 : Create adapter/validator to filter valid image mimetype in our solutions
181
+ [boulch]
182
+
183
+
184
+ 1.2.26 (2025-03-12)
185
+ -------------------
186
+
187
+ - WEB-4212: Fixe i18n:domain for skip to content
188
+ [thomlamb]
189
+
190
+
177
191
  1.2.25 (2025-03-10)
178
192
  -------------------
179
193
 
@@ -223,7 +237,8 @@ Changelog
223
237
  1.2.19 (2025-01-09)
224
238
  -------------------
225
239
 
226
- - Nothing changed yet.
240
+ - WEB-4153 : Override @vocabularies endpoint to add a cache ruleset on it
241
+ [remdub]
227
242
 
228
243
 
229
244
  1.2.18 (2024-07-01)
@@ -1,19 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- from plone.namedfile.interfaces import IAvailableSizes
4
- from zope.component import getUtility
5
-
6
-
7
- class BaseCroppingProvider(object):
8
- def __init__(self, context):
9
- self.context = context
10
-
11
- def get_scales(self, fieldname, request=None):
12
- if self.context.portal_type == "Image":
13
- # imio.smartweb.core override get_scales.
14
- # so this is only available for authentic sources
15
- return []
16
- allowed_sizes = getUtility(IAvailableSizes)()
17
- scales = list(allowed_sizes.keys())
18
- scales.remove("banner")
19
- return scales