Evolving Bits

Mon Sep 03 2007

Build your own remember-based content with sampleremember Plone product

Back in March, Andrew Burkhalter and I wrote a tutorial for creating new content-types based on remember, and as part of that created the sampleremember Plone product. Since then, I've had a couple of live project opportunities to put sampleremember through its paces.

By September, I fixed bugs in sampleremember and added some unit tests, so feel this is now a solid working example of how to create your own remember-based content types.

What is remember (and membrane)?

The membrane product allows you to create Plone users (and groups) that are actually content-types - so you can workflow them, add attributes to them, etc. remember is based on membrane and also adds the replacement Plone templates and functionality so that you can manipulate, reset passwords, login, etc using these new content types. Martin Aspeli uses membrane in his b-org tutorial if you want more info.

You can find the sampleremember product in the /examples folder inside of remember as well as a walk-through tutorial in the /docs folder of remember. Note that the tutorial is a bit-dated, so the most up-to-date implementation is in sampleremember.

How do I automate setup of sampleremember to use portal_quickinstaller?

One final issue I ran into that I didn't solve was trying to make my remember-based products quickinstall the three profiles it needs: membrane, remember, and its own. I discovered that remember didn't like to be uninstalled then installed again. If you don't uninstall, but just reinstall, there isn't a problem -- but then an accidental uninstall seems like a time bomb waiting to happen.

So the best solution seems to be manually installing membrane and remember via portal_setup only once for a site and then add an Install.py script that simply runs my own product's generic setup profile.