Hi David, I've found that just adding the SQL-adapter to an ActionLetter also works. I don't need the multiplexer for SQL storage, because i just need to store the fields that were filled in. I think this is the most common use case (you just want to know who signed you petition), but that's arguable.
The only thing needed to use Products.sqlpfgadapter with megaphone is adding MySQLAdapter to the list of allowed content types in Megaphone_Action.xml. It seems enough to justify keeping it in a separate product. In the future, adding a wizard step for SQL storage might also be done in this product. Kees On 08/31/2010 09:41 PM, David Glick wrote: > On 8/31/10 2:24 AM, Kees Hink wrote: >> A question for collective.megaphone developers: >> >> A client of ours wants to store collective.megaphone data in a MySQL >> database. >> One could do this by following the steps at >> http://plone.org/products/ploneformgen/documentation/tutorial/sql-crud/tutorial-all-pages. >> That's a lot of manual work, and it requires some ZMI/MySQL knowledge [1]. It >> would be nice to enable editors to create an Action Letter with a MySQL >> extension using the wizard. >> >> I'd like to create either some kind of extension to collective.megaphone >> itself >> or a separate add-on product, which will do the following: >> * on installation/activation, a create "Z MySQl database connection" is >> created >> - host, username, database are supplied by admin user at this moment >> * When an Action Letter is created, the user can checks the box that says >> "Save >> also to MySQL database". If checked, this happens: >> - a table is created (name derived from the Action Letter's id) >> + add columns for all form fields are added >> + maybe later allow users to select which fields are added >> + maybe later allow updates when fields have changed >> - a "Z MySQL Method" for storing is added >> + maybe later add other "Z MySQL Methods" >> - this method will be called after saving the form >> + for example, an after-validation script calling this method >> * each time an Action letter is deleted, its table is deleted >> >> What i'd like to know: >> * Are there currently solutions available that i may have missed? > Not that I'm aware of (but I haven't looked). Massimo Azzolini from Red > Turtle also recently expressed interest in something like this. >> * Is it feasible to do this in collective.megaphone? If I created a branch, >> would someone be willing to merge it if the quality is good? >> * Or is this out of scope, and/or are there reasons why a separate package is >> better suited for this than collective.megaphone? > I would rather see this as a separate package which provides an > additional wizard step for Megaphone. In Megaphone >= 2.0b1 (e.g. > current trunk), the MegaphoneActionWizard class has a dynamic 'steps' > property which returns the list of steps to be included in the wizard. > We should modify this to do an adapter lookup to a new > IMegaphoneWizardStep interface we define, so that a separate package can > supply an additional step. I would be happy to merge a branch > implementing that adapter lookup in order to make it possible to create > the MySQL integration as a separate add-on. >> [1] Also, I'm currently pondering about a way to use _two_ after-validation >> scripts: collective.megaphone has one already filled in >> (here/@@recipient_multiplexer), which i currently replace with my Z MySQL >> Method. > You should probably instead create a PloneFormGen "action adapter", and > call your Z MySQL method from its onSuccess method. If you do this, the > recipient multiplexer will ensure that it is called once for each > selected recipient (with different values in the request form each time): > - mark the action adapter with > collective.megaphone.recipient_multiplexer.IMultiplexedActionAdapter > - *don't* enable the action adapter as one normally does in PloneFormGen > (then it will get run directly by PFG instead of via the recipient > multiplexer) > - set the execCondition of the adapter to "python:True" (this is how the > multiplexer tells whether it is enabled or not) > > David > ---------- > David Glick > Web Developer > [email protected] > 206.286.1235x32 > > Groundwire: You Are Connected > http://groundwire.org _______________________________________________ Product-Developers mailing list [email protected] http://lists.plone.org/mailman/listinfo/product-developers
