tips for migrating apps to plone 3

Post on 04-Dec-2014

4.694 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Plone has undergone several rounds of changes and developers need to make sure their applications evolve with it in a graceful manner. Review powerful new tools that have been created to ease Plone development. Learn how your products can take advantage of Plone 3's improved user-experience.Unleash the power of Zope 3 using Five to utilize views, viewlets, events and utilities. Learn how to leverage migration steps in GenericSetup. Find out what methods are now deprecated in Plone 3.Developers will walk away with the knowledge needed to keep their applications current.

TRANSCRIPT

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

10.11.2007Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

Tips for Migrating Apps to Plone 3

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

10.11.2007Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

Questions?

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

10.11.2007Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

How Do We Get There?

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

10.11.2007Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

Zope Won’t Start

10.11.2007

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

• Products.CMFCore.CMFPermissions

Products.CMFCore.permissions

• Products.CMFPlone.utils.BrowserView

Products.Five.BrowserView

• toPortalTime finally gone

• toLocalizedTime now in the @@plone view

Deprecated Methods and Imports

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

10.11.2007Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

Getting Current

10.11.2007

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

• Remove Sharing Tab

• Remove Properties Tab

• Add Lock Awareness to the Edit Tab

condition_expr="not:object/@@plone_lock_info/is_locked_for_current_user|python:True"

Update your type info

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

10.11.2007Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

Life Changing Decisions

10.11.2007

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

• View Classes

• Create Utilities instead of Portal Tools

• Use MenuItems to add custom Actions

• Zope 3 Events

manage_afterAdd

manage_beforeDelete

Taking Advantage of Zope 3

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

10.11.2007Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

ZCML

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

10.11.2007Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

<configure xmlns="http://namespaces.zope.org/zope">

<subscriber for="Products.OER.interfaces.IOERItem OFS.interfaces.IObjectWillBeRemovedEvent" handler=".subscribers.deleteSubmissions"/>

<subscriber for="Products.OER.interfaces.IOERTag zope.app.event.interfaces.IObjectModifiedEvent" handler=".subscribers.checkTags"/>

<subscriber for="Products.OER.interfaces.IOERSubmission OFS.interfaces.IObjectWillBeAddedEvent" handler=".subscribers.changeStateHomeFolder"/>

</configure>

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

10.11.2007Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

def deleteSubmissions(self, event): """ Delete the submissions attached to the object we just come from deleting """ item = event.object

# we delete the tags/ratings/reviews/notes associated with this item ps = getToolByName(self, 'portal_submissions') pc = getToolByName(self, 'portal_catalog')

targets = ps.getTargets(item) ...

10.11.2007

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

• Replaces Customization Policies

• Replaces the old Install.py for QuickInstaller

• Upgrade Steps

Versatile One Time Steps

GenericSetup

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

10.11.2007Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

<configure xmlns="http://namespaces.zope.org/zope" xmlns:genericsetup="http://namespaces.zope.org/genericsetup" i18n_domain="plone">

<genericsetup:registerProfile name="default" title="AdvancedDocument Profile" directory="profiles/default" description="Extension profile for the AdvancedDocument Product" provides="Products.GenericSetup.interfaces.EXTENSION" />

<genericsetup:upgradeStep title="Update Catalog" description="Update the Catalog" source="0.4" destination="0.5" handler="Products.AdvancedDocument.upgrades.updatecatalog.updateCatalog" sortkey="1" profile="Products.AdvancedDocument:default" /></configure>

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

10.11.2007Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

10.11.2007

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

Setting up Versioning• GenericSetup export/import broken

• Setup via a setup handler

• Register via your product

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

10.11.2007Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

<?xml version="1.0"?><import-steps>

<import-step id="versioningsetup" version="20070828-01" handler="Products.AdvancedDocument.exportimport.versioningsetup.versioningSetup" title="Versioning Setup"> <dependency step="content"/> Add versioning on our selected content types </import-step> </import-steps>

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

10.11.2007Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

def versioningSetup(context): """Setup portal_factory """ site = context.getSite()

portal_repository = getToolByName(site, 'portal_repository') portal_diff = getToolByName(site, 'portal_diff') versionable_types = list(portal_repository.getVersionableContentTypes()) type_ids = ['AdvancedDocument', ] for type_id in type_ids: if type_id not in versionable_types: versionable_types.append(type_id) for policy_id in DEFAULT_POLICIES: portal_repository.addPolicyForContentType(type_id, policy_id) diff_res = portal_diff.getDiffForPortalType(type_id) if not diff_res: portal_diff.manage_addDiffField(type_id, 'any', 'Compound Diff for AT types')

portal_repository.setVersionableContentTypes(versionable_types)

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

10.11.2007Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

People Skills

10.11.2007

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

• PAS added as default in 2.5

• GRUF completely removed in 3.0

• User and Group Searching Done via PAS directly

GRUF and PAS

10.11.2007

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

• Reader

• Editor

• Contributor

Add your custom add permissions to this role

New Roles

10.11.2007

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

• Viewlets

• Viewlet Manager

• Classic Portlet

Performance Issues

left and right slots properties gone

Portlets

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

10.11.2007Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

<configure xmlns="http://namespaces.zope.org/zope" xmlns:plone="http://namespaces.plone.org/plone"> <plone:portlet name="portlets.Ads" interface=".portlets.ads.IAdPortlet" assignment=".portlets.ads.Assignment" renderer=".portlets.ads.Renderer" addview=".portlets.ads.AddForm" editview=".portlets.ads.EditForm" />

</configure>

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

10.11.2007Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

Leverage Other New Features

10.11.2007

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

• textile

• markdown

• wiki style linking

Additional Markup and Field Support

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

10.11.2007Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

Don’t Forget the Basics

10.11.2007

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

• ExtendedPathIndex

• New Date Indexes

Catalog Enhancements

10.11.2007

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

• CSS

• Javascript

Leverage the Registries

Six Feet Up, Inc. • http://www.sixfeetup.com Silicon Valley • Midwest

10.11.2007Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker

Questions?

top related