Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

initial revision

  • Loading branch information...
commit c72c4c6e3a441a49fb53c7adcbe3495cf538d088 1 parent a317f38
@kiorky kiorky authored
Showing with 6,879 additions and 1 deletion.
  1. +28 −0 collective.cron/collective.cron/.gitignore
  2. +28 −0 collective.cron/collective.cron/README.rst
  3. +91 −0 collective.cron/collective.cron/base.cfg
  4. +121 −0 collective.cron/collective.cron/bootstrap.py
  5. +13 −0 collective.cron/collective.cron/buildout.cfg
  6. +8 −0 collective.cron/collective.cron/docs/CHANGES.rst
  7. +5 −0 collective.cron/collective.cron/docs/INSTALL.rst
  8. +222 −0 collective.cron/collective.cron/docs/LICENSE.GPL
  9. +16 −0 collective.cron/collective.cron/docs/LICENSE.txt
  10. +14 −0 collective.cron/collective.cron/scripts/sync_from_generic.sh
  11. +2 −0  collective.cron/collective.cron/setup.cfg
  12. +64 −0 collective.cron/collective.cron/setup.py
  13. +6 −0 collective.cron/collective.cron/src/__init__.py
  14. +6 −0 collective.cron/collective.cron/src/collective/__init__.py
  15. +1 −0  collective.cron/collective.cron/src/collective/cron/Extensions/__init__.py
  16. +6 −0 collective.cron/collective.cron/src/collective/cron/__init__.py
  17. +38 −0 collective.cron/collective.cron/src/collective/cron/app_config.py
  18. +1 −0  collective.cron/collective.cron/src/collective/cron/browser/__init__.py
  19. +39 −0 collective.cron/collective.cron/src/collective/cron/browser/configure.zcml
  20. +4 −0 collective.cron/collective.cron/src/collective/cron/browser/resources/README.txt
  21. +15 −0 collective.cron/collective.cron/src/collective/cron/browser/template.pt
  22. +32 −0 collective.cron/collective.cron/src/collective/cron/browser/view.py
  23. +1 −0  collective.cron/collective.cron/src/collective/cron/browser/viewlet.pt
  24. +3 −0  collective.cron/collective.cron/src/collective/cron/browser/viewlets.py
  25. +35 −0 collective.cron/collective.cron/src/collective/cron/configure.zcml
  26. +22 −0 collective.cron/collective.cron/src/collective/cron/dashboard.py
  27. +17 −0 collective.cron/collective.cron/src/collective/cron/interfaces.py
  28. 0  collective.cron/collective.cron/src/collective/cron/locales/collective.cron-manual.pot
  29. +16 −0 collective.cron/collective.cron/src/collective/cron/locales/collective.cron.pot
  30. +18 −0 collective.cron/collective.cron/src/collective/cron/locales/fr/LC_MESSAGES/collective.cron.po
  31. +48 −0 collective.cron/collective.cron/src/collective/cron/profiles.zcml
  32. +5 −0 collective.cron/collective.cron/src/collective/cron/profiles/default/browserlayer.xml
  33. 0  collective.cron/collective.cron/src/collective/cron/profiles/default/collective.cron_various.txt
  34. +20 −0 collective.cron/collective.cron/src/collective/cron/profiles/default/controlpanel.xml
  35. +26 −0 collective.cron/collective.cron/src/collective/cron/profiles/default/cssregistry.xml
  36. +20 −0 collective.cron/collective.cron/src/collective/cron/profiles/default/jsregistry.xml
  37. +3 −0  collective.cron/collective.cron/src/collective/cron/profiles/default/mailhost.xml
  38. +12 −0 collective.cron/collective.cron/src/collective/cron/profiles/default/metadata.xml
  39. +13 −0 collective.cron/collective.cron/src/collective/cron/profiles/default/portlets.xml
  40. +13 −0 collective.cron/collective.cron/src/collective/cron/profiles/default/properties.xml
  41. +6 −0 collective.cron/collective.cron/src/collective/cron/profiles/default/registry.xml
  42. +12 −0 collective.cron/collective.cron/src/collective/cron/profiles/default/skins.xml
  43. +7 −0 collective.cron/collective.cron/src/collective/cron/profiles/default/theme.xml
  44. +4 −0 collective.cron/collective.cron/src/collective/cron/profiles/default/viewlets.xml
  45. 0  collective.cron/collective.cron/src/collective/cron/profiles/qi/collective.cron_qi.txt
  46. +5 −0 collective.cron/collective.cron/src/collective/cron/profiles/uninstall/browserlayer.xml
  47. 0  collective.cron/collective.cron/src/collective/cron/profiles/uninstall/collective.cron_uninstallvarious.txt
  48. +12 −0 collective.cron/collective.cron/src/collective/cron/profiles/uninstall/controlpanel.xml
  49. +7 −0 collective.cron/collective.cron/src/collective/cron/profiles/uninstall/cssregistry.xml
  50. +6 −0 collective.cron/collective.cron/src/collective/cron/profiles/uninstall/jsregistry.xml
  51. +3 −0  collective.cron/collective.cron/src/collective/cron/profiles/uninstall/mailhost.xml
  52. +12 −0 collective.cron/collective.cron/src/collective/cron/profiles/uninstall/metadata.xml
  53. +13 −0 collective.cron/collective.cron/src/collective/cron/profiles/uninstall/portlets.xml
  54. +13 −0 collective.cron/collective.cron/src/collective/cron/profiles/uninstall/properties.xml
  55. +6 −0 collective.cron/collective.cron/src/collective/cron/profiles/uninstall/registry.xml
  56. +8 −0 collective.cron/collective.cron/src/collective/cron/profiles/uninstall/skins.xml
  57. +4 −0 collective.cron/collective.cron/src/collective/cron/profiles/uninstall/viewlets.xml
  58. +13 −0 collective.cron/collective.cron/src/collective/cron/rebuild_i18n.sh
  59. +47 −0 collective.cron/collective.cron/src/collective/cron/setuphandlers.py
  60. 0  collective.cron/collective.cron/src/collective/cron/skins/collective_cron_custom/.empty
  61. +3 −0  collective.cron/collective.cron/src/collective/cron/skins/collective_cron_custom/CONTENT.txt
  62. +47 −0 collective.cron/collective.cron/src/collective/cron/skins/collective_cron_custom/base_properties.props
  63. BIN  collective.cron/collective.cron/src/collective/cron/skins/collective_cron_custom/favicon.ico
  64. BIN  collective.cron/collective.cron/src/collective/cron/skins/collective_cron_custom/logo.jpg
  65. +99 −0 collective.cron/collective.cron/src/collective/cron/skins/collective_cron_custom/ploneCustom.css.dtml
  66. +3 −0  collective.cron/collective.cron/src/collective/cron/skins/collective_cron_custom/ploneCustom.css.dtml.metadata
  67. 0  collective.cron/collective.cron/src/collective/cron/static/.empty
  68. +9 −0 collective.cron/collective.cron/src/collective/cron/static/index.html
  69. +15 −0 collective.cron/collective.cron/src/collective/cron/static/rules.xml
  70. +198 −0 collective.cron/collective.cron/src/collective/cron/testing.py
  71. 0  collective.cron/collective.cron/src/collective/cron/tests/__init__.py
  72. +71 −0 collective.cron/collective.cron/src/collective/cron/tests/base.py
  73. +8 −0 collective.cron/collective.cron/src/collective/cron/tests/doctest.txt
  74. +123 −0 collective.cron/collective.cron/src/collective/cron/tests/globals.py
  75. +61 −0 collective.cron/collective.cron/src/collective/cron/tests/test_doctests.py
  76. +28 −0 collective.cron/collective.cron/src/collective/cron/tests/test_setup.py
  77. +96 −0 collective.cron/collective.cron/src/collective/cron/upgrades/__init__.py
  78. +42 −0 collective.cron/collective.cron/src/collective/cron/upgrades/configure.zcml
  79. +1 −0  collective.cron/collective.cron/src/collective/cron/version.txt
  80. +5 −0 collective.cron/collective.cron/test-4.0.x.cfg
  81. +5 −0 collective.cron/collective.cron/test-4.1.x.cfg
  82. +2 −0  collective.cron/collective.cron/test-4.2.x.cfg
  83. +1 −0  collective.cron/collective.cron/version.txt
  84. +28 −0 croniter/croniter.core/.gitignore
  85. +4 −0 croniter/croniter.core/README.txt
  86. +258 −0 croniter/croniter.core/bootstrap.py
  87. +97 −0 croniter/croniter.core/buildout.cfg
  88. +10 −0 croniter/croniter.core/croniter.core-minilay/croniter.core
  89. +8 −0 croniter/croniter.core/docs/HISTORY.txt
  90. +53 −0 croniter/croniter.core/docs/INSTALL.txt
  91. +222 −0 croniter/croniter.core/docs/LICENSE.GPL
  92. +16 −0 croniter/croniter.core/docs/LICENSE.txt
  93. +2 −0  croniter/croniter.core/minitage-buildout.cfg
  94. +45 −0 croniter/croniter.core/minitage.cfg
  95. +2 −0  croniter/croniter.core/setup.cfg
  96. +57 −0 croniter/croniter.core/setup.py
  97. +6 −0 croniter/croniter.core/src/__init__.py
  98. +6 −0 croniter/croniter.core/src/croniter/__init__.py
  99. +6 −0 croniter/croniter.core/src/croniter/core/__init__.py
  100. +6 −0 croniter/croniter.core/src/croniter/core/core.py
  101. +25 −0 croniter/croniter.core/src/croniter/core/testing.py
  102. 0  croniter/croniter.core/src/croniter/core/tests/__init__.py
  103. +44 −0 croniter/croniter.core/src/croniter/core/tests/base.py
  104. +13 −0 croniter/croniter.core/src/croniter/core/tests/globals.py
  105. +7 −0 croniter/croniter.core/src/croniter/core/tests/mytest.txt
  106. +56 −0 croniter/croniter.core/src/croniter/core/tests/test_doctests.py
  107. +6 −0 croniter/croniter.core/vim.cfg
  108. +3 −1 docs/INSTALL.rst
  109. +28 −0 foo.bar.myotheregg/foo.bar.myotheregg/.gitignore
  110. +28 −0 foo.bar.myotheregg/foo.bar.myotheregg/README.rst
  111. +103 −0 foo.bar.myotheregg/foo.bar.myotheregg/base.cfg
  112. +121 −0 foo.bar.myotheregg/foo.bar.myotheregg/bootstrap.py
  113. +13 −0 foo.bar.myotheregg/foo.bar.myotheregg/buildout.cfg
  114. +8 −0 foo.bar.myotheregg/foo.bar.myotheregg/docs/CHANGES.rst
  115. +5 −0 foo.bar.myotheregg/foo.bar.myotheregg/docs/INSTALL.rst
  116. +222 −0 foo.bar.myotheregg/foo.bar.myotheregg/docs/LICENSE.GPL
  117. +16 −0 foo.bar.myotheregg/foo.bar.myotheregg/docs/LICENSE.txt
  118. +14 −0 foo.bar.myotheregg/foo.bar.myotheregg/scripts/sync_from_generic.sh
  119. +2 −0  foo.bar.myotheregg/foo.bar.myotheregg/setup.cfg
  120. +81 −0 foo.bar.myotheregg/foo.bar.myotheregg/setup.py
  121. +6 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/__init__.py
  122. +6 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/__init__.py
  123. +1 −0  foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/Extensions/__init__.py
  124. +6 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/__init__.py
  125. +38 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/app_config.py
  126. +1 −0  foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/browser/__init__.py
  127. +39 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/browser/configure.zcml
  128. +4 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/browser/resources/README.txt
  129. +15 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/browser/template.pt
  130. +32 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/browser/view.py
  131. +1 −0  foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/browser/viewlet.pt
  132. +3 −0  foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/browser/viewlets.py
  133. +43 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/configure.zcml
  134. +22 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/dashboard.py
  135. +17 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/interfaces.py
  136. 0  foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/locales/foo.bar.myotheregg-manual.pot
  137. +16 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/locales/foo.bar.myotheregg.pot
  138. +18 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/locales/fr/LC_MESSAGES/foo.bar.myotheregg.po
  139. +48 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles.zcml
  140. +5 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/default/browserlayer.xml
  141. +20 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/default/controlpanel.xml
  142. +26 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/default/cssregistry.xml
  143. 0  foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/default/foo.bar.myotheregg_various.txt
  144. +20 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/default/jsregistry.xml
  145. +3 −0  foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/default/mailhost.xml
  146. +14 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/default/metadata.xml
  147. +13 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/default/portlets.xml
  148. +13 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/default/properties.xml
  149. +6 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/default/registry.xml
  150. +12 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/default/skins.xml
  151. +7 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/default/theme.xml
  152. +4 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/default/viewlets.xml
  153. 0  foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/qi/foo.bar.myotheregg_qi.txt
  154. +5 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/uninstall/browserlayer.xml
  155. +12 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/uninstall/controlpanel.xml
  156. +7 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/uninstall/cssregistry.xml
  157. 0  ...heregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/uninstall/foo.bar.myotheregg_uninstallvarious.txt
  158. +6 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/uninstall/jsregistry.xml
  159. +3 −0  foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/uninstall/mailhost.xml
  160. +14 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/uninstall/metadata.xml
  161. +13 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/uninstall/portlets.xml
  162. +13 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/uninstall/properties.xml
  163. +6 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/uninstall/registry.xml
  164. +8 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/uninstall/skins.xml
  165. +4 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/profiles/uninstall/viewlets.xml
  166. +13 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/rebuild_i18n.sh
  167. +47 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/setuphandlers.py
  168. 0  foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/skins/foo_bar_myotheregg_custom/.empty
  169. +3 −0  foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/skins/foo_bar_myotheregg_custom/CONTENT.txt
  170. +47 −0 ....myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/skins/foo_bar_myotheregg_custom/base_properties.props
  171. BIN  foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/skins/foo_bar_myotheregg_custom/favicon.ico
  172. BIN  foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/skins/foo_bar_myotheregg_custom/logo.jpg
  173. +99 −0 ...r.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/skins/foo_bar_myotheregg_custom/ploneCustom.css.dtml
  174. +3 −0  ...egg/foo.bar.myotheregg/src/foo/bar/myotheregg/skins/foo_bar_myotheregg_custom/ploneCustom.css.dtml.metadata
  175. 0  foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/static/.empty
  176. +9 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/static/index.html
  177. +15 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/static/rules.xml
  178. +165 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/testing.py
  179. 0  foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/tests/__init__.py
  180. +67 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/tests/base.py
  181. +8 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/tests/doctest.txt
  182. +123 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/tests/globals.py
  183. +61 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/tests/test_doctests.py
  184. +28 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/tests/test_setup.py
  185. +68 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/upgrades/__init__.py
  186. +42 −0 foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/upgrades/configure.zcml
  187. +1 −0  foo.bar.myotheregg/foo.bar.myotheregg/src/foo/bar/myotheregg/version.txt
  188. +5 −0 foo.bar.myotheregg/foo.bar.myotheregg/test-4.0.x.cfg
  189. +5 −0 foo.bar.myotheregg/foo.bar.myotheregg/test-4.1.x.cfg
  190. +2 −0  foo.bar.myotheregg/foo.bar.myotheregg/test-4.2.x.cfg
  191. +1 −0  foo.bar.myotheregg/foo.bar.myotheregg/version.txt
  192. +28 −0 plonetest/plonetest/.gitignore
  193. +28 −0 plonetest/plonetest/README.rst
  194. +113 −0 plonetest/plonetest/base.cfg
  195. +121 −0 plonetest/plonetest/bootstrap.py
  196. +13 −0 plonetest/plonetest/buildout.cfg
  197. +8 −0 plonetest/plonetest/docs/CHANGES.rst
  198. +5 −0 plonetest/plonetest/docs/INSTALL.rst
  199. +222 −0 plonetest/plonetest/docs/LICENSE.GPL
  200. +16 −0 plonetest/plonetest/docs/LICENSE.txt
  201. +14 −0 plonetest/plonetest/scripts/sync_from_generic.sh
  202. +2 −0  plonetest/plonetest/setup.cfg
  203. +60 −0 plonetest/plonetest/setup.py
  204. +7 −0 plonetest/plonetest/src/plonetest/Extensions/Install.py
  205. +1 −0  plonetest/plonetest/src/plonetest/Extensions/__init__.py
  206. +6 −0 plonetest/plonetest/src/plonetest/__init__.py
  207. +38 −0 plonetest/plonetest/src/plonetest/app_config.py
  208. +1 −0  plonetest/plonetest/src/plonetest/browser/__init__.py
  209. +39 −0 plonetest/plonetest/src/plonetest/browser/configure.zcml
  210. +4 −0 plonetest/plonetest/src/plonetest/browser/resources/README.txt
  211. +15 −0 plonetest/plonetest/src/plonetest/browser/template.pt
  212. +32 −0 plonetest/plonetest/src/plonetest/browser/view.py
  213. +1 −0  plonetest/plonetest/src/plonetest/browser/viewlet.pt
  214. +3 −0  plonetest/plonetest/src/plonetest/browser/viewlets.py
  215. +29 −0 plonetest/plonetest/src/plonetest/configure.zcml
  216. +22 −0 plonetest/plonetest/src/plonetest/dashboard.py
  217. +17 −0 plonetest/plonetest/src/plonetest/interfaces.py
  218. +18 −0 plonetest/plonetest/src/plonetest/locales/fr/LC_MESSAGES/plonetest.po
  219. 0  plonetest/plonetest/src/plonetest/locales/plonetest-manual.pot
  220. +16 −0 plonetest/plonetest/src/plonetest/locales/plonetest.pot
  221. +48 −0 plonetest/plonetest/src/plonetest/profiles.zcml
  222. +5 −0 plonetest/plonetest/src/plonetest/profiles/default/browserlayer.xml
  223. +20 −0 plonetest/plonetest/src/plonetest/profiles/default/controlpanel.xml
  224. +26 −0 plonetest/plonetest/src/plonetest/profiles/default/cssregistry.xml
  225. +20 −0 plonetest/plonetest/src/plonetest/profiles/default/jsregistry.xml
  226. +11 −0 plonetest/plonetest/src/plonetest/profiles/default/metadata.xml
  227. 0  plonetest/plonetest/src/plonetest/profiles/default/plonetest_various.txt
  228. +13 −0 plonetest/plonetest/src/plonetest/profiles/default/portlets.xml
  229. +13 −0 plonetest/plonetest/src/plonetest/profiles/default/properties.xml
  230. +6 −0 plonetest/plonetest/src/plonetest/profiles/default/registry.xml
  231. +14 −0 plonetest/plonetest/src/plonetest/profiles/default/skins.xml
  232. +7 −0 plonetest/plonetest/src/plonetest/profiles/default/theme.xml
  233. +4 −0 plonetest/plonetest/src/plonetest/profiles/default/viewlets.xml
  234. 0  plonetest/plonetest/src/plonetest/profiles/qi/plonetest_qi.txt
  235. +5 −0 plonetest/plonetest/src/plonetest/profiles/uninstall/browserlayer.xml
  236. +12 −0 plonetest/plonetest/src/plonetest/profiles/uninstall/controlpanel.xml
  237. +7 −0 plonetest/plonetest/src/plonetest/profiles/uninstall/cssregistry.xml
  238. +6 −0 plonetest/plonetest/src/plonetest/profiles/uninstall/jsregistry.xml
  239. +3 −0  plonetest/plonetest/src/plonetest/profiles/uninstall/mailhost.xml
  240. +11 −0 plonetest/plonetest/src/plonetest/profiles/uninstall/metadata.xml
  241. 0  plonetest/plonetest/src/plonetest/profiles/uninstall/plonetest_uninstallvarious.txt
  242. +13 −0 plonetest/plonetest/src/plonetest/profiles/uninstall/portlets.xml
  243. +13 −0 plonetest/plonetest/src/plonetest/profiles/uninstall/properties.xml
  244. +6 −0 plonetest/plonetest/src/plonetest/profiles/uninstall/registry.xml
  245. +8 −0 plonetest/plonetest/src/plonetest/profiles/uninstall/skins.xml
  246. +4 −0 plonetest/plonetest/src/plonetest/profiles/uninstall/viewlets.xml
  247. +13 −0 plonetest/plonetest/src/plonetest/rebuild_i18n.sh
  248. +47 −0 plonetest/plonetest/src/plonetest/setuphandlers.py
  249. 0  plonetest/plonetest/src/plonetest/static/.empty
  250. +9 −0 plonetest/plonetest/src/plonetest/static/index.html
  251. +15 −0 plonetest/plonetest/src/plonetest/static/rules.xml
  252. +223 −0 plonetest/plonetest/src/plonetest/testing.py
  253. 0  plonetest/plonetest/src/plonetest/tests/__init__.py
  254. +76 −0 plonetest/plonetest/src/plonetest/tests/base.py
  255. +8 −0 plonetest/plonetest/src/plonetest/tests/doctest.txt
  256. +89 −0 plonetest/plonetest/src/plonetest/tests/globals.py
  257. +55 −0 plonetest/plonetest/src/plonetest/tests/test_doctests.py
  258. +28 −0 plonetest/plonetest/src/plonetest/tests/test_setup.py
  259. +96 −0 plonetest/plonetest/src/plonetest/upgrades/__init__.py
  260. +42 −0 plonetest/plonetest/src/plonetest/upgrades/configure.zcml
  261. +1 −0  plonetest/plonetest/src/plonetest/version.txt
  262. +5 −0 plonetest/plonetest/test-4.0.x.cfg
  263. +5 −0 plonetest/plonetest/test-4.1.x.cfg
  264. +2 −0  plonetest/plonetest/test-4.2.x.cfg
  265. +1 −0  plonetest/plonetest/version.txt
