Archipelago Sprint - Day 3
A much better day yesterday, with a lot of progress on the UberSelection Widget. Also the whole javascript thing looks like it is panning out OK - we are having some real discussions now, and I am a lot more optimistic that we’ll have a good solution to the many issues in integrating a lot of javascript into something like Plone. Hopefully I’ll have a good report on that tomorrow.
The Selection Widget has mutated into a project to produce a new query architecture for Plone, to support cross-datasource querying in a standard manner. It’s looking pretty good, even though it’s only roughly sketched out, and it could be a useful addition to the core. Alec has some ideas for a more advanced query syntax, supporting various sorts of conjunction across terms, so I’m going to look into how we can generate parse trees useful for real querying, as well as rendering queries as ZCatalog or LDAP queries, as it does now.
I think I’ll probably steal some of the excellent query stuff from Divmod’s Axiom which has a very nice implementation already. Generating parse trees from that should be straightforward, and I think it should be possible to generate ZCatalog queries too, although the existing ZCatalog implementation can be a bit weird.
One of the issues is how to collapse queries that can’t be rendered precisely - a tolerant implementation that does it’s best is probably the most useful.
I spent some time last night with Danny too, looking at refactoring the Sharing page, one of the use cases for mass selection. We iterated over the designs a few times, and managed to make it even simpler than his already very good design. Getting that prototyped is another task for today. I’ve got a very simple implementation of how the widget might work, using the LiveGrid widget from Rico, and we’ll be working on that today to show end-to-end querying of the catalog and of members, integrated with a mockup of the Sharing page.