Skip to content

Commit

Permalink
Add entrypoint, bobregistry and docs for subscriber template
Browse files Browse the repository at this point in the history
  • Loading branch information
MrTango committed May 31, 2019
1 parent 959d712 commit 2192110
Show file tree
Hide file tree
Showing 5 changed files with 129 additions and 53 deletions.
1 change: 1 addition & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ These templates are meant to be used inside a package which was created by the a
- behavior
- content_type
- restapi_service
- subscriber
- theme
- theme_barceloneta
- view
Expand Down
8 changes: 8 additions & 0 deletions bobtemplates/plone/bobregistry.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,3 +104,11 @@ def plone_restapi_service():
reg.plonecli_alias = 'restapi_service'
reg.depend_on = 'plone_addon'
return reg


def plone_subscriber():
reg = RegEntry()
reg.template = 'bobtemplates.plone:subscriber'
reg.plonecli_alias = 'subscriber'
reg.depend_on = 'plone_addon'
return reg
71 changes: 71 additions & 0 deletions docs/templates/addon/subscriber/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
=========================
Subscriber sub-template
=========================

.. topic:: Description

Adding a subscriber to an existing add-on package.


With this sub-template, you can add an event subscriber (handler) to a Plone add-on package.

First create a Plone add-on package:

.. code-block:: shell
mrbob -O collective.todo bobtemplates.plone:addon
then change into the created folder ``collective.todo`` and create your first View:

.. code-block:: shell
mrbob bobtemplates.plone:subscriber
It will ask you for the subscriber handler file name and then creates this file in the subscribers folder. This file contains a handler method which you customize to your needs.


Example
=======

.. code-block:: shell
$ cd collective.todo
Add a subscriber
----------------------------

.. code-block:: shell
$ mrbob bobtemplates.plone:subscriber
Welcome to mr.bob interactive mode. Before we generate directory structure, some questions need to be answered.
Answer with a question mark to display help.
Values in square brackets at the end of the questions show the default value if there is no answer.
RUN: git status --porcelain --ignore-submodules
Git state is clean.
--> Subscriber handler file name (without extension) [obj_modified_do_something]: obj_mod_clear_cache
>>> reading Plone version from bobtemplate.cfg
rename example zcml file
Should we run?:
git add .
git commit -m "Add subscriber: obj_mod_clear_cache"
in: /home/maik/develop/src/bobtemplates.plone/tmp/collective.todo
[y]/n:
RUN: git add .
RUN: git commit -m "Add subscriber: obj_mod_clear_cache"
[master 53d7e16] "Add subscriber: obj_mod_clear_cache"
5 files changed, 47 insertions(+)
create mode 100644 src/collective/todo/subscribers/__init__.py
create mode 100644 src/collective/todo/subscribers/configure.zcml
create mode 100644 src/collective/todo/subscribers/obj_mod_clear_cache.py
create mode 100644 src/collective/todo/tests/test_subscriber_obj_mod_clear_cache.py
Generated file structure at /home/maik/develop/src/bobtemplates.plone/tmp/collective.todo
1 change: 0 additions & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ lines_after_imports = 2
line_length = 200
not_skip =
__init__.py

skip =

[flake8]
Expand Down
101 changes: 49 additions & 52 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,74 +4,71 @@
from setuptools import setup


version = '4.0.6.dev0'
version = "4.0.6.dev0"


long_description = '\n\n'.join([
open('README.rst').read(),
open('CONTRIBUTORS.rst').read(),
open('CHANGES.rst').read(),
])
long_description = "\n\n".join(
[
open("README.rst").read(),
open("CONTRIBUTORS.rst").read(),
open("CHANGES.rst").read(),
]
)