View
28 collective.cron/collective.cron/.gitignore
@@ -0,0 +1,28 @@
+*.mo
+tags
+tags.python
+plone.env
+t
+.minitage
+*.egg-info
+*.egg
+*.EGG
+*.EGG-INFO
+bin
+build
+develop-eggs
+downloads
+eggs
+fake-eggs
+parts
+dist
+.installed.cfg
+.mr.developer.cfg
+.hg
+.bzr
+.svn
+*.pyc
+*.pyo
+*.tmp*
+var
+sys
View
28 collective.cron/collective.cron/README.rst
@@ -0,0 +1,28 @@
+==============================
+Introduction
+==============================
+
+.. contents::
+
+Credits
+========
+Companies
+---------
+|makinacom|_
+
+ * `Planet Makina Corpus <http://www.makina-corpus.org>`_
+ * `Contact us <mailto:python@makina-corpus.org>`_
+
+.. |makinacom| image:: http://depot.makina-corpus.org/public/logo.gif
+.. _makinacom: http://www.makina-corpus.com
+
+Authors
+------------
+
+- kiorky <kiorky@localhost>
+
+Contributors
+-----------------
+
+
+
View
91 collective.cron/collective.cron/base.cfg
@@ -0,0 +1,91 @@
+[buildout]
+package-extras = [test]
+package-name = collective.cron
+develop = .
+parts +=
+ omelette
+ zopepy
+ test
+ coverage
+ report
+ report-xml
+extensions =
+ mr.developer
+ buildout.dumppickedversions
+common-eggs =
+ PIL
+ ipython
+ bpython
+ plone.reload
+test-eggs =
+ ${buildout:package-name} ${buildout:package-extras}
+
+[instance]
+http-address = localhost:8081
+eggs =
+ ${buildout:common-eggs}
+ ${buildout:package-name}
+extra-paths =
+
+[zopepy]
+recipe=zc.recipe.egg
+eggs = ${instance:eggs}
+extra-paths = ${instance:extra-paths}
+interpreter = zopepy
+scripts =
+
+[test]
+recipe = zc.recipe.testrunner
+defaults = ['-v', '-s', '${buildout:package-name}']
+eggs =
+ ${buildout:common-eggs}
+ ${buildout:test-eggs}
+
+[coverage]
+recipe = zc.recipe.egg
+eggs = coverage
+initialization =
+include = '--source=${buildout:directory}/src'
+sys.argv = sys.argv[:] + ['run', include, 'bin/test', '--xml']
+
+[report]
+recipe = zc.recipe.egg
+eggs = coverage
+scripts = coverage=report
+initialization =
+sys.argv = sys.argv[:] + ['html', '-i']
+
+[report-xml]
+recipe = zc.recipe.egg
+eggs = coverage
+scripts = coverage=report-xml
+initialization =
+sys.argv = sys.argv[:] + ['xml', '-i']
+
+[omelette]
+recipe = collective.recipe.omelette
+eggs = ${instance:eggs}
+#packages = ./
+
+[versions]
+# with_ploneproduct_dexterity
+plone.autoform = 1.1
+plone.rfc822 = 1.0
+plone.supermodel = 1.0.3
+uuid = 1.30
+z3c.batching = 1.1.0
+z3c.relationfield = 0.6.1
+
+# never ever pin paste and other eggs
+
+Paste =
+PasteDeploy =
+PasteScript =
+ZopeSkel =
+distribute =
+
+
+
+
+
+
View
121 collective.cron/collective.cron/bootstrap.py
@@ -0,0 +1,121 @@
+##############################################################################
+#
+# Copyright (c) 2006 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Bootstrap a buildout-based project
+
+Simply run this script in a directory containing a buildout.cfg.
+The script accepts buildout command-line options, so you can
+use the -c option to specify an alternate configuration file.
+"""
+
+import os, shutil, sys, tempfile, urllib2
+from optparse import OptionParser
+
+tmpeggs = tempfile.mkdtemp()
+
+is_jython = sys.platform.startswith('java')
+
+# parsing arguments
+parser = OptionParser()
+parser.add_option("-v", "--version", dest="version",
+ help="use a specific zc.buildout version")
+parser.add_option("-d", "--distribute",
+ action="store_true", dest="distribute", default=False,
+ help="Use Disribute rather than Setuptools.")
+
+parser.add_option("-c", None, action="store", dest="config_file",
+ help=("Specify the path to the buildout configuration "
+ "file to be used."))
+
+options, args = parser.parse_args()
+
+# if -c was provided, we push it back into args for buildout' main function
+if options.config_file is not None:
+ args += ['-c', options.config_file]
+
+if options.version is not None:
+ VERSION = '==%s' % options.version
+else:
+ VERSION = ''
+
+# We decided to always use distribute, make sure this is the default for us
+# USE_DISTRIBUTE = options.distribute
+USE_DISTRIBUTE = True
+args = args + ['bootstrap']
+
+to_reload = False
+try:
+ import pkg_resources
+ if not hasattr(pkg_resources, '_distribute'):
+ to_reload = True
+ raise ImportError
+except ImportError:
+ ez = {}
+ if USE_DISTRIBUTE:
+ exec urllib2.urlopen('http://python-distribute.org/distribute_setup.py'
+ ).read() in ez
+ ez['use_setuptools'](to_dir=tmpeggs, download_delay=0, no_fake=True)
+ else:
+ exec urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py'
+ ).read() in ez
+ ez['use_setuptools'](to_dir=tmpeggs, download_delay=0)
+
+ if to_reload:
+ reload(pkg_resources)
+ else:
+ import pkg_resources
+
+if sys.platform == 'win32':
+ def quote(c):
+ if ' ' in c:
+ return '"%s"' % c # work around spawn lamosity on windows
+ else:
+ return c
+else:
+ def quote (c):
+ return c
+
+cmd = 'from setuptools.command.easy_install import main; main()'
+ws = pkg_resources.working_set
+
+if USE_DISTRIBUTE:
+ requirement = 'distribute'
+else:
+ requirement = 'setuptools'
+
+if is_jython:
+ import subprocess
+
+ assert subprocess.Popen([sys.executable] + ['-c', quote(cmd), '-mqNxd',
+ quote(tmpeggs), 'zc.buildout' + VERSION],
+ env=dict(os.environ,
+ PYTHONPATH=
+ ws.find(pkg_resources.Requirement.parse(requirement)).location
+ ),
+ ).wait() == 0
+
+else:
+ assert os.spawnle(
+ os.P_WAIT, sys.executable, quote (sys.executable),
+ '-c', quote (cmd), '-mqNxd', quote (tmpeggs), 'zc.buildout' + VERSION,
+ dict(os.environ,
+ PYTHONPATH=
+ ws.find(pkg_resources.Requirement.parse(requirement)).location
+ ),
+ ) == 0
+
+ws.add_entry(tmpeggs)
+ws.require('zc.buildout' + VERSION)
+import zc.buildout.buildout
+zc.buildout.buildout.main(args)
+shutil.rmtree(tmpeggs)
View
13 collective.cron/collective.cron/buildout.cfg
@@ -0,0 +1,13 @@
+[buildout]
+# try on the latest stable plone4 release
+extends = http://svn.plone.org/svn/collective/buildout/plonetest/plone-4.2.x.cfg base.cfg
+
+# specific tries
+# to test on plone42, replace with
+# extends = http://svn.plone.org/svn/collective/buildout/plonetest/plone-4.2.x.cfg base.cfg
+# to test on plone41, replace with
+# extends = http://svn.plone.org/svn/collective/buildout/plonetest/plone-4.1.x.cfg base.cfg
+# to test on plone40, replace with
+# extends = http://svn.plone.org/svn/collective/buildout/plonetest/plone-4.0.x.cfg base.cfg
+
+# vim:set ft=ini:
View
8 collective.cron/collective.cron/docs/CHANGES.rst
@@ -0,0 +1,8 @@
+Changelog
+=========
+
+1.0 (unreleased)
+----------------
+
+* Initial release [kiorky]
+
View
5 collective.cron/collective.cron/docs/INSTALL.rst
@@ -0,0 +1,5 @@
+collective.cron Installation
+=================================================================================
+
+To install collective.cron, follow this `documentation <http://plone.org/documentation/kb/installing-add-ons-quick-how-to>`_.
+
View
222 collective.cron/collective.cron/docs/LICENSE.GPL
@@ -0,0 +1,222 @@
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
View
16 collective.cron/collective.cron/docs/LICENSE.txt
@@ -0,0 +1,16 @@
+ collective.cron copyrighted kiorky <kiorky@localhost>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ MA 02111-1307 USA.
View
14 collective.cron/collective.cron/scripts/sync_from_generic.sh
@@ -0,0 +1,14 @@
+#!/usr/bin/env bash
+PROJECT="collective.cron"
+IMPORT_URL="http://hg.foo.net"
+cd $(dirname $0)/..
+[[ ! -d t ]] && mkdir t
+rm -rf t/*
+tar xzvf $(ls -1t ~/cgwb/$PROJECT*z|head -n1) -C t
+files="
+./
+"
+for f in $files;do
+ rsync -aKzv t/$PROJECT/$f $f
+done
+# vim:set et sts=4 ts=4 tw=80:
View
2  collective.cron/collective.cron/setup.cfg
@@ -0,0 +1,2 @@
+[egg_info]
+tag_svn_revision = false
View
64 collective.cron/collective.cron/setup.py
@@ -0,0 +1,64 @@
+import os, sys
+
+from setuptools import setup, find_packages
+
+version = "1.0dev"
+
+def read(*rnames):
+ return open(
+ os.path.join('.', *rnames)
+ ).read()
+
+long_description = "\n\n".join(
+ [read('README.rst'),
+ read('docs', 'INSTALL.rst'),
+ read('docs', 'CHANGES.rst'),
+ ]
+)
+
+classifiers = [
+ "Framework :: Plone",
+ "Framework :: Plone :: 4.0",
+ "Framework :: Plone :: 4.1",
+ "Framework :: Plone :: 4.2",
+ "Programming Language :: Python",
+ "Topic :: Software Development",]
+
+name = 'collective.cron'
+setup(
+ name=name,
+ namespace_packages=[ 'collective',
+ ],
+ version=version,
+ description='Project libertic.event',
+ long_description=long_description,
+ classifiers=classifiers,
+ keywords='',
+ author='kiorky',
+ author_email='kiorky@localhost',
+ url='http://pypi.python.org/pypi/%s' % name,
+ license='GPL',
+ packages=find_packages('src'),
+ package_dir = {'': 'src'},
+ include_package_data=True,
+ install_requires=[
+ 'setuptools',
+ 'z3c.autoinclude',
+ 'Plone',
+ 'plone.app.upgrade',
+ # with_ploneproduct_dexterity
+ 'z3c.blobfile',
+ 'plone.app.dexterity',
+ # with_ploneproduct_patheming
+ 'plone.app.theming',
+ 'plone.app.themingplugins',
+ # -*- Extra requirements: -*-
+ ],
+ extras_require = {
+ 'test': ['plone.app.testing',]
+ },
+ entry_points = {
+ 'z3c.autoinclude.plugin': ['target = plone',],
+ },
+)
+# vim:set ft=python:
View
6 collective.cron/collective.cron/src/__init__.py
@@ -0,0 +1,6 @@
+# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
+try:
+ __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+ from pkgutil import extend_path
+ __path__ = extend_path(__path__, __name__)
View
6 collective.cron/collective.cron/src/collective/__init__.py
@@ -0,0 +1,6 @@
+# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
+try:
+ __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+ from pkgutil import extend_path
+ __path__ = extend_path(__path__, __name__)
View
1  collective.cron/collective.cron/src/collective/cron/Extensions/__init__.py
@@ -0,0 +1 @@
+#make it a python package
View
6 collective.cron/collective.cron/src/collective/cron/__init__.py
@@ -0,0 +1,6 @@
+import logging
+from zope.i18nmessageid import MessageFactory
+MessageFactory = collectivecronMessageFactory = MessageFactory('collective.cron')
+logger = logging.getLogger('collective.cron')
+def initialize(context):
+ """Initializer called when used as a Zope 2 product."""
View
38 collective.cron/collective.cron/src/collective/cron/app_config.py
@@ -0,0 +1,38 @@
+#-*- coding: utf-8 -*-
+"""Specific project configuration."""
+GLOBALS = globals()
+
+
+
+
+################################################################################
+# Products that have entries in quickinstaller,
+# here are their 'id' (not the translated name)
+################################################################################
+
+PRODUCT_DEPENDENCIES = (\
+)
+
+EXTENSION_PROFILES = ('collective.cron:default',)
+
+SKIN = 'collective.skin'
+HIDDEN_PRODUCTS = [u'plone.app.openid', u'NuPlone',
+]
+HIDDEN_PROFILES = [u'plone.app.openid', u'NuPlone',
+]
+
+from zope.interface import implements
+from Products.CMFQuickInstallerTool.interfaces import INonInstallable as INonInstallableProducts
+from Products.CMFPlone.interfaces import INonInstallable as INonInstallableProfiles
+
+class HiddenProducts(object):
+ implements(INonInstallableProducts)
+
+ def getNonInstallableProducts(self):
+ return HIDDEN_PRODUCTS
+
+class HiddenProfiles(object):
+ implements(INonInstallableProfiles)
+
+ def getNonInstallableProfiles(self):
+ return [ u'plone.app.openid', u'NuPlone', ]
View
1  collective.cron/collective.cron/src/collective/cron/browser/__init__.py
@@ -0,0 +1 @@
+#
View
39 collective.cron/collective.cron/src/collective/cron/browser/configure.zcml
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:browser="http://namespaces.zope.org/browser"
+ i18n_domain="collective.cron">
+
+ <!-- ' collective.cron' Zope 3 browser layer -->
+ <interface name="collective.cron-theme"
+ interface="collective.cron.interfaces.IThemeSpecific"
+ type="zope.publisher.interfaces.browser.IBrowserSkinType"
+ />
+ <interface name="collective.cron" interface="collective.cron.interfaces.ILayer" />
+
+ <!-- Viewlets registration -->
+
+ <!-- Zope 3 browser views -->
+ <!--
+ <browser:page
+ layer="collective.cron.interfaces.ILayer"
+ for="collective.cron.interface.mycontent"
+ name="MyView"
+ class=".view.MyView"
+ allowed_interface=".view.IMyView"
+ permission="zope2.View"
+ />
+ -->
+
+ <!-- Zope 3 browser resources -->
+
+ <!-- Resource directory -->
+ <browser:resourceDirectory
+ name="collective.cron"
+ directory="resources"
+ layer="collective.cron.interfaces.ILayer"
+ />
+
+
+ <!-- vim:set ft=xml: -->
+</configure>
View
4 collective.cron/collective.cron/src/collective/cron/browser/resources/README.txt
@@ -0,0 +1,4 @@
+README for the 'collective.cron/browser/resources/' directory
+==========================================
+
+This folder is a Zope 3 Resource Directory acting as a repository for static resources
View
15 collective.cron/collective.cron/src/collective/cron/browser/template.pt
@@ -0,0 +1,15 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xml:lang="en" lang="en"
+ xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+ metal:use-macro="context/main_template/macros/master"
+ i18n:domain="collective.cron">
+ <body>
+ <metal:main fill-slot="content">
+ <tal:main-macro metal:define-macro="main" >
+ foo
+ </tal:main-macro>
+ </metal:main>
+ </body>
+</html>
View
32 collective.cron/collective.cron/src/collective/cron/browser/view.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+__docformat__ = 'restructuredtext en'
+
+
+from zope import component, interface
+from zope.component import getAdapter, getMultiAdapter, queryMultiAdapter, getUtility
+
+from Products.Five import BrowserView
+from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
+from Products.CMFCore.utils import getToolByName
+from plone.registry.interfaces import IRegistry
+from Products.ATContentTypes.interfaces.interfaces import IATContentType
+from Acquisition import aq_parent
+from Acquisition import aq_parent
+
+
+class IMyView(interface.Interface):
+ """Marker interface"""
+
+
+class MyView(BrowserView):
+ """MY view doc"""
+ interface.implements(IMyView)
+ template = ViewPageTemplateFile('template.pt')
+ def __call__(self, **params):
+ """."""
+ params = {}
+ return self.template(**params)
+
+# vim:set et sts=4 ts=4 tw=80:
+
View
1  collective.cron/collective.cron/src/collective/cron/browser/viewlet.pt
@@ -0,0 +1 @@
+<div tal:content="view/computed_value"/>
View
3  collective.cron/collective.cron/src/collective/cron/browser/viewlets.py
@@ -0,0 +1,3 @@
+from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
+from plone.app.layout.viewlets.common import ViewletBase
+
View
35 collective.cron/collective.cron/src/collective/cron/configure.zcml
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:five="http://namespaces.zope.org/five"
+ xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
+ xmlns:i18n="http://namespaces.zope.org/i18n"
+ xmlns:cmf="http://namespaces.zope.org/cmf"
+ xmlns:browser="http://namespaces.zope.org/browser"
+ xmlns:plone="http://namespaces.plone.org/plone"
+ i18n_domain="collective.cron">
+ <include package="Products.Five" file="configure.zcml"/>
+ <include package="Products.CMFCore" file="permissions.zcml" />
+ <!-- Load the ZCML configuration for the collective.cron package.-->
+ <!--with_ploneproduct_patheming -->
+ <include package="plone.app.theming" file="configure.zcml"/>
+ <!--with_ploneproduct_patheming -->
+ <include package="plone.app.themingplugins" file="configure.zcml"/>
+ <!--with_ploneproduct_dexterity -->
+ <include package="plone.app.dexterity" file="meta.zcml"/>
+ <!--with_ploneproduct_dexterity -->
+ <include package="plone.app.dexterity" file="configure.zcml"/>
+ <five:registerPackage package="." initialize=".initialize" />
+ <!-- activate to customize the dashboard-->
+ <!-- <adapter factory=".dashboard.MyPortalDefaultDashboard"/>-->
+ <include package=".browser" />
+ <include file="profiles.zcml" />
+ <i18n:registerTranslations directory="locales" />
+
+ <cmf:registerDirectory
+ name="collective_cron_custom"/>
+
+ <include package="plone.resource" file="meta.zcml"/>
+ <plone:static directory="static" type="theme" name="collective.cron" />
+</configure>
+<!-- vim:set ft=xml: -->
View
22 collective.cron/collective.cron/src/collective/cron/dashboard.py
@@ -0,0 +1,22 @@
+from zope.interface import implements
+from zope.component import adapts
+from interfaces import IMyPortalUser
+from plone.app.portlets.interfaces import IDefaultDashboard
+from plone.app.portlets.dashboard import DefaultDashboard
+from plone.app.portlets import portlets
+
+class MyPortalDefaultDashboard(DefaultDashboard):
+ """ A new custom default dashboard for users. """
+ implements(IDefaultDashboard)
+ adapts(IMyPortalUser)
+
+ def __call__(self):
+ d1, d2, d3, d4 = [], [], [], []
+ #d1.append(portlets.recent.Assignment())
+
+ return {
+ 'plone.dashboard1' : d1,
+ 'plone.dashboard2' : d2,
+ 'plone.dashboard3' : d3,
+ 'plone.dashboard4' : d4,
+ }
View
17 collective.cron/collective.cron/src/collective/cron/interfaces.py
@@ -0,0 +1,17 @@
+from Products.PluggableAuthService.interfaces.authservice import IPropertiedUser
+from zope import interface, schema
+from plone.theme.interfaces import IDefaultPloneLayer
+
+from collective.cron import MessageFactory as _
+
+class IMyPortalUser(IPropertiedUser):
+ """ Marker interface implemented by users in my portal. """
+
+class IThemeSpecific(IDefaultPloneLayer):
+ """Marker interface that defines a Zope 3 browser layer and a plone skin marker.
+ """
+
+class ILayer(interface.Interface):
+ """Marker interface that defines a Zope 3 browser layer.
+ """
+
View
0  collective.cron/collective.cron/src/collective/cron/locales/collective.cron-manual.pot
No changes.
View
16 collective.cron/collective.cron/src/collective/cron/locales/collective.cron.pot
@@ -0,0 +1,16 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2010-04-15 23:45+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"Language-Code: en\n"
+"Language-Name: English\n"
+"Preferred-Encodings: utf-8 latin1\n"
+"Domain: DOMAIN\n"
+
View
18 collective.cron/collective.cron/src/collective/cron/locales/fr/LC_MESSAGES/collective.cron.po
@@ -0,0 +1,18 @@
+# --- PLEASE EDIT THE LINES BELOW CORRECTLY ---
+# SOME DESCRIPTIVE TITLE.
+msgid ""
+msgstr ""
+"Project-Id-Version: collective.cron 1.0\n"
+"POT-Creation-Date: 2010-04-15 23:45+0000\n"
+"PO-Revision-Date: 2010-05-02 11:21+0200\n"
+"Last-Translator: kiorky\n"
+"Language-Team: FR <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"Language-Code: fr\n"
+"Language-Name: French\n"
+"Preferred-Encodings: utf-8 latin1\n"
+"Domain: collective.cron\n"
+
View
48 collective.cron/collective.cron/src/collective/cron/profiles.zcml
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
+ i18n_domain="collective.cron">
+ <!-- Include direct package dependencies -->
+ <genericsetup:registerProfile
+ name="qi"
+ title="collective Policy QI"
+ directory="profiles/qi"
+ description="Turn a Plone site into the collective QIINFO site."
+ provides="Products.GenericSetup.interfaces.EXTENSION"
+ />
+ <genericsetup:registerProfile
+ name="default"
+ title="collective.cron"
+ directory="profiles/default"
+ description="Install the collective.cron addon on this plone site."
+ provides="Products.GenericSetup.interfaces.EXTENSION"
+ />
+ <genericsetup:registerProfile
+ title="collective.cron uninstall"
+ name="uninstall"
+ description="Uninstall the collective.cron addon on tbis plone site."
+ directory="profiles/uninstall"
+ provides="Products.GenericSetup.interfaces.EXTENSION"
+ for="Products.CMFPlone.interfaces.IPloneSiteRoot"
+ />
+ <genericsetup:importStep
+ name="collective_cron setupVarious"
+ title="various setup for collective.cron "
+ description="description"
+ handler="collective.cron.setuphandlers.setupVarious">
+ <depends name="plone-content"/>
+ </genericsetup:importStep>
+ <!-- migration steps -->
+ <genericsetup:importStep
+ name="collective_cron setupQi"
+ title="Quick Installer products dependencies setup for collective.cron"
+ description="description"
+ handler="collective.cron.setuphandlers.setupQi">
+ <depends name="plone-content"/>
+ </genericsetup:importStep>
+ <!-- -->
+ <utility factory=".app_config.HiddenProducts" name="collective_cron.hiddenproducts"/>
+ <utility factory=".app_config.HiddenProfiles" name="collective_cron.hiddenprofiles"/>
+ <include package=".upgrades"/>
+</configure>
View
5 collective.cron/collective.cron/src/collective/cron/profiles/default/browserlayer.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<layers>
+ <layer name="collective.cron-theme" interface="collective.cron.interfaces.IThemeSpecific"/>
+ <layer name="collective.cron" interface="collective.cron.interfaces.ILayer"/>
+</layers>
View
0  collective.cron/collective.cron/src/collective/cron/profiles/default/collective.cron_various.txt
No changes.
View
20 collective.cron/collective.cron/src/collective/cron/profiles/default/controlpanel.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<object name="portal_controlpanel"
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+ i18n:domain="collective.cron"
+ purge="False">
+<!--
+ <configlet
+ title="collective.cron Settings"
+ action_id="cron"
+ appId="collective.cron"
+ category="Products"
+ condition_expr=""
+ url_expr="string:${portal_url}/@@collective.cron-settings"
+ icon_expr="string:${portal_url}/++resource++collective.cron/collective.cron_icon.png"
+ visible="True"
+ i18n:attributes="title">
+ <permission>Manage portal</permission>
+ </configlet>
+-->
+</object>
View
26 collective.cron/collective.cron/src/collective/cron/profiles/default/cssregistry.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<object name="portal_css">
+ <!-- Stylesheets that will be registered with the portal_css tool are defined
+ here. You can also specify values for existing resources if you need to
+ modify some of their properties.
+ Stylesheet elements accept these parameters:
+ - 'id' (required): it must respect the name of the css or DTML file
+ (case sensitive). '.dtml' suffixes must be ignored.
+ - 'expression' (optional - default: ''): a tal condition.
+ - 'media' (optional - default: ''): possible values: 'screen', 'print',
+ 'projection', 'handheld'...
+ - 'rel' (optional - default: 'stylesheet')
+ - 'title' (optional - default: '')
+ - 'rendering' (optional - default: 'import'): 'import', 'link' or
+ 'inline'.
+ - 'enabled' (optional - default: True): boolean
+ - 'cookable' (optional - default: True): boolean (aka 'merging allowed')
+ - 'insert_before', 'insert_after' (optional - default: '') resource id
+ See registerStylesheet() arguments in
+ ResourceRegistries/tools/CSSRegistry.py for the latest list of all
+ available keys and default values.
+ -->
+ <!--
+ <stylesheet id="++resource++collective.cron/something.css"/>
+ -->
+</object>
View
20 collective.cron/collective.cron/src/collective/cron/profiles/default/jsregistry.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<object name="portal_javascripts">
+ <!-- Javascript files that will be registered with the
+ portal_javascripts tool are defined here. You can also specify values
+ for existing resources if you need to modify some of their properties.
+ Javascript elements accept these parameters:
+ - 'id' (required): same rules as for stylesheets (see
+ 'cssregistry.xml').
+ - 'expression' (optional - default: ''): a tal condition.
+ - 'inline' (optional - default: False)
+ - 'enabled' (optional - default: True): boolean
+ - 'cookable' (optional - default: True): boolean (aka 'merging allowed')
+ See registerScript() arguments in ResourceRegistries/tools/JSRegistry.py
+ for the latest list of all available keys and default values.
+ -->
+ <!--
+ <javascript id="++resource++collective.cron/something.js"/>
+ -->
+
+</object>
View
3  collective.cron/collective.cron/src/collective/cron/profiles/default/mailhost.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<object name="MailHost" meta_type="Secure Mail Host"
+ smtp_host="localhost" smtp_port="25"/>
View
12 collective.cron/collective.cron/src/collective/cron/profiles/default/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<metadata>
+ <version>1000</version>
+ <dependencies>
+ <!-- QuickInstalled dependencies -->
+ <dependency>profile-collective.cron:qi</dependency>
+ <!-- GenericSetup dependencies -->
+ <dependency>profile-plone.app.theming:default</dependency>
+ <dependency>profile-plone.multilingualbehavior:default</dependency>
+ <dependency>profile-plone.app.dexterity:default</dependency>
+ </dependencies>
+</metadata>
View
13 collective.cron/collective.cron/src/collective/cron/profiles/default/portlets.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<portlets
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+ i18n:domain="collective.cron">
+<!--
+ <portlet
+ addview="collective.cron.browser.portlet.Portlet"
+ title = "collective.cron portlet"
+ title = "Add a collective.cron portlet"
+ remove="True"
+ />
+-->
+</portlets>
View
13 collective.cron/collective.cron/src/collective/cron/profiles/default/properties.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<site>
+
+ <property name="title">collective</property>
+ <property name="description">Welcome to the collective website</property>
+ <property name="email_from_address"
+ type="string">testeur@makina-corpus.com</property>
+ <property name="email_from_name"
+ type="string">Portal Administrator</property>
+ <property name="validate_email" type="boolean">True</property>
+ <property name="email_charset" type="string">utf-8</property>
+
+</site>
View
6 collective.cron/collective.cron/src/collective/cron/profiles/default/registry.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<registry>
+ <!--
+ <records name="collective.cron.interfaces.ISomeInterface.something" />
+ -->
+</registry>
View
12 collective.cron/collective.cron/src/collective/cron/profiles/default/skins.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<object name="portal_skins" allow_any="False" cookie_persistence="False" default_skin="collective.cron">
+
+ <object name="collective_cron_custom"
+ meta_type="Filesystem Directory View"
+ directory="collective.cron:skins/collective_cron_custom"/>
+ <skin-path name="collective.cron" based-on="Sunburst Theme">
+ <layer name="collective_cron_custom"
+ insert-after="custom"/>
+ </skin-path>
+
+</object>
View
7 collective.cron/collective.cron/src/collective/cron/profiles/default/theme.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<theme>
+<!--
+ <name>collective.cron</name>
+ <enabled>true</enabled>
+-->
+</theme>
View
4 collective.cron/collective.cron/src/collective/cron/profiles/default/viewlets.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<object>
+
+</object>
View
0  collective.cron/collective.cron/src/collective/cron/profiles/qi/collective.cron_qi.txt
No changes.
View
5 collective.cron/collective.cron/src/collective/cron/profiles/uninstall/browserlayer.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<layers>
+ <layer remove="true" name="collective.cron-theme" interface="collective.cron.interfaces.IThemeSpecific"/>
+ <layer remove="true" name="collective.cron" interface="collective.cron.interfaces.ILayer"/>
+</layers>
View
0  collective.cron/collective.cron/src/collective/cron/profiles/uninstall/collective.cron_uninstallvarious.txt
No changes.
View
12 collective.cron/collective.cron/src/collective/cron/profiles/uninstall/controlpanel.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<object name="portal_controlpanel"
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+ i18n:domain="collective.nitf"
+ purge="True">
+<!--
+ <configlet
+ title="collective.cron Settings"
+ action_id="cron"
+ purge="True" />
+-->
+</object>
View
7 collective.cron/collective.cron/src/collective/cron/profiles/uninstall/cssregistry.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<object name="portal_css">
+
+<!--
+ <stylesheet remove="True" id="++resource++sb_resources/something.css" />
+-->
+</object>
View
6 collective.cron/collective.cron/src/collective/cron/profiles/uninstall/jsregistry.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<object name="portal_javascripts" meta_type="JavaScripts Registry">
+<!--
+ <javascript id="++resource++collective.cron/something.js" remove="True"/>
+-->
+</object>
View
3  collective.cron/collective.cron/src/collective/cron/profiles/uninstall/mailhost.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<object name="MailHost" meta_type="Secure Mail Host"
+ smtp_host="localhost" smtp_port="25"/>
View
12 collective.cron/collective.cron/src/collective/cron/profiles/uninstall/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<metadata>
+ <version>10</version>
+ <dependencies>
+ <!-- QuickInstalled dependencies -->
+ <dependency>profile-collective.cron:qi</dependency>
+ <!-- GenericSetup dependencies -->
+ <dependency>profile-plone.app.theming:default</dependency>
+ <dependency>profile-plone.multilingualbehavior:default</dependency>
+ <dependency>profile-plone.app.dexterity:default</dependency>
+ </dependencies>
+</metadata>
View
13 collective.cron/collective.cron/src/collective/cron/profiles/uninstall/portlets.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<portlets
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+ i18n:domain="collective.cron">
+<!--
+ <portlet
+ addview="collective.cron.browser.portlet.Portlet"
+ title = "collective.cron portlet"
+ title = "Add a collective.cron portlet"
+ remove="True"
+ />
+-->
+</portlets>
View
13 collective.cron/collective.cron/src/collective/cron/profiles/uninstall/properties.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<site>
+
+ <property name="title">collective</property>
+ <property name="description">Welcome to the collective website</property>
+ <property name="email_from_address"
+ type="string">testeur@makina-corpus.com</property>
+ <property name="email_from_name"
+ type="string">Portal Administrator</property>
+ <property name="validate_email" type="boolean">True</property>
+ <property name="email_charset" type="string">utf-8</property>
+
+</site>
View
6 collective.cron/collective.cron/src/collective/cron/profiles/uninstall/registry.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<registry>
+ <!--
+ <record name="collective.cron.interfaces.ISomeInterface.something" delete="true" />
+ -->
+</registry>
View
8 collective.cron/collective.cron/src/collective/cron/profiles/uninstall/skins.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<object name="portal_skins" allow_any="False" cookie_persistence="False" default_skin="collective.cron">
+
+ <object name="collective_cron_custom"
+ remove="True" />
+ <skin-path name="collective.cron"remove="True" />
+
+</object>
View
4 collective.cron/collective.cron/src/collective/cron/profiles/uninstall/viewlets.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<object>
+
+</object>
View
13 collective.cron/collective.cron/src/collective/cron/rebuild_i18n.sh
@@ -0,0 +1,13 @@
+#!/usr/bin/env bash
+PRODUCTNAME='collective.cron'
+I18NDOMAIN=$PRODUCTNAME
+i18ndude=$(which i18ndude)
+CWD=$(dirname $0)
+cd ${CWD}
+echo "Using ${i18ndude} in ${CWD}"
+# Synchronise the .pot with the templates.
+${i18ndude} rebuild-pot --pot locales/${PRODUCTNAME}.pot --merge locales/${PRODUCTNAME}-manual.pot --create ${I18NDOMAIN} .
+# Synchronise the resulting .pot with the .po files
+for po in locales/*/LC_MESSAGES/${PRODUCTNAME}.po;do
+ ${i18ndude} sync --pot locales/${PRODUCTNAME}.pot $po
+done
View
47 collective.cron/collective.cron/src/collective/cron/setuphandlers.py
@@ -0,0 +1,47 @@
+import logging
+import transaction
+from Products.CMFCore.utils import getToolByName
+
+from collective.cron import app_config
+from collective.cron.app_config import PRODUCT_DEPENDENCIES, EXTENSION_PROFILES
+
+
+def setupVarious(context):
+ """Miscellanous steps import handle.
+ """
+ logger = logging.getLogger('collective.cron / setuphandler')
+
+ # Ordinarily, GenericSetup handlers check for the existence of XML files.
+ # Here, we are not parsing an XML file, but we use this text file as a
+ # flag to check that we actually meant for this import step to be run.
+ # The file is found in profiles/default.
+
+ if context.readDataFile('collective.cron_various.txt') is None:
+ return
+
+ portal = context.getSite()
+
+def setupQi(context):
+ """Miscellanous steps import handle.
+ """
+ logger = logging.getLogger('collective.cron / setuphandler')
+
+ # Ordinarily, GenericSetup handlers check for the existence of XML files.
+ # Here, we are not parsing an XML file, but we use this text file as a
+ # flag to check that we actually meant for this import step to be run.
+ # The file is found in profiles/default.
+
+ if context.readDataFile('collective.cron_qi.txt') is None:
+ return
+
+ portal = context.getSite()
+ portal_quickinstaller = getToolByName(portal, 'portal_quickinstaller')
+ portal_setup = getToolByName(portal, 'portal_setup')
+ logger = logging.getLogger('collective.cron.Install')
+
+ for product in PRODUCT_DEPENDENCIES:
+ logger.info('(RE)Installing %s.' % product)
+ if not portal_quickinstaller.isProductInstalled(product):
+ portal_quickinstaller.installProduct(product)
+ transaction.savepoint()
+
View
0  collective.cron/collective.cron/src/collective/cron/skins/collective_cron_custom/.empty
No changes.
View
3  collective.cron/collective.cron/src/collective/cron/skins/collective_cron_custom/CONTENT.txt
@@ -0,0 +1,3 @@
+This folder holds Filesystem Image files that are registered for the
+'collective.cron' cron Selection only.
+They act as replacement for the default Plone (or 3rd party products) ones.
View
47 collective.cron/collective.cron/src/collective/cron/skins/collective_cron_custom/base_properties.props
@@ -0,0 +1,47 @@
+title:string=collective.cron's color, font, logo and border defaults
+
+plone_cron:string=collective.cron
+
+logoName:string=logo.jpg
+
+fontFamily:string="Lucida Grande", Verdana, Lucida, Helvetica, Arial, sans-serif
+fontBaseSize:string=69%
+fontColor:string=Black
+fontSmallSize:string=85%
+
+backgroundColor:string=White
+
+linkColor:string=#436976
+linkActiveColor:string=Red
+linkVisitedColor:string=Purple
+
+borderWidth:string=1px
+borderStyle:string=solid
+borderStyleAnnotations:string=dashed
+
+globalBorderColor:string=#8cacbb
+globalBackgroundColor:string=#dee7ec
+globalFontColor:string=#436976
+
+headingFontFamily:string="Lucida Grande", Verdana, Lucida, Helvetica, Arial, sans-serif
+
+contentViewBorderColor:string=#74ae0b
+contentViewBackgroundColor:string=#cde2a7
+contentViewFontColor:string=#578308
+
+inputFontColor:string=Black
+
+textTransform:string=lowercase
+
+evenRowBackgroundColor:string=#eef3f5
+oddRowBackgroundColor:string=transparent
+
+notifyBorderColor:string=#ffa500
+notifyBackgroundColor:string=#ffce7b
+
+discreetColor:string=#76797c
+helpBackgroundColor:string=#ffffe1
+
+portalMinWidth:string=70em
+columnOneWidth:string=16em
+columnTwoWidth:string=16em
View
BIN  collective.cron/collective.cron/src/collective/cron/skins/collective_cron_custom/favicon.ico
Binary file not shown
View
BIN  collective.cron/collective.cron/src/collective/cron/skins/collective_cron_custom/logo.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
99 collective.cron/collective.cron/src/collective/cron/skins/collective_cron_custom/ploneCustom.css.dtml
@@ -0,0 +1,99 @@
+
+/*
+ * This is the file where you put your CSS changes.
+ * You should preferrably use this and override the
+ * relevant properties you want to change here instead
+ * of customizing plone.css to survive upgrades. Writing
+ * your own plone.css only makes sense for very heavy
+ * customizations. Useful variables from Plone are
+ * documented at the bottom of this file.
+ */
+
+/* <dtml-with base_properties> (do not remove this :) */
+/* <dtml-call "REQUEST.set('portal_url', portal_url())"> (not this either :) */
+
+
+/* DELETE THIS LINE AND PUT YOUR CUSTOM STUFF HERE */
+
+
+
+
+/* </dtml-with> */
+
+/* DOCUMENTATION ON PRE-DEFINED PROPERTIES FROM PLONE */
+
+ /* You can insert colors and other variables from Plone's
+ base_properties by doing:
+
+ & dtml-variableName ; (without the spaces, excluded here to not make it render)
+
+ Example:
+
+ myLink {
+ color: & dtml-fontColor ; (again, without the spaces)
+ }
+
+ This means you can generate your own elements that use Plone's defaults,
+ and respect any customizations people have done. See base_properties for
+ the default values.
+
+ These are the available properties:
+
+ logoName - the file name of the portal logo
+
+ fontFamily - the font family used for all text that is not headers
+
+ fontBaseSize - the base font size that everything is calculated from
+
+ fontColor - the main font color
+
+ fontSmallSize - used for various elements like buttons and discreet text
+
+ discreetColor - the font color of discreet text
+
+ backgroundColor - the background color
+
+ linkColor - the color used on normal links
+
+ linkActiveColor - color used on active links
+
+ linkVisitedColor - color used on visited links
+
+ borderWidth - the width of most borders in Plone
+
+ borderStyle - the style of the border lines, normally solid
+
+ borderStyleAnnotations - style of border lines on comments etc
+
+ globalBorderColor - the border color used on the main tabs, the portlets etc
+
+ globalBackgroundColor - background color for the selected tabs, portlet headings etc
+
+ globalFontColor - the color of the font in the tabs and in portlet headings
+
+ headingFontFamily - font family for h1/h2/h3/h4/h5/h6 headlines
+
+ contentViewBorderColor - the content view tabs border color
+
+ contentViewBackgroundColor - the content view tabs background color
+
+ contentViewFontColor - the font color used in the content view tabs
+
+ inputFontColor - the font color used for input elements
+
+ textTransform - whether to lowercase text in portlets, tabs etc.
+
+ evenRowBackgroundColor - the background color of even rows in listings
+
+ oddRowBackgroundColor - the background color of even rows in listings
+
+ notifyBorderColor - border color of notification elements like the status message, the calendar focus
+
+ notifyBackgroundColor - background color of notification elements like the status message, the calendar focus
+
+ helpBackgroundColor - background color of information pop-ups (currently not used)
+
+ */
+
+
+/* Stylesheet for the 'collective.cron' Plone theme */
View
3  ...tive.cron/collective.cron/src/collective/cron/skins/collective_cron_custom/ploneCustom.css.dtml.metadata
@@ -0,0 +1,3 @@
+[default]
+title = Plone Custom CSS
+cache = HTTPCache
View
0  collective.cron/collective.cron/src/collective/cron/static/.empty
No changes.
View
9 collective.cron/collective.cron/src/collective/cron/static/index.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ </head>
+ <body>
+ Diazo theme running !
+ </body>
+</html>
View
15 collective.cron/collective.cron/src/collective/cron/static/rules.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<rules
+ xmlns="http://namespaces.plone.org/diazo"
+ xmlns:css="http://namespaces.plone.org/diazo/css"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <!-- Prevent theme usage in zmi-->
+ <rules css:if-content="#visual-portal-wrapper">
+ <theme href="index.html" />
+ </rules>
+ <notheme if-path="presentation_view"/>
+ <notheme if-path="source_editor.htm"/>
+ <notheme if-path="ploneimage.htm"/>
+ <notheme if-path="anchor.htm"/>
+ <notheme if-path="table.htm"/>
+</rules>
View
198 collective.cron/collective.cron/src/collective/cron/testing.py
@@ -0,0 +1,198 @@
+from Testing import ZopeTestCase as ztc
+import transaction
+from OFS.Folder import Folder
+
+import unittest2 as unittest
+
+from zope.configuration import xmlconfig
+
+from plone.app.testing import (
+ FunctionalTesting as BFunctionalTesting,
+ IntegrationTesting as BIntegrationTesting,
+ login,
+ PLONE_FIXTURE,
+ PloneSandboxLayer,
+ setRoles,
+ SITE_OWNER_NAME,
+ TEST_USER_ID,
+ TEST_USER_ID,
+ TEST_USER_NAME,
+ TEST_USER_NAME,
+ TEST_USER_ROLES,
+)
+from plone.app.testing.selenium_layers import (
+ SELENIUM_FUNCTIONAL_TESTING as SELENIUM_TESTING
+)
+from plone.testing import Layer, zodb, zca, z2
+
+TESTED_PRODUCTS = (\
+)
+
+
+from plone.app.testing.helpers import (
+ login,
+ logout,
+)
+
+PLONE_MANAGER_NAME = 'Plone_manager'
+PLONE_MANAGER_ID = 'plonemanager'
+PLONE_MANAGER_PASSWORD = 'plonemanager'
+
+def print_contents(browser, dest='~/.browser.html'):
+ """Print the browser contents somewhere for you to see its context
+ in doctest pdb, type print_contents(browser) and that's it, open firefox
+ with file://~/browser.html."""
+ import os
+ open(os.path.expanduser(dest), 'w').write(browser.contents)
+
+class Browser(z2.Browser):
+ def print_contents(browser, dest='~/.browser.html'):
+ return print_contents(browser, dest)
+
+class CollectiveCronLayer(PloneSandboxLayer):
+
+ defaultBases = (PLONE_FIXTURE, )
+ """Layer to setup the cron site"""
+ class Session(dict):
+ def set(self, key, value):
+ self[key] = value
+
+ def setUpZope(self, app, configurationContext):
+ """Set up the additional products required for the collective) site cron.
+ until the setup of the Plone site testing layer.
+ """
+ self.app = app
+ self.browser = Browser(app)
+ # old zope2 style products
+ z2.installProduct(app, 'Products.PythonScripts')
+ for product in TESTED_PRODUCTS:
+ z2.installProduct(product)
+
+ # ----------------------------------------------------------------------
+ # Import all our python modules required by our packages
+ # ---------------------------------------------------------------------
+ #with_ploneproduct_dexterity
+ import plone.app.dexterity
+ self.loadZCML('configure.zcml', package=plone.app.dexterity)
+ #with_ploneproduct_patheming
+ import plone.app.theming
+ self.loadZCML('configure.zcml', package=plone.app.theming)
+ import plone.app.themingplugins
+ self.loadZCML('configure.zcml', package=plone.app.themingplugins)
+
+ # -----------------------------------------------------------------------
+ # Load our own cron
+ # -----------------------------------------------------------------------
+ import collective.cron
+ self.loadZCML('configure.zcml', package=collective.cron)
+
+ # ------------------------------------------------------------------------
+ # - Load the python packages that are registered as Zope2 Products
+ # which can't happen until we have loaded the package ZCML.
+ # ------------------------------------------------------------------------
+
+ #with_ploneproduct_patheming
+ z2.installProduct(app, 'plone.app.theming')
+ z2.installProduct(app, 'plone.app.themingplugins')
+ z2.installProduct(app, 'collective.cron')
+
+ # -------------------------------------------------------------------------
+ # support for sessions without invalidreferences if using zeo temp storage
+ # -------------------------------------------------------------------------
+ app.REQUEST['SESSION'] = self.Session()
+ if not hasattr(app, 'temp_folder'):
+ tf = Folder('temp_folder')
+ app._setObject('temp_folder', tf)
+ transaction.commit()
+ ztc.utils.setupCoreSessions(app)
+
+ def setUpPloneSite(self, portal):
+ self.portal = portal
+ # Plone stuff. Workflows, portal content. Members folder, etc.
+ self.applyProfile(portal, 'Products.CMFPlone:plone')
+ self.applyProfile(portal, 'Products.CMFPlone:plone-content')
+ self.applyProfile(portal, 'collective.cron:default')
+
+
+class LayerMixin(Layer):
+ defaultBases = (CollectiveCronLayer() ,)
+
+ def testTearDown(self):
+ self.loginAsPortalOwner()
+ if 'test-folder' in self['portal'].objectIds():
+ self['portal'].manage_delObjects('test-folder')
+ self['portal'].portal_membership.deleteMembers([PLONE_MANAGER_NAME])
+ self.setRoles()
+ self.login()
+
+ def testSetUp(self):
+ if not self['portal']['acl_users'].getUser(PLONE_MANAGER_NAME):
+ self.loginAsPortalOwner()
+ self.add_user(
+ self['portal'],
+ PLONE_MANAGER_ID,
+ PLONE_MANAGER_NAME,
+ PLONE_MANAGER_PASSWORD,
+ ['Manager']+TEST_USER_ROLES)
+ self.logout()
+ self.login(TEST_USER_NAME)
+ self.setRoles(['Manager'])
+ if not 'test-folder' in self['portal'].objectIds():
+ self['portal'].invokeFactory('Folder', 'test-folder')
+ self['test-folder'] = self['folder'] = self['portal']['test-folder']
+ self.setRoles(TEST_USER_ROLES)
+
+ def add_user(self, portal, id, username, password, roles=None):
+ if not roles: roles = TEST_USER_ROLES[:]
+ self.loginAsPortalOwner()
+ pas = portal['acl_users']
+ pas.source_users.addUser(id, username, password)
+ self.setRoles(roles, id)
+ self.logout()
+
+ def setRoles(self, roles=None, id=None):
+ if roles is None:
+ roles = TEST_USER_ROLES
+ if id is None:
+ id = TEST_USER_ID
+ setRoles(self['portal'], id, roles)
+
+ def loginAsPortalOwner(self):
+ self.login(SITE_OWNER_NAME)
+
+ def logout(self):
+ logout()
+
+ def login(self, id=None):
+ if not id:
+ id = TEST_USER_NAME
+ try:
+ z2.login(self['app']['acl_users'], id)
+ except:
+ z2.login(self['portal']['acl_users'], id)
+
+class IntegrationTesting(LayerMixin, BIntegrationTesting):
+ def testSetUp(self):
+ BIntegrationTesting.testSetUp(self)
+ LayerMixin.testSetUp(self)
+
+class FunctionalTesting(LayerMixin, BFunctionalTesting):
+ def testSetUp(self):
+ BFunctionalTesting.testSetUp(self)
+ LayerMixin.testSetUp(self)
+
+
+class SimpleLayer(Layer):
+ defaultBases = tuple()
+
+
+COLLECTIVE_CRON_SIMPLE = SimpleLayer(name='CollectiveCron:Simple')
+
+COLLECTIVE_CRON_FIXTURE = CollectiveCronLayer()
+COLLECTIVE_CRON_INTEGRATION_TESTING = IntegrationTesting(name = "CollectiveCron:Integration")
+COLLECTIVE_CRON_FUNCTIONAL_TESTING = FunctionalTesting( name = "CollectiveCron:Functional")
+COLLECTIVE_CRON_SELENIUM_TESTING = FunctionalTesting(bases = (SELENIUM_TESTING,
+ COLLECTIVE_CRON_FUNCTIONAL_TESTING,),
+ name = "CollectiveCron:Selenium")
+
+# vim:set ft=python:
View
0  collective.cron/collective.cron/src/collective/cron/tests/__init__.py
No changes.
View
71 collective.cron/collective.cron/src/collective/cron/tests/base.py
@@ -0,0 +1,71 @@
+import unittest2 as unittest
+
+from collective.cron.testing import (
+ COLLECTIVE_CRON_FIXTURE as UNIT_TESTING,
+ COLLECTIVE_CRON_INTEGRATION_TESTING as INTEGRATION_TESTING,
+ COLLECTIVE_CRON_FUNCTIONAL_TESTING as FUNCTIONAL_TESTING,
+ COLLECTIVE_CRON_SELENIUM_TESTING as SELENIUM_TESTING,
+)
+from collective.cron.tests.globals import *
+
+################################################################################
+"""
+
+
+Lot of files generated by the collective.generic packages will try to load user defined objects in user specific files.
+The final goal is to regenerate easyly the test infrastructure on templates updates without impacting
+user-specific test boilerplate.
+We do not use paster local commands (insert/update) as it cannot determine witch is specific or not and we prefer to totally
+separe generated stuff and what is user specific
+
+
+"""
+################################################################################
+
+
+class TestCase(unittest.TestCase):
+ """We use this base class for all the tests in this package.
+ If necessary, we can put common utility or setup code in here.
+ """
+ layer = UNIT_TESTING
+
+ def setUp(self):
+ super(TestCase, self).setUp()
+ self.app = self.layer['app']
+ self.portal = self.layer['portal']
+ self.folder = self.layer['test-folder']
+
+ def add_user(self, id, username, password, roles=None):
+ self.layer.add_user( id, username, password, roles=None)
+
+ def logout(self):
+ self.layer.logout()
+
+ def login(self, user=None):
+ if not user: user = TEST_USER_NAME
+ login(self.portal, user)
+
+ def loginAsPortalOwner(self):
+ self.layer.loginAsPortalOwner()
+
+ def loginAsManager(self):
+ self.login(PLONE_MANAGER_NAME)
+
+ def setRoles(self, roles=None, id=None):
+ self.layer.setRoles(roles, id)
+
+class IntegrationTestCase(TestCase):
+ """Integration base TestCase."""