2011
These projects were proposed for the 2011 Google Summer of Code
Subsite improvements
Summary
Plone 3.3 has an improved handling of INavigationRoot which makes subsiteseasier to deal with, but they’re still not easy to theme and configure. Thisproject would make them more configurable and seperable from their parentsite.
Implementation
MrTopf has started work on a subsite control panel at plone.app.localconf andthere are various attempts to make subsites easy to theme. These could do withsomebody driving them forward and providing a one-true-way to do placefulconfiguration for add-on configuration.
Skills
Basic ZCA knowledge, and Python skills.
Mentors
Any Plone all-rounder, especially interested parties such as calvinhp would begood.
Aims
A new plone.app.* package or extensions to existing ones, and a PLIP for coreinclusion
ArchGenXML style generator for dexterity types
Summary
ArchGenXML is a popular tool for creating content types using Archetypes basedon UML models. Dexterity is rapidly becoming the new way of creating contenttypes for Plone. It would help the uptake of deliverance to update/extend orreplicate the functionality in this product to work with Dexterity content types.
Implementation
This should be much easier than AT types. Theres already a working successor of ArchGenXML in development called AGX, which is already able to generate python code with ZCA. New agx models are using more modern UML2, so there are not compatible with current ArchGenXML models. This implies the need of an deliverable that converts existing ArchGenXML model files to the new format of UML2 and its UML2-profiles used by AGX. A second deliverable is a plugin/extension for agx generating Dexterity content types. After conversion and generation AGX delivers equivalent Dexterity content types.
Skills
Exposure to UML/UML2 and its UML-profiles is the only must here.
Mentors
Any Plone all-rounder that uses AGX and is interested in dexterity, Jens Klein would certainly need to be involved in discussions regarding AGX.
Aims
As appropriate, depending on what choices are made in Implementation
Improved text transforms
Summary
There is a system for converting data between mimetypes in Plone calledportal_transforms. A previous GSoC project started a succesor codebase, itrequires integration into Plone and conversion of existing OOTB transforms.Some new transforms, like syntax highlighting and LaTeX would also be cool.
Implementation
This would continue on from plone.transforms as a core utility.
Skills
Python.
Mentors
Anyone core developer, with help from Hanno.
Aims
A working Plone using plone.transforms exclusively. This would target Plone 5 eventually, so backwards compatibility isn’t a big issue.
HTML5 offline support
Summary
The google gears system allows for sites to be used in an “offline mode”, withchanges stored up until the computer is back online. This would be interestingto integrate into plone as an add-on product, allowing content authors to beproductive offline (or on slow internet connections!)
It would need to be configurable with sensible defaults, so only the rightcontent is cached offline. Integration with worklists and the workflow enginewould be very useful.
Implementation
This would either be implemented using HTML 5 and SQLite. It may only becompatible with some browsers at this stage.
Skills
Javascript, Python, Gears, HTML5, SQL, as appropriate.
Mentors
Any all-rounder with knowledge of JS.
Aims
Support in core and a PLIP for 4.x
Dexterity schema specification through HTML
Summary
Dexterity content types are currently defined by a zope.schema based interfaceand/or an XML file. This is then used to generate a HTML form. This projectwould flip that around and take a HTML form definition and generate adexterity type to back it.
Implementation
This would take a HTML 5 form with supermodel hints in the data attributes ofthe form. It would need to be compatible with the other ways of generatingdexterity types especially round-tripping TTW to the filesystem.
Specifically, it should also be possible to convert a pre-made dexterity formto a HTML page that would generate the same content type.
Skills
The Plone/Dexterity knowledge would be quite minimal as the supermodel packageand associated code is quite clean and encapsulated.
Mentors
Somebody with experience with Dexterity, such as Martin or David would bebest. Any Plone hard-hitter would be great, though.
Aims
Extension to supermodel and dexterity that works with its release schedule.
LinguaPlone improvements
Summary
LinguaPlone is the system for making multi-lingual content in Plone. At themoment it assumes that all your content is Archetypes based, this projectwould make it work with Dexterity as well.
Implementation
Generalising LinguaPlone's base classes and reference engine to work with allcontent types, not just AT.
Skills
Fairly deep Zope and Archetypes knowledge
Mentors
Probably a Jarnian given they've worked with this the most, perhaps Hanno.
Aims
A new release of Linguaplone.
Content Drafts
Summary
plone.app,drafts allows content that hasn't been finished yet to be auto-savedto a special location so that if the user has an issue with their browser it'snot lost.
Implementation
Integrate and extend plone.app.drafts into Plone with support for Archetypesand Dexterity. The back-end support is pretty much there but it needs a UI andintegration with content type frameworks.
Skills
Plenty of Python and knowledge of Zope. Experience in dexterity would behelpful.
Mentors
Any all-rounder will be fine
Aims
Improvements of existing packages and PLIP for Plone 4.x
Tabular content store
Summary
An ability to store arbitrary pieces of tabular data, in the same way that PHP CMSes often have their databases abused for other things.
Implementation
Such a table would be radically simple. It's a list of items, with multiple columns, where optionally visitors can add or edit rows. Front this with ajQuery grid, store the data in the ZODB but keep it pluggable (reflect a SQLtable instead) and intranets have the perfect place to store everyone'sholiday plans, equipment lists, etc. Anything that currently goes into anuploaded Excel spreadsheet can go in such a simple table.
Skills
jQuery and some Python. The basic functionality won't take much Python but the nice extensions above the bare minimum would.
Mentors
Martijn is very interested in this.
Aims
A new plone.app.* package for core inclusion.
Android Plone Application
Summary
The wordpress mobile app is a really, really cool idea. A plone version would be more difficult, as we have a more hierarchical content structure, unlike wordpress, but it should be possible to display content, notify of worklist additions, do workflow transitions and edit standard content. Advanced features would include exposing Plone events in the android calendar and exposing members as contacts.
Implementation
This would likely be a Davlik Java app, but other options may be possible – for example if it is possible to wrap python sensibly that would be nice, but it would need full API access so seems unlikely. This would be a first-class android application, other options are possible, but remember iPhone applications aren't possible due to licence restrictions.
Skills
Java and experience with android development are needed. Also, you don't NEED an android phone to do this project, but it would be helpful.
Mentors
MatthewWilkes is interested in this
Aims
A free and open source application on the android market.
Automated screenshot generation
Summary
Many plone products and themes have insufficient screenshots available, this project would create a library that automatically takes screenshots of Plone products that use Browser tests.
Implementation
Hook into the browser test system with zope.testbrowser to get access to the connection to the server and intercept incoming requests. Use an open-source rendering engine like firefox's to render the page including images.
Skills
Python is a must, firefox/webkit is useful.
Mentors
Dylan Jay or any all-rounder
Aims
A new third-party library.
Automatic theme conversion to a diazo theme.
Summary
Funnelweb[1] attempts to crawl a site and extract an existing sites content and import it into Plone. It leaves behind the theme. Work could be done to instead transform the old sites "theme" into an installable Diazo theme package as part of the same content migration process. This would result in a new plone site with the same content and theme as the original site. This would help provide less friction in the uptake of Plone.
Skills
Python knowledge, and XSLT/XPATH is an absolute must.
Mentors
Dylan Jay
Aims
A new third-party library or funnelweb enhancement
UI for funnelweb
Summary
Funnelweb is currently a commandline tool. Work could be done to include a UI that shows progress of the import process and also lets users select the regions of the old site pages which will be extracted as content.
Implementation
The UI could be in Plone itself so static site import could be a feature of a Plone plugin.
Skills
Python and HTML.
Mentors
Dylan Jay
Aims
A contribution to funnelweb.
Better Microsoft/Open Office integration
Summary
Sometimes, people prefer to work offline. We should optionally support editing content in Microsoft Word. One way to do that is to generate a protected document that acts like a form, and parse the form on upload/save to extract the data.
Implementation
It should be possible to launch a desktop application from within the CMS (external editor) and also to save or drag-and-drop a document onto the desktop for offline editing and later re-attachment. Ideally, this should work on collections of documents (e.g. a whole folder). For this to be seamless, we also need the ability to check in/check out and invoke workflow transitions from within the application, via a special menu.
Skills
Python, word/openoffice scripting.
Mentors
Martin Aspeli
Aims
I believe Enfold Desktop provides some of these features, but it needs to be something we offer as open source, as an optional component maintained as part of the core.'
Heads up display control panel
Summary
Drupal has this. We would love a control panel that gives a lot of info about a Plone site and grades it into Good, Ok, Bad. Such as caching, threads, login times of managers, etc, etc.
Implementation
A configlet that access many low-level Zope APIs, normal Plone APIs and system ones. Must work on Linux, OSX and Windows.
Skills
Python.
Mentors
Matthew Wilkes
Aims
A core contribution
ARIA and Other Accessibility improvements for Plone
Summary
Accessibility best practices have changed quite a bit over the past few years. ARIA is a newer W3C standard for website accessibility for notifying users of changes in dynamic content, such as results appearing from a live search. Additionally, there are several web tools that allow testing of accessibility of web sites. Plone currently does not implement ARIA and comes up short in some of the other accessability tests.
Implementation
Implement ARIA in various page templates which involves adding some various css to page templates. Test Plone with the available tools and record the results of those tests. Update various Archetypes widgets to conform to best practices.
Skills
ZPT, HTML, CSS
Mentors
Someone very familiar with accessibility. WebLion has a few people that fit.
Aims
A core contribution that provides an improved accessibility story for Plone.