You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
6.6 KiB
97 lines
6.6 KiB
# -*- coding: utf-8 -*-
|
|
from __future__ import unicode_literals
|
|
|
|
from django.db import models, migrations
|
|
import jsonfield.fields
|
|
import djangocms_forms.fields
|
|
import django.db.models.deletion
|
|
import cms.models.fields
|
|
from django.conf import settings
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('cms', '__first__'),
|
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='Form',
|
|
fields=[
|
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
|
('name', models.CharField(verbose_name='Name', max_length=255, editable=False, db_index=True)),
|
|
],
|
|
options={
|
|
'verbose_name': 'Form',
|
|
'verbose_name_plural': 'Forms',
|
|
},
|
|
bases=(models.Model,),
|
|
),
|
|
migrations.CreateModel(
|
|
name='FormDefinition',
|
|
fields=[
|
|
('cmsplugin_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='cms.CMSPlugin')),
|
|
('name', models.CharField(max_length=255, verbose_name='Form Name')),
|
|
('title', models.CharField(max_length=150, verbose_name='Title', blank=True)),
|
|
('description', models.TextField(verbose_name='Description', blank=True)),
|
|
('submit_btn_txt', models.CharField(default='Submit', help_text="Text for the Submit Button. The default is 'Submit'", max_length=100, verbose_name='Submit Button Text')),
|
|
('post_submit_msg', models.TextField(default='Thank You', help_text='Display this message to users after they submit your form.', verbose_name='Post Submit Message', blank=True)),
|
|
('success_redirect', models.BooleanField(default=False, help_text='HTTP redirect after successful submission', verbose_name='Redirect?')),
|
|
('external_redirect', models.URLField(help_text='e.g. http://example.com/thank-you', verbose_name='External URL', blank=True)),
|
|
('email_to', models.CharField(help_text='Separate several addresses with a comma.', max_length=255, verbose_name='Send form data to e-mail address', blank=True)),
|
|
('email_from', models.EmailField(max_length=255, verbose_name='Sender Email Address', blank=True)),
|
|
('email_subject', models.CharField(max_length=255, verbose_name='Email Subject', blank=True)),
|
|
('email_uploaded_files', models.BooleanField(default=True, verbose_name='Send uploaded files as email attachments')),
|
|
('save_data', models.BooleanField(default=True, help_text='Logs all form submissions to the database.', verbose_name='Save to database')),
|
|
('spam_protection', models.SmallIntegerField(default=0, verbose_name='Spam Protection', choices=[(0, 'None'), (1, 'Honeypot'), (2, 'ReCAPTCHA')])),
|
|
('form_template', models.CharField(default=b'djangocms_forms/form_template/default.html', max_length=150, verbose_name='Form Template', blank=True, choices=[(b'djangocms_forms/form_template/default.html', 'Default')])),
|
|
('page_redirect', cms.models.fields.PageField(on_delete=django.db.models.deletion.SET_NULL, blank=True, to='cms.Page', help_text='A page has priority over an external URL', null=True, verbose_name='Page URL')),
|
|
('plugin_reference', djangocms_forms.fields.PluginReferenceField(related_name='plugin', on_delete=django.db.models.deletion.SET_NULL, editable=False, to='djangocms_forms.Form', null=True)),
|
|
],
|
|
options={
|
|
'verbose_name': 'Form',
|
|
'verbose_name_plural': 'Forms',
|
|
},
|
|
bases=('cms.cmsplugin',),
|
|
),
|
|
migrations.CreateModel(
|
|
name='FormField',
|
|
fields=[
|
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
|
('field_type', models.CharField(default=b'text', max_length=100, verbose_name='Field Type', choices=[(b'text', 'Text'), (b'textarea', 'Text Area'), (b'email', 'Email'), (b'number', 'Number'), (b'phone', 'Phone'), (b'url', 'URL'), (b'checkbox', 'Checkbox'), (b'checkbox_multiple', 'Multi Checkbox'), (b'select', 'Drop down'), (b'radio', 'Radio'), (b'file', 'File Upload'), (b'date', 'Date'), (b'time', 'Time'), (b'password', 'Password'), (b'hidden', 'Hidden')])),
|
|
('label', models.CharField(max_length=255, verbose_name='name')),
|
|
('placeholder_text', models.CharField(max_length=100, verbose_name='Placeholder Text', blank=True)),
|
|
('required', models.BooleanField(default=True, verbose_name='Required')),
|
|
('help_text', models.TextField(help_text='A description / instructions for this field.', verbose_name='Description', blank=True)),
|
|
('initial', models.CharField(max_length=255, verbose_name='Default Value', blank=True)),
|
|
('choice_values', models.TextField(help_text='Enter options one per line. For "File Upload" field type, enter allowed filetype (e.g .pdf) one per line.', verbose_name='Choices', blank=True)),
|
|
('position', models.PositiveIntegerField(null=True, verbose_name='Position', blank=True)),
|
|
('form', models.ForeignKey(related_name='fields', to='djangocms_forms.FormDefinition')),
|
|
],
|
|
options={
|
|
'ordering': ('position',),
|
|
'verbose_name': 'field',
|
|
'verbose_name_plural': 'fields',
|
|
},
|
|
bases=(models.Model,),
|
|
),
|
|
migrations.CreateModel(
|
|
name='FormSubmission',
|
|
fields=[
|
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
|
('creation_date', models.DateTimeField(auto_now=True, verbose_name='Date')),
|
|
('ip', models.GenericIPAddressField(null=True, verbose_name=b'IP', blank=True)),
|
|
('form_data', jsonfield.fields.JSONField(verbose_name='Form Data')),
|
|
('created_by', models.ForeignKey(editable=False, to=settings.AUTH_USER_MODEL, null=True, verbose_name='User')),
|
|
('plugin', models.ForeignKey(related_name='submissions', editable=False, to='djangocms_forms.Form', verbose_name='Form')),
|
|
],
|
|
options={
|
|
'ordering': ('-creation_date',),
|
|
'verbose_name': 'Form Submission',
|
|
'verbose_name_plural': 'Form Submissions',
|
|
},
|
|
bases=(models.Model,),
|
|
),
|
|
]
|
|
|