2012

These projects were proposed for the 2012 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.

Aims

A working Plone using plone.transforms exclusively. This would target Plone 5 eventually, so backwards compatibility isn’t a big issue. We'd want someone really motivated to help push this project into the core.

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 MJ.

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.