A Look at Plone 4

4,960 views
4,839 views

Published on

The story of Plone 4. What's changed and how we got there.

Published in: Technology
1 Comment
10 Likes
Statistics
Notes
No Downloads
Views
Total views
4,960
On SlideShare
0
From Embeds
0
Number of Embeds
43
Actions
Shares
0
Downloads
129
Comments
1
Likes
10
Embeds 0
No embeds

No notes for slide
  • which absolutely none of you came to hear, but I’m going to tell you about anyway.
  • Part the first, in which things are needlessly convoluted.
  • We had two releases, Plone 3 and Plone 4.
  • We had two releases, Plone 3 and Plone 4.
  • Plone 3 had all sorts of things

    Plone 4 had all sorts of plans
  • Plone 3 had all sorts of things

    Plone 4 had all sorts of plans
  • Plone 3 had all sorts of things

    Plone 4 had all sorts of plans
  • Plone 3 had all sorts of things

    Plone 4 had all sorts of plans
  • Plone 3 had all sorts of things

    Plone 4 had all sorts of plans
  • Plone 3 had all sorts of things

    Plone 4 had all sorts of plans
  • Plone 3 had all sorts of things

    Plone 4 had all sorts of plans
  • Plone 3 had all sorts of things

    Plone 4 had all sorts of plans
  • Plone 3 had all sorts of things

    Plone 4 had all sorts of plans
  • Plone 3 had all sorts of things

    Plone 4 had all sorts of plans
  • Plone 3 had all sorts of things

    Plone 4 had all sorts of plans
  • Plone 3 had all sorts of things

    Plone 4 had all sorts of plans
  • Plone 3 had all sorts of things

    Plone 4 had all sorts of plans
  • Plone 3 had all sorts of things

    Plone 4 had all sorts of plans
  • Plone 3 had all sorts of things

    Plone 4 had all sorts of plans
  • Plone 3 had all sorts of things

    Plone 4 had all sorts of plans
  • The problem was, we were looking at 3 years between releases and huge migrations for everyone.
  • And so we said, “well, some of this is actually ready...now”.
  • So let’s make a new major release!

    It’ll be like Plone 3, but with some of the things from Plone 4. People get will get some of the new features much sooner and they’ll have a much simpler migration.
  • And everybody said yaaay!
  • And let’s call it Plone 3.5!
  • And everybody said Nooo!
  • Because of what I’ve been calling the “Dot Release Contract”

    Though, while researching for this presentation, Google informed me that I’m the only one to ever actually use the term. Here’s how we make it canon...
  • So we said, “here’s what we’ll do...”
  • We’ll take the release we’ve been calling Plone 4 and call it Plone 5.
  • “And then we’ll call this new one Plone 4 instead!”

    [deadpan/sarcastic] Because that won’t confuse anybody...
  • And everybody sorta just shrugged.
  • And so, let me introduce
  • The intent of the release was to make this primarily a transitional release which means
  • Part the second, in which I give an overly-detailed description of...
  • ...the PLIP process.
  • So what’s a PLIP?
  • == Motivation ==
    Why does this proposal exist and what problem does it solve?

    == Assumptions ==
    What is being covered by and what is intentionally left out of the scope of the proposal.

    == Proposal & Implementation ==
    What needs to be done, and how should it be done?

    == Deliverables ==
    What code and documentation needs to be produced?

    == Risks ==
    What are the risks of implementing this proposal?
    What incompatibilities can it cause?
  • And before we could accept those proposals, we needed a framework team.
    And the primary duty of the Framework Team is to evaluate PLIPs for inclusion into the release.
  • And before we could accept those proposals, we needed a framework team.
    And the primary duty of the Framework Team is to evaluate PLIPs for inclusion into the release.
  • And before we could accept those proposals, we needed a framework team.
    And the primary duty of the Framework Team is to evaluate PLIPs for inclusion into the release.
  • 3 series, Plone 5
  • And we threw in Plone 2.5‘s release manager, Alec Mitchell, for good measure. Eight people sounded like a lot, but really worked out rather well because of what happened next.
  • And as release manager, it’s my job to remind, push, prod, nag, cajole, and occasionally shame everyone into getting their work done.
  • And as release manager, it’s my job to remind, push, prod, nag, cajole, and occasionally shame everyone into getting their work done.
  • And as release manager, it’s my job to remind, push, prod, nag, cajole, and occasionally shame everyone into getting their work done.
  • And as release manager, it’s my job to remind, push, prod, nag, cajole, and occasionally shame everyone into getting their work done.
  • And as release manager, it’s my job to remind, push, prod, nag, cajole, and occasionally shame everyone into getting their work done.
  • And as release manager, it’s my job to remind, push, prod, nag, cajole, and occasionally shame everyone into getting their work done.
  • So Deadline 1 was PLIP submission. We gave everyone two weeks to get their proposals in.

    I figured we’d be lucky to see 10.
  • We got a record 58.
  • After an initial evaluation by the Framework Team, we were down to 41.
  • 33 actual implementations were submitted to the Framework Team who dug through the code and made suggestions for improvements.


    Then handed those back to the implementers and gave them 3 weeks to revise their work accordingly.
  • At this point, I need to give a big thanks to

    for pitching in for these reviews. We never would’ve made it through otherwise.
  • So then we handed those critiques back to the implementers and gave them 3 weeks to revise their work accordingly.
  • And then it was time for the final up or down vote on each. 26 made the cut.
  • Again, a record for Plone.
  • Done.
  • So basically I went through all of that for one reason. There are a lot of people who worked extremely hard to put together this release in a very short amount of time. They all deserve a round of applause. And, if I might make a suggestion, a round or more of free beers.
  • [reduces the risk of Plone being unable to adopt third party
    packages that depend on newer Python features]
  • RelStorage, which means it’s easier to store data in relational databases and use their clustering and replication features.

    And Blob storage, which lets us save file content to the filesystem outside of the Data.fs.
  • Funkload tests run for us by Ross Patterson.
  • Using Plone 2.5 as the baseline performance measurement.
  • Then Plone 3.0
  • 3.3
  • And 4.0
  • We can see that Plone 4.0 responds nearly twice as fast at low loads and as we get up into higher loads, it’s performing nearly 5 times better than Plone 2.5.
  • And responds around twice as fast as Plone 3.3.
  • And another graph.
  • This time, we’re looking at performance while adding new content to the site.
  • Once again, using Plone 2.5 as the baseline.
  • We can see that Plone 4 runs anywhere from 2.5 to 4.5 times faster than Plone 2.5, again with much better relative response times at higher loads.
  • And up to 3 times as fast as Plone 3.3
  • Also of note, Plone 3.3 performs worse than 3.0 in this test. Now that we have this benchmarking set up, we can hopefully catch regressions like these before we release.
  • Hanno ran some numbers for page load times using apache benchmark and found that
    44% increase in speed
    35% increase in speed
    19% increase in speed
  • SecureMailHost was added in Plone 2.1 to support Transport Layer Security encryption.

    That was made redundant by changes to Zope 2.11’s MailHost.

    Quoted-printable instead of base64 which should make them less likely to get flagged by spam filters.
  • Plone currently ships with two types of folders.
  • Plone currently ships with two types of folders.
  • Basically a large plone folder,

    but with ordering support

    Provides an ordering adapter which allows you to specify exactly which content types will be orderable within a folder.
  • Basically a large plone folder,

    but with ordering support

    Provides an ordering adapter which allows you to specify exactly which content types will be orderable within a folder.
  • Basically a large plone folder,

    but with ordering support

    Provides an ordering adapter which allows you to specify exactly which content types will be orderable within a folder.
  • 40% increase in speed
    30% increase in speed
  • Simplify the process of adding new roles to Plone’s sharing view by adding some new GenericSetup functionality.

    This is a port from collective.sharingroles.
  • And this is what the GenericSetup XML would look like.
  • Hanno has pointed out another instance of plone.app.blob in production: Norden.org, built by Jarn, which has a 6 gig data.fs and another 16 gigs of file content in blob-storage. It scales quite nicely.
  • Take advantage of changes in CMF
  • Take advantage of changes in CMF
  • Why’s this so great?
  • They’ve just opened Plone up to a potential 1.5 billion new users.
  • Billion
  • The main intent behind this theme was to be intentionally boring. Something that looked good, but was simple enough that a company could slap their own logo in there and call it a finished site.

    It’s built on the Deco grid system which lets you define layout very easily.
  • The main intent behind this theme was to be intentionally boring. Something that looked good, but was simple enough that a company could slap their own logo in there and call it a finished site.

    It’s built on the Deco grid system which lets you define layout very easily.
  • The main intent behind this theme was to be intentionally boring. Something that looked good, but was simple enough that a company could slap their own logo in there and call it a finished site.

    It’s built on the Deco grid system which lets you define layout very easily.
  • The main intent behind this theme was to be intentionally boring. Something that looked good, but was simple enough that a company could slap their own logo in there and call it a finished site.

    It’s built on the Deco grid system which lets you define layout very easily.
  • The main intent behind this theme was to be intentionally boring. Something that looked good, but was simple enough that a company could slap their own logo in there and call it a finished site.

    It’s built on the Deco grid system which lets you define layout very easily.
  • The main intent behind this theme was to be intentionally boring. Something that looked good, but was simple enough that a company could slap their own logo in there and call it a finished site.

    It’s built on the Deco grid system which lets you define layout very easily.
  • Roel Bruggink
  • Provides the option to expose Dublin Core metadata for any object in the HTML meta tags.
  • A PLIP so big it apparently defies my attempts to display it on one line.
  • Replaces Products.ATReferenceBrowserWidget
    Provides large performance improvements over its predecessor
    It supports more reference field implementations OOTB and is easier to plug into new ones.
    It’s easy to override the popup template
    Proper test coverage
  • Replaces Products.ATReferenceBrowserWidget
    Provides large performance improvements over its predecessor
    It supports more reference field implementations OOTB and is easier to plug into new ones.
    It’s easy to override the popup template
    Proper test coverage
  • Replaces Products.ATReferenceBrowserWidget
    Provides large performance improvements over its predecessor
    It supports more reference field implementations OOTB and is easier to plug into new ones.
    It’s easy to override the popup template
    Proper test coverage
  • Replaces Products.ATReferenceBrowserWidget
    Provides large performance improvements over its predecessor
    It supports more reference field implementations OOTB and is easier to plug into new ones.
    It’s easy to override the popup template
    Proper test coverage
  • Replaces Products.ATReferenceBrowserWidget
    Provides large performance improvements over its predecessor
    It supports more reference field implementations OOTB and is easier to plug into new ones.
    It’s easy to override the popup template
    Proper test coverage
  • This is Products.TinyMCE which has been available for use in Plone 3 for a while now. This PLIP is one of those Plone 5 changes that we’re preparing everyone for since TinyMCE is an integral part of the Deco UI.

    We’re integrating this as the default rich text editor for Plone 4, but we’re still including Kupu for backwards compatibility reasons.
  • The configuration options look very similar to Kupu’s as well.
  • Like Mac screenshots or downloads from Flickr
  • This is another highly requested feature.
  • This is another highly requested feature.
  • This is another highly requested feature.
  • This is another highly requested feature.
  • We’re stealing the Zope startup page from the Unified Installer. This provides a much friendlier view for new Plone users.

    Create a new Plone site from here. And you’ll also see any migration warnings here.
  • The new Plone site form has also been revamped. Once again, trying to provide a much friendlier experience for new users. The general idea is to keep newbies out of the ZMI for as long as possible.

    Have the option to skip the example content (front-page, news, events)

    You’ll have the ability to chose which (already downloaded) products should be automatically installed in that new site.
  • The new Plone site form has also been revamped. Once again, trying to provide a much friendlier experience for new users. The general idea is to keep newbies out of the ZMI for as long as possible.

    Have the option to skip the example content (front-page, news, events)

    You’ll have the ability to chose which (already downloaded) products should be automatically installed in that new site.
  • The new Plone site form has also been revamped. Once again, trying to provide a much friendlier experience for new users. The general idea is to keep newbies out of the ZMI for as long as possible.

    Have the option to skip the example content (front-page, news, events)

    You’ll have the ability to chose which (already downloaded) products should be automatically installed in that new site.
  • And if you’ve been following the growing debate over Setuptools and Distribute, Plone will be throwing its rather sizable weight behind Distribute.
  • Configurable and extensible comment forms using z3c.form
  • Configurable and extensible comment forms using z3c.form
  • Configurable and extensible comment forms using z3c.form
  • Configurable and extensible comment forms using z3c.form
  • A Look at Plone 4

    1. 1. A Look At Plone 4 P l o n e C o n f e r e n c e 2 0 0 9
    2. 2. Introductions
    3. 3. Introductions • Eric Steele
    4. 4. Introductions • Eric Steele • esteele on IRC
    5. 5. Introductions • Eric Steele • esteele on IRC • Product Developer @ WebLion
    6. 6. Introductions • Eric Steele • esteele on IRC • Product Developer @ WebLion • GloWorm, FacultyStaffDirectory
    7. 7. Introductions • Eric Steele • esteele on IRC • Product Developer @ WebLion • GloWorm, FacultyStaffDirectory • Plone 4 Release Manager
    8. 8. First things first...
    9. 9. We are not renaming magnets topics smart folders collections in Plone 4.
    10. 10. So...
    11. 11. The boring backstory...
    12. 12. Part the First: Needlessly convoluted
    13. 13. Once upon a time... (ie March 2009)
    14. 14. Plone 3
    15. 15. Plone 3 Plone 4
    16. 16. Plone 3 Plone 4
    17. 17. Plone 3 Plone 4 •KSS
    18. 18. Plone 3 Plone 4 •KSS •Wicked
    19. 19. Plone 3 Plone 4 •KSS •Wicked •NuPlone
    20. 20. Plone 3 Plone 4 •KSS •Wicked •NuPlone •Zope 2.10
    21. 21. Plone 3 Plone 4 •KSS •Wicked •NuPlone •Zope 2.10 •Versioning
    22. 22. Plone 3 Plone 4 •KSS •Wicked •NuPlone •Zope 2.10 •Versioning •Content Rules
    23. 23. Plone 3 Plone 4 •KSS •Wicked •NuPlone •Zope 2.10 •Versioning •Content Rules •OpenID
    24. 24. Plone 3 Plone 4 •KSS •KSS •Wicked •NuPlone •Zope 2.10 •Versioning •Content Rules •OpenID
    25. 25. Plone 3 Plone 4 •KSS •KSS •Wicked •Wicked •NuPlone •Zope 2.10 •Versioning •Content Rules •OpenID
    26. 26. Plone 3 Plone 4 •KSS •KSS •Wicked •Wicked •NuPlone •NuPlone •Zope 2.10 •Versioning •Content Rules •OpenID
    27. 27. Plone 3 Plone 4 •KSS •KSS •Wicked •Wicked •NuPlone •NuPlone •Zope 2.10 •Zope 2.12 •Versioning •Content Rules •OpenID
    28. 28. Plone 3 Plone 4 •KSS •KSS •Wicked •Wicked •NuPlone •NuPlone •Zope 2.10 •Zope 2.12 •Versioning •Deco/Blocks/TinyMCE •Content Rules •OpenID
    29. 29. Plone 3 Plone 4 •KSS •KSS •Wicked •Wicked •NuPlone •NuPlone •Zope 2.10 •Zope 2.12 •Versioning •Deco/Blocks/TinyMCE •Content Rules •Dexterity •OpenID
    30. 30. Plone 3 Plone 4 •KSS •KSS •Wicked •Wicked •NuPlone •NuPlone •Zope 2.10 •Zope 2.12 •Versioning •Deco/Blocks/TinyMCE •Content Rules •Dexterity •OpenID •WSGI
    31. 31. Plone 3 Plone 4 •KSS •KSS •Wicked •Wicked •NuPlone •NuPlone •Zope 2.10 •Zope 2.12 •Versioning •Deco/Blocks/TinyMCE •Content Rules •Dexterity •OpenID •WSGI •BLOB support
    32. 32. Plone 3 Plone 4 •KSS •KSS •Wicked •Wicked •NuPlone •NuPlone •Zope 2.10 •Zope 2.12 •Versioning •Deco/Blocks/TinyMCE •Content Rules •Dexterity •OpenID •WSGI •BLOB support •Rework folder classes
    33. 33. Plone 3 Plone 4 August, 2007 Late 2010?
    34. 34. Plone 3 Plone 4 •KSS •KSS •Wicked •Wicked •NuPlone •NuPlone •Zope 2.10 •Zope 2.12 •Versioning •Deco/Blocks/TinyMCE •Content Rules •Dexterity compatibility •OpenID •WSGI •BLOB support •Rework folder classes
    35. 35. Plone 3 Plone 4 [New Release]
    36. 36. Yay!
    37. 37. Plone 3 Plone 4 Plone 3.5?
    38. 38. No!
    39. 39. The “Dot Release Contract”
    40. 40. The “Dot Release Contract” Expected Migration Headache 0 1 2 3 Number of Dots
    41. 41. The “Dot Release Contract” Release Size Expected Migration 3 Ugh. 3.x Eh. 3.x.y *pfft*
    42. 42. The “Dot Release Contract” Release Size Expected Migration 3 Ugh. 3.x Eh. 3.x.y *pfft*
    43. 43. The “Dot Release Contract” Release Size Expected Migration 3 Ugh. 3.x Eh. 3.x.y *pfft*
    44. 44. The “Dot Release Contract” Release Size Expected Migration 3 Ugh. 3.x Eh. 3.x.y *pfft*
    45. 45. The “Dot Release Contract” Release Size Expected Migration 3 Ugh. 3.x Eh. 3.x.y *pfft*
    46. 46. The “Dot Release Contract” Release Size Expected Migration 3 Ugh. 3.x Eh. 3.x.y *pfft*
    47. 47. The “Dot Release Contract” Release Size Expected Migration 3 Ugh. 3.x Eh. 3.x.y *pfft*
    48. 48. Plone 3 Plone 4
    49. 49. Plone 3 Plone 4 5
    50. 50. Plone 3 Plone 4 5 Plone 4!
    51. 51. ...
    52. 52. And so...
    53. 53. The New Plone 4
    54. 54. The New Plone 4 (Just like the old Plone 4, but not)
    55. 55. The New Plone 4 (Just like the old Plone 4, but not) (No, it doesn’t have Deco)
    56. 56. The New Plone 4 • “Transitional Release” • Infrastructure improvements for Plone 5 • Low-cost migration from Plone 3 • Aggressive timeline • Small featureset
    57. 57. Part the Second: Needlessly detailed
    58. 58. PLIP Process
    59. 59. What’s a PLIP?
    60. 60. PLIPs • “PLone Improvement Proposal” • Detailed plan for: • Addition • Removal • Substantial changes
    61. 61. PLIPs • Motivation • Assumptions • Proposed Implementation • Deliverables • Risks • Participants
    62. 62. Framework Team
    63. 63. Framework Team • Evaluate proposals for inclusion into the release
    64. 64. Framework Team • Evaluate proposals for inclusion into the release • Vote on those evaluations
    65. 65. Framework Team • Evaluate proposals for inclusion into the release • Vote on those evaluations • Make recommendations to the release manager
    66. 66. Finding a Framework Team Plone 3 Plone 5 •Danny Bloemendaal •David Glick •Tom Lazaar •Calvin Hendryx-Parker •Martijn Pieters •Martijn Pieters •Raphael Ritz •Ross Patterson •Andreas Zeidler •Erik Rose •Laurence Rowe •Matthew Wilkes
    67. 67. Finding a Framework Team Plone 4 •Danny Bloemendaal •David Glick •Tom Lazaar •Calvin Hendryx-Parker •Martijn Pieters •Martijn Pieters •Raphael Ritz •Ross Patterson •Andreas Zeidler •Erik Rose •Laurence Rowe •Matthew Wilkes
    68. 68. Finding a Framework Team Plone 4 •Danny Bloemendaal •David Glick •Tom Lazaar •Calvin Hendryx-Parker •Martijn Pieters •Martijn Pieters •Raphael Ritz •Ross Patterson •Andreas Zeidler •Erik Rose •Laurence Rowe •Alec Mitchell •Matthew Wilkes
    69. 69. PLIP Process
    70. 70. PLIP Process Framework Team
    71. 71. PLIP Process Implementer Framework Team
    72. 72. PLIP Process Implementer Framework Team Submit
    73. 73. PLIP Process Implementer Framework Team Submit Vote
    74. 74. PLIP Process Implementer Framework Team Submit Vote Implement
    75. 75. PLIP Process Implementer Framework Team Submit Vote Implement Review
    76. 76. PLIP Process Implementer Framework Team Submit Vote Implement Review Vote
    77. 77. PLIP Process Implementer Framework Team Submit Vote Implement Review Revise Vote
    78. 78. PLIP Process Implementer Framework Team Submit Vote Implement Review Revise Vote Re-Review
    79. 79. PLIP Process Implementer Framework Team Submit Vote Implement Review Revise Vote Re-Review Vote
    80. 80. PLIP Process Implementer Framework Team Submit Vote Implement Review Revise Vote Merge Re-Review Vote
    81. 81. PLIP Process Implementer Framework Team Submit Vote Implement Review Revise Vote Merge Re-Review Vote Plone 4!
    82. 82. PLIP Process Release Manager Implementer Framework Team Submit Vote Implement Review Revise Vote Merge Re-Review Vote Plone 4!
    83. 83. PLIP Process Release Manager Remind Implementer Framework Team Submit Vote Implement Review Revise Vote Merge Re-Review Vote Plone 4!
    84. 84. PLIP Process Release Manager Remind Push Implementer Framework Team Submit Vote Implement Review Revise Vote Merge Re-Review Vote Plone 4!
    85. 85. PLIP Process Release Manager Remind Push Implementer Framework Team Prod Submit Vote Implement Review Revise Vote Merge Re-Review Vote Plone 4!
    86. 86. PLIP Process Release Manager Remind Push Implementer Framework Team Nag Prod Submit Vote Implement Review Revise Vote Merge Re-Review Vote Plone 4!
    87. 87. PLIP Process Release Manager Remind Push Implementer Framework Team Nag Prod Submit Vote Implement Review Cajole Revise Vote Merge Re-Review Vote Plone 4!
    88. 88. PLIP Process Release Manager Remind Push Implementer Framework Team Nag Prod Submit Vote Implement Review Shame Cajole Revise Vote Merge Re-Review Vote Plone 4!
    89. 89. Deadline 1: PLIP Submissions 2 Weeks
    90. 90. Initial PLIP Submissions • 7822: Make standard file content types use ZODB BLOB support • 9286: Allow to show/hide portlets • 8801: Move action icon support into actions, remove CMFActionIcons • 9288: Improved commenting infrastructure • 8802: Move our upgrade / migration infrastructure to GenericSetup • 9292: Group management delegation • 8805: Do not ship with NuPlone anymore • 9295: Improved UI for collections • 8808: Require Python 2.5 or 2.6, Zope 2.12, and CMF 2.2 for Plone 4.0 • 9300: Well formed, valid XHTML • 8809: Make KSS optional • 9302: Improving the event type with recurrence, etc. • 8814: Replace SecureMailHost with a standard Zope mailhost • 9305: Use real names instead of usernames • 8901: Deleting a user should revoke roles • 9309: Better search for East Asian (multi-byte) languages. • 9186: Set Image IDs from Title field • 9310: User registration process more flexible • 9210: Folderish pages • 9311: Clean up of user related actions UI • 9214: support logins using e-mail address instead of user id • 9312: New roles : Webmaster/site administrator and novice users • 9236: Include ""CachableRedirects"" or equivalent functionality • 9313: Mobile View with Mobile Image selection options • 9249: Add TinyMCE as the default visual editor • 9314: Plone "Developer Pack" option for installers • 9250: Add jQuery Tools to base install • 9315: New theme for Plone 4 • 9256: Expand variable substitution in mailing action of plone.app.contentrules • 9316: Unify folder implementations • 9258: Replace Products.ATReferenceBrowserWidget with • 9319: Merging archetypes.fieldtraverser into Products.Archetypes archetypes.referencebrowserwidget • 9320: Add global status bar for site notifications • 9259: Group dashboards • 9321: Reimplement the search form with an eye on usability • 9263: GenericSetup syntax for importing Sharing page roles • 9322: Ensure that Plone 4 can upgrade Zope on Windows and Mac OS X via • 9264: Merge backport patches from plone.app.dexterity into Plone binary eggs • 9270: Stop using fill-slot column_one_slot and two in standard templates • 9323: Ship with Vice for syndication • 9271: Improving the search results page • 9324: Use Amberjack to offer guided help for first-time users • 9272: Exposing and editing Dublin Core properties • 9327: unified interface for lists of content • 9274: Remove actions tab from folder_contents • 9328: content im-/export • 9279: Making document actions optional • 9329: Manage actions through-the-plone • 9281: Use dashboard as social networking tool • 9330: Add ability to choose group when adding new site members • 9282: Improved search results presentation • 9331: Invite to share • 9283: A more lightweight backend for collections • 9347: Registration Policy • 9284: Allow views to override skin layer elements easily • 9352: Search Results Improvements • 9285: Show blocked portlets in management interface • 9376: Include archetypes.schematuning
    91. 91. Initial FWT Vote • 7822: Make standard file content types use ZODB BLOB support • 9286: Allow to show/hide portlets • 8801: Move action icon support into actions, remove CMFActionIcons • 9288: Improved commenting infrastructure • 8802: Move our upgrade / migration infrastructure to GenericSetup • 9292: Group management delegation • 8805: Do not ship with NuPlone anymore • 9295: Improved UI for collections • 8808: Require Python 2.5 or 2.6, Zope 2.12, and CMF 2.2 for Plone 4.0 • 9300: Well formed, valid XHTML • 8809: Make KSS optional • 9302: Improving the event type with recurrence, etc. • 8814: Replace SecureMailHost with a standard Zope mailhost • 9305: Use real names instead of usernames • 8901: Deleting a user should revoke roles • 9309: Better search for East Asian (multi-byte) languages. • 9186: Set Image IDs from Title field • 9310: User registration process more flexible • 9210: Folderish pages • 9311: Clean up of user related actions UI • 9214: support logins using e-mail address instead of user id • 9312: New roles : Webmaster/site administrator and novice users • 9236: Include ""CachableRedirects"" or equivalent functionality • 9313: Mobile View with Mobile Image selection options • 9249: Add TinyMCE as the default visual editor • 9314: Plone "Developer Pack" option for installers • 9250: Add jQuery Tools to base install • 9315: New theme for Plone 4 • 9256: Expand variable substitution in mailing action of plone.app.contentrules • 9316: Unify folder implementations • 9258: Replace Products.ATReferenceBrowserWidget with • 9319: Merging archetypes.fieldtraverser into Products.Archetypes archetypes.referencebrowserwidget • 9320: Add global status bar for site notifications • 9259: Group dashboards • 9321: Reimplement the search form with an eye on usability • 9263: GenericSetup syntax for importing Sharing page roles • 9322: Ensure that Plone 4 can upgrade Zope on Windows and Mac OS X via • 9264: Merge backport patches from plone.app.dexterity into Plone binary eggs • 9270: Stop using fill-slot column_one_slot and two in standard templates • 9323: Ship with Vice for syndication • 9271: Improving the search results page • 9324: Use Amberjack to offer guided help for first-time users • 9272: Exposing and editing Dublin Core properties • 9327: unified interface for lists of content • 9274: Remove actions tab from folder_contents • 9328: content im-/export • 9279: Making document actions optional • 9329: Manage actions through-the-plone • 9281: Use dashboard as social networking tool • 9330: Add ability to choose group when adding new site members • 9282: Improved search results presentation • 9331: Invite to share • 9283: A more lightweight backend for collections • 9347: Registration Policy • 9284: Allow views to override skin layer elements easily • 9352: Search Results Improvements • 9285: Show blocked portlets in management interface • 9376: Include archetypes.schematuning
    92. 92. Initial Implementation Reviews • 7822: Make standard file content types use ZODB BLOB support • 9286: Allow to show/hide portlets • 8801: Move action icon support into actions, remove CMFActionIcons • 9288: Improved commenting infrastructure • 8802: Move our upgrade / migration infrastructure to GenericSetup • 9292: Group management delegation • 8805: Do not ship with NuPlone anymore • 9295: Improved UI for collections • 8808: Require Python 2.5 or 2.6, Zope 2.12, and CMF 2.2 for Plone 4.0 • 9300: Well formed, valid XHTML • 8809: Make KSS optional • 9302: Improving the event type with recurrence, etc. • 8814: Replace SecureMailHost with a standard Zope mailhost • 9305: Use real names instead of usernames • 8901: Deleting a user should revoke roles • 9309: Better search for East Asian (multi-byte) languages. • 9186: Set Image IDs from Title field • 9310: User registration process more flexible • 9210: Folderish pages • 9311: Clean up of user related actions UI • 9214: support logins using e-mail address instead of user id • 9312: New roles : Webmaster/site administrator and novice users • 9236: Include ""CachableRedirects"" or equivalent functionality • 9313: Mobile View with Mobile Image selection options • 9249: Add TinyMCE as the default visual editor • 9314: Plone "Developer Pack" option for installers • 9250: Add jQuery Tools to base install • 9315: New theme for Plone 4 • 9256: Expand variable substitution in mailing action of plone.app.contentrules • 9316: Unify folder implementations • 9258: Replace Products.ATReferenceBrowserWidget with • 9319: Merging archetypes.fieldtraverser into Products.Archetypes archetypes.referencebrowserwidget • 9320: Add global status bar for site notifications • 9259: Group dashboards • 9321: Reimplement the search form with an eye on usability • 9263: GenericSetup syntax for importing Sharing page roles • 9322: Ensure that Plone 4 can upgrade Zope on Windows and Mac OS X via • 9264: Merge backport patches from plone.app.dexterity into Plone binary eggs • 9270: Stop using fill-slot column_one_slot and two in standard templates • 9323: Ship with Vice for syndication • 9271: Improving the search results page • 9324: Use Amberjack to offer guided help for first-time users • 9272: Exposing and editing Dublin Core properties • 9327: unified interface for lists of content • 9274: Remove actions tab from folder_contents • 9328: content im-/export • 9279: Making document actions optional • 9329: Manage actions through-the-plone • 9281: Use dashboard as social networking tool • 9330: Add ability to choose group when adding new site members • 9282: Improved search results presentation • 9331: Invite to share • 9283: A more lightweight backend for collections • 9347: Registration Policy • 9284: Allow views to override skin layer elements easily • 9352: Search Results Improvements • 9285: Show blocked portlets in management interface • 9376: Include archetypes.schematuning
    93. 93. Initial Implementation Reviews •Martin Aspeli •Alex Clark •Vincent Fretin •Rob Gietema •Craig Haynal •Hanno Schlichting
    94. 94. Initial Implementation Reviews • 7822: Make standard file content types use ZODB BLOB support • 9286: Allow to show/hide portlets • 8801: Move action icon support into actions, remove CMFActionIcons • 9288: Improved commenting infrastructure • 8802: Move our upgrade / migration infrastructure to GenericSetup • 9292: Group management delegation • 8805: Do not ship with NuPlone anymore • 9295: Improved UI for collections • 8808: Require Python 2.5 or 2.6, Zope 2.12, and CMF 2.2 for Plone 4.0 • 9300: Well formed, valid XHTML • 8809: Make KSS optional • 9302: Improving the event type with recurrence, etc. • 8814: Replace SecureMailHost with a standard Zope mailhost • 9305: Use real names instead of usernames • 8901: Deleting a user should revoke roles • 9309: Better search for East Asian (multi-byte) languages. • 9186: Set Image IDs from Title field • 9310: User registration process more flexible • 9210: Folderish pages • 9311: Clean up of user related actions UI • 9214: support logins using e-mail address instead of user id • 9312: New roles : Webmaster/site administrator and novice users • 9236: Include ""CachableRedirects"" or equivalent functionality • 9313: Mobile View with Mobile Image selection options • 9249: Add TinyMCE as the default visual editor • 9314: Plone "Developer Pack" option for installers • 9250: Add jQuery Tools to base install • 9315: New theme for Plone 4 • 9256: Expand variable substitution in mailing action of plone.app.contentrules • 9316: Unify folder implementations • 9258: Replace Products.ATReferenceBrowserWidget with • 9319: Merging archetypes.fieldtraverser into Products.Archetypes archetypes.referencebrowserwidget • 9320: Add global status bar for site notifications • 9259: Group dashboards • 9321: Reimplement the search form with an eye on usability • 9263: GenericSetup syntax for importing Sharing page roles • 9322: Ensure that Plone 4 can upgrade Zope on Windows and Mac OS X via • 9264: Merge backport patches from plone.app.dexterity into Plone binary eggs • 9270: Stop using fill-slot column_one_slot and two in standard templates • 9323: Ship with Vice for syndication • 9271: Improving the search results page • 9324: Use Amberjack to offer guided help for first-time users • 9272: Exposing and editing Dublin Core properties • 9327: unified interface for lists of content • 9274: Remove actions tab from folder_contents • 9328: content im-/export • 9279: Making document actions optional • 9329: Manage actions through-the-plone • 9281: Use dashboard as social networking tool • 9330: Add ability to choose group when adding new site members • 9282: Improved search results presentation • 9331: Invite to share • 9283: A more lightweight backend for collections • 9347: Registration Policy • 9284: Allow views to override skin layer elements easily • 9352: Search Results Improvements • 9285: Show blocked portlets in management interface • 9376: Include archetypes.schematuning
    95. 95. Final FWT Vote • 7822: Make standard file content types use ZODB BLOB support • 9286: Allow to show/hide portlets • 8801: Move action icon support into actions, remove CMFActionIcons • 9288: Improved commenting infrastructure • 8802: Move our upgrade / migration infrastructure to GenericSetup • 9292: Group management delegation • 8805: Do not ship with NuPlone anymore • 9295: Improved UI for collections • 8808: Require Python 2.5 or 2.6, Zope 2.12, and CMF 2.2 for Plone 4.0 • 9300: Well formed, valid XHTML • 8809: Make KSS optional • 9302: Improving the event type with recurrence, etc. • 8814: Replace SecureMailHost with a standard Zope mailhost • 9305: Use real names instead of usernames • 8901: Deleting a user should revoke roles • 9309: Better search for East Asian (multi-byte) languages. • 9186: Set Image IDs from Title field • 9310: User registration process more flexible • 9210: Folderish pages • 9311: Clean up of user related actions UI • 9214: support logins using e-mail address instead of user id • 9312: New roles : Webmaster/site administrator and novice users • 9236: Include ""CachableRedirects"" or equivalent functionality • 9313: Mobile View with Mobile Image selection options • 9249: Add TinyMCE as the default visual editor • 9314: Plone "Developer Pack" option for installers • 9250: Add jQuery Tools to base install • 9315: New theme for Plone 4 • 9256: Expand variable substitution in mailing action of plone.app.contentrules • 9316: Unify folder implementations • 9258: Replace Products.ATReferenceBrowserWidget with • 9319: Merging archetypes.fieldtraverser into Products.Archetypes archetypes.referencebrowserwidget • 9320: Add global status bar for site notifications • 9259: Group dashboards • 9321: Reimplement the search form with an eye on usability • 9263: GenericSetup syntax for importing Sharing page roles • 9322: Ensure that Plone 4 can upgrade Zope on Windows and Mac OS X via • 9264: Merge backport patches from plone.app.dexterity into Plone binary eggs • 9270: Stop using fill-slot column_one_slot and two in standard templates • 9323: Ship with Vice for syndication • 9271: Improving the search results page • 9324: Use Amberjack to offer guided help for first-time users • 9272: Exposing and editing Dublin Core properties • 9327: unified interface for lists of content • 9274: Remove actions tab from folder_contents • 9328: content im-/export • 9279: Making document actions optional • 9329: Manage actions through-the-plone • 9281: Use dashboard as social networking tool • 9330: Add ability to choose group when adding new site members • 9282: Improved search results presentation • 9331: Invite to share • 9283: A more lightweight backend for collections • 9347: Registration Policy • 9284: Allow views to override skin layer elements easily • 9352: Search Results Improvements • 9285: Show blocked portlets in management interface • 9376: Include archetypes.schematuning
    96. 96. Final FWT Vote • 7822: Make standard file content types use ZODB • 9263: GenericSetup syntax for importing Sharing page BLOB support roles • 8801: Move action icon support into actions, remove • 9264: Merge backport patches from plone.app.dexterity CMFActionIcons into Plone • 8802: Move our upgrade / migration infrastructure to • 9272: Exposing and editing Dublin Core properties GenericSetup • 9285: Show blocked portlets in management interface • 8805: Do not ship with NuPlone anymore • 9286: Allow to show/hide portlets • 8808: Require Python 2.5 or 2.6, Zope 2.12, and CMF • 9305: Use real names instead of usernames 2.2 for Plone 4.0 • 9309: Better search for East Asian (multi-byte) languages. • 8814: Replace SecureMailHost with a standard Zope • 9310: User registration process more flexible mailhost • 9314: Plone "Developer Pack" option for installers • 9186: Set Image IDs from Title field • 9315: New theme for Plone 4 • 9214: support logins using e-mail address instead of user • 9316: Unify folder implementations id • 9321: Reimplement the search form with an eye on • 9249: Add TinyMCE as the default visual editor usability • 9250: Add jQuery Tools to base install • 9330: Add ability to choose group when adding new site • 9256: Expand variable substitution in mailing action of members plone.app.contentrules • 9258: Replace Products.ATReferenceBrowserWidget with archetypes.referencebrowserwidget • 9259: Group dashboards
    97. 97. Done.
    98. 98. Yay!
    99. 99. Features
    100. 100. Infrastructure
    101. 101. User Interface
    102. 102. Infrastructure
    103. 103. #8808 Zope 2.12, CMF 2.2, Python 2.6 David Glick, Hanno Schlichting
    104. 104. Python 2.6 • Officially supported • Faster • Improved memory management
    105. 105. Zope 2.12 • Support for Python 2.4, 2.5, 2.6 • Fully eggified • Flexible storage options • RelStorage • BLOBs
    106. 106. Performance
    107. 107. Performance • Code cleanup • Integration of • experimental.contentcreation • experimental.opaquespeedup
    108. 108. Plone 2.5 Plone 3.0 Plone 3.3 Plone 4.0 400% 300% 200% 100% 0% 1 2 3 5 10 15 20 Concurrent Requests Improvement in Median Response Time Read Only
    109. 109. Plone 2.5 Plone 3.0 Plone 3.3 Plone 4.0 400% 300% 200% 100% 0% 1 2 3 5 10 15 20 Concurrent Requests Improvement in Median Response Time Read Only
    110. 110. Plone 2.5 Plone 3.0 Plone 3.3 Plone 4.0 400% 300% 200% 100% 0% 1 2 3 5 10 15 20 Concurrent Requests Improvement in Median Response Time Read Only
    111. 111. Plone 2.5 Plone 3.0 Plone 3.3 Plone 4.0 400% 300% 200% 100% 0% 1 2 3 5 10 15 20 Concurrent Requests Improvement in Median Response Time Read Only
    112. 112. Plone 2.5 Plone 3.0 Plone 3.3 Plone 4.0 400% 300% 200% 100% 0% 1 2 3 5 10 15 20 Concurrent Requests Improvement in Median Response Time Read Only
    113. 113. Plone 2.5 Plone 3.0 Plone 3.3 Plone 4.0 400% 300% 200% 100% 0% 1 2 3 5 10 15 20 Concurrent Requests Improvement in Median Response Time Read Only
    114. 114. Plone 2.5 Plone 3.0 Plone 3.3 Plone 4.0 400% 300% 200% 100% 0% 1 2 3 5 10 15 20 Concurrent Requests Improvement in Median Response Time Read Only
    115. 115. Plone 2.5 Plone 3.0 Plone 3.3 Plone 4.0 400% 300% 200% 100% 0% 1 2 3 5 10 15 20 Concurrent Requests Improvement in Median Response Time Read Only
    116. 116. Plone 2.5 Plone 3.0 Plone 3.3 Plone 4.0 400% 300% 200% 100% 0% 1 2 3 5 10 15 20 Concurrent Requests Improvement in Median Response Time Read Only
    117. 117. Plone 2.5 Plone 3.0 Plone 3.3 Plone 4.0 400% 300% 200% 100% 0% 1 2 3 5 10 Concurrent Requests Improvement in Median Response Time Content Creation
    118. 118. Plone 2.5 Plone 3.0 Plone 3.3 Plone 4.0 400% 300% 200% 100% 0% 1 2 3 5 10 Concurrent Requests Improvement in Median Response Time Content Creation
    119. 119. Plone 2.5 Plone 3.0 Plone 3.3 Plone 4.0 400% 300% 200% 100% 0% 1 2 3 5 10 Concurrent Requests Improvement in Median Response Time Content Creation
    120. 120. Plone 2.5 Plone 3.0 Plone 3.3 Plone 4.0 400% 300% 200% 100% 0% 1 2 3 5 10 Concurrent Requests Improvement in Median Response Time Content Creation
    121. 121. Plone 2.5 Plone 3.0 Plone 3.3 Plone 4.0 400% 300% 200% 100% 0% 1 2 3 5 10 Concurrent Requests Improvement in Median Response Time Content Creation
    122. 122. Plone 2.5 Plone 3.0 Plone 3.3 Plone 4.0 400% 300% 200% 100% 0% 1 2 3 5 10 Concurrent Requests Improvement in Median Response Time Content Creation
    123. 123. Plone 2.5 Plone 3.0 Plone 3.3 Plone 4.0 400% 300% 200% 100% 0% 1 2 3 5 10 Concurrent Requests Improvement in Median Response Time Content Creation
    124. 124. Plone 3.3 Plone 4.0 Anonymous Page View Logged-In Page View Page Edit View 0 5 10 15 20 Average Requests/Sec
    125. 125. #8814 Remove SecureMailHost Alec Mitchell
    126. 126. SecureMailHost • Introduced in Plone 2.1 • TLS encryption support • Made redundant by Zope 2.11’s Products.MailHost • Optional mail queuing • Sent emails are quoted-printable
    127. 127. #9316 plone.folder Andreas Zeidler
    128. 128. plone.folder
    129. 129. plone.folder • Plone Folder
    130. 130. plone.folder • Plone Folder • Large Plone Folder
    131. 131. plone.folder
    132. 132. plone.folder • BTree-based folder implementation
    133. 133. plone.folder • BTree-based folder implementation • Ordering support
    134. 134. plone.folder • BTree-based folder implementation • Ordering support • Adapterized ordering
    135. 135. Performance Regular Ordered 1,200 Time taken in seconds 900 600 300 0 Create 500 News Items List Folder Contents
    136. 136. #9263 GS Import for Sharing Page Roles Martin Aspeli
    137. 137. GS Sharing Roles Import • Add new roles to the @@sharing view • Port from collective.sharingroles
    138. 138. sharing.xml <sharing xmlns:i18n="http://xml.zope.org/ namespaces/i18n" i18n:domain="plone"> <role id="CopyEditor" title="Can edit copy" permission="Manage portal" i18n:attributes="title" /> </sharing>
    139. 139. #9264 AddView Support Martin Aspeli
    140. 140. AddView Support • Port of CMF functionality • Custom add forms for content types • Simplifies Dexterity integration
    141. 141. #7822 BLOB Support Andreas Zeidler
    142. 142. BLOB Support • plone.app.blob • Store file data outside of Data.fs • Entirely managed by the ZODB • More efficient access
    143. 143. Sponsored By • Potsdam Institute for Climate Impact Research • Intergovernmental Panel on Climate Change • European Network and Information Security Agency
    144. 144. Real World Examples
    145. 145. Potsdam Institute For Climate Impact Research • http://pik-potsdam.de/ • 6,789 files to migrate • Migration took 51 minutes • ZODB was packed from 16.5 GB to 3.0 GB • Memory footprint from 10 GB to 3 GB
    146. 146. Memory Usage
    147. 147. CPU Load
    148. 148. norden.org •6 GB Data.fs • 16.2 GB blobs
    149. 149. plone.app.imaging • Enables storage of imaging data in BLOBs • TTP management of image scales
    150. 150. #8801 Deprecate CMFActionIcons David Glick, Hanno Schlichting
    151. 151. Deprecate CMFActionIcons • One less tool! • Define action icons in actions instead • “icon_expr”
    152. 152. Deprecate CMFActionIcons • portal_actionicons, actionicons.xml • continue working until Plone 5 • throws deprecation warning
    153. 153. #8802 plone.app.upgrade David Glick, Hanno Schlichting
    154. 154. plone.app.upgrade
    155. 155. plone.app.upgrade • “Eat our own dog food”
    156. 156. plone.app.upgrade • “Eat our own dog food” • Use GS upgrade profiles to handle Plone upgrades
    157. 157. #9310 Flexible User Registration Kees Hink, Huub Bouma, Duco Doktor
    158. 158. Flexible User Registration • join_form is now a view • Show/Hide possible fields • Utility lookup for fields • Easily extendible
    159. 159. #9309 East Asian Language Search Manabu Terada, Mikio Hokari, Takeshi Yamamoto, Naotaka Hotta, Jonathan Lewis
    160. 160. Full-text Indexing • Full-text indexing typically splits words on spaces • CJK (Chinese, Japanese, Korean) languages don’t • Use bigram-splitting for those languages instead • Work begun during 2008 GSOC
    161. 161. So?
    162. 162. 1.5 BILLION
    163. 163. 1.5 BILLION
    164. 164. User Interface
    165. 165. #9315 New Default Theme Alexander Limi
    166. 166. New Default Theme
    167. 167. New Default Theme • “Intentionally boring”
    168. 168. New Default Theme • “Intentionally boring” • Based on plone.org theme
    169. 169. New Default Theme • “Intentionally boring” • Based on plone.org theme • Uses Deco grid system
    170. 170. New Default Theme • “Intentionally boring” • Based on plone.org theme • Uses Deco grid system • Simplified CSS
    171. 171. New Default Theme
    172. 172. #9259 Group Dashboards Martin Aspeli
    173. 173. Group Dashboards
    174. 174. Group Dashboards • Assign portlets to dashboards on per-group basis
    175. 175. Group Dashboards • Assign portlets to dashboards on per-group basis • User sees:
    176. 176. Group Dashboards • Assign portlets to dashboards on per-group basis • User sees: • Personal portlets
    177. 177. Group Dashboards • Assign portlets to dashboards on per-group basis • User sees: • Personal portlets • Portlets of groups they belong to
    178. 178. Group Dashboards • Assign portlets to dashboards on per-group basis • User sees: • Personal portlets • Portlets of groups they belong to • Win for intranets
    179. 179. Group Dashboards • Assign portlets to dashboards on per-group basis • User sees: • Personal portlets • Portlets of groups they belong to • Win for intranets • Bulletin board
    180. 180. #9272 Dublin Core Properties Roel Bruggink
    181. 181. Dublin Core Properties • ExposeDublin Core metadata in HTML
    182. 182. #9285 Show Blocked Portlets Ricardo Alves
    183. 183. #9286 Show/Hide Portlets Ricardo Alves
    184. 184. #9305 Use Real Names Ralph Jakobs
    185. 185. Real Names
    186. 186. Real Names • Display the user’s full name instead of username
    187. 187. Real Names • Display the user’s full name instead of username • Search results
    188. 188. Real Names • Display the user’s full name instead of username • Search results • RSS Feeds
    189. 189. Real Names
    190. 190. Real Names
    191. 191. #9258 archetypes.referencebrowserwidge t Tom Gross
    192. 192. archetypes.referencebrowserwidget
    193. 193. archetypes.referencebrowserwidget • Replaces Products.ATReferenceBrowserWidget
    194. 194. archetypes.referencebrowserwidget • Replaces Products.ATReferenceBrowserWidget • Large performance improvements
    195. 195. archetypes.referencebrowserwidget • Replaces Products.ATReferenceBrowserWidget • Large performance improvements • Supports more reference field implementations
    196. 196. archetypes.referencebrowserwidget • Replaces Products.ATReferenceBrowserWidget • Large performance improvements • Supports more reference field implementations • Easily overridable template
    197. 197. archetypes.referencebrowserwidget • Replaces Products.ATReferenceBrowserWidget • Large performance improvements • Supports more reference field implementations • Easily overridable template • Proper test coverage
    198. 198. #9315 jQuery Tools Integration Steve McMahon
    199. 199. plone.app.jquerytools • Tabs • Tooltips • Overlay • Exposé • Scrollable • Flashembed
    200. 200. plone.app.jquerytools • Tabs • Tooltips • Overlay • Exposé • Scrollable • Flashembed
    201. 201. plone.app.jquerytools • Tabs • Tooltips • Overlay • Exposé • Scrollable • Flashembed
    202. 202. plone.app.jquerytools • Tabs • Tooltips • Overlay • Exposé • Scrollable • Flashembed
    203. 203. plone.app.jquerytools • Tabs • Tooltips • Overlay • Exposé • Scrollable • Flashembed
    204. 204. plone.app.jquerytools • Tabs • Tooltips • Overlay • Exposé • Scrollable • Flashembed
    205. 205. plone.app.jquerytools • Tabs • Tooltips • Overlay • Exposé • Scrollable • Flashembed
    206. 206. plone.app.jquerytools • Tabs • Tooltips • Overlay • Exposé • Scrollable • Flashembed
    207. 207. plone.app.jquerytools • Tabs • Tooltips • Overlay • Exposé • Scrollable • Flashembed
    208. 208. plone.app.jquerytools • Tabs • Tooltips • Overlay • Exposé • Scrollable • Flashembed
    209. 209. plone.app.jquerytools • Tabs • Tooltips • Overlay • Exposé • Scrollable • Flashembed
    210. 210. plone.app.jquerytools • Tabs • Tooltips • Overlay • Exposé • Scrollable • Flashembed
    211. 211. Plone Integration
    212. 212. Plone Integration
    213. 213. #9249 TinyMCE Rob Gietema
    214. 214. Tiny MCE • Products.TinyMCE • The basis for Plone 5’s Deco editor • Easily extendible • Actively maintained • Easy to theme
    215. 215. Tiny MCE • Products.TinyMCE • The basis for Plone 5’s Deco editor • Easily extendible • Actively maintained • Easy to theme
    216. 216. Tiny MCE • Products.TinyMCE • The basis for Plone 5’s Deco editor • Easily extendible • Actively maintained • Easy to theme
    217. 217. #9321 Search Form Improvements Carsten Senger
    218. 218. Search Form Improvements • Collapseadvanced search options by default
    219. 219. Search Form Improvements • Collapseadvanced search options by default
    220. 220. Search Form Improvements • Collapseadvanced search options by default • Hideoptions based on logged-in status
    221. 221. Search Form Improvements • Collapseadvanced search options by default • Hideoptions based on logged-in status
    222. 222. #9186 Set Image ID from Title Erik Rose
    223. 223. Set Image ID from Title • Makes ATImage act more like other types • Easily give images more memorable IDs • Picture 1.png • 3425573738_90e84302e8.jpg
    224. 224. #9330 Choose Groups for New Users Alex Clark
    225. 225. Choose Group for New Users
    226. 226. Choose Group for New Users
    227. 227. #9256 Mailing Action Variable Substitutions Steve McMahon
    228. 228. Mailing Action Variable Substitutions
    229. 229. Mailing Action Variable Substitutions • New variables:
    230. 230. Mailing Action Variable Substitutions • New variables: • Workflow
    231. 231. Mailing Action Variable Substitutions • New variables: • Workflow • Dublin Core
    232. 232. Mailing Action Variable Substitutions • New variables: • Workflow • Dublin Core • Easier for products to add new substitutions
    233. 233. #9214 Login Using Email Address Maurits van Rees
    234. 234. Email Login
    235. 235. Email Login • Popular request
    236. 236. Email Login • Popular request • Portof collective.emaillogin
    237. 237. Email Login • Popular request • Portof collective.emaillogin • Disabled by default
    238. 238. Email Login • Popular request • Portof collective.emaillogin • Disabled by default • Automatic migration
    239. 239. And the rest...
    240. 240. New Zope Front Page • http://localhost:8080/
    241. 241. “Create a Plone site”
    242. 242. “Create a Plone site” • Friendlier form
    243. 243. “Create a Plone site” • Friendlier form • Skip example content
    244. 244. “Create a Plone site” • Friendlier form • Skip example content • Select products to auto- install
    245. 245. fg = debug
    246. 246. fg = debug • bin/instance fg
    247. 247. fg = debug • bin/instance fg • Debug modes for • portal_css • portal_javascripts • portal_kss
    248. 248. Distribute
    249. 249. Schedule
    250. 250. Where’s my new Plone? • Alpha 1 is out now! • Update ZopeSkel (easy_install -U zopeskel) • paster create -t plone3_buildout • “4.0a1”
    251. 251. Where’s my new Plone?
    252. 252. Where’s my new Plone? •2 more alpha releases
    253. 253. Where’s my new Plone? •2 more alpha releases • December 3rd, December 17th
    254. 254. Where’s my new Plone? •2 more alpha releases • December 3rd, December 17th • 4.0 Final ~ early March
    255. 255. 4.x
    256. 256. vs.event
    257. 257. vs.event • Recurring events
    258. 258. vs.event • Recurringevents • New calendar widget
    259. 259. vs.event • Recurringevents • New calendar widget • Improved all-day events
    260. 260. vs.event • Recurring events • New calendar widget • Improved all-day events • Extended support for attendees and attachments (UI and iCal level)
    261. 261. vs.event • Recurring events • New calendar widget • Improved all-day events • Extended support for attendees and attachments (UI and iCal level) • Support for master & supplementary events
    262. 262. collective.controlpanel.edit_css In-Plone editing of custom CSS and JS
    263. 263. plone.app.discussion
    264. 264. plone.app.discussion • Comment moderation
    265. 265. plone.app.discussion • Comment moderation • CAPTCHA support
    266. 266. plone.app.discussion • Comment moderation • CAPTCHA support • Configurable/ Extensible comment forms
    267. 267. plone.app.discussion • Comment moderation • CAPTCHA support • Configurable/ Extensible comment forms • Moderation/Batch editing
    268. 268. collective.amberjack • In-Plone tutorials & site tours
    269. 269. Collections
    270. 270. Collections • Improved criteria selection UI
    271. 271. Collections • Improved criteria selection UI • Liveupdate of results
    272. 272. http://tr.im/TryPlone4

    ×