Sunday, June 08, 2008

Plone Batch Plan

After the first two weeks of lot of plone3 studying, and first lines of code, here I'm trying to have a first plan for this exciting summer of code project.

I'm very excited after writing the first pieces of this project cause things are looking fine, and I'm enjoying the pretty plone3 style :-D.

The plan

I think that the entire project can be contained on a single plone theme product, which I was thinking to call plone.batch. I'm very original, don't you think :-)? Yes, like in all other things in this post (and in this project) I'm open to accept better ideas.

The separated pieces that glued together will eventually make the plone.batch that I think are:

Generic setup profiles for install/uninstall the product

zope3 browser form, very similar to the current "advanced search form", accessible as an object action for any folderish content.

zope3 browser view/form that displays search results, but in a new form that allows the user to select which objects to edit, and what operation to do. So far, the operations that I have in mind will be:

edit a field (with a drop-down of available fields)

enable / disable comments

transform (with a drop-down of transformations)

zope3 browser form for real batch editing content fields (finally!). Should be a listing with a widget for editing the selected field and a save button for each selected object . For non-javascript users a global save button will be available.

Server side logic for kss

Set of basic, default transformations. I think that this will be done with a set of adapters.

Tests, tests and tests. I was thinking on making unit tests for the back-end, functional tests for the basic user interface, and selenium tests for the ajax interface.

I would also like to have time to include some i18n work, and a Spanish translation.

Bureaucracy

I have a couple of bureaucratic things that I need to get done for making communication easy:

Include my code in the svn.plone.org/collective. So far I worked on a local svn repo, which let me have versions, but not allow people to see my work nor prevent me for accidents if anything happens to my laptop.

Create bug-issue tracker (in plone.org?)

What did I do so far?

I created a very basic install profile that adds the "batch" action to folderish contents

I created the zope3 search form based on the default plone advanced form, putting all the python calculations on the view code instead of the template, and trying to eliminate as much as possible the old plone things that template was carring (like doing here.portal_something, or use of isAnon, etc)