Skip to main content

ZopeSkel templates for dexterity

Project description


Dexterity is a content-type development tool for Plone. It supports Through-The-Web and filesystem development of new content types for Plone.

zopeskel.dexterity provides a mechanism to quickly create Dexterity add on skeletons. It also makes it easy to add new content types to an existing skeleton. New content types built with this tool will support round-trip elaboration with Dexterity’s TTW schema editor.

This is a development tool. You should be familiar with Plone and buildout to use it. You should have already installed Dexterity in your Plone development instance and be ready to start learning to use it.


zopeskel.dexterity is meant for use with the ZopeSkel 2.x series. It is not compatible with ZopeSkel > 3.0dev (aka Templer). For Dexterity templates for use with Templer, use templer.dexterity.

zopeskel.dexterity 1.5+ is meant for use with Plone 4.3+. If you’re using an earlier version of Plone, pick the latest zopeskel.dexterity 1.4.x.

Add these lines into buildout:

parts =

recipe = zc.recipe.egg
eggs =
   ZopeSkel < 3.0dev

And run the buildout


Creating a dexterity content package, typically done in your buildout’s src directory:

../bin/zopeskel dexterity

Adding a content-type skeleton to an existing package:

cd yourbuildout/src/your-product
../../bin/paster addcontent dexterity_content

Adding a behavior skeleton:

cd yourbuildout/src/your-product
../../bin/paster addcontent dexterity_behavior


Egg Directories

In order to support local commands, ZopeSkel/Paster will create Paste, PasteDeploy and PasteScript eggs inside your product. These are only needed for development. You can and should remove them from your add-on distribution.


If you hit and error like this:

pkg_resources.DistributionNotFound: Not Found for: my.product (did you run python develop?)

when attempting to run paster addcontent, then you need to ensure that Paster knows about all the relevant eggs from your buildout.

Add ${instance:eggs} to your paster section in your buildout, thusly:

recipe = zc.recipe.egg
eggs =
entry-points = paster=paste.script.command:run

where instance is the name of your plone.recipe.zope2instance section. Re-run the buildout and the issue should be resolved.


1.5.4 (2013-12-11)

  • fixed improper code template for Python content class

  • base class of generated content class code was always Container (without taking the ‘folderish’ value of the configuration into account). [ajung]

1.5.3 (2013-07-28)

  • Restore relations support as an option. [smcmahon]

1.5.2 ~ (2013-06-02)

  • Use plone.directives.form.model.schema for grok’d Schema. [smcmahon]

1.5.1 ~ (2013-05-29)

  • Offer no-grok option in initial product creation questions. [smcmahon]

  • Remove deprecated relations extra. [smcmahon]

1.5.0 ~ (2013-04-09)

  • Backport rudimentary content type tests from templer.dexterity. [smcmahon]

  • Dexterity 2 is deemphasizing the Item type in favor of containers which may or may not allow contents. Adjusted question and actions to match. [smcmahon]

  • grok no longer has automatic “static” resource directory. Wire in a new one with zcml. Name it “resources” to distinguish it from the old grok magic. Document in its own readme. [smcmahon]

  • Cover Plone 4.3 dependencies. Add “[grok, relations]” to dependencies. [smcmahon]

1.4.1 ~ 2012-12-29

  • Fixed issue with ZopeSkel 3.x series, for moment, it is pinning version ‘ZopeSkel<=2.21.2’ as a dependency requirement for install. [macagua]

1.4 ~ 2011-10-29

  • Minor revisions to bring into closer accord with PP4 and current Dexterity Developers’ Manual. [smcmahon]

  • Add blob support [smcmahon]

1.3 ~ 2011-05-22

  • Added README.txt to static folder in dexterity template. [smcmahon]

  • Changed metadata.xml template to start with an integer of 1 rather than the package version number. [davidjb]

1.3b3 ~ 2011-05-13

  • Add a working sample integration doctest. [smcmahon]

1.3b2 ~ 2011-05-13

  • Restore dotted filenames for new content types. Content types in file system addons need to be robustly installable in systems that may already have simple add-on names. [smcmahon]

1.3b1 ~ 2011-05-07

  • Removed content field and view local command templates. My rationale for removing the field template is that most novice developers should be using TTW models and taking advantage of supermodel round-tripping. Those who are comfortable with schema fields are probably not likely to be using a tool like ZopeSkel to add them. The rationale for removing the view template is simpler: it’s main functionality is now in the content-type template. [smcmahon]

  • Add sample view definition with addition of a content type. [smcmahon]

  • Revise to use filenames that will match those created by dexterity’s export buttons. This means removing the dotted filename style. [smcmahon]

  • Revise to use grok-style directory structures that will more closely correspond with the dexterity docs. [smcmahon]

1.2.2 ~ 2011-04-18

  • Fixed issues when locales folder was lost in the packaging and thus was not able to start Plone 4.1 with the generated product present. Packaging probably prunes empty folders, included a dummy README.txt file there. [mikko ohtamaa]

1.2.1 ~ 2011-04-08

  • Release 1.2 of zopeskel.dexterity is not installable with python2.4 due to a bug in the tarfile module. Added setup.cfg that forces using the –formats=zip option when creating an sdist; this solves the problem on python2.4. [maurits]

1.2 ~ 2011-01-13

  • dexterity_behavior_field localcommand now also adds the relevant setter/getter/deleter in the adapter. [kagesenshi]

1.2.1 ~ unreleased

  • Release 1.2 of zopeskel.dexterity is not installable with python2.4 due to a bug in the tarfile module. Added setup.cfg that forces using the –formats=zip option when creating an sdist; this solves the problem on python2.4. [maurits]

1.2 ~ 2011-01-13

  • dexterity_behavior_field localcommand now also adds the relevant setter/getter/deleter in the adapter. [kagesenshi]

1.1b2 ~ 2010-11-23

  • Fixed indentation in the module generated by dexterity_behavior local command. It was using 3 spaces instead of 4 spaces. [esartor]

  • Added import for the i18n message factory to the dexterity_behavior local command. [esartor]

1.1b1 ~ 2010-06-21

  • Correcting date type fields to use schema.Date rather than schema.Datetime. Using Datetime caused an incorrect widget being used, leading to issues in KSS validation and not being able to save content. [davidjb]

  • Updating collective.z3cform.datetimewidget widgets locations. The old locations are now deprecated. [davidjb]

  • Wrapped Dexterity content title/description fields in MessageFactory call [davidjb]

  • Added note about Paster and potentially missing eggs to readme [davidjb]


  • added ability to add fields to the content type and behavior schema [vangheem]

  • moved to zopeskel.dexterity package from collective.dexteritypaste [vangheem]


  • Initial release

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution (44.9 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page