Entries For: August 2007
August 29, 2007
Jon Stahl: Can you spare 10 minutes to advocate for Plone in e-Government?
From Xavier Heymans of ZeaPartners comes word of an interesting opportunity for the Plone community to advocate for Open Source in European e-government, and to promote the PloneGov initiative.
The PloneGov initiative is in the running for an EU "2007 eGovernment Award" for "most innovative good practice." You can vote for Plone. Xavier writes:
Register to vote at: http://www.epractice.eu/registerWinning this award will highlight the maturity achieved by the Open Source collaborative model as a pragmatic way to tackle IT challenges in society. You may register to vote until Friday, September 7th, and can vote until September 20th.
PloneGov's project description: http://www.epractice.eu/cases/plonegov
August 28, 2007
Jon Stahl: Copenhagen Performance Sprint: Nov 1-4th
Anton Stonor and the crew at Headnet.dk are hosting the Copenhagen Performance Sprint 2007 in early November:
Anton writes: "We'll spend four days on making Plone run faster and have fun in the capital of Denmark, Copenhagen." Sounds pretty good to me!
There are still a few seats left, you can sign up online.
Update: It's not Sept 1-4th, it's November 1-4. :-)
August 26, 2007
Nate Aune: Plone4Artists sprinters improve multimedia in Plone
The first ever Plone sprint in Boston took place July 18-22, 2007. The goal was to improve the multimedia capabilities of Plone and further develop the Plone4Artists suite of products. Over 20 participants sprinted for 5 days, made 6 new product releases and had a whole lot of fun in Beantown.
We had 23 participants from all over the country, including two European sprinters from Berlin and Finland.
One of the sprinters was Rocky Burt, the lead developer of the Plone4Artists products. Hailing from Canada, Rocky conducted two days of Zope 3 training right before the sprint.
If you missed the course in Boston, you're in luck! This unique class Zope 3 Training for Plone Developers will also be offered again right before the Plone Conference in Naples.
There were also 8 remote sprinters from far away places such as Japan, Australia, Italy and Switzerland, who tuned into the live video stream and collaborated via the #plone4artists IRC chat channel. See the full list of participants and photos from the event.
The focus of the sprint was to improve the multimedia capabilities of Plone, and in particular to fix bugs and prepare the Plone4Artists suite of products for a new release.
I'm happy to report that thanks to the hard work of the sprinters, we successfully made new releases of many Plone4Artists products: Plone4ArtistsAudio, Plone4ArtistsVideo, Plone4ArtistsSite, Plone4ArtistsCalendar, etc.

Sprint reports
There were several teams dedicated to working on various topics including the Plone4Artists products as well as syndication, licensing, RESTful interfaces and iPlone, an iPhone optimized theme for Plone.
In the press
There was a journalist from IDG who attended the sprint, and published two articles about the event which appeared in several IDG publications.
LinuxWorld and InfoWorld magazine articles about the Plone4Artists sprint:
"Sprinting to create open-source content management"
"You're never alone with Plone"
Screencasts
Jonathan Lewis made an excellent screencast introduction to the Plone4ArtistsAudio product Thanks Jonathan! We still need screencasts for the calendar and video products if you'd like to help out.
Online Demo
If you want to try out the Plone4Artists products but don't have time to install them yourself, you can demo them on the http://plone4artists.com site. Please report any bugs you find to the trackers!
Want to help?
There are many ways to get involved in the project, even if you are not a developer. We need you to download the products and test them out, reporting any bugs that you find to the issue trackers.
Join the mailing list and ask questions in the #plone4artists IRC channel. We can always use help in writing documentation and making screencasts - short videos which demonstrate the software's functionality.
Lightning talks
There were a number of very interesting lightning talks given at the sprint. These have been video recorded and will be made available in the near future. Subscribe to the Plone4Artists mailing list to be notified when they are published.
Sponsors
Many thanks to our sponsors without whom this sprint would not have been possible: Christian Science Monitor, The Nature Conservancy, Oxfam America, Friends of the Earth International, Potsdam Institute for Climate Impact Research, New England Wildflower Society, Abstract Edge and Jazkarta. ShinyWhiteBox.com also donated two licenses for its excellent iShowU software for making screencasts.
If your organization is using the Plone4Artists products, please consider sponsoring the Plone4Artists project. Your financial contribution makes it possible to continue developing the products and having sprints to grow the community.
The Future
We are planning to continue the work at the post-conference sprint in Naples. There will be a multimedia track and we hope to get 1.0 final versions of all the products out at that time.
We are also working on some new products (Plone4ArtistsPodcast, ContentTagging, Plone4ArtistsRevverVideo, Plone4ArtistsImage, Plone4ArtistsTheme), which you can read about on the Plone4Artists products release announcement.
And we are working on a buildout to make it easier to install and setup a Plone4Artists site.
Thanks again to all of the sprinters who came to Boston and made the sprint a success!
-Nate
August 21, 2007
Andrew Burkhalter: Salesforce Base Connector for Plone 3.0
Alpha 2 release of the base connector for Plone 3.0.
With a huge thanks to the authors of Updating add-on products for Plone 3.0, Limi, Martin, Geir, Sisi, and others, it was a breeze to get Salesforce Base Connector working for Plone 3.0. We just pushed out another release, so that it doesn't appear DOA after putting out a non-3.0-compliant release last Friday. It's still very experimental, but now testable with the latest and greatest.
Jon Stahl: Plone 3 Released
At midnight PDT on August 21st, the Plone Team released Plone 3.0, capping off a huge year of work. This is a big day in the history of Plone.
My congratulations and deepest thanks to all the folks who made it happen. I'm really looking forward to using it.
August 17, 2007
Christopher Johnson: Happy Birthday, GetPaid! First transaction!!
It was a dramatic moment as the proud parents stood over the console, waiting for the delivery (shouting "show me the money!"). Finally, GetPaid emerged into the world, thanks to ploneout, and the commerce framework built on Zope 3 technologies began its own life. Read on to catch a glimpse of the dramatic tale of how it came to be, who the parents are, and what it's future might hold!
Rio Ceballos, Córdoba, Argentina: Born was one GetPaid, child of Plone and Community. The excited parents
shared in the joy of seeing their combined contributions
resulted in something amazing: Plone and Community had just given birth
to a commerce system! The first breath...er...transaction was processed today by authorize.net!
Certificate of Birth: GetPaid de Plone
Time of birth: FairSource retreat day 4, 5:55pm
Place of birth: Rio Ceballos, Córdoba, Argentina
Given name: GetPaid
Family name: Plone
Weight at birth: 394 Kb
Delivery method: tarball
GetPaid's approach to ecommerce is to be (a) useful out of the box and (b) flexible (find more at www.plonegetpaid.com).
This approach reflects the value that Plone itself provides: a full
feature set that can easily be deployed complemented by a flexible
system that can be customized and extended for particular use cases.
The use cases targeted for the current release included basic donation
processing and simple stores.
GetPaid provides the tools needed
to easily integrate those features into a site: a cart, checkout,
workflow, payment processor integration, administrative screens, and
end user interface. At the DocComm sprint, held at Google June 25-29,
over a dozen people contributed to the features that now make up
GetPaid. In addition to the front-end features, the sprinters created a
testing framework and created an entire set of test scripts to ensure
quality now and in the future. The sprinters and organizers - all volunteers - were
hosted and fed by Google, fueled by Guayaki yerba mate, and supported
by several sponsors from the community who made the event possible.
That work was advanced by a dozen FairSource developers in Argentina working alongside the product's lead architect, Kapil Thangavelu. An issue that we were reminded of in the Google sprint when Ofer dropped in to the channel was that we need to have the product internationalized, which led to a sprint! Sprinting began at the Jornadas Regionales de Software Libre (Regional Free Software Conference) with a day of i18n sprinting, which then turned into a group effort to work towards the release at the FairSource retreat organized by ifPeople. After months of work, the first processed transaction went through today (see the message from authorize.net)
Led
by Kapil Thangavelu (hazmat), core Plone developer, founder of ObjectRealms, and author of many products
for Plone and Zope, the sprinters worked together pair programming
towards the goal of the week: getting paid! The group generated ideas
and implemented side by side; they also created, tracked and closed
issues (with the help of a remote sprinter in Italy) on the
project's Google Code are: code.google.com/p/getpaid
. Each day twenty people would gather in our instant messaging channel
on IRC (#getpaid) to follow what was going on, rallying the sprinters,
and ask questions.
Among the accomplishments of the GetPaid contributors:
- Shape the scope of the Red Ochre release around the donation use case.
- an elegant Zope 3 based framework.
- Integrate a payment processors (Authorize.net, and others in progress)
- Create a shopping cart and means of adding items to it
- Internationalization of the Plone and Zope products
- Provide a deployment mechanism for the product (via buildout/ploneout) for technical users to quickly get set up.
- Integrate user information collection and registration into the checkout process
- Order management interface to track both site-wide transactions (and status) as well as to provide end users a view of their own transactions
- Tests! Unit, doc, and functional tests
The
future looks bright for this newborn! GetPaid still has a lot of work
to be a complete system, but is near the point of its first release.
Next on the horizon is:
- A release!
- Documentation of API and roadmap
- Set up demo site with latest version of products (dev.plonegetpaid.com)
- Clean up integration of workflow and payment processors
- Make backups possible
- Organize additional developers and funding to build out for specific use cases of "premium content", "pay to submit", and advanced store features.
- Build a product catalog, document and provide an interface for categories
- Make the UI sexy with AJAX :)
- Add lots more usability improvements
The Recipe: Beans and Rice
For those who are interested in more technical information...check the directory where your buildout ran and meet getpaid.core and PloneGetPaid. They part of the elegance of the system's design: getpaid.core is a pure Zope product, while PloneGetPaid provides Plone integration and configuration. (For those unfamiliar with the latest in Zope/Plone, the two products are designed to work together as a system that, architecturally speaking ties us to CMF, but that is built in Zope 3 (and then bridged back to run in Zope 2 by Five))
The approach to integrating commerce with a site is to be able to make any content in a Plone site "payable" by providing a "marker interface". This trick, inspired by the Plone4Artists project, allows GetPaid to add interfaces and information to the site without actually changing the existing content (thanks, Zope 3!). The system is built using Zope 3 technologies for interfaces, views, viewlets, and adapters. Particularly noteable about the adapters is that we have been working to build in storage flexibility from the beginning. GetPaid can thus easily be adapted for custom storage of data (especially using relational database for the store). This opens possibilities for integration with other enterprise systems, advanced reporting, and even making multiple stores per site! Check out code.google.com/p/getpaid for more on the product and its use.
The main goal of the first release is to satisfy the needs for easy
donation processing in a Plone site. Content marked as a donation gets a "donate" link that takes the user through a checkout process. Any piece of content can be turned into a donation (ie event, news item, page...) and be given a price. Additional functionality is provided for "buyable" content, ie things that would be added to a shopping cart. This allows for simple stores to be easily created in the site.
Amazing Support
As the organizer and primary cheerleader for the project, I have been amazed at the support that the community has given to us in this process. In particular, the set of visionary sponsors who supported the development and sprint activities over the last five months. This also couldn't have been done without the ongoing sprint-spirit, ingenuity, and attention of Kapil and the support in organizing from Jon Stahl. Thanks to all the contributors of the project and for the support of Tirza in helping me take the reins on "social sourcing" a project (see more on that in Italy ;).Where GetPaid goes from here
<geek>Eggs Don't Care!</geek> Um...sorry for that outbreak. This whole sprint community thing just gets me excited :)
At the Google sprint, we had an important revelation, inspired by Steve's (Mech422) question: line items in an order need to be workflowed independently. Take the case where you order 1 case of Empower Mint, 2 gourds, a box of Divine chocolates from our hypothetical Fair Trade store. If the mint and gourds are in stock but the chocolate isn't (maybe someone snacking in stock room!?), then we want to be able to fulfill the order that we can. So we will charge for and ship out the products we have, and leave the chocolate pending till we get more in. Since these are both part of a single order, the order itself becomes a container of line items, each of which can be workflow-ed through the system.
The result of this was that Kapil refactored much of the system (since the end of the Google sprint) to make the entire system workflow-driven. The goals is to ship a system with a workflow that can be modified for custom business processes or integrations (these changes went beyond what the hurry.workflow offered, and are also being made available upstream). This has implied updates to the admin interface as well.
Given the changing understanding of the product, we are reworking the milestones and release versions. The "Red Ochre" release, our alpha, will be out shortly and be v0.3. That will be followed by v0.6 and v0.9 (and then 1.0!). After Red Ochre is out, it will be much easier for developers and others to contribute to the product.
But when it comes down to it...the
future of GetPaid largely depends on the adaptation and extension of
the system by the community itself. The architecture and pending work
on documentation and roadmap will provide a foundation for
contributions. The sprints were important steps in building community around the product and getting new people
into the code and working with the product. Already there are companies using (and modifying) GetPaid. What's next? Well, we will
have to see - maybe you want to be a part of that! Visit www.plonegetpaid.com and get connected! Some things that we are looking into:
- Extensions to make the product ready for specific use cases: Premium Content, Membership organizations, pay-to-submit content, web delivery of content, and more
- Integration with other systems (Salesforce.com, accounting)
- ???
Thanks again to all the supporters of this project, both before, during and after this sprint! We couldn't do it without you!
Jon Stahl: Plone 3.0 has been tagged! Release is Tuesday, August 21st
The word from Wichert Akkerman, Plone 3.0 Release Manager is out: Plone 3.0 has been tagged, installers are being built over the weekend, and Plone will be formally released on Tuesday, August 21st!
Plone 3.0 is a big release, perhaps the most ambitious Plone release ever, the product of over a year of work from the Plone team. For a quick overview of the highlights, see "8 Really Cool Things About Plone 3.0" which I wrote a few weeks back. Alex Limi has also written more in-depth information on Plone 3.0's features. Long story short: it will blow your socks off. :-)
Congraluations Wichert, Martin, Alex, Hanno, and to the hundreds of other folks who have helped deliver Plone 3.0 to the world. I'm looking forward to the honor of introducing Plone 3.0 with Martin and Wichert at Plone Conference 2007 in Naples this October.
Jon Stahl: Introducing Web Couturier - Custom and Ready-to-Wear Plone Themes
Long-time Plone consultant and theme-master Denis Mishunov launched Web Couturier today, his new consultancy providing high quality Plone themes, both custom-built and off-the-rack. Denis and his team are also offering logo design and graphic design services.
Denis is well-known in the Plone community (I'm looking forward to meeting him in Naples in a couple of months). His first four "ready to use" themes are polished and professional looking, and reasonably priced at 200 euro.
Bonus: the Web Couturier website is one of the first public sites running Plone 3, to be released on Tuesday August 21st!
August 14, 2007
Andrew Burkhalter: Plone + Salesforce.com Integration Talk Accepted
My proposed talk, Plone +
Salesforce.com: Best of breed applications working in harmony for your
organization, was accepted for the 2007 Plone Conference in Italy. I'm really excited to connect with everyone that's there (has it really been almost a year since Seattle 2006) and talk on a subject I personally find very gratifying and strategic to the Plone ecosystem.
If you're curious or have ideas about what would be good to cover, my proposed and working talk excerpt is:
Plone + Salesforce.com: Best of breed applications working in harmony for your organization
We all know and love what Plone accomplishes in the content management space, but ambitious tasks of customer and constituent relationship management (CRM) often fall outside the scope of the content management problem domain. Yet the latter is an equally critical need for organizations. Salesforce.com is a well known and established leader for customer and constituent relationship and with it's innovative API-first design, over 50% of all traffic comes via its SOAP API. This makes it an obvious candidate for integration with Plone and there are tools (Beatbox, Salesforce Base Connector, Salesforce PFG Adapter, and Salesforce Auth Plugin) to do just that.
This talk will introduce the use cases where Plone can benefit from CRM integration, Salesforce.com's ability to model an organization's business processes, and how, where and why they can and do compliment each other. This has everything to do with choosing the best of breed CRM and CMS and using them together to transform your organization. Why build it from scratch, when you can integrate it with Plone?
The only part I'm dreading about the conference -- making all the tough choices about what talks to attend. Congratulations to the organizers for such an impressive talk list. There's not one talk I wouldn't want to attend.
August 11, 2007
Andrew Burkhalter: New Salesforce PFG Adapter Release Up on the Plone Software Center
Salesforce PFG Adapter 1.0 alpha 2 up on the Plone Software Center with several key usability enhancements to the field mapping user interface.
While creating a working demo for my post on Saving PloneFormGen Data Directly to Salesforce.com, I was reminded of and discovered several new irritating bugs present with the current field mapping user interface.
Jesse Snyder and I were able to pick of several of these during today's ... er, yesterdays ... Open Source Friday session and package up a 1.0 alpha 2 release. Fixes include:
- Due to some trailing and proceeding character stripping that happens within DataGridField's FixedRow implementation, inadvertently named fields like "My Form Field with Trailing Spaces " (spaces intentional), could never be successfully mapped to a Salesforce.com SObject field. NB: We're still using the Title of form fields as the "key" for our mapping, which has its limitations, but is easiest in this more proof of concept phase of work.
- Because we're eliminating a user's ability to wipe away form fields by disabling DataGridField's add/remove row features (this is by design, as a "read-only" paradigm is much clearer for users), re-titled and deleted fields were polluting our available form fields for mapping user interface. We've now got code that cleans up those form fields which are unmappable to Salesforce.com SObject fields anyway.
- We've also got a nice little, fully passing suite of 25 tests, which is starting to get into the realm of respectable for our code base.
Up next is likely to be i18n work, improving usability around a chosen
SObject's required fields, and enabling the mapping of PloneFormGen's
DateTimeField to Salesforce.com's Date/Time string format.
Let us know if you come up with anything that's not currently on our todo list.
August 09, 2007
Andrew Burkhalter: Saving PloneFormGen Data Directly to Salesforce.com
For this next installment in my series of posts on integrating Plone & Salesforce.com, we cover the tools useful for an integrator aiming to allow those in the content editor and site administer space (albeit the more technical ones) to integrate with Salesforce.com without ongoing developer intervention. The first post mostly covered the underlying technical infrastructure, while the second was of the integrator variety and described how to display Salesforce.com data within Plone using Zope's templating machinery.
The Background
The more I've dug into and studied PloneFormGen, the more enthusiastic I am about it as a project, concept, and code base. I think readers of this post already likely have a lot of respect for how SteveM conducts the project, but I'm also continuously impressed with the amount of flexibility that's built into the code base. In this case, I'm talking about the ability to add custom action adapters. In the NGO-space, it really doesn't get much more critical than allowing content editors to build forms that collect information from would be constituents.
Someone in the Open Source Friday crew (I believe it was Brian Gershon or Jon Baldivieso), thought up the idea of writing our own custom action adapter for PloneFormGen that stores form data directly to Salesforce.com. Seeing as we use Salesforce.com as a constituent relationship manager and PloneFormGen to do things like sign constituents up for email alerts, volunteer opportunities, and events, cutting out the extra data entry is ideal.
In PloneFormGen's SaveDataAdapter and FormMailerAdapter we have a perfect example of an incredibly useful action adapter and what it would take to create our own for PloneFormGen. In addition, we already have Salesforce Base Connector providing a bridge, via beatbox, to Salesforce.com via its SOAP API. With these pieces in place, creating our Salesforce PFG Adapter was significantly easier.
Setting it all up
First, make sure you're all caught up with the setup from the previous post (you can stop when you get to the section titled "The Code"). Once you've stepped through that, it's just a matter of getting the dependencies needed for Salesforce PFG Adapter. These include:
- PloneFormGen
- Scriptable Fields (bundle)
- Salesforce PFG Adapter
- DataGridField - At the time of this writing, you need a particular
branch from the Archetypes subversion repository. The following within
your Products folder should do:
svn co https://svn.plone.org/svn/archetypes/MoreFieldsAndWidgets/DataGridField/branches/1.5-RC1 ./DataGridField. Hopefully, that won't be the case in the future.
svn co https://svn.plone.org/svn/collective/PloneFormGen/adapters/salesforcepfgadapter/bundles/ ./ Once you have all these items, restart your instance and use the quick installer to add Salesforce PFG Adapter as shown below (this will ensure that all dependencies are also added):

Salesforce PFG Adapter in Action
This is all hypothetical, but let's say you run a website that encourages users to submit information about upcoming concerts featuring local artists in an effort to market regional arts. Your goal might be to display this in a calendar on your site. This alone, would not be reason enough to integrate with Salesforce.com, as we've already got the event content type available in Plone.
However, to add a twist, let's say you also want to award prizes to those that submit the most events, send users annual appeals to donate to your organization, and use the events most frequently submitted to determine where you should be doing advertising for your organization. The logic of these tasks already live in your CRM. Something along these lines would be a pretty common nonprofit story and would require one to do a lot of custom programming with Plone. A better option would be to integrate your Plone site with an existing Salesforce.com application.
If you've got PloneFormGen, you might setup the following form (it's a bit unrealistic, but you get the idea) for your site:

By default, you can get this emailed to you. But, that introduces the boring, error-prone manual data entry problem when you want to get this into your CRM. With Salesforce PFG Adapter and a standard Salesforce.com instance, we can take care of this data directly.
I deliberately created a more complicated example to highlight the capabilities of PloneFormGen and our Salesforce PFG Adapter, but let's start with the basics.
First and foremost, we have 3 fields (first name, last name, and email address) that are not intended to be a part of the event object itself. Remember my use case above where I describe needing to send out annual appeals to all those submitting events, thus encouraging them to donate to your organization. We use these fields to build up our pool of engaged Salesforce.com contacts.
Using the add new item menu on our Form Folder, we add our first Salesforce PFG Adapter.

The title is unimportant. The "Salesforce Object Type" field however presents a list of eligible SObject types your Salesforce.com instance has to offer. I choose contact in my example.

From there, we hit next until we get to the "Field Mapping" section of our Salesforce PFG Adapter. This is where things get interesting. Using the DataGridField, we present a mapping-like UI for choosing which Form Fields should be associated with their corresponding SObject fields. The drop down list of SObject fields are limited to only those associated a Contact, the chosen SObject type on the first screen of the created Salesforce PFG Adapter.
The following screen shot shows how I mapped my contact-related form fields:

Next, we disable the default enabled Form Mailer Adapter and ensure that our Contact Adapter is selected.

A quick test of the form, with the following data...

... yields a new contact in Salesforce.com:

At this point, nothing is happening with the remainder of the form data. This is by design. You may choose to retrieve the rest of the form data with a different adapter. Lo and behold, this is what we want to do :)
After adding another Salesforce PFG Adapter to our Form Folder and providing a title, we choose the Salesforce.com "Event" SObject type:

We then provide a mapping of those form fields we want associated with the newly created Event object:

Going back to our form we now fill out the entire form with data from a fictitious user for an upcoming show I'm looking forward to attending :) ...

In the interest of full disclosure, the Event SObject is actually one of the more complicated data types we could choose to create. We're getting around this a bit by assuming the user will submit an appropriately formatted date/time string and an integer with the duration in minutes of the event. The real world doesn't work like this (see "What's Next?" below), but these are Salesforce.com Event object requirements. Additionally, to fulfill my use case where awards are given to those submitting the most events, I add a custom field "Submitted by Email" to my event type. The *right* way to do this would be to use a lookup to get the unique id of the newly created contact. This will require some additional features to be added to Salesforce PFG Adapter (again, see "What's Next?" below).
Heading over to our Salesforce.com instance, we now have the newly created contact:

As well as the event, which is associated with the email address of the submitting user:

All this, with no manual data entry required. Bring on the user contributed content...
Why?
Hopefully, the motivations for this work are pretty clear. However, just for emphasis, I want to point out some of the reasons why I think this is pretty neat:
- It's true -- Salesforce.com already provides a utility called Web2Lead that allows for easy form creation. This, however, creates a Lead SObject, which can only be converted into a new contact, account, or opportunity within Salesforce.com. This is really great. However, you may want, as in our example, to create an SObject type (like an Event) that's not allowed via a Lead or create multiple SObjects with one form.
- No programmers are needed for simple validation -- This may be incorrect, but my understanding is that Web2Lead provides no or only simple Javascript validation of form data. With PloneFormGen, you get to choose required fields and set simple validation (i.e. is this an email address, is this a valid telephone number, is the integer between X and Y, etc.). You're also using server side validation, which cannot be bypassed when a user disables Javascript in their browser.
- Adapters are addative - What if you want an email sent, a Salesforce object created, and the data to be saved within the ZODB. You can setup as many adapters as are needed for your form in question.
- The form is native Plone content, non-technical users can fiddle with the labels, ordering of form fields, add HTML formatted text proceeding the form, setup default values for fields, and more with the feature-set and ease-of-use offered by PloneFormGen.
What's next?
Well, we've already released an experimental version for testing. Time is always short, but the goal is to crank out a steady stream of minor improvements based on issues that arise from use of the product. Because we're integrating with a complex and powerful system in Salesforce.com, there are many both known and unknown bugs and features that are needed. Some of the known limitations include:
- We want to make sure that all of the form field data types work well with their logical Salesforce.com counterparts. For example, the date/time field doesn't currently work with Salesforce.com, as is exposed in my demo above.
- Lookups on existing Salesforce.com will require work to get right. Again, it would have been ideal, in my example, to populate the CreatedById field on the Event to create a relationship to the newly created contact, rather than de-normalize (if that's a word) the event by adding the submitted by email address.
- Required fields for the chosen SObject are not exposed in the Salesforce PFG Adapter UI. This requires a very deep understanding of a Salesforce.com configuration and the needed data types of fields you want populated with your PloneFormGen form.
With that said, when used in calculated cases, this is a very useful add-on Product for Plone. We'll be putting it through its paces on ONE/Northwest over the coming months and I'm thrilled to watch and help it improve.