Introduction¶
bobtemplates.plone
provides a
mr.bob
template to generate packages for Plone projects.
To create a package like
collective.myaddon
:
$ pip install bobtemplates.plone
$ mrbob -O collective.myaddon bobtemplates:plone_addon
You can also create a package with nested namespace:
$ mrbob -O collective.foo.myaddon bobtemplates:plone_addon
Options¶
On creating a package you can choose from the following options. The default value is in [square brackets]:
- Package Type? [Basic]
- Options are Basic, Dexterity and Theme.
- Author's name
- Should be something like 'John Smith'.
- Author's email
- Should be something like 'john@plone.org'.
- Author's github username
- Should be something like 'john'.
- Package description [An add-on for Plone]
- One-liner describing what this package does. Should be something like 'Plone add-on that ...'.
- Plone version [4.3.7]
- Which Plone version would you like to use?
Features¶
Package created with
bobtemplates.plone
use the current best-practices when creating an addon.
- Buildout
- The package is contained in a buildout that allows you to build Plone with the new package installed for testing-purposes.
- Tests
- The package comes with a test setup and some tests for installing the package. It also contains a robot-test that tests logging in. The buildout also contains a config to allow testing the package on travis that sends notifications by email to the package autor.
- Profile
- The package contains a Generic Setup Profile that installs a browserlayer. For Plone 5 it also contains a uninstall-profile.
- Locales
- The package registers a directory for locales.
- Template-Overrides
-
The package registers the folder
browser/overrides
as a directory where you can drop template-overrides using z3c.jbot. - Setuphandler
- The package contains a setuphandlers.py where you can add code that is executed on installing the package. For Plone 5 there is also a method in setuphandler.py that is run on uninstalling.
The package-types Dexterity and Theme add the following to Basic:
- Dexterity
-
Adds a simple content-type (you get asked about its name)
in
profiles/default/types/
with a python-schema ininterfaces.py
. - Theme
-
Adds a simple bootstrap-based Diazo theme in the folder
theme/
and registers it inprofiles/default/theme.xml
Compatibility¶
Addons created with
bobtemplates.plone
are tested to work in Plone 4.3.x and Plone 5. They should
also work with older versions but that was not tested. It
should work on Linux, Mac and Windows.
Installation¶
Use in a buildout¶
[buildout]
parts += mrbob
[mrbob]
recipe = zc.recipe.egg
eggs =
mr.bob
bobtemplates.plone
This creates a mrbob-executeable in your bin-directory.
Call it from the
src
-directory of your Plone project like this.:
$ ../bin/mrbob -O collective.foo bobtemplates:plone_addon
Installation in a virtualenv¶
You can also install
bobtemplates.plone
in a virtualenv.:
$ pip install bobtemplates.plone
With
pip
6.0
or newer
mr.bob
will automatically be installed as a dependency. If you
still use a older version of pip you need install
mr.bob
before
bobtemplates.plone
.:
$ pip install mr.bob
Now you can use it like this:
$ mrbob -O collective.foo bobtemplates:plone_addon
See mr.bob documentation for further information.