Using the Dynamic Forms Application
With dynamic forms you can present your audience with question forms. The results are downloadable in a CSV. Basic Forms, consisting of Fields can be built here to be applied to Contests. You can also view any and all contest submissions in the Dynamicforms module.
Fields
A Field is the name for any question a front user will respond to or answer when entering a contest. Fields are where one will enter name, contact information, and any other pertinent information. There are 4 types of fields that can be used in multiple ways.
Boolean: A Boolean field is a simple check box answer field. A user can click the box to answer yes/no questions, or select their favorite choice from a series of check boxes (examples would be favorite pizza toppings or baseball players) The Label will display on the website as the question for the user to answer, or the choice the user can select.
In this example, two Boolean fields have been used; one field labeled “yes” and the other labeled “no”.
Choice: Choice fields present the user with a drop down box and options to select from a list. When you select Choice Field for the type object, a box of Field Choices will appear and you may enter as many objects as you need.
Note that each object will need a label and a value.
E-mail: An e-mail field is a text field that verifies the text input to confirm that it is an e-mail address.
You can also put a tag in the Initial box to automatically populate the user account’s e-mail address. If “{{ request.user.email }}” is in the Initial box, the e-mail address for the user will automatically show up in this box in the contest page on the website.
By verify it’s an e-mail address, we mean that it will check for an @ sign and a .com or a .net, etc. It will not check whether the exact address is functional.
Text: A Text Field is an open space for users to enter text. This can be used to get a contest entrant’s name, phone number, and much more. Tags such as “{{ request.user.first_name }}” and “{{ request.user.last_name }}” can be used to automatically populate a name from the user’s account information. This way, users will not have to retype much information.
Forms
Forms are the basic layout of fields that will be used in a contest. Here is where you select which questions to ask a user, and in which order these questions will be asked. The same form can be used multiple times with multiple contests, or forms can be individually crafted to fit a specific contest’s needs.
To create a form:
Click Add next to Forms in the Dynamicforms module.
Insert the name of your form in the Label box, notice a Slug is automatically generated for you below. Click Save and continue editing.
Upon saving you can then proceed with Form Fields to edit in the Form Fields tab. By default you will see First Name, Last Name, and Email Address fields generated, you are welcome to delete those as they fit your needs. To delete a field object, simply check the box to the right of the object labeled Delete and the object will delete upon your next save.
There are two methods to adding a new Field to a Form. You can select a preexisting field from the drop down box, or you can click the green plus sign next to the box and create a new field as you need.
The order column in the form fields box allows you to order your fields to fit your needs. Items ordered 1 will be higher than items ordered 2, and so forth.
When your fields are ordered, click "Save".
Elan
How do we have these forms display within a flat page? The goal being to have information and images above, then lead to the contact form.
-Elan
David Chenault
Hi Elan, In our current system this is done via the templates. A flatpages template will be created and assigned to the flatpage in the admin, and then the necessary template tag will call in the Dynamic Form to be used.
Moving forward, we have a planned feature release early next year that solves this and allows you to use inline content types within flatpages instead of templates.
If you would like help in setting this up, please contact your project manager via Basecamp!