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.
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Calvin Hendryx Parker Tips For Migrating Apps To Plone 3
1. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
Tips for Migrating Apps to
Plone 3
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
2. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
Questions?
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
3. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
How Do We Get There?
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
4. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
Zope Won’t Start
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
5. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
Deprecated Methods and Imports
• Products.CMFCore.CMFPermissions
Products.CMFCore.permissions
• Products.CMFPlone.utils.BrowserView
Products.Five.BrowserView
• toPortalTime finally gone
• toLocalizedTime now in the @@plone view
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
6. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
Getting Current
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
7. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
Update your type info
• Remove Sharing Tab
• Remove Properties Tab
• Add Lock Awareness to the Edit Tab
condition_expr=quot;not:object/
@@plone_lock_info/
is_locked_for_current_user|python:Truequot;
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
8. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
Life Changing Decisions
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
9. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
Taking Advantage of Zope 3
• View Classes
• Create Utilities instead of Portal Tools
• Use MenuItems to add custom Actions
• Zope 3 Events
manage_afterAdd
manage_beforeDelete
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
10. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
ZCML
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
11. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
<configure
xmlns=quot;http://namespaces.zope.org/zopequot;>
<subscriber
for=quot;Products.OER.interfaces.IOERItem
OFS.interfaces.IObjectWillBeRemovedEventquot;
handler=quot;.subscribers.deleteSubmissionsquot;/>
<subscriber
for=quot;Products.OER.interfaces.IOERTag
zope.app.event.interfaces.IObjectModifiedEventquot;
handler=quot;.subscribers.checkTagsquot;/>
<subscriber
for=quot;Products.OER.interfaces.IOERSubmission
OFS.interfaces.IObjectWillBeAddedEventquot;
handler=quot;.subscribers.changeStateHomeFolderquot;/>
</configure>
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
12. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
def deleteSubmissions(self, event):
quot;quot;quot;
Delete the submissions attached to the object we just come from deleting
quot;quot;quot;
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)
...
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
13. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
GenericSetup
• Replaces Customization Policies
• Replaces the old Install.py for QuickInstaller
• Upgrade Steps
Versatile One Time Steps
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
14. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
<configure
xmlns=quot;http://namespaces.zope.org/zopequot;
xmlns:genericsetup=quot;http://namespaces.zope.org/genericsetupquot;
i18n_domain=quot;plonequot;>
<genericsetup:registerProfile
name=quot;defaultquot;
title=quot;AdvancedDocument Profilequot;
directory=quot;profiles/defaultquot;
description=quot;Extension profile for the AdvancedDocument Productquot;
provides=quot;Products.GenericSetup.interfaces.EXTENSIONquot;
/>
<genericsetup:upgradeStep
title=quot;Update Catalogquot;
description=quot;Update the Catalogquot;
source=quot;0.4quot;
destination=quot;0.5quot;
handler=quot;Products.AdvancedDocument.upgrades.updatecatalog.updateCatalogquot;
sortkey=quot;1quot;
profile=quot;Products.AdvancedDocument:defaultquot;
/>
</configure>
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
15. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
16. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
Setting up Versioning
• GenericSetup export/import broken
• Setup via a setup handler
• Register via your product
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
17. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
<?xml version=quot;1.0quot;?>
<import-steps>
<import-step id=quot;versioningsetupquot; version=quot;20070828-01quot;
handler=quot;Products.AdvancedDocument.exportimport.versioningsetup.versioningSetupquot;
title=quot;Versioning Setupquot;>
<dependency step=quot;contentquot;/>
Add versioning on our selected content types
</import-step>
</import-steps>
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
18. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
def versioningSetup(context):
quot;quot;quot;Setup portal_factory
quot;quot;quot;
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)
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
19. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
People Skills
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
20. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
GRUF and PAS
• PAS added as default in 2.5
• GRUF completely removed in 3.0
• User and Group Searching Done via PAS
directly
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
21. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
New Roles
• Reader
• Editor
• Contributor
Add your custom add permissions to this role
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
22. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
Portlets
• Viewlets
• Viewlet Manager
• Classic Portlet
Performance Issues
left and right slots properties gone
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
23. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
<configure xmlns=quot;http://namespaces.zope.org/zopequot;
xmlns:plone=quot;http://namespaces.plone.org/plonequot;>
<plone:portlet
name=quot;portlets.Adsquot;
interface=quot;.portlets.ads.IAdPortletquot;
assignment=quot;.portlets.ads.Assignmentquot;
renderer=quot;.portlets.ads.Rendererquot;
addview=quot;.portlets.ads.AddFormquot;
editview=quot;.portlets.ads.EditFormquot;
/>
</configure>
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
24. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
Leverage Other New
Features
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
25. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
Additional Markup and Field
Support
• textile
• markdown
• wiki style linking
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
26. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
Don’t Forget the Basics
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
27. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
Catalog Enhancements
• ExtendedPathIndex
• New Date Indexes
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
28. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
Leverage the Registries
• CSS
• Javascript
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com
29. Tips for Migrating Apps to Plone 3 - Calvin Hendryx-Parker 10.11.2007
Questions?
Silicon Valley • Midwest
Six Feet Up, Inc. • http://www.sixfeetup.com