setup(
name='bobtemplates.plone',
name="bobtemplates.plone",
version=version,
description='Templates for Plone projects.',
description="Templates for Plone projects.",
long_description=long_description,
classifiers=[
'Environment :: Console',
'Intended Audience :: Developers',
'Natural Language :: English',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: Implementation :: CPython',
'Development Status :: 5 - Production/Stable',
'Topic :: Software Development :: Code Generators',
'Topic :: Utilities',
'License :: OSI Approved :: GNU General Public License v2 (GPLv2)',
"Environment :: Console",
"Intended Audience :: Developers",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: Implementation :: CPython",
"Development Status :: 5 - Production/Stable",
"Topic :: Software Development :: Code Generators",
"Topic :: Utilities",
"License :: OSI Approved :: GNU General Public License v2 (GPLv2)",
],
keywords='web plone zope skeleton project',
author='Plone Foundation',
author_email='plone-developers@lists.sourceforge.net',
url='https://github.com/plone/bobtemplates.plone/',
keywords="web plone zope skeleton project",
author="Plone Foundation",
author_email="plone-developers@lists.sourceforge.net",
url="https://github.com/plone/bobtemplates.plone/",
project_urls={
'PyPI': 'https://pypi.python.org/pypi/bobtemplates.plone',
'Documentation': 'https://bobtemplatesplone.readthedocs.io/en/latest/',
'Source': 'https://github.com/plone/bobtemplates.plone/',
'Tracker': 'https://github.com/plone/bobtemplates.plone/issues',
"PyPI": "https://pypi.python.org/pypi/bobtemplates.plone",
"Documentation": "https://bobtemplatesplone.readthedocs.io/en/latest/",
"Source": "https://github.com/plone/bobtemplates.plone/",
"Tracker": "https://github.com/plone/bobtemplates.plone/issues",
},
license='GPL version 2',
packages=find_packages(exclude=['ez_setup']),
namespace_packages=['bobtemplates'],
license="GPL version 2",
packages=find_packages(exclude=["ez_setup"]),
namespace_packages=["bobtemplates"],
include_package_data=True,
zip_safe=False,
install_requires=[
'setuptools',
'mr.bob',
'lxml',
'case-conversion',
'colorama',
],
install_requires=["setuptools", "mr.bob", "lxml", "case-conversion", "colorama"],
setup_requires=[],
tests_require=[],
extras_require={},
entry_points={
'mrbob_templates': [
'plone_addon = bobtemplates.plone.bobregistry:plone_addon',
'plone_buildout = bobtemplates.plone.bobregistry:plone_buildout', # NOQA E501
'plone_theme_package = bobtemplates.plone.bobregistry:plone_theme_package', # NOQA E501
'plone_content_type = bobtemplates.plone.bobregistry:plone_content_type', # NOQA E501
'plone_view = bobtemplates.plone.bobregistry:plone_view',
'plone_viewlet = bobtemplates.plone.bobregistry:plone_viewlet',
'plone_portlet = bobtemplates.plone.bobregistry:plone_portlet',
'plone_theme = bobtemplates.plone.bobregistry:plone_theme',
'plone_theme_barceloneta = bobtemplates.plone.bobregistry:plone_theme_barceloneta', # NOQA E501
'plone_vocabulary = bobtemplates.plone.bobregistry:plone_vocabulary', # NOQA E501
'plone_behavior = bobtemplates.plone.bobregistry:plone_behavior', # NOQA E501
'plone_restapi_service = bobtemplates.plone.bobregistry:plone_restapi_service', # NOQA E501
],
"mrbob_templates": [
"plone_addon = bobtemplates.plone.bobregistry:plone_addon",
"plone_behavior = bobtemplates.plone.bobregistry:plone_behavior",
"plone_buildout = bobtemplates.plone.bobregistry:plone_buildout",
"plone_content_type = bobtemplates.plone.bobregistry:plone_content_type",
"plone_portlet = bobtemplates.plone.bobregistry:plone_portlet",
"plone_subscriber = bobtemplates.plone.bobregistry:plone_subscriber",
"plone_restapi_service = bobtemplates.plone.bobregistry:plone_restapi_service", # NOQA E501
"plone_theme = bobtemplates.plone.bobregistry:plone_theme",
"plone_theme_barceloneta = bobtemplates.plone.bobregistry:plone_theme_barceloneta", # NOQA E501
"plone_theme_package = bobtemplates.plone.bobregistry:plone_theme_package",
"plone_view = bobtemplates.plone.bobregistry:plone_view",
"plone_viewlet = bobtemplates.plone.bobregistry:plone_viewlet",
"plone_vocabulary = bobtemplates.plone.bobregistry:plone_vocabulary",
]
},
)

0 comments on commit 2192110

Please sign in to comment.