Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Default content types for Plone based on Dexterity

Project Description

Introduction

plone.app.contenttypes offers default content types for Plone based on Dexterity. This package is a replacement for the types in Products.ATContenttypes.

Warning: plone.app.contenttypes is best used when creating a new site from scratch. Using it on a site with existing content is not recommended if you don’t know exactly what you’re doing!

It contains the same types as default Plone does:

  • Folder
  • Document
  • News item
  • File
  • Image
  • Link
  • Event (this will be replaced by plone.app.event soon)
  • Collection (this is provided by plone.app.collection)

The main difference from a users perspective is that these types are extendable through-the-web. This means you can go to the control-panel (.../@@dexterity-types) and add or remove fields and behaviors for the existing types.

The aim is to mimick the old default-types as closely as possible, not to change the content-creation experience for editors.

There is a PLIP to include plone.app.contenttypes in Plone 4.4: https://dev.plone.org/ticket/12344

Compatability

plone.app.contenttypes works with Plone 4.1+

Installation

Add this line in the eggs section of your buildout.cfg:

eggs =
    ...
    plone.app.contenttypes

Installing plone.app.contenttypes in an existing Plone-site

When you try to install plone.app.contenttypes in a existing site you might get the following error:

  (...)
  Module Products.GenericSetup.utils, line 509, in _importBody
  Module Products.CMFCore.exportimport.typeinfo, line 60, in _importNode
  Module Products.GenericSetup.utils, line 730, in _initProperties
ValueError: undefined property 'schema'

Before installing plone.app.contenttypes you have to reinstall plone.app.collection to update collections to the version that uses Dexterity.

What happens to old content?

The old Archetypes-based content still exists and can be viewed but can’t be edited. On installation plone.app.contenttypes removes the type-definitions for the old default-types like this:

<object name="Document" remove="True" />

You can also migrate the old items to the types provided by plone.app.contenttypes (see the section about migrations).

Uninstalling

To remove plone.app.contenttypes, return full functionality to old content and restore the AT-based default-types you have to install the import step “Types Tool” of the current base profile. Follow the following steps:

  • in the ZMI navigate to portal_setup and the tab “import”
  • in “Select Profile or Snapshot” leave “Current base profile (<Name of your Plonesite>)” selected. This is usually Products.CMFPlone
  • select the Types Tool (usually Step 44)
  • click “import selected steps”

Migration

Warning: Migrations are still in an very early stage and might break your site! plone.app.contenttypes is best used when creating a new site from scratch. Please proceed at your own risk!

For migrations to work you need at least Products.contentmigration = 2.1.3 which was not released at the time of writing.

This version plone.app.contenttypes comes with migrations for the following use-cases:

  • from default Archetypes-based types to plone.app.contenttypes
  • from older versions of plone.app.contenttypes to current versions

Migrations that will be will come in the future:

  • from old p.a.c.-event to plone.app.event
  • from default ATEvent to plone.app.event
  • from ATTopic to DX-plone.app.collections
  • from AT-plone.app.collection to DX-plone.app.collections

Migrating Archetypes-based content to plone.app.contenttypes

plone.app.contenttypes can migrate the following types:

  • Folder
  • Document
  • News item
  • File
  • Image
  • Link

To migrate existing content go to /@@migrate_from_atct.

TODO:

  • disable linkintegrity
  • LP
  • Plone-Version older tan 4.1.x need plone.app.intid

Migrating content that is translated with LinguaPlone

Warning: This use-case has not yet been thoroughly tested!*

Since LinguaPlone does not support Dexterity you need to migrate from LinguaPlone to plone.app.multilingual (http://pypi.python.org/pypi/plone.app.multilingual). The migration from Products.LinguaPlone to plone.app.multilingual should happen before the migration from Archetypes to plone.app.contenttypes. For details on the migration see http://pypi.python.org/pypi/plone.app.multilingual#linguaplone-migration

Migrating from old versions of plone.app.contenttypes

Before version 1.0a2 the content-items did not implement marker-interfaces. They will break in newer versions since the views are now registered for these interfaces (e.g. plone.app.contenttypes.interfaces.IDocument`). To fix this you can call the view ``/@@fix_base_classes on your site-root.

Migrating content that was extended with archetypes.schemaextender

The migration should warn you if your typs are extended with archetypes.schemaextender. The data contained in these fields will be lost.

How to create a new page with only Dexterity

You have two options:

1. By hand

Installing plone.app.contenttypes remove the types automatically, you only have to remove the existing content (front-page, events, news, members).

2. Automatically

If you start from scratch you can want to try using a special branch of Products.CMFPlone that gives you the choice between Dexterity and Archetypes when creating a new site. This way you get a brand new site with

Modify your buildout to automatically pull the branch using mr.developer (http://pypi.python.org/pypi/mr.developer):

[buildout]
extensions = mr.developer
auto-checkout =
    Products.CMFPlone
    Products.ATContentTypes

[sources]
Products.CMFPlone = git https://github.com/plone/Products.CMFPlone.git branch=plip-12344-plone.app.contenttypes
Products.ATContentTypes = git https://github.com/plone/Products.ATContentTypes.git branch=davisagli-optional-archetypes

Differences to Products.ATContentTypes

The image of the News Item is not a field on the contenttype but a behavior that can add a image to any contenttypes (similar to http://pypi.python.org/pypi/collective.contentleadimage)

Dependencies

  • plone.app.dexterity. Dexterity is shipped with Plone 4.3.x. Version pinns for Dexterity are included in Plone 4.2.x. For Plone 4.1.x you need to pinn the correct version for Dexterity in your buildout. See “Installing Dexterity on older versions of Plone” on http://plone.org/products/dexterity/documentation/how-to/install.
  • plone.app.collection.

Information for Addon-Developers

Differences to ATContentTypes Interfaces

How to:

  • extend the types ttw or with xml ()
  • export a extended CT into a package to overwrite the default
  • extend with behaviors
  • make types transateable
  • Addon-Products that are known to work with p.a.c

License

GNU General Public License, version 2

Contributors

TODO: add all contributors

Thanks to

  • The organizers of the Plone-Conference 2011 in San Francisco for a great conference!
  • The organizers of the Wine-and-Beer-Sprint in Munich and Capetown in January 2013
  • The creators of Dexterity

Changelog

1.0b2 (2013-05-31)

  • Fix translations to the plone domain, and some translations match existing translations in the plone domain. (ported from plone.app.collection) [bosim]
  • Fix atct_album_view and don’t use atctListAlbum.py [pbauer]
  • Add constrains for content create with the Content profile [ericof]
  • Add SearchableText indexer to Folder content type [ericof]
  • Fix atct_album_view [pbauer]
  • Removed dependency for collective.dexteritydiff since its features were merged into Products.CMFDiffTool [pbauer]
  • Add test for behavior table_of_contents [pbauer]
  • Add migration for blobnewsitems as proposed in https://github.com/plone/plone.app.blob/pull/2 [pbauer]
  • Require cmf.ManagePortal for migration [pbauer]
  • Always migrate files and images to blob (fixes #26) [pbauer]
  • Add table of contents-behavior for documents [pbauer]
  • Add versioning-behavior and it’s dependencies [pbauer]
  • Remove image_view_fullscreen from the display-dropdown [pbauer]
  • Enable selecting addable types on folders by default [pbauer]
  • Fix reference-migrations if some objects were not migrated [pbauer]
  • Keep the order references when migrating [pabo3000]
  • Move templates into their own folder [pbauer]
  • Moved migration related code to specific module [gborelli]
  • Added migration Collection from app.collection to app.contenttypes [kroman0]
  • Add missing i18n:attributes to ‘Edit’ and ‘View’ actions of File type. [saily]
  • Bind ‘View’ action to ${object_url}/view instead of ${object_url} as in ATCT for File and Image type. [saily]
  • Fixed installation of p.a.relationfield together with p.a.contenttypes. [kroman0]
  • Fixed creating aggregator of events on creating Plone site. [kroman0]
  • Added titles for menuitems. [kroman0]
  • Hide uninstall profile from @@plone-addsite. [kroman0]
  • Fix ‘ImportError: cannot import name Counter’ for Python 2.6. http://github.com/plone/plone.app.contenttypes/issues/19 [timo]
  • Move XML schema definitions to schema folder. [timo]
  • Prevent the importContent step from being run over and over again. [pysailor]
  • Add build status image. [saily]
  • Merge plone.app.collection (Tag: 2.0b5) into plone.app.contenttypes. [timo]
  • Refactor p.a.collection robot framework tests [timo]

1.0b1 (2013-01-27)

  • Added mime type icon for file. [loechel]
  • Lead image behavior added. [timo]
  • Make NewsItem use the lead image behavior. [timo]
  • SearchableText indexes added. [reinhardt]
  • Set the text of front-page when creating a new Plone [pbauer]
  • Robot framework test added. [Gomez]

1.0a2 (unreleased)

  • Move all templates from skins to browser views. [timo]
  • User custom base classes for all content types. [timo]
  • Migration view (@@fix_base_classes) added to migrate content objects that were created with version 1.0a1. [timo]
  • Mime Type Icon added for File View [loechel]

1.0a1 (unreleased)

  • Initial release
Release History

Release History

History Node

1.4.5

History Node

1.4.4

History Node

1.4.3

History Node

1.4.2

History Node

1.4.1

History Node

1.4

History Node

1.3.0

History Node

1.2.26

History Node

1.2.25

History Node

1.2.24

History Node

1.2.23

History Node

1.2.22

History Node

1.2.21

History Node

1.2.20

History Node

1.2.19

History Node

1.2.18

History Node

1.2.17

History Node

1.2.16

History Node

1.2.15

History Node

1.2.14

History Node

1.2.13

History Node

1.2.12

History Node

1.2.11

History Node

1.2.10

History Node

1.2.9

History Node

1.2.8

History Node

1.2.7

History Node

1.2.6

History Node

1.2.5

History Node

1.2.4

History Node

1.2.3

History Node

1.2.2

History Node

1.2.1

History Node

1.2.0

History Node

1.2b4

History Node

1.2b3

History Node

1.2b2

History Node

1.2b1

History Node

1.2a9

History Node

1.2a8

History Node

1.2a7

History Node

1.2a6

History Node

1.2a5

History Node

1.2a4

History Node

1.2a3

History Node

1.2a2

History Node

1.2a1

History Node

1.1.5

History Node

1.1.4

History Node

1.1.3

History Node

1.1.2

History Node

1.1.1

History Node

1.1

History Node

1.1b6

History Node

1.1b5

History Node

1.1b4

History Node

1.1b3

History Node

1.1b2

History Node

1.1b1

History Node

1.1a1

History Node

1.0

History Node

1.0rc1

This version
History Node

1.0b2

History Node

1.0b1

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
plone.app.contenttypes-1.0b2.zip (322.7 kB) Copy SHA256 Checksum SHA256 Source May 31, 2013

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting