Cancer diagnosis and treatment
The last few weeks have been quite eventful. On October 21st this year, I received
In our current customer project we have some fancy requirements for content-types:
After some evaluation we came to the conclusion that working with Dexterity and Dexterity schemas would not work for us. In particular there is no straight forward way for grouping fields in a DX schema in a two level hierarchy.
We came to Vue Form Generator which allows us to implement the requirements in a pretty straight forward way. VFG is based on VueJS - yet another Javascript framework for building rich client-side user interfaces.
My reasons for using VueJS over ReactJS or Angular:
Vue Form Generator allows us to implement forms as web compontents. All forms are defined using JSON (example). In addition to the field properties used by VFG, you can add additional application specific properties. A JSON field schema definition acts as a single point of configuration both for all edit forms and all view forms (similiar to Dexterity). The screenshot shows an auto-generated contact form with various address groups.
We use minimal Dexterity based content-types for storing the form data inside an annotation. The schemas of the content-types only define the standard Dublin Core metadata. The form data is being send from the client using an AJAX post operation to Plone. On the server we perform minimal validation like type checking and take the standard security precautions.
Vue Form Generator also support some non-standard field types that go beyond the standard HTML input fields.
Lessons learned: