For your information, I'm working on this and there's code in svn: https://svn.plone.org/svn/collective/Products.PloneFormGen/adapters/Products.sqlpfgadapter/trunk/ The product currently only adds an empty form action adapter, please be patient.
I hope to do the following: * Get it working with a Z MySQL Method which i create manually in the ZMI; * Then either: - Call the Z MySQL connection directly, or - Create the Z MySQL Method on the fly, or - some other way to save to MySQL Other things on the TODO list: * Global controlpanel settings for DB location, user, password * Plone 4 compatibility (I'm getting deprecation messages from ZMySQLDA) Suggestions are always welcome. Kees On 09/01/2010 08:48 AM, Kees Hink wrote: > Hi David, > > Thanks for thinking along. I'll try the PFG action adapter. Thanks for your > pointers. > > 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 >> davidglick-jwyafjbudsc+ujob2kujgw-xmd5yjdbdmrexy1tmh2...@public.gmane.org >> 206.286.1235x32 >> >> Groundwire: You Are Connected >> http://groundwire.org _______________________________________________ Product-Developers mailing list [email protected] http://lists.plone.org/mailman/listinfo/product-developers
