collective.table GSoC report


It’s now been over a month since I started my Google Summer of Code project. It’s been a fun month, full of newly learned tricks, mostly courtesy of my mentor Martijn Pieters, Jarn AS.

Our goal is to have an ability in Plone to store arbitrary pieces of tabular data, in the same way that PHP CMSes often have their databases abused for other things. A simple intranet solution for everything that is now uploaded as Excel files: equipment lists, book loans, etc. It’s a list of items where members can add/edit columns and rows, and of course data.


Currently we are nearing the first alpha release, which should be out in about 10 days, when we have the GSoC mid-term report deadline. I already have the basic CRUD interface with data being stored in a dictionary as a simple zope annotation. Here’s a screenshot of how it looks in action:

blog/collective.table-screenshotAnyhow, I need to do some polishing first and to increase test coverage, then we’re ready for the first release!


By default collective.table comes with a simple zope annotation storage, called local storage that does not support advanced features, such as sorting and filtering.

For use-cases where sorting and filtering are needed, plus the dataset could be much bigger I plan to create another storage. I’m currently leaning towards using cornerstone.soup as a backend for this additional storage. In any case, collective.table is designed to support many pluggable data storages, so later on we can add SQL/NoSQL/whatever as a storage backend.

Also, for now we are focusing mostly on getting the base features working. In late July both myself and my mentor are attending this year’s Sauna Sprint where we plan to focus on UI and usability.