diff --git a/aldryn_forms/__init__.py b/aldryn_forms/__init__.py
index b133e0c3..ac1df1f7 100644
--- a/aldryn_forms/__init__.py
+++ b/aldryn_forms/__init__.py
@@ -1 +1 @@
-__version__ = '6.2.1'
+__version__ = '6.2.2'
diff --git a/aldryn_forms/action_backends.py b/aldryn_forms/action_backends.py
index f368e978..fa8ab30a 100644
--- a/aldryn_forms/action_backends.py
+++ b/aldryn_forms/action_backends.py
@@ -1,6 +1,6 @@
import logging
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from .action_backends_base import BaseAction
diff --git a/aldryn_forms/admin/base.py b/aldryn_forms/admin/base.py
index 3d856f1b..bed0507b 100644
--- a/aldryn_forms/admin/base.py
+++ b/aldryn_forms/admin/base.py
@@ -3,7 +3,7 @@
from django.contrib import admin
from django.template.loader import render_to_string
from django.urls import reverse
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
str_dunder_method = '__str__'
@@ -51,11 +51,11 @@ def get_recipients_for_display(self, obj):
get_recipients_for_display.short_description = _('people notified')
def get_urls(self):
- from django.conf.urls import url
+ from django.urls import re_path
def pattern(regex, fn, name):
args = [regex, self.admin_site.admin_view(fn)]
- return url(*args, name=self.get_admin_url(name))
+ return re_path(*args, name=self.get_admin_url(name))
url_patterns = [
pattern(r'export/$', self.get_form_export_view(), 'export'),
diff --git a/aldryn_forms/admin/forms.py b/aldryn_forms/admin/forms.py
index 00791517..493576c6 100644
--- a/aldryn_forms/admin/forms.py
+++ b/aldryn_forms/admin/forms.py
@@ -5,8 +5,8 @@
from django.contrib.admin.widgets import AdminDateWidget
from django.utils import timezone
from django.utils.text import slugify
-from django.utils.translation import ugettext
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext
+from django.utils.translation import gettext_lazy as _
from ..models import FormSubmission
from .exporter import Exporter
@@ -129,6 +129,6 @@ def clean(self):
fields = self.get_fields()
if not fields:
- message = ugettext('Please select at least one field to export.')
+ message = gettext('Please select at least one field to export.')
raise forms.ValidationError(message)
return self.cleaned_data
diff --git a/aldryn_forms/admin/views.py b/aldryn_forms/admin/views.py
index 16884c63..4bfa5af0 100644
--- a/aldryn_forms/admin/views.py
+++ b/aldryn_forms/admin/views.py
@@ -2,7 +2,7 @@
from django.contrib import messages
from django.http import HttpResponse
from django.shortcuts import redirect
-from django.utils.translation import get_language_from_request, ugettext
+from django.utils.translation import get_language_from_request, gettext
from ..compat import SessionWizardView
from .exporter import Exporter
@@ -65,7 +65,7 @@ def render_next_step(self, form, **kwargs):
if next_step == self.steps.last and not form.get_queryset().exists():
self.storage.reset()
- self.admin.message_user(self.request, ugettext("No records found"), level=messages.WARNING)
+ self.admin.message_user(self.request, gettext("No records found"), level=messages.WARNING)
export_url = 'admin:{}'.format(self.admin.get_admin_url('export'))
return redirect(export_url)
return super(FormExportWizardView, self).render_next_step(form, **kwargs)
diff --git a/aldryn_forms/cms_apps.py b/aldryn_forms/cms_apps.py
index 57d61441..ebcd4dec 100644
--- a/aldryn_forms/cms_apps.py
+++ b/aldryn_forms/cms_apps.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from cms.app_base import CMSApp
from cms.apphook_pool import apphook_pool
diff --git a/aldryn_forms/cms_plugins.py b/aldryn_forms/cms_plugins.py
index 60a3bfb4..c161ec41 100644
--- a/aldryn_forms/cms_plugins.py
+++ b/aldryn_forms/cms_plugins.py
@@ -1,6 +1,9 @@
+import io
from typing import Dict
from PIL import Image
+from django.core.files.uploadedfile import InMemoryUploadedFile
+
from aldryn_forms.models import FormPlugin
from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
@@ -9,8 +12,8 @@
from django.core.validators import MinLengthValidator
from django.db.models import query
from django.template.loader import select_template
-from django.utils.translation import ugettext
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext
+from django.utils.translation import gettext_lazy as _
from emailit.api import send_mail
from filer.models import filemodels
from filer.models import imagemodels
@@ -32,15 +35,17 @@
from .forms import TextAreaFieldForm
from .forms import TextFieldForm
from .helpers import get_user_name
-from .models import FileUploadFieldPlugin
from .models import SerializedFormField
from .signals import form_post_save
from .signals import form_pre_save
from .sizefield.utils import filesizeformat
from .utils import get_action_backends
-from .validators import MaxChoicesValidator
-from .validators import MinChoicesValidator
-from .validators import is_valid_recipient
+from .validators import (
+ MaxChoicesValidator,
+ MinChoicesValidator,
+ is_valid_recipient,
+ generate_file_extension_validator,
+)
class FormElement(CMSPluginBase):
@@ -70,6 +75,14 @@ class FormPlugin(FieldContainer):
'url',
)
}),
+ (_('Condition Logic'), {
+ 'classes': ('collapse',),
+ 'fields': (
+ 'redirect_page_negative_condition',
+ 'condition_field',
+ 'condition_value',
+ )
+ }),
(_('Advanced Settings'), {
'classes': ('collapse',),
'fields': (
@@ -92,7 +105,12 @@ def render(self, context, instance, placeholder):
if request.POST.get('form_plugin_id') == str(instance.id) and form.is_valid():
context['post_success'] = True
- context['form_success_url'] = self.get_success_url(instance)
+ condition_value = None
+ field_data = form.get_cleaned_data()
+ if instance.condition_field in field_data:
+ condition_value = field_data[instance.condition_field]
+
+ context['form_success_url'] = self.get_success_url(instance, condition_value)
context['form'] = form
return context
@@ -186,7 +204,10 @@ def get_form_kwargs(self, instance, request):
kwargs['files'] = request.FILES
return kwargs
- def get_success_url(self, instance):
+ def get_success_url(self, instance, condition_value):
+ if instance.redirect_page_negative_condition and instance.condition_field:
+ if instance.condition_value == condition_value:
+ return instance.redirect_page_negative_condition.get_absolute_url()
return instance.success_url
def send_notifications(self, instance, form):
@@ -286,7 +307,7 @@ class Field(FormElement):
def serialize_value(self, instance, value, is_confirmation=False):
if isinstance(value, query.QuerySet):
- value = u', '.join(map(str, value))
+ value = ', '.join(map(str, value))
elif value is None:
value = '-'
return str(value)
@@ -543,9 +564,9 @@ class EmailField(BaseTextField):
form_field_widget = forms.EmailInput
form_field_widget_input_type = 'email'
fieldset_advanced_fields = [
- 'email_send_notification',
- 'email_subject',
- 'email_body',
+ "email_send_notification",
+ "email_subject",
+ "email_body",
] + Field.fieldset_advanced_fields
email_template_base = 'aldryn_forms/emails/user/notification'
@@ -586,11 +607,14 @@ class FileField(Field):
'validators',
]
fieldset_general_fields = [
- 'upload_to',
+ "upload_to",
] + Field.fieldset_general_fields
fieldset_advanced_fields = [
+ 'store_to_filer',
'help_text',
'max_size',
+ 'allowed_extensions',
+ 'invalid_extension_message',
'required_message',
'custom_classes',
]
@@ -602,52 +626,71 @@ def get_form_field_kwargs(self, instance):
kwargs['help_text'] = kwargs['help_text'].replace(
'MAXSIZE', filesizeformat(instance.max_size))
kwargs['max_size'] = instance.max_size
+ if instance.allowed_extensions:
+ kwargs['allowed_extensions'] = instance.allowed_extensions
return kwargs
+ def get_form_field_validators(self, instance: models.FileFieldPluginBase):
+ validators = super().get_form_field_validators(instance)
+ validators.append(
+ generate_file_extension_validator(
+ instance.allowed_extensions, instance.invalid_extension_message
+ )
+ )
+ return validators
+
def serialize_value(self, instance, value, is_confirmation=False):
- if value:
+ if value and hasattr(value, "absolute_uri"):
return value.absolute_uri
else:
return '-'
- def form_pre_save(self, instance, form, **kwargs):
+ def form_pre_save(self, instance: models.FileUploadFieldPlugin, form, **kwargs):
"""Save the uploaded file to django-filer
The type of model (file or image) is automatically chosen by trying to
open the uploaded file.
"""
+
request = kwargs['request']
field_name = form.form_plugin.get_form_field_name(field=instance)
- uploaded_file = form.cleaned_data[field_name]
+ uploaded_file: InMemoryUploadedFile = form.cleaned_data[field_name]
if uploaded_file is None:
return
- try:
- with Image.open(uploaded_file) as img:
- img.verify()
- except: # noqa
- model = filemodels.File
- else:
- model = imagemodels.Image
-
- filer_file = model(
- folder=instance.upload_to,
- file=uploaded_file,
- name=uploaded_file.name,
- original_filename=uploaded_file.name,
- is_public=True,
- )
- filer_file.save()
+ copy = io.BytesIO(uploaded_file.read())
+ uploaded_file.seek(0)
+
+ if instance.store_to_filer:
+ try:
+ with Image.open(uploaded_file) as img:
+ img.verify()
+ except: # noqa
+ model = filemodels.File
+ else:
+ model = imagemodels.Image
+
+ filer_file = model(
+ folder=instance.upload_to,
+ file=uploaded_file,
+ name=uploaded_file.name,
+ original_filename=uploaded_file.name,
+ is_public=True,
+ )
+ filer_file.save()
- # NOTE: This is a hack to make the full URL available later when we
- # need to serialize this field. We avoid to serialize it here directly
- # as we could still need access to the original filer File instance.
- filer_file.absolute_uri = request.build_absolute_uri(filer_file.url)
+ # NOTE: This is a hack to make the full URL available later when we
+ # need to serialize this field. We avoid to serialize it here directly
+ # as we could still need access to the original filer File instance.
+ filer_file.absolute_uri = request.build_absolute_uri(filer_file.url)
- form.cleaned_data[field_name] = filer_file
+ form.cleaned_data[field_name] = filer_file
+
+ uploaded_file.close()
+ form.cleaned_data[f"{field_name}__in_memory"] = {"name": uploaded_file.name, "file": copy}
class ImageField(FileField):
@@ -658,9 +701,10 @@ class ImageField(FileField):
form_field = RestrictedImageField
form_field_widget = RestrictedImageField.widget
fieldset_general_fields = [
- 'upload_to',
+ "upload_to",
] + Field.fieldset_general_fields
fieldset_advanced_fields = [
+ 'store_to_filer',
'help_text',
'max_size',
('max_width', 'max_height',),
@@ -713,7 +757,7 @@ class BooleanField(Field):
]
def serialize_value(self, instance, value, is_confirmation=False):
- return ugettext('Yes') if value else ugettext('No')
+ return gettext('Yes') if value else gettext('No')
class SelectOptionInline(TabularInline):
@@ -859,6 +903,7 @@ def serialize_field(self, *args, **kwargs):
# None means don't serialize me
return None
+
plugin_pool.register_plugin(CaptchaField)
diff --git a/aldryn_forms/contrib/email_notifications/cms_plugins.py b/aldryn_forms/contrib/email_notifications/cms_plugins.py
index 713b85e2..0e051d07 100644
--- a/aldryn_forms/contrib/email_notifications/cms_plugins.py
+++ b/aldryn_forms/contrib/email_notifications/cms_plugins.py
@@ -5,7 +5,9 @@
from django.contrib import admin
from django.core.mail import get_connection
from django.template.defaultfilters import safe
-from django.utils.translation import ugettext_lazy as _
+
+from django.utils.html import format_html
+from django.utils.translation import gettext_lazy as _
from cms.plugin_pool import plugin_pool
@@ -43,23 +45,31 @@ class ExistingEmailNotificationInline(admin.StackedInline):
model = EmailNotification
fieldsets = (
- (None, {
- 'fields': (
- 'theme',
- )
- }),
- (_('Recipients'), {
- 'fields': (
- 'text_variables',
- 'to_user',
- ('to_name', 'to_email'),
- ('from_name', 'from_email'),
- 'reply_to_email',
- )
- }),
+ (None, {"fields": ("theme", "is_use_in_condition")}),
+ (
+ _("Recipients"),
+ {
+ "fields": (
+ "text_variables",
+ "to_user",
+ ("to_name", "to_email"),
+ ("from_name", "from_email"),
+ "reply_to_email",
+ )
+ },
+ ),
+ (
+ _("Attaching files to email"),
+ {
+ "fields": (
+ "file_variables",
+ "files_to_attach_to_email",
+ )
+ },
+ ),
)
- readonly_fields = ['text_variables']
+ readonly_fields = ['text_variables', 'file_variables']
text_variables_help_text = _(
'the variables can be used within the email body, email sender,'
@@ -120,6 +130,29 @@ def text_variables(self, obj: EmailNotification) -> str:
text_variables.allow_tags = True
text_variables.short_description = _('available text variables')
+ def file_variables(self, obj: EmailNotification) -> str:
+ if obj.pk is None:
+ return ''
+
+ # list of tuples - [('category', [('value', 'label')])]
+ choices_by_category = obj.form.get_notification_text_context_file_keys_as_choices()
+
+ var_items: List[str] = []
+ for category, choices in choices_by_category:
+ for choice_tuple in choices:
+ field_value = choice_tuple[0]
+ var_items += '
' + field_value + ''
+
+ vars_html_list = f'{"".join(var_items)}
'
+ help_text = (
+ f''
+ f'{_("these are the valid file fields that can be attached to the email")}'
+ f'
'
+ )
+ return safe(vars_html_list + u'\n' + help_text)
+ file_variables.allow_tags = True
+ file_variables.short_description = _('available file variables')
+
class Media:
css = {
'all': ['email_notifications/admin/email-notifications.css']
@@ -144,6 +177,14 @@ class EmailNotificationForm(FormPlugin):
('redirect_page', 'url'),
)
}),
+ (_('Condition Logic'), {
+ 'classes': ('collapse',),
+ 'fields': (
+ 'redirect_page_negative_condition',
+ 'condition_field',
+ 'condition_value',
+ )
+ }),
(_('Advanced Settings'), {
'classes': ('collapse',),
'fields': (
@@ -179,10 +220,30 @@ def send_notifications(self, instance, form):
notifications = instance.email_notifications.select_related('form')
+ check_use_condition = False
+ condition_result = False
+
+ if instance.condition_field and instance.condition_value:
+ check_use_condition = True
+
+ form_data = form.cleaned_data
+ if instance.condition_field in form_data:
+ condition_result = str(form_data[instance.condition_field]) == str(instance.condition_value)
+
emails = []
recipients = []
- for notification in notifications:
+ filtered_notifications = []
+
+ if check_use_condition:
+ for notification in notifications:
+ if notification.is_use_in_condition == condition_result:
+ filtered_notifications.append(notification)
+ else:
+ filtered_notifications = notifications
+
+ for notification in filtered_notifications:
+
email = notification.prepare_email(form=form)
to_email = email.to[0]
diff --git a/aldryn_forms/contrib/email_notifications/migrations/0006_alter_emailnotification_id.py b/aldryn_forms/contrib/email_notifications/migrations/0006_alter_emailnotification_id.py
new file mode 100644
index 00000000..16ffafd4
--- /dev/null
+++ b/aldryn_forms/contrib/email_notifications/migrations/0006_alter_emailnotification_id.py
@@ -0,0 +1,20 @@
+# Generated by Django 4.2.4 on 2023-08-20 15:56
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("email_notifications", "0005_add_field_reply_to_email"),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name="emailnotification",
+ name="id",
+ field=models.BigAutoField(
+ auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
+ ),
+ ),
+ ]
diff --git a/aldryn_forms/contrib/email_notifications/migrations/0006_emailnotification_is_use_in_condition.py b/aldryn_forms/contrib/email_notifications/migrations/0006_emailnotification_is_use_in_condition.py
new file mode 100644
index 00000000..a077571e
--- /dev/null
+++ b/aldryn_forms/contrib/email_notifications/migrations/0006_emailnotification_is_use_in_condition.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.1.4 on 2021-11-17 11:22
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('email_notifications', '0005_add_field_reply_to_email'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='emailnotification',
+ name='is_use_in_condition',
+ field=models.BooleanField(default=False, help_text='This email notification will be used if condition field for the form is the same as condition value (See Form plugin configuration -> Condition Logic)', verbose_name='Use if condition succeeded'),
+ ),
+ ]
diff --git a/aldryn_forms/contrib/email_notifications/migrations/0007_auto_20231105_0323.py b/aldryn_forms/contrib/email_notifications/migrations/0007_auto_20231105_0323.py
new file mode 100644
index 00000000..13511188
--- /dev/null
+++ b/aldryn_forms/contrib/email_notifications/migrations/0007_auto_20231105_0323.py
@@ -0,0 +1,23 @@
+# Generated by Django 3.2 on 2023-11-04 22:23
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('email_notifications', '0006_alter_emailnotification_id'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='emailnotification',
+ name='files_to_attach_to_email',
+ field=models.CharField(blank=True, default='', help_text='Comma-separated list of file fields that should be attached directly to the email.', max_length=255, verbose_name='Files to attach to the email'),
+ ),
+ migrations.AlterField(
+ model_name='emailnotification',
+ name='id',
+ field=models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
+ ),
+ ]
diff --git a/aldryn_forms/contrib/email_notifications/migrations/0008_merge_20240308_1756.py b/aldryn_forms/contrib/email_notifications/migrations/0008_merge_20240308_1756.py
new file mode 100644
index 00000000..c8e9f7cd
--- /dev/null
+++ b/aldryn_forms/contrib/email_notifications/migrations/0008_merge_20240308_1756.py
@@ -0,0 +1,14 @@
+# Generated by Django 3.2.17 on 2024-03-08 16:56
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('email_notifications', '0006_emailnotification_is_use_in_condition'),
+ ('email_notifications', '0007_auto_20231105_0323'),
+ ]
+
+ operations = [
+ ]
diff --git a/aldryn_forms/contrib/email_notifications/models.py b/aldryn_forms/contrib/email_notifications/models.py
index a88b55ec..7733ee0d 100644
--- a/aldryn_forms/contrib/email_notifications/models.py
+++ b/aldryn_forms/contrib/email_notifications/models.py
@@ -1,22 +1,27 @@
+import io
+import mimetypes
+import typing
from email.utils import formataddr
from functools import partial
from django.conf import settings
from django.core.exceptions import ValidationError
+from django.core.files.uploadedfile import InMemoryUploadedFile
+from django.core.mail import EmailMultiAlternatives
from django.db import models
-from django.utils.translation import ugettext
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext
+from django.utils.translation import gettext_lazy as _
from djangocms_text_ckeditor.fields import HTMLField
from emailit.api import construct_mail
from aldryn_forms.helpers import get_user_name
-from aldryn_forms.models import FormPlugin
+from aldryn_forms.models import FormPlugin, FileFieldPluginBase
from .helpers import (
get_email_template_name, get_theme_template_name, render_text,
)
-
+from aldryn_forms.utils import serialize_delimiter_separated_values_string
EMAIL_THEMES = getattr(
settings,
@@ -49,6 +54,11 @@ def get_notification_text_context_keys_as_choices(self):
choices = notification_conf.get_context_keys_as_choices()
return choices
+ def get_notification_text_context_file_keys_as_choices(self):
+ notification_conf = self.get_notification_conf()
+ choices = notification_conf.get_context_file_keys_as_choices()
+ return choices
+
class EmailNotification(models.Model):
@@ -110,22 +120,35 @@ class Meta:
blank=True,
help_text=_('used when rendering the email in html.')
)
+ files_to_attach_to_email = models.CharField(
+ max_length=255,
+ verbose_name=_('Files to attach to the email'),
+ blank=True,
+ default="",
+ help_text=_('Comma-separated list of file fields that should be attached directly to the email.')
+ )
form = models.ForeignKey(
to=EmailNotificationFormPlugin,
related_name='email_notifications',
on_delete=models.CASCADE,
)
+ is_use_in_condition = models.BooleanField(
+ default=False,
+ verbose_name=_('Use if condition succeeded'),
+ help_text=_('This email notification will be used if condition field for the form is the same '
+ 'as condition value (See Form plugin configuration -> Condition Logic)')
+ )
def __str__(self):
to_name = self.get_recipient_name()
to_email = self.get_recipient_email()
- return u'{0} ({1})'.format(to_name, to_email)
+ return '{0} ({1})'.format(to_name, to_email)
def clean(self):
recipient_email = self.get_recipient_email()
if self.pk and not recipient_email:
- message = ugettext('Please provide a recipient.')
+ message = gettext('Please provide a recipient.')
raise ValidationError(message)
def get_recipient_name(self):
@@ -216,9 +239,48 @@ def get_email_kwargs(self, form):
return kwargs
+ def attach_files(self, email: EmailMultiAlternatives, form):
+ """Attach files if any are needed"""
+ files_to_attach = serialize_delimiter_separated_values_string(
+ self.files_to_attach_to_email, delimiter=",", strip=True, lower=False
+ )
+
+ if not files_to_attach:
+ return
+
+ # noinspection PyProtectedMember
+ fields = [
+ field
+ for field in form.base_fields.values()
+ if hasattr(field, "_model_instance") and field._model_instance.IS_FILE_FIELD
+ ]
+
+ for field in fields:
+ # noinspection PyProtectedMember
+ field_name = field._model_instance.name
+
+ if field_name in files_to_attach:
+ field_file_key = f"{field_name}__in_memory"
+ filed_file_data: typing.Dict[str, typing.Union[str, io.BytesIO]] = form.cleaned_data.get(field_file_key)
+ file = filed_file_data["file"]
+ file_name = filed_file_data["name"]
+ if not file:
+ continue
+
+ # Redundant precaution
+ file.seek(0)
+
+ email.attach(
+ filename=file_name,
+ content=file.read(),
+ mimetype=mimetypes.guess_type(file_name)[0],
+ )
+
def prepare_email(self, form):
email_kwargs = self.get_email_kwargs(form)
- return construct_mail(**email_kwargs)
+ email: EmailMultiAlternatives = construct_mail(**email_kwargs)
+ self.attach_files(email, form)
+ return email
def render_body_text(self, context):
return render_text(self.body_text, context)
diff --git a/aldryn_forms/contrib/email_notifications/notification.py b/aldryn_forms/contrib/email_notifications/notification.py
index 178a6423..dbb5424f 100644
--- a/aldryn_forms/contrib/email_notifications/notification.py
+++ b/aldryn_forms/contrib/email_notifications/notification.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext
+from django.utils.translation import gettext
from .helpers import get_email_template_name
@@ -50,7 +50,7 @@ def get_custom_context(self, form):
def get_context_keys_as_choices(self):
choices = [
(
- ugettext('Fields'),
+ gettext('Fields'),
list(self.form_plugin.get_form_fields_as_choices())
),
]
@@ -59,6 +59,15 @@ def get_context_keys_as_choices(self):
choices += list(self.custom_context_choices)
return choices
+ def get_context_file_keys_as_choices(self):
+ choices = [
+ (
+ gettext('Fields'),
+ list(self.form_plugin.get_form_file_fields_as_choices())
+ ),
+ ]
+ return choices
+
class DefaultNotificationConf(BaseNotificationConf):
html_email_format_enabled = True
diff --git a/aldryn_forms/forms.py b/aldryn_forms/forms.py
index c0141b88..0a30230c 100644
--- a/aldryn_forms/forms.py
+++ b/aldryn_forms/forms.py
@@ -2,14 +2,15 @@
from django.conf import settings
from django.forms.forms import NON_FIELD_ERRORS
from django.forms.utils import ErrorDict
-from django.utils.translation import ugettext
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext
+from django.utils.translation import gettext_lazy as _
from PIL import Image
from .models import FormPlugin, FormSubmission
from .sizefield.utils import filesizeformat
-from .utils import add_form_error, get_user_model
+from .utils import add_form_error, get_user_model, serialize_delimiter_separated_values_string
+import mimetypes
class FileSizeCheckMixin(object):
@@ -25,7 +26,7 @@ def clean(self, *args, **kwargs):
if self.max_size is not None and data.size > self.max_size:
raise forms.ValidationError(
- ugettext('File size must be under %(max_size)s. Current file size is %(actual_size)s.') % {
+ gettext('File size must be under %(max_size)s. Current file size is %(actual_size)s.') % {
'max_size': filesizeformat(self.max_size),
'actual_size': filesizeformat(data.size),
})
@@ -33,7 +34,25 @@ def clean(self, *args, **kwargs):
class RestrictedFileField(FileSizeCheckMixin, forms.FileField):
- pass
+ def __init__(self, *args, **kwargs):
+ self.allowed_extensions = kwargs.pop('allowed_extensions', None)
+ super(RestrictedFileField, self).__init__(*args, **kwargs)
+
+ def widget_attrs(self, widget):
+ attrs = super().widget_attrs(widget)
+ if self.allowed_extensions:
+ allowed_extensions_list = [
+ extension if extension.startswith(".") else f".{extension}"
+ for extension in serialize_delimiter_separated_values_string(
+ self.allowed_extensions, delimiter=",", strip=True, lower=True
+ )
+ ]
+ accepted_types = [
+ mimetypes.guess_type(f"dummy{extension}")[0] or extension
+ for extension in allowed_extensions_list
+ ]
+ attrs.setdefault('accept', ",".join(accepted_types))
+ return attrs
class RestrictedImageField(FileSizeCheckMixin, forms.ImageField):
@@ -59,7 +78,7 @@ def clean(self, *args, **kwargs):
if self.max_width and width > self.max_width:
raise forms.ValidationError(
- ugettext(
+ gettext(
'Image width must be under %(max_size)s pixels. '
'Current width is %(actual_size)s pixels.'
) % {
@@ -69,7 +88,7 @@ def clean(self, *args, **kwargs):
if self.max_height and height > self.max_height:
raise forms.ValidationError(
- ugettext(
+ gettext(
'Image height must be under %(max_size)s pixels. '
'Current height is %(actual_size)s pixels.'
) % {
@@ -218,7 +237,7 @@ def clean(self):
min_value = self.cleaned_data.get('min_value')
max_value = self.cleaned_data.get('max_value')
if min_value and max_value and min_value > max_value:
- self.append_to_errors('min_value', _(u'Min value can not be greater than max value.'))
+ self.append_to_errors('min_value', _('Min value can not be greater than max value.'))
return self.cleaned_data
@@ -227,11 +246,11 @@ class TextFieldForm(MinMaxValueForm):
def __init__(self, *args, **kwargs):
super(TextFieldForm, self).__init__(*args, **kwargs)
- self.fields['min_value'].label = _(u'Min length')
- self.fields['min_value'].help_text = _(u'Required number of characters to type.')
+ self.fields['min_value'].label = _('Min length')
+ self.fields['min_value'].help_text = _('Required number of characters to type.')
- self.fields['max_value'].label = _(u'Max length')
- self.fields['max_value'].help_text = _(u'Maximum number of characters to type.')
+ self.fields['max_value'].label = _('Max length')
+ self.fields['max_value'].help_text = _('Maximum number of characters to type.')
self.fields['max_value'].required = False
class Meta:
@@ -308,11 +327,11 @@ class MultipleSelectFieldForm(MinMaxValueForm):
def __init__(self, *args, **kwargs):
super(MultipleSelectFieldForm, self).__init__(*args, **kwargs)
- self.fields['min_value'].label = _(u'Min choices')
- self.fields['min_value'].help_text = _(u'Required amount of elements to chose.')
+ self.fields['min_value'].label = _('Min choices')
+ self.fields['min_value'].help_text = _('Required amount of elements to chose.')
- self.fields['max_value'].label = _(u'Max choices')
- self.fields['max_value'].help_text = _(u'Maximum amount of elements to chose.')
+ self.fields['max_value'].label = _('Max choices')
+ self.fields['max_value'].help_text = _('Maximum amount of elements to chose.')
class Meta:
# 'required' and 'required_message' depend on min_value field validator
diff --git a/aldryn_forms/locale/de/LC_MESSAGES/django.mo b/aldryn_forms/locale/de/LC_MESSAGES/django.mo
index 08c20d71..dc758064 100644
Binary files a/aldryn_forms/locale/de/LC_MESSAGES/django.mo and b/aldryn_forms/locale/de/LC_MESSAGES/django.mo differ
diff --git a/aldryn_forms/locale/de/LC_MESSAGES/django.po b/aldryn_forms/locale/de/LC_MESSAGES/django.po
index 69c6ace5..25c0523e 100644
--- a/aldryn_forms/locale/de/LC_MESSAGES/django.po
+++ b/aldryn_forms/locale/de/LC_MESSAGES/django.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-08-29 12:13+0200\n"
+"POT-Creation-Date: 2024-03-08 18:39+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Peter W , 2016\n"
"Language-Team: German (https://www.transifex.com/divio/teams/58664/de/)\n"
@@ -20,557 +20,725 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: addons-dev/aldryn-forms/aldryn_forms/action_backends.py:13
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:100
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:512
+#: addons-dev/aldryn-forms/aldryn_forms/action_backends.py:12
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:98
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:579
msgid "Default"
msgstr "Standard"
-#: addons-dev/aldryn-forms/aldryn_forms/action_backends.py:23
+#: addons-dev/aldryn-forms/aldryn_forms/action_backends.py:21
#, fuzzy
#| msgid "Email Field"
msgid "Email only"
msgstr "E-Mail-Feld"
-#: addons-dev/aldryn-forms/aldryn_forms/action_backends.py:31
+#: addons-dev/aldryn-forms/aldryn_forms/action_backends.py:29
msgid "None"
msgstr ""
-#: addons-dev/aldryn-forms/aldryn_forms/admin/base.py:40
+#: addons-dev/aldryn-forms/aldryn_forms/admin/base.py:35
msgid "data"
msgstr "Daten"
-#: addons-dev/aldryn-forms/aldryn_forms/admin/base.py:56
+#: addons-dev/aldryn-forms/aldryn_forms/admin/base.py:51
msgid "people notified"
msgstr "Benachrichtigte Personen"
-#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:34
+#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:33
msgid "from date"
msgstr "Datum von"
-#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:39
+#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:38
msgid "to date"
msgstr "Datum bis"
-#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:44
+#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:43
msgid "language"
msgstr "Sprache"
-#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:59
-msgid "Export failed! More than 65,536 entries found, exceeded Excel limitation!"
-msgstr "Export fehlgeschlagen! Mehr als 65,536 Einträge gefunden, Excel-Limit erreicht!"
+#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:58
+msgid ""
+"Export failed! More than 65,536 entries found, exceeded Excel limitation!"
+msgstr ""
+"Export fehlgeschlagen! Mehr als 65,536 Einträge gefunden, Excel-Limit "
+"erreicht!"
-#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:133
+#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:132
msgid "Please select at least one field to export."
msgstr "Es muss mindestens ein Feld zum Exportieren gewählt sein."
-#: addons-dev/aldryn-forms/aldryn_forms/admin/views.py:69
+#: addons-dev/aldryn-forms/aldryn_forms/admin/views.py:68
msgid "No records found"
msgstr "Keine Einträge gefunden"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_apps.py:9
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:51
+#: addons-dev/aldryn-forms/aldryn_forms/cms_apps.py:8
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:54
msgid "Forms"
msgstr "Formulare"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:60
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:63
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:163
msgid "Form"
msgstr "Formular"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:61
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:64
#, fuzzy
#| msgid "Form fields"
msgid "Form types"
msgstr "Formularfelder"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:75
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:237
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:412
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:136
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:78
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:180
+msgid "Condition Logic"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:86
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:248
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:423
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:188
msgid "Advanced Settings"
msgstr "Erweiterte Einstellungen"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:199
-msgid "The form has been sent."
-msgstr "Das Formular wurde versendet."
-
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:228
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:239
msgid "Fieldset"
msgstr "Feldergruppe"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:265
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:276
msgid "Form fields"
msgstr "Formularfelder"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:486
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:497
msgid "Text Field"
msgstr "Textfeld"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:490
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:501
msgid "Text Area Field"
msgstr "Mehrzeiliges Textfeld"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:531
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:542
#, fuzzy
#| msgid "Text Field"
msgid "Hidden Field"
msgstr "Textfeld"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:539
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:550
#, fuzzy
#| msgid "Text Field"
msgid "Phone Field"
msgstr "Textfeld"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:544
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:555
#, fuzzy
#| msgid "Text Field"
msgid "Number Field"
msgstr "Textfeld"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:549
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:560
msgid "Email Field"
msgstr "E-Mail-Feld"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:585
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:596
msgid "File upload field"
msgstr "Datei-Hochladen-Feld"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:665
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:696
msgid "Image upload field"
msgstr "Bild-Hochladen-Feld"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:703
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:735
msgid "Yes/No Field"
msgstr "Checkbox-Feld"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:727
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:759
msgid "Yes"
msgstr "Ja"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:727
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:759
msgid "No"
msgstr "Nein"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:735
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:767
msgid "Select Field"
msgstr "Auswahlfeld"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:771
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:803
msgid "Multiple Select Field"
msgstr "Mehrfach-Auswahlfeld"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:810
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:842
msgid "Multiple Checkbox Field"
msgstr "Mehrfaches Checkbox-Feld"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:814
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:846
msgid "Radio Select Field"
msgstr "Radio-Button-Auswahlfeld"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:857
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:889
msgid "Captcha Field"
msgstr "Captcha-Feld"
-#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:878
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:911
msgid "Submit Button"
msgstr "Senden-Button"
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:25
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:28
msgid "new email notification"
msgstr "Neue E-Mail-Benachrichtigung"
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:26
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:29
msgid "new email notifications"
msgstr "Neue E-Mail-Benachrichtigungen"
#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:50
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:153
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:151
msgid "Recipients"
msgstr "Empfänger"
#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:62
-#, python-brace-format
-msgid "variables can be used with by wrapping with \"${variable}\" like ${variable}"
-msgstr "Variabeln können benutzt werden, indem Sie Ausführungszeichen hinzufügen. Aus ${variable} wird \"${variable}\". "
+msgid "Attaching files to email"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:75
+msgid ""
+"the variables can be used within the email body, email sender,and other "
+"notification fields"
+msgstr ""
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:91
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:105
msgid "Email"
msgstr "E-Mail"
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:116
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:131
msgid "available text variables"
msgstr "Verfügbare Textvariabeln"
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:120
-msgid "Form (Advanced)"
-msgstr "Formular (Erweitert)"
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:154
+#, fuzzy
+#| msgid "available text variables"
+msgid "available file variables"
+msgstr "Verfügbare Textvariabeln"
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:26
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:29
msgid "default"
msgstr "Standard"
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:60
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:66
msgid "Email notification"
msgstr "E-Mail-Benachrichtigung"
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:61
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:67
msgid "Email notifications"
msgstr "E-Mail-Benachrichtigungen"
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:64
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:70
msgid "theme"
msgstr "Vorlage"
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:66
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:72
msgid "Provides the base theme for the email."
msgstr "Stellt das Standard-Template für die E-Mail zur Verfügung."
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:70
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:76
msgid "to name"
msgstr "Name des Empfängers"
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:75
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:81
msgid "to email"
msgstr "E-Mail des Empfängers"
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:81
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:87
msgid "to user"
msgstr "an Benutzer"
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:88
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:94
msgid "from name"
msgstr "Name des Absenders"
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:93
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:99
msgid "from email"
msgstr "E-Mail des Absenders"
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:98
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:104
+#, fuzzy
+#| msgid "to email"
+msgid "reply to email"
+msgstr "E-Mail des Empfängers"
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:109
msgid "subject"
msgstr "Betreff"
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:103
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:114
msgid "email body (txt)"
msgstr "E-Mail-Inhalt (Text)"
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:105
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:116
msgid "used when rendering the email in text only mode."
msgstr "wird benutzt, wenn die E-Mail als Text dargestellt wird."
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:108
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:119
msgid "email body (html)"
msgstr "E-Mail-Inhalt (HTML)"
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:110
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:121
msgid "used when rendering the email in html."
msgstr "wird benutzt, wenn die E-Mail in HTML dargestellt wird."
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:127
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:125
+#, fuzzy
+#| msgid "Provides the base theme for the email."
+msgid "Files to attach to the email"
+msgstr "Stellt das Standard-Template für die E-Mail zur Verfügung."
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:128
+msgid ""
+"Comma-separated list of file fields that should be attached directly to the "
+"email."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:137
+msgid "Use if condition succeeded"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:138
+msgid ""
+"This email notification will be used if condition field for the form is the "
+"same as condition value (See Form plugin configuration -> Condition Logic)"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:151
msgid "Please provide a recipient."
msgstr "Bitte einen Empfänger angeben."
-#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/notification.py:54
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/notification.py:53
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/notification.py:65
msgid "Fields"
msgstr "Felder"
#: addons-dev/aldryn-forms/aldryn_forms/forms.py:29
#, python-format
-msgid "File size must be under %(max_size)s. Current file size is %(actual_size)s."
-msgstr "Dateigröße muss unter %(max_size)s sein. Aktuelle Größe ist %(actual_size)s."
+msgid ""
+"File size must be under %(max_size)s. Current file size is %(actual_size)s."
+msgstr ""
+"Dateigröße muss unter %(max_size)s sein. Aktuelle Größe ist %(actual_size)s."
-#: addons-dev/aldryn-forms/aldryn_forms/forms.py:64
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:82
#, python-format
-msgid "Image width must be under %(max_size)s pixels. Current width is %(actual_size)s pixels."
-msgstr "Bildbreite muss unter %(max_size)s Pixel groß sein. Aktuelle Breite ist %(actual_size)s Pixel."
+msgid ""
+"Image width must be under %(max_size)s pixels. Current width is "
+"%(actual_size)s pixels."
+msgstr ""
+"Bildbreite muss unter %(max_size)s Pixel groß sein. Aktuelle Breite ist "
+"%(actual_size)s Pixel."
-#: addons-dev/aldryn-forms/aldryn_forms/forms.py:74
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:92
#, python-format
-msgid "Image height must be under %(max_size)s pixels. Current height is %(actual_size)s pixels."
-msgstr "Bildhöhe muss unter %(max_size)s Pixel groß sein. Aktuelle Höhe ist %(actual_size)s Pixel."
+msgid ""
+"Image height must be under %(max_size)s pixels. Current height is "
+"%(actual_size)s pixels."
+msgstr ""
+"Bildhöhe muss unter %(max_size)s Pixel groß sein. Aktuelle Höhe ist "
+"%(actual_size)s Pixel."
-#: addons-dev/aldryn-forms/aldryn_forms/forms.py:170
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:188
msgid "Please provide CMS page for redirect."
msgstr "Bitte CMS-Seite angeben für die Weiterleitung."
-#: addons-dev/aldryn-forms/aldryn_forms/forms.py:175
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:193
msgid "Please provide an absolute URL for redirect."
msgstr "Bitte eine absolute URL angeben für die Weiterleitung."
-#: addons-dev/aldryn-forms/aldryn_forms/forms.py:222
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:240
msgid "Min value can not be greater than max value."
msgstr "Der Mindestwert kann nicht größer sein als der Maximalwert."
-#: addons-dev/aldryn-forms/aldryn_forms/forms.py:231
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:249
msgid "Min length"
msgstr "Mindestlänge"
-#: addons-dev/aldryn-forms/aldryn_forms/forms.py:232
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:250
msgid "Required number of characters to type."
msgstr "Benötigte Anzahl von getippten Zeichen."
-#: addons-dev/aldryn-forms/aldryn_forms/forms.py:234
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:252
msgid "Max length"
msgstr "Maximale Länge"
-#: addons-dev/aldryn-forms/aldryn_forms/forms.py:235
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:253
msgid "Maximum number of characters to type."
msgstr "Maximale Anzahl von getippten Zeichen."
-#: addons-dev/aldryn-forms/aldryn_forms/forms.py:275
-msgid "Explanatory text displayed next to input field. Just like this one. You can use MAXSIZE as a placeholder for the maximum size configured below."
-msgstr "Erläuterungstext, der neben dem Eingabefeld angezeigt wird - so wie dieser. MAXSIZE kann als Platzhalter benutzt werden, um die Maximallänge zu konfigurieren."
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:293
+msgid ""
+"Explanatory text displayed next to input field. Just like this one. You can "
+"use MAXSIZE as a placeholder for the maximum size configured below."
+msgstr ""
+"Erläuterungstext, der neben dem Eingabefeld angezeigt wird - so wie dieser. "
+"MAXSIZE kann als Platzhalter benutzt werden, um die Maximallänge zu "
+"konfigurieren."
-#: addons-dev/aldryn-forms/aldryn_forms/forms.py:288
-msgid "Explanatory text displayed next to input field. Just like this one. You can use MAXSIZE, MAXWIDTH, MAXHEIGHT as a placeholders for the maximum file size and dimensions configured below."
-msgstr "Erläuterungstext, der neben dem Eingabefeld angezeigt wird - so wie dieser. MAXSIZE, MAXWIDTH und MAXHEIGHT können als Platzhalter definiert werden, um die maximale Dateigröße oder Dimensionen zu konfigurieren."
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:306
+msgid ""
+"Explanatory text displayed next to input field. Just like this one. You can "
+"use MAXSIZE, MAXWIDTH, MAXHEIGHT as a placeholders for the maximum file size "
+"and dimensions configured below."
+msgstr ""
+"Erläuterungstext, der neben dem Eingabefeld angezeigt wird - so wie dieser. "
+"MAXSIZE, MAXWIDTH und MAXHEIGHT können als Platzhalter definiert werden, um "
+"die maximale Dateigröße oder Dimensionen zu konfigurieren."
-#: addons-dev/aldryn-forms/aldryn_forms/forms.py:312
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:330
msgid "Min choices"
msgstr "Mindestauswahl"
-#: addons-dev/aldryn-forms/aldryn_forms/forms.py:313
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:331
msgid "Required amount of elements to chose."
msgstr "Benötigte Anzahl von auszuwählenden Elementen."
-#: addons-dev/aldryn-forms/aldryn_forms/forms.py:315
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:333
msgid "Max choices"
msgstr "Maximale Auswahlmöglichkeiten"
-#: addons-dev/aldryn-forms/aldryn_forms/forms.py:316
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:334
msgid "Maximum amount of elements to chose."
msgstr "Maximale Anzahl auszuwählender Elemente."
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:108
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:172
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:106
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:170
msgid "CMS Page"
msgstr "CMS-Seite"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:109
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:140
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:107
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:138
msgid "Absolute URL"
msgstr "Absolute URL"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:116
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:354
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:114
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:384
msgid "Name"
msgstr "Name"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:118
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:116
msgid "Used to filter out form submissions."
msgstr "Benutzt um Formulareinträge zu filtern."
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:121
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:362
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:119
msgid "Error message"
msgstr "Fehlermeldung"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:124
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:122
msgid "An error message that will be displayed if the form doesn't validate."
-msgstr "Eine Fehlermeldung, die angezeigt wird, wenn das Formular ungültig ist."
+msgstr ""
+"Eine Fehlermeldung, die angezeigt wird, wenn das Formular ungültig ist."
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:128
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:126
msgid "Success message"
msgstr "Erfolgsmeldung"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:131
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:129
msgid "An success message that will be displayed."
msgstr "Erfolgsmeldung, die angezeigt wird."
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:134
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:132
msgid "Redirect to"
msgstr "Weiterleiten nach"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:137
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:135
msgid "Where to redirect the user when the form has been successfully sent?"
-msgstr "Wohin soll der Benutzer weitergeleitet werden, wenn das Formular erfolgreich versandt wurde?"
+msgstr ""
+"Wohin soll der Benutzer weitergeleitet werden, wenn das Formular erfolgreich "
+"versandt wurde?"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:142
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:342
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:409
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:538
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:140
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:373
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:439
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:604
msgid "custom css classes"
msgstr "Benutzerdefinierte CSS-Klassen"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:144
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:142
msgid "form template"
msgstr "Formularvorlage"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:156
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:154
msgid "People who will get the form content via e-mail."
msgstr "Personen, welche den Formularinhalt per E-Mail erhalten."
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:160
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:158
msgid "Action backend"
msgstr ""
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:167
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:383
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:165
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:413
msgid "Attributes"
msgstr ""
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:340
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:177
+msgid "CMS Page (condition is false)"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:185
+msgid "Condition field"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:186
+msgid ""
+"This field is used to enable condition logic. If field doesn't match the "
+"condition value then redirect and notification works as usual. If value of "
+"the field matches the condition value field then custom redirect and "
+"notification will be used."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:193
+#, fuzzy
+#| msgid "Min value"
+msgid "Condition field value"
+msgstr "Mindestwert"
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:197
+msgid "Enable autofill from url parameters"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:199
+msgid ""
+"Eg if you open the form with a url that contains parameters as 'https://"
+"example.com/sub-page/?email=hello@example.com&name=Alex', then the fields "
+"'email' and 'name' are going to to be filled in automatically."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:371
msgid "Legend"
msgstr "Legende"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:356
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:386
msgid "Used to set the field name"
msgstr ""
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:359
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:536
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:389
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:602
#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/display/submission_data.html:4
msgid "Label"
msgstr "Beschreibung"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:360
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:390
msgid "Field is required"
msgstr "Feld ist zwingend erforderlich"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:365
-msgid "Error message displayed if the required field is left empty. Default: \"This field is required\"."
-msgstr "Fehlermeldung, die angezeigt wird, wenn das erforderliche Feld leer gelassen wird. Standard: \"Dieses Feld muss ausgefüllt werden\"."
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:392
+#, fuzzy
+#| msgid "Field is required"
+msgid "Field required error message"
+msgstr "Feld ist zwingend erforderlich"
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:395
+msgid ""
+"Error message displayed if the required field is left empty. Default: \"This "
+"field is required\"."
+msgstr ""
+"Fehlermeldung, die angezeigt wird, wenn das erforderliche Feld leer gelassen "
+"wird. Standard: \"Dieses Feld muss ausgefüllt werden\"."
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:369
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:399
msgid "Placeholder text"
msgstr "Platzhaltertext"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:372
-msgid "Default text in a form. Disappears when user starts typing. Example: \"email@example.com\""
-msgstr "Standardtext im Formular. Verschwindet, sobald der Benutzer zu tippen anfängt. Beispiel: \"email@example.com\""
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:402
+msgid ""
+"Default text in a form. Disappears when user starts typing. Example: "
+"\"email@example.com\""
+msgstr ""
+"Standardtext im Formular. Verschwindet, sobald der Benutzer zu tippen "
+"anfängt. Beispiel: \"email@example.com\""
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:376
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:406
msgid "Help text"
msgstr "Hilfetext"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:379
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:409
msgid "Explanatory text displayed next to input field. Just like this one."
-msgstr "Erläuterungstext, der neben dem Eingabefeld angezeigt wird. Genau wie dieser Text."
+msgstr ""
+"Erläuterungstext, der neben dem Eingabefeld angezeigt wird. Genau wie dieser "
+"Text."
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:391
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:421
msgid "Min value"
msgstr "Mindestwert"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:397
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:427
msgid "Max value"
msgstr "Maximalwert"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:402
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:432
#, fuzzy
#| msgid "Min value"
msgid "Initial value"
msgstr "Mindestwert"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:405
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:435
msgid "Default value of field."
msgstr ""
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:444
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:467
+msgid "The \"name\" field cannot contain spaces."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:480
msgid "columns"
msgstr "Spalten"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:446
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:482
msgid "rows"
msgstr "Zeilen"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:451
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:487
msgid "send notification when form is submitted"
msgstr "Benachrichtigung senden, wenn das Formular abgeschickt wird"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:453
-msgid "When checked, the value of this field will be used to send an email notification."
-msgstr "Wenn aktiviert, wird der Wert dieses Feldes verwendet, um eine E-Mail-Benachrichtigung zu senden."
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:489
+msgid ""
+"When checked, the value of this field will be used to send an email "
+"notification."
+msgstr ""
+"Wenn aktiviert, wird der Wert dieses Feldes verwendet, um eine E-Mail-"
+"Benachrichtigung zu senden."
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:457
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:493
msgid "email subject"
msgstr "E-Mail-Betreff"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:461
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:497
msgid "Used as the email subject when email_send_notification is checked."
-msgstr "Wird als E-Mail-Betreff verwendet, wenn \"email_send_notification\" aktiviert ist."
+msgstr ""
+"Wird als E-Mail-Betreff verwendet, wenn \"email_send_notification\" "
+"aktiviert ist."
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:465
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:501
msgid "Additional email body"
msgstr "Zusätzlicher E-Mail-Inhalt"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:468
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:504
msgid "Additional body text used when email notifications are active."
-msgstr "Zusätzlicher Inhaltstext wird dargestellt, wenn E-Mail-Benachrichtigungen aktiv sind."
+msgstr ""
+"Zusätzlicher Inhaltstext wird dargestellt, wenn E-Mail-Benachrichtigungen "
+"aktiv sind."
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:475
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:511
msgid "Upload files to"
msgstr "Dateien hochladen nach"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:476
-msgid "Select a folder to which all files submitted through this field will be uploaded to."
-msgstr "Verzeichnis auswählen, in das alle über dieses Feld übermittelten Dateien hochgeladen werden."
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:512
+msgid ""
+"Select a folder to which all files submitted through this field will be "
+"uploaded to."
+msgstr ""
+"Verzeichnis auswählen, in das alle über dieses Feld übermittelten Dateien "
+"hochgeladen werden."
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:481
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:517
msgid "Maximum file size"
msgstr "Maximale Dateigröße"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:483
-msgid "The maximum file size of the upload, in bytes. You can use common size suffixes (kB, MB, GB, ...)."
-msgstr "Die maximale Dateigröße des Upload in bytes. Es können gebräuchliche Suffixe für die Größe verwendet werden (kB, MB, GB, ...)."
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:519
+msgid ""
+"The maximum file size of the upload, in bytes. You can use common size "
+"suffixes (kB, MB, GB, ...)."
+msgstr ""
+"Die maximale Dateigröße des Upload in bytes. Es können gebräuchliche Suffixe "
+"für die Größe verwendet werden (kB, MB, GB, ...)."
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:524
+msgid "Allowed extensions"
+msgstr ""
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:497
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:529
+msgid ""
+"Comma-separated list of file extensions allowed for this file field. Leave "
+"it empty to allow any extension."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:535
+msgid "Invalid extension error message"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:538
+msgid ""
+"Error message displayed if extensions are constrained and the uploaded file "
+"fails that validation.Default: \"File extension [extension] is not allowed "
+"for this field.\""
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:542
+msgid "Store this file to filer"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:546
+msgid ""
+"Whether to store this file to filer. If this is unchecked and this file is "
+"not attached to any email notification, the file will be lost forever and "
+"using it as a template variable in any email template will return empty "
+"result."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:565
msgid "Maximum image width"
msgstr "Maximale Bildbreite"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:499
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:567
msgid "The maximum width of the uploaded image, in pixels."
msgstr "Die maximale Breite des hochgeladenen Bildes in Pixel."
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:502
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:570
msgid "Maximum image height"
msgstr "Maximale Bildhöhe"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:504
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:572
msgid "The maximum height of the uploaded image, in pixels."
msgstr "Die maximale Höhe des hochgeladenen Bildes in Pixel."
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:511
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:578
#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/display/submission_data.html:5
msgid "Value"
msgstr "Wert"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:513
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:580
msgid "Position"
msgstr ""
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:516
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:583
msgid "Option"
msgstr "Option"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:517
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:584
msgid "Options"
msgstr "Optionen"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:551
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:616
msgid "form name"
msgstr "Formularname"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:557
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:622
msgid "users notified"
msgstr "Benachrichtigte Benutzer"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:559
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:624
msgid "People who got a notification when form was submitted."
-msgstr "Personen, die eine Benachrichtigung erhalten, sobald ein Formular gesendet wurde."
+msgstr ""
+"Personen, die eine Benachrichtigung erhalten, sobald ein Formular gesendet "
+"wurde."
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:563
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:628
msgid "form language"
msgstr "Formularsprache"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:569
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:634
msgid "form url"
msgstr "URL des Formulars"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:577
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:642
msgid "Form submission"
msgstr "Formulareintrag"
-#: addons-dev/aldryn-forms/aldryn_forms/models.py:578
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:643
msgid "Form submissions"
msgstr "Formulareinträge"
@@ -578,7 +746,7 @@ msgstr "Formulareinträge"
msgid "Incorrect file size format."
msgstr ""
-#: addons-dev/aldryn-forms/aldryn_forms/sizefield/utils.py:81
+#: addons-dev/aldryn-forms/aldryn_forms/sizefield/utils.py:79
#, python-format
msgid "Size '%s' has incorrect format"
msgstr ""
@@ -631,25 +799,54 @@ msgstr "[Form Eintrag] %(form_name)s"
msgid "Required field"
msgstr "Feld erforderlich"
-#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/form.html:17
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/form.html:19
#, fuzzy, python-format
-#| msgid "Thank you for submitting your information, you will be redirected shortly."
+#| msgid ""
+#| "Thank you for submitting your information, you will be redirected shortly."
msgid "You will be redirected shortly."
-msgstr "Vielen Dank, dass Sie sich Zeit genommen haben, dieses Formular auszufüllen. Sie werden umgehend weitergeleitet."
+msgstr ""
+"Vielen Dank, dass Sie sich Zeit genommen haben, dieses Formular auszufüllen. "
+"Sie werden umgehend weitergeleitet."
-#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/form.html:21
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/form.html:23
msgid "Thank you for submitting your information."
msgstr ""
-#: addons-dev/aldryn-forms/aldryn_forms/validators.py:33
+#: addons-dev/aldryn-forms/aldryn_forms/validators.py:32
+#, python-brace-format
+msgid "File extension '{extension}' is not allowed for this field."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/validators.py:60
#, python-format
-msgid "You have to choose at least %(limit_value)d options (chosen %(show_value)d)."
-msgstr "Sie müssen mindestens %(limit_value)d Optionen (gewählt %(show_value)d) angeben."
+msgid ""
+"You have to choose at least %(limit_value)d options (chosen %(show_value)d)."
+msgstr ""
+"Sie müssen mindestens %(limit_value)d Optionen (gewählt %(show_value)d) "
+"angeben."
-#: addons-dev/aldryn-forms/aldryn_forms/validators.py:39
+#: addons-dev/aldryn-forms/aldryn_forms/validators.py:66
#, python-format
-msgid "You can't choose more than %(limit_value)d options (chosen %(show_value)d)."
-msgstr "Sie können nicht mehr als %(limit_value)d Optionen (gewählt %(show_value)d) angeben."
+msgid ""
+"You can't choose more than %(limit_value)d options (chosen %(show_value)d)."
+msgstr ""
+"Sie können nicht mehr als %(limit_value)d Optionen (gewählt %(show_value)d) "
+"angeben."
+
+#~ msgid "The form has been sent."
+#~ msgstr "Das Formular wurde versendet."
+
+#, python-brace-format
+#~ msgid ""
+#~ "variables can be used with by wrapping with \"${variable}\" like "
+#~ "${variable}"
+#~ msgstr ""
+#~ "Variabeln können benutzt werden, indem Sie Ausführungszeichen hinzufügen. "
+#~ "Aus ${variable} wird \"${variable}\". "
+
+#~ msgid "Form (Advanced)"
+#~ msgstr "Formular (Erweitert)"
#, python-format
#~ msgid ""
@@ -659,7 +856,9 @@ msgstr "Sie können nicht mehr als %(limit_value)d Optionen (gewählt %(show_val
#~ " "
#~ msgstr ""
#~ "\n"
-#~ "Vielen Dank, dass Sie sich die Zeit genommen haben, dieses Formular auszufüllen. Sie werden umgehend weitergeleitet."
+#~ "Vielen Dank, dass Sie sich die Zeit genommen haben, dieses Formular "
+#~ "auszufüllen. Sie werden umgehend weitergeleitet."
#~ msgid ""
#~ "\n"
diff --git a/aldryn_forms/locale/en/LC_MESSAGES/django.mo b/aldryn_forms/locale/en/LC_MESSAGES/django.mo
index e5186cb0..53ec28e6 100644
Binary files a/aldryn_forms/locale/en/LC_MESSAGES/django.mo and b/aldryn_forms/locale/en/LC_MESSAGES/django.mo differ
diff --git a/aldryn_forms/locale/en/LC_MESSAGES/django.po b/aldryn_forms/locale/en/LC_MESSAGES/django.po
index fe82eae9..63354a08 100644
--- a/aldryn_forms/locale/en/LC_MESSAGES/django.po
+++ b/aldryn_forms/locale/en/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-10-09 17:35+0000\n"
+"POT-Creation-Date: 2024-03-08 18:39+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -16,340 +16,308 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: admin/base.py:39
+#: addons-dev/aldryn-forms/aldryn_forms/action_backends.py:12
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:98
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:579
+msgid "Default"
+msgstr "Default"
+
+#: addons-dev/aldryn-forms/aldryn_forms/action_backends.py:21
+#, fuzzy
+#| msgid "Email Field"
+msgid "Email only"
+msgstr "Email Field"
+
+#: addons-dev/aldryn-forms/aldryn_forms/action_backends.py:29
+msgid "None"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/admin/base.py:35
msgid "data"
msgstr "data"
-#: admin/base.py:55
+#: addons-dev/aldryn-forms/aldryn_forms/admin/base.py:51
msgid "people notified"
msgstr "people notified"
-#: admin/forms.py:33
+#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:33
msgid "from date"
msgstr "from date"
-#: admin/forms.py:38
+#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:38
msgid "to date"
msgstr "to date"
-#: admin/forms.py:43
+#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:43
msgid "language"
msgstr "language"
-#: admin/forms.py:58
+#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:58
msgid ""
"Export failed! More than 65,536 entries found, exceeded Excel limitation!"
msgstr ""
"Export failed! More than 65,536 entries found, exceeded Excel limitation!"
-#: admin/forms.py:132
+#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:132
msgid "Please select at least one field to export."
msgstr "Please select at least one field to export."
-#: admin/views.py:69
+#: addons-dev/aldryn-forms/aldryn_forms/admin/views.py:68
msgid "No records found"
msgstr "No records found"
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/display/submission_data.html:3
-#: boilerplates/legacy/templates/admin/aldryn_forms/display/submission_data.html:3
-#: templates/admin/aldryn_forms/display/submission_data.html:3
-msgid "Field"
-msgstr "Field"
-
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/display/submission_data.html:4
-#: boilerplates/legacy/templates/admin/aldryn_forms/display/submission_data.html:4
-#: models.py:306 models.py:461
-#: templates/admin/aldryn_forms/display/submission_data.html:4
-msgid "Label"
-msgstr "Label"
-
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/display/submission_data.html:5
-#: boilerplates/legacy/templates/admin/aldryn_forms/display/submission_data.html:5
-#: models.py:451 templates/admin/aldryn_forms/display/submission_data.html:5
-msgid "Value"
-msgstr "Value"
-
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/export.html:5
-#: boilerplates/legacy/templates/admin/aldryn_forms/export.html:4
-#: boilerplates/legacy/templates/admin/aldryn_forms/export_wizard.html:4
-#: templates/admin/aldryn_forms/export.html:5
-msgid "Export form submissions"
-msgstr "Export form submissions"
-
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/export.html:8
-#: boilerplates/legacy/templates/admin/aldryn_forms/export.html:7
-#: boilerplates/legacy/templates/admin/aldryn_forms/export_wizard.html:7
-#: templates/admin/aldryn_forms/export.html:8
-msgid "Please correct the error below."
-msgid_plural "Please correct the errors below."
-msgstr[0] "Please correct the error below."
-msgstr[1] "Please correct the errors below."
-
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/export.html:30
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/export_wizard.html:11
-#: boilerplates/legacy/templates/admin/aldryn_forms/export.html:27
-#: boilerplates/legacy/templates/admin/aldryn_forms/export_wizard.html:30
-#: templates/admin/aldryn_forms/export.html:30
-#: templates/admin/aldryn_forms/export_wizard.html:11
-msgid "Export"
-msgstr "Export"
-
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/export_wizard.html:13
-#: boilerplates/legacy/templates/admin/aldryn_forms/export_wizard.html:32
-#: templates/admin/aldryn_forms/export_wizard.html:13
-msgid "Continue"
-msgstr "Continue"
-
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/formsubmission/change_list.html:9
-#: boilerplates/legacy/templates/admin/aldryn_forms/formsubmission/change_list.html:9
-#: templates/admin/aldryn_forms/formsubmission/change_list.html:9
-msgid "Export Form Entries"
-msgstr "Export Form Entries"
-
-#: boilerplates/bootstrap3/templates/aldryn_forms/email_notifications/emails/notification.body.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/email_notifications/emails/notification.body.txt:8
-#: boilerplates/bootstrap3/templates/aldryn_forms/emails/notification.body.html:3
-#: boilerplates/bootstrap3/templates/aldryn_forms/emails/notification.body.txt:2
-#: boilerplates/bootstrap3/templates/aldryn_forms/emails/user/notification.body.txt:5
-#: boilerplates/legacy/templates/aldryn_forms/email_notifications/emails/notification.body.html:9
-#: boilerplates/legacy/templates/aldryn_forms/email_notifications/emails/notification.body.txt:8
-#: boilerplates/legacy/templates/aldryn_forms/emails/notification.body.html:3
-#: boilerplates/legacy/templates/aldryn_forms/emails/notification.body.txt:2
-#: boilerplates/legacy/templates/aldryn_forms/emails/user/notification.body.txt:5
-#: templates/aldryn_forms/email_notifications/emails/notification.body.html:9
-#: templates/aldryn_forms/email_notifications/emails/notification.body.txt:8
-#: templates/aldryn_forms/emails/notification.body.html:3
-#: templates/aldryn_forms/emails/notification.body.txt:2
-#: templates/aldryn_forms/emails/user/notification.body.txt:5
-#, python-format
-msgid "Form name: %(form_name)s"
-msgstr "Form name: %(form_name)s"
-
-#: boilerplates/bootstrap3/templates/aldryn_forms/email_notifications/emails/notification.subject.txt:1
-#: boilerplates/bootstrap3/templates/aldryn_forms/emails/notification.subject.txt:1
-#: boilerplates/bootstrap3/templates/aldryn_forms/emails/user/notification.subject.txt:1
-#: boilerplates/legacy/templates/aldryn_forms/email_notifications/emails/notification.subject.txt:1
-#: boilerplates/legacy/templates/aldryn_forms/emails/notification.subject.txt:1
-#: boilerplates/legacy/templates/aldryn_forms/emails/user/notification.subject.txt:1
-#: templates/aldryn_forms/email_notifications/emails/notification.subject.txt:1
-#: templates/aldryn_forms/emails/notification.subject.txt:1
-#: templates/aldryn_forms/emails/user/notification.subject.txt:1
-#, python-format
-msgid "[Form submission] %(form_name)s"
-msgstr "[Form submission] %(form_name)s"
-
-#: boilerplates/bootstrap3/templates/aldryn_forms/field.html:7
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/emailfield.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/filefield.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/imagefield.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/multiplecheckboxselectfield.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/multipleselectfield.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/radioselectfield.html:8
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/selectfield.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/textareafield.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/textfield.html:9
-#: templates/aldryn_forms/field.html:14
-#: templates/aldryn_forms/fields/multiplecheckboxselectfield.html:9
-msgid "Required field"
-msgstr "Required field"
-
-#: boilerplates/bootstrap3/templates/aldryn_forms/form.html:19
-#, python-format
-msgid ""
-"Thank you for submitting your information, you will be redirected shortly."
-msgstr ""
-"Thank you for submitting your information, you will be redirected shortly."
-
-#: cms_apps.py:9 cms_plugins.py:51
+#: addons-dev/aldryn-forms/aldryn_forms/cms_apps.py:8
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:54
msgid "Forms"
msgstr "Forms"
-#: cms_plugins.py:60
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:63
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:163
msgid "Form"
msgstr "Form"
-#: cms_plugins.py:74 cms_plugins.py:242 cms_plugins.py:383
-#: contrib/email_notifications/cms_plugins.py:137
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:64
+#, fuzzy
+#| msgid "Form fields"
+msgid "Form types"
+msgstr "Form fields"
+
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:78
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:180
+msgid "Condition Logic"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:86
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:248
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:423
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:188
msgid "Advanced Settings"
msgstr "Advanced Settings"
-#: cms_plugins.py:204
-msgid "The form has been sent."
-msgstr "The form has been sent."
-
-#: cms_plugins.py:233
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:239
msgid "Fieldset"
msgstr "Fieldset"
-#: cms_plugins.py:252
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:276
msgid "Form fields"
msgstr "Form fields"
-#: cms_plugins.py:420
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:497
msgid "Text Field"
msgstr "Text Field"
-#: cms_plugins.py:444
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:501
msgid "Text Area Field"
msgstr "Text Area Field"
-#: cms_plugins.py:485
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:542
+#, fuzzy
+#| msgid "Text Field"
+msgid "Hidden Field"
+msgstr "Text Field"
+
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:550
+#, fuzzy
+#| msgid "Text Field"
+msgid "Phone Field"
+msgstr "Text Field"
+
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:555
+#, fuzzy
+#| msgid "Text Field"
+msgid "Number Field"
+msgstr "Text Field"
+
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:560
msgid "Email Field"
msgstr "Email Field"
-#: cms_plugins.py:520
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:596
msgid "File upload field"
msgstr "File upload field"
-#: cms_plugins.py:600
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:696
msgid "Image upload field"
msgstr "Image upload field"
-#: cms_plugins.py:638
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:735
msgid "Yes/No Field"
msgstr "Yes/No Field"
-#: cms_plugins.py:659
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:759
msgid "Yes"
msgstr "Yes"
-#: cms_plugins.py:659
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:759
msgid "No"
msgstr "No"
-#: cms_plugins.py:667
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:767
msgid "Select Field"
msgstr "Select Field"
-#: cms_plugins.py:701
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:803
msgid "Multiple Select Field"
msgstr "Multiple Select Field"
-#: cms_plugins.py:737
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:842
msgid "Multiple Checkbox Field"
msgstr "Multiple Checkbox Field"
-#: cms_plugins.py:741
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:846
msgid "Radio Select Field"
msgstr "Radio Select Field"
-#: cms_plugins.py:782
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:889
msgid "Captcha Field"
msgstr "Captcha Field"
-#: cms_plugins.py:803
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:911
msgid "Submit Button"
msgstr "Submit Button"
-#: contrib/email_notifications/cms_plugins.py:26
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:28
msgid "new email notification"
msgstr "new email notification"
-#: contrib/email_notifications/cms_plugins.py:27
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:29
msgid "new email notifications"
msgstr "new email notifications"
-#: contrib/email_notifications/cms_plugins.py:51 models.py:165
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:50
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:151
msgid "Recipients"
msgstr "Recipients"
-#: contrib/email_notifications/cms_plugins.py:63
-#, python-brace-format
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:62
+msgid "Attaching files to email"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:75
msgid ""
-"variables can be used with by wrapping with \"${variable}\" like ${variable}"
+"the variables can be used within the email body, email sender,and other "
+"notification fields"
msgstr ""
-"variables can be used with by wrapping with \"${variable}\" like ${variable}"
-#: contrib/email_notifications/cms_plugins.py:92
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:105
msgid "Email"
msgstr "Email"
-#: contrib/email_notifications/cms_plugins.py:117
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:131
msgid "available text variables"
msgstr "available text variables"
-#: contrib/email_notifications/cms_plugins.py:121
-msgid "Form (Advanced)"
-msgstr "Form (Advanced)"
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:154
+#, fuzzy
+#| msgid "available text variables"
+msgid "available file variables"
+msgstr "available text variables"
-#: contrib/email_notifications/models.py:28
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:29
msgid "default"
msgstr "default"
-#: contrib/email_notifications/models.py:62
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:66
msgid "Email notification"
msgstr "Email notification"
-#: contrib/email_notifications/models.py:63
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:67
msgid "Email notifications"
msgstr "Email notifications"
-#: contrib/email_notifications/models.py:66
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:70
msgid "theme"
msgstr "theme"
-#: contrib/email_notifications/models.py:68
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:72
msgid "Provides the base theme for the email."
msgstr "Provides the base theme for the email."
-#: contrib/email_notifications/models.py:72
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:76
msgid "to name"
msgstr "to name"
-#: contrib/email_notifications/models.py:77
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:81
msgid "to email"
msgstr "to email"
-#: contrib/email_notifications/models.py:83
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:87
msgid "to user"
msgstr "to user"
-#: contrib/email_notifications/models.py:89
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:94
msgid "from name"
msgstr "from name"
-#: contrib/email_notifications/models.py:94
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:99
msgid "from email"
msgstr "from email"
-#: contrib/email_notifications/models.py:99
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:104
+#, fuzzy
+#| msgid "to email"
+msgid "reply to email"
+msgstr "to email"
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:109
msgid "subject"
msgstr "subject"
-#: contrib/email_notifications/models.py:104
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:114
msgid "email body (txt)"
msgstr "email body (txt)"
-#: contrib/email_notifications/models.py:106
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:116
msgid "used when rendering the email in text only mode."
msgstr "used when rendering the email in text only mode."
-#: contrib/email_notifications/models.py:109
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:119
msgid "email body (html)"
msgstr "email body (html)"
-#: contrib/email_notifications/models.py:111
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:121
msgid "used when rendering the email in html."
msgstr "used when rendering the email in html."
-#: contrib/email_notifications/models.py:127
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:125
+#, fuzzy
+#| msgid "Provides the base theme for the email."
+msgid "Files to attach to the email"
+msgstr "Provides the base theme for the email."
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:128
+msgid ""
+"Comma-separated list of file fields that should be attached directly to the "
+"email."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:137
+msgid "Use if condition succeeded"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:138
+msgid ""
+"This email notification will be used if condition field for the form is the "
+"same as condition value (See Form plugin configuration -> Condition Logic)"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:151
msgid "Please provide a recipient."
msgstr "Please provide a recipient."
-#: contrib/email_notifications/notification.py:54
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/notification.py:53
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/notification.py:65
msgid "Fields"
msgstr "Fields"
-#: forms.py:28
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:29
#, python-format
msgid ""
"File size must be under %(max_size)s. Current file size is %(actual_size)s."
msgstr ""
"File size must be under %(max_size)s. Current file size is %(actual_size)s."
-#: forms.py:63
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:82
#, python-format
msgid ""
"Image width must be under %(max_size)s pixels. Current width is "
@@ -358,7 +326,7 @@ msgstr ""
"Image width must be under %(max_size)s pixels. Current width is "
"%(actual_size)s pixels."
-#: forms.py:73
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:92
#, python-format
msgid ""
"Image height must be under %(max_size)s pixels. Current height is "
@@ -367,35 +335,35 @@ msgstr ""
"Image height must be under %(max_size)s pixels. Current height is "
"%(actual_size)s pixels."
-#: forms.py:168
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:188
msgid "Please provide CMS page for redirect."
msgstr "Please provide CMS page for redirect."
-#: forms.py:172
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:193
msgid "Please provide an absolute URL for redirect."
msgstr "Please provide an absolute URL for redirect."
-#: forms.py:216
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:240
msgid "Min value can not be greater than max value."
msgstr "Min value can not be greater than max value."
-#: forms.py:225
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:249
msgid "Min length"
msgstr "Min length"
-#: forms.py:226
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:250
msgid "Required number of characters to type."
msgstr "Required number of characters to type."
-#: forms.py:228
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:252
msgid "Max length"
msgstr "Max length"
-#: forms.py:229
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:253
msgid "Maximum number of characters to type."
msgstr "Maximum number of characters to type."
-#: forms.py:264
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:293
msgid ""
"Explanatory text displayed next to input field. Just like this one. You can "
"use MAXSIZE as a placeholder for the maximum size configured below."
@@ -403,7 +371,7 @@ msgstr ""
"Explanatory text displayed next to input field. Just like this one. You can "
"use MAXSIZE as a placeholder for the maximum size configured below."
-#: forms.py:277
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:306
msgid ""
"Explanatory text displayed next to input field. Just like this one. You can "
"use MAXSIZE, MAXWIDTH, MAXHEIGHT as a placeholders for the maximum file size "
@@ -413,87 +381,145 @@ msgstr ""
"use MAXSIZE, MAXWIDTH, MAXHEIGHT as a placeholders for the maximum file size "
"and dimensions configured below."
-#: forms.py:301
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:330
msgid "Min choices"
msgstr "Min choices"
-#: forms.py:302
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:331
msgid "Required amount of elements to chose."
msgstr "Required amount of elements to chose."
-#: forms.py:304
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:333
msgid "Max choices"
msgstr "Max choices"
-#: forms.py:305
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:334
msgid "Maximum amount of elements to chose."
msgstr "Maximum amount of elements to chose."
-#: models.py:111 models.py:452
-msgid "Default"
-msgstr "Default"
-
-#: models.py:119 models.py:151
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:106
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:170
msgid "CMS Page"
msgstr "CMS Page"
-#: models.py:120 models.py:152
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:107
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:138
msgid "Absolute URL"
msgstr "Absolute URL"
-#: models.py:127
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:114
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:384
msgid "Name"
msgstr "Name"
-#: models.py:129
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:116
msgid "Used to filter out form submissions."
msgstr "Used to filter out form submissions."
-#: models.py:132 models.py:309
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:119
msgid "Error message"
msgstr "Error message"
-#: models.py:135
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:122
msgid "An error message that will be displayed if the form doesn't validate."
msgstr "An error message that will be displayed if the form doesn't validate."
-#: models.py:139
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:126
msgid "Success message"
msgstr "Success message"
-#: models.py:142
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:129
msgid "An success message that will be displayed."
msgstr "An success message that will be displayed."
-#: models.py:145
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:132
msgid "Redirect to"
msgstr "Redirect to"
-#: models.py:148
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:135
msgid "Where to redirect the user when the form has been successfully sent?"
msgstr "Where to redirect the user when the form has been successfully sent?"
-#: models.py:154 models.py:296 models.py:345 models.py:463
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:140
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:373
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:439
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:604
msgid "custom css classes"
msgstr "custom css classes"
-#: models.py:156
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:142
msgid "form template"
msgstr "form template"
-#: models.py:168
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:154
msgid "People who will get the form content via e-mail."
msgstr "People who will get the form content via e-mail."
-#: models.py:294
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:158
+msgid "Action backend"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:165
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:413
+msgid "Attributes"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:177
+msgid "CMS Page (condition is false)"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:185
+msgid "Condition field"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:186
+msgid ""
+"This field is used to enable condition logic. If field doesn't match the "
+"condition value then redirect and notification works as usual. If value of "
+"the field matches the condition value field then custom redirect and "
+"notification will be used."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:193
+msgid "Condition field value"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:197
+msgid "Enable autofill from url parameters"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:199
+msgid ""
+"Eg if you open the form with a url that contains parameters as 'https://"
+"example.com/sub-page/?email=hello@example.com&name=Alex', then the fields "
+"'email' and 'name' are going to to be filled in automatically."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:371
msgid "Legend"
msgstr "Legend"
-#: models.py:307
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:386
+msgid "Used to set the field name"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:389
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:602
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/display/submission_data.html:4
+msgid "Label"
+msgstr "Label"
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:390
msgid "Field is required"
msgstr "Field is required"
-#: models.py:312
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:392
+#, fuzzy
+#| msgid "Field is required"
+msgid "Field required error message"
+msgstr "Field is required"
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:395
msgid ""
"Error message displayed if the required field is left empty. Default: \"This "
"field is required\"."
@@ -501,11 +527,11 @@ msgstr ""
"Error message displayed if the required field is left empty. Default: \"This "
"field is required\"."
-#: models.py:316
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:399
msgid "Placeholder text"
msgstr "Placeholder text"
-#: models.py:319
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:402
msgid ""
"Default text in a form. Disappears when user starts typing. Example: "
"\"email@example.com\""
@@ -513,35 +539,49 @@ msgstr ""
"Default text in a form. Disappears when user starts typing. Example: "
"\"email@example.com\""
-#: models.py:323
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:406
msgid "Help text"
msgstr "Help text"
-#: models.py:326
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:409
msgid "Explanatory text displayed next to input field. Just like this one."
msgstr "Explanatory text displayed next to input field. Just like this one."
-#: models.py:333
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:421
msgid "Min value"
msgstr "Min value"
-#: models.py:339
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:427
msgid "Max value"
msgstr "Max value"
-#: models.py:380
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:432
+#, fuzzy
+#| msgid "Min value"
+msgid "Initial value"
+msgstr "Min value"
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:435
+msgid "Default value of field."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:467
+msgid "The \"name\" field cannot contain spaces."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:480
msgid "columns"
msgstr "columns"
-#: models.py:382
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:482
msgid "rows"
msgstr "rows"
-#: models.py:387
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:487
msgid "send notification when form is submitted"
msgstr "send notification when form is submitted"
-#: models.py:389
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:489
msgid ""
"When checked, the value of this field will be used to send an email "
"notification."
@@ -549,27 +589,27 @@ msgstr ""
"When checked, the value of this field will be used to send an email "
"notification."
-#: models.py:393
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:493
msgid "email subject"
msgstr "email subject"
-#: models.py:397
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:497
msgid "Used as the email subject when email_send_notification is checked."
msgstr "Used as the email subject when email_send_notification is checked."
-#: models.py:401
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:501
msgid "Additional email body"
msgstr "Additional email body"
-#: models.py:404
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:504
msgid "Additional body text used when email notifications are active."
msgstr "Additional body text used when email notifications are active."
-#: models.py:411
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:511
msgid "Upload files to"
msgstr "Upload files to"
-#: models.py:412
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:512
msgid ""
"Select a folder to which all files submitted through this field will be "
"uploaded to."
@@ -577,11 +617,11 @@ msgstr ""
"Select a folder to which all files submitted through this field will be "
"uploaded to."
-#: models.py:416
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:517
msgid "Maximum file size"
msgstr "Maximum file size"
-#: models.py:418
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:519
msgid ""
"The maximum file size of the upload, in bytes. You can use common size "
"suffixes (kB, MB, GB, ...)."
@@ -589,85 +629,216 @@ msgstr ""
"The maximum file size of the upload, in bytes. You can use common size "
"suffixes (kB, MB, GB, ...)."
-#: models.py:432
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:524
+msgid "Allowed extensions"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:529
+msgid ""
+"Comma-separated list of file extensions allowed for this file field. Leave "
+"it empty to allow any extension."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:535
+msgid "Invalid extension error message"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:538
+msgid ""
+"Error message displayed if extensions are constrained and the uploaded file "
+"fails that validation.Default: \"File extension [extension] is not allowed "
+"for this field.\""
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:542
+msgid "Store this file to filer"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:546
+msgid ""
+"Whether to store this file to filer. If this is unchecked and this file is "
+"not attached to any email notification, the file will be lost forever and "
+"using it as a template variable in any email template will return empty "
+"result."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:565
msgid "Maximum image width"
msgstr "Maximum image width"
-#: models.py:434
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:567
msgid "The maximum width of the uploaded image, in pixels."
msgstr "The maximum width of the uploaded image, in pixels."
-#: models.py:437
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:570
msgid "Maximum image height"
msgstr "Maximum image height"
-#: models.py:439
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:572
msgid "The maximum height of the uploaded image, in pixels."
msgstr "The maximum height of the uploaded image, in pixels."
-#: models.py:447
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:578
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/display/submission_data.html:5
+msgid "Value"
+msgstr "Value"
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:580
+msgid "Position"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:583
msgid "Option"
msgstr ""
-#: models.py:448
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:584
msgid "Options"
msgstr ""
-#: models.py:474
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:616
msgid "form name"
msgstr "form name"
-#: models.py:480
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:622
msgid "users notified"
msgstr "users notified"
-#: models.py:482
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:624
msgid "People who got a notification when form was submitted."
msgstr "People who got a notification when form was submitted."
-#: models.py:486
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:628
msgid "form language"
msgstr "form language"
-#: models.py:492
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:634
msgid "form url"
msgstr "form url"
-#: models.py:500
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:642
msgid "Form submission"
msgstr "Form submission"
-#: models.py:501
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:643
msgid "Form submissions"
msgstr "Form submissions"
-#: templates/aldryn_forms/form.html:15
+#: addons-dev/aldryn-forms/aldryn_forms/sizefield/models.py:11
+msgid "Incorrect file size format."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/sizefield/utils.py:79
#, python-format
-msgid ""
-"\n"
-" Thank you for submitting your information, you will be\n"
-" redirected shortly.\n"
-" "
+msgid "Size '%s' has incorrect format"
msgstr ""
-"\n"
-" Thank you for submitting your information, you will be\n"
-" redirected shortly.\n"
-" "
-#: validators.py:35
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/display/submission_data.html:3
+msgid "Field"
+msgstr "Field"
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/export.html:5
+msgid "Export form submissions"
+msgstr "Export form submissions"
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/export.html:8
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Please correct the error below."
+msgstr[1] "Please correct the errors below."
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/export.html:30
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/export_wizard.html:11
+msgid "Export"
+msgstr "Export"
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/export_wizard.html:13
+msgid "Continue"
+msgstr "Continue"
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/formsubmission/change_list.html:9
+msgid "Export Form Entries"
+msgstr "Export Form Entries"
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/email_notifications/emails/notification.body.html:9
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/email_notifications/emails/notification.body.txt:8
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/emails/notification.body.html:3
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/emails/notification.body.txt:2
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/emails/user/notification.body.txt:7
+#, python-format
+msgid "Form name: %(form_name)s"
+msgstr "Form name: %(form_name)s"
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/email_notifications/emails/notification.subject.txt:1
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/emails/notification.subject.txt:1
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/emails/user/notification.subject.txt:1
+#, python-format
+msgid "[Form submission] %(form_name)s"
+msgstr "[Form submission] %(form_name)s"
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/field.html:14
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/fields/multiplecheckboxselectfield.html:9
+msgid "Required field"
+msgstr "Required field"
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/form.html:19
+#, fuzzy, python-format
+#| msgid ""
+#| "Thank you for submitting your information, you will be redirected shortly."
+msgid "You will be redirected shortly."
+msgstr ""
+"Thank you for submitting your information, you will be redirected shortly."
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/form.html:23
+msgid "Thank you for submitting your information."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/validators.py:32
+#, python-brace-format
+msgid "File extension '{extension}' is not allowed for this field."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/validators.py:60
#, python-format
msgid ""
"You have to choose at least %(limit_value)d options (chosen %(show_value)d)."
msgstr ""
"You have to choose at least %(limit_value)d options (chosen %(show_value)d)."
-#: validators.py:41
+#: addons-dev/aldryn-forms/aldryn_forms/validators.py:66
#, python-format
msgid ""
"You can't choose more than %(limit_value)d options (chosen %(show_value)d)."
msgstr ""
"You can't choose more than %(limit_value)d options (chosen %(show_value)d)."
+#~ msgid "The form has been sent."
+#~ msgstr "The form has been sent."
+
+#, python-brace-format
+#~ msgid ""
+#~ "variables can be used with by wrapping with \"${variable}\" like "
+#~ "${variable}"
+#~ msgstr ""
+#~ "variables can be used with by wrapping with \"${variable}\" like "
+#~ "${variable}"
+
+#~ msgid "Form (Advanced)"
+#~ msgstr "Form (Advanced)"
+
+#, python-format
+#~ msgid ""
+#~ "\n"
+#~ " Thank you for submitting your information, you will be\n"
+#~ " redirected shortly.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ " Thank you for submitting your information, you will be\n"
+#~ " redirected shortly.\n"
+#~ " "
+
#~ msgid ""
#~ "\n"
#~ " Please correct the error below."
diff --git a/aldryn_forms/locale/fr/LC_MESSAGES/django.mo b/aldryn_forms/locale/fr/LC_MESSAGES/django.mo
index e017fe8d..29a87c3c 100644
Binary files a/aldryn_forms/locale/fr/LC_MESSAGES/django.mo and b/aldryn_forms/locale/fr/LC_MESSAGES/django.mo differ
diff --git a/aldryn_forms/locale/fr/LC_MESSAGES/django.po b/aldryn_forms/locale/fr/LC_MESSAGES/django.po
index 89e76bb7..5d9fe0a2 100644
--- a/aldryn_forms/locale/fr/LC_MESSAGES/django.po
+++ b/aldryn_forms/locale/fr/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR , YEAR.
-#
+#
# Translators:
# Frigory33 , 2016
# Nicolas PASCAL , 2016
@@ -11,399 +11,366 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-08-25 21:09+0000\n"
+"POT-Creation-Date: 2024-03-08 18:39+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Adrien Delhorme , 2017\n"
"Language-Team: French (https://www.transifex.com/divio/teams/58664/fr/)\n"
+"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: admin/base.py:39
+#: addons-dev/aldryn-forms/aldryn_forms/action_backends.py:12
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:98
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:579
+msgid "Default"
+msgstr "Par défaut"
+
+#: addons-dev/aldryn-forms/aldryn_forms/action_backends.py:21
+#, fuzzy
+#| msgid "Email Field"
+msgid "Email only"
+msgstr "Champ de courriel"
+
+#: addons-dev/aldryn-forms/aldryn_forms/action_backends.py:29
+msgid "None"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/admin/base.py:35
msgid "data"
msgstr "données"
-#: admin/base.py:55
+#: addons-dev/aldryn-forms/aldryn_forms/admin/base.py:51
msgid "people notified"
msgstr "personnes notifiées"
-#: admin/forms.py:33
+#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:33
msgid "from date"
msgstr "depuis le"
-#: admin/forms.py:38
+#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:38
msgid "to date"
msgstr "jusqu'au"
-#: admin/forms.py:43
+#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:43
msgid "language"
msgstr "langue"
-#: admin/forms.py:58
+#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:58
msgid ""
"Export failed! More than 65,536 entries found, exceeded Excel limitation!"
msgstr ""
"L'export a échoué ! Le nombre de lignes (supérieur à 65 536) dépasse la "
"limite d'Excel !"
-#: admin/forms.py:132
+#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:132
msgid "Please select at least one field to export."
msgstr "Veuillez sélectionner au moins un champ à exporter."
-#: admin/views.py:69
+#: addons-dev/aldryn-forms/aldryn_forms/admin/views.py:68
msgid "No records found"
msgstr "Aucun enregistrement trouvé"
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/display/submission_data.html:3
-#: boilerplates/legacy/templates/admin/aldryn_forms/display/submission_data.html:3
-#: templates/admin/aldryn_forms/display/submission_data.html:3
-msgid "Field"
-msgstr "Champ"
-
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/display/submission_data.html:4
-#: boilerplates/legacy/templates/admin/aldryn_forms/display/submission_data.html:4
-#: models.py:306 models.py:461
-#: templates/admin/aldryn_forms/display/submission_data.html:4
-msgid "Label"
-msgstr "Libellé"
-
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/display/submission_data.html:5
-#: boilerplates/legacy/templates/admin/aldryn_forms/display/submission_data.html:5
-#: models.py:451 templates/admin/aldryn_forms/display/submission_data.html:5
-msgid "Value"
-msgstr "Valeur"
-
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/export.html:5
-#: boilerplates/legacy/templates/admin/aldryn_forms/export.html:4
-#: boilerplates/legacy/templates/admin/aldryn_forms/export_wizard.html:4
-#: templates/admin/aldryn_forms/export.html:5
-msgid "Export form submissions"
-msgstr "Exporter les soumissions du formulaire"
-
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/export.html:8
-#: boilerplates/legacy/templates/admin/aldryn_forms/export.html:7
-#: boilerplates/legacy/templates/admin/aldryn_forms/export_wizard.html:7
-#: templates/admin/aldryn_forms/export.html:8
-msgid "Please correct the error below."
-msgid_plural "Please correct the errors below."
-msgstr[0] "Veuillez corriger l'erreur ci-dessous."
-msgstr[1] "Veuillez corriger les erreurs ci-dessous."
-
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/export.html:30
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/export_wizard.html:11
-#: boilerplates/legacy/templates/admin/aldryn_forms/export.html:27
-#: boilerplates/legacy/templates/admin/aldryn_forms/export_wizard.html:30
-#: templates/admin/aldryn_forms/export.html:30
-#: templates/admin/aldryn_forms/export_wizard.html:11
-msgid "Export"
-msgstr "Exporter"
-
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/export_wizard.html:13
-#: boilerplates/legacy/templates/admin/aldryn_forms/export_wizard.html:32
-#: templates/admin/aldryn_forms/export_wizard.html:13
-msgid "Continue"
-msgstr "Continuer"
-
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/formsubmission/change_list.html:9
-#: boilerplates/legacy/templates/admin/aldryn_forms/formsubmission/change_list.html:9
-#: templates/admin/aldryn_forms/formsubmission/change_list.html:9
-msgid "Export Form Entries"
-msgstr "Exporter les entrées de formulaire"
-
-#: boilerplates/bootstrap3/templates/aldryn_forms/email_notifications/emails/notification.body.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/email_notifications/emails/notification.body.txt:8
-#: boilerplates/bootstrap3/templates/aldryn_forms/emails/notification.body.html:3
-#: boilerplates/bootstrap3/templates/aldryn_forms/emails/notification.body.txt:2
-#: boilerplates/bootstrap3/templates/aldryn_forms/emails/user/notification.body.txt:5
-#: boilerplates/legacy/templates/aldryn_forms/email_notifications/emails/notification.body.html:9
-#: boilerplates/legacy/templates/aldryn_forms/email_notifications/emails/notification.body.txt:8
-#: boilerplates/legacy/templates/aldryn_forms/emails/notification.body.html:3
-#: boilerplates/legacy/templates/aldryn_forms/emails/notification.body.txt:2
-#: boilerplates/legacy/templates/aldryn_forms/emails/user/notification.body.txt:5
-#: templates/aldryn_forms/email_notifications/emails/notification.body.html:9
-#: templates/aldryn_forms/email_notifications/emails/notification.body.txt:8
-#: templates/aldryn_forms/emails/notification.body.html:3
-#: templates/aldryn_forms/emails/notification.body.txt:2
-#: templates/aldryn_forms/emails/user/notification.body.txt:5
-#, python-format
-msgid "Form name: %(form_name)s"
-msgstr "Nom du formulaire : %(form_name)s"
-
-#: boilerplates/bootstrap3/templates/aldryn_forms/email_notifications/emails/notification.subject.txt:1
-#: boilerplates/bootstrap3/templates/aldryn_forms/emails/notification.subject.txt:1
-#: boilerplates/bootstrap3/templates/aldryn_forms/emails/user/notification.subject.txt:1
-#: boilerplates/legacy/templates/aldryn_forms/email_notifications/emails/notification.subject.txt:1
-#: boilerplates/legacy/templates/aldryn_forms/emails/notification.subject.txt:1
-#: boilerplates/legacy/templates/aldryn_forms/emails/user/notification.subject.txt:1
-#: templates/aldryn_forms/email_notifications/emails/notification.subject.txt:1
-#: templates/aldryn_forms/emails/notification.subject.txt:1
-#: templates/aldryn_forms/emails/user/notification.subject.txt:1
-#, python-format
-msgid "[Form submission] %(form_name)s"
-msgstr "[Soumission du formulaire] %(form_name)s"
-
-#: boilerplates/bootstrap3/templates/aldryn_forms/field.html:7
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/emailfield.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/filefield.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/imagefield.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/multiplecheckboxselectfield.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/multipleselectfield.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/radioselectfield.html:8
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/selectfield.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/textareafield.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/textfield.html:9
-#: templates/aldryn_forms/field.html:14
-#: templates/aldryn_forms/fields/multiplecheckboxselectfield.html:9
-msgid "Required field"
-msgstr "Champ requis"
-
-#: boilerplates/bootstrap3/templates/aldryn_forms/form.html:19
-#, python-format
-msgid ""
-"Thank you for submitting your information, you will be redirected shortly."
-msgstr ""
-"Merci d'avoir envoyé vos informations ; vous allez être redirigé·e dans un instant."
-
-#: cms_apps.py:9 cms_plugins.py:51
+#: addons-dev/aldryn-forms/aldryn_forms/cms_apps.py:8
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:54
msgid "Forms"
msgstr "Formulaires"
-#: cms_plugins.py:60
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:63
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:163
msgid "Form"
msgstr "Formulaire"
-#: cms_plugins.py:74 cms_plugins.py:242 cms_plugins.py:383
-#: contrib/email_notifications/cms_plugins.py:137
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:64
+#, fuzzy
+#| msgid "Form fields"
+msgid "Form types"
+msgstr "Champs du formulaire"
+
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:78
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:180
+msgid "Condition Logic"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:86
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:248
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:423
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:188
msgid "Advanced Settings"
msgstr "Paramètres avancés"
-#: cms_plugins.py:204
-msgid "The form has been sent."
-msgstr "Le formulaire a été envoyé."
-
-#: cms_plugins.py:233
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:239
msgid "Fieldset"
msgstr "Groupe de champs"
-#: cms_plugins.py:252
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:276
msgid "Form fields"
msgstr "Champs du formulaire"
-#: cms_plugins.py:420
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:497
msgid "Text Field"
msgstr "Champ de texte"
-#: cms_plugins.py:444
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:501
msgid "Text Area Field"
msgstr "Zone de texte"
-#: cms_plugins.py:485
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:542
+#, fuzzy
+#| msgid "Text Field"
+msgid "Hidden Field"
+msgstr "Champ de texte"
+
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:550
+#, fuzzy
+#| msgid "Text Field"
+msgid "Phone Field"
+msgstr "Champ de texte"
+
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:555
+#, fuzzy
+#| msgid "Text Field"
+msgid "Number Field"
+msgstr "Champ de texte"
+
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:560
msgid "Email Field"
msgstr "Champ de courriel"
-#: cms_plugins.py:520
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:596
msgid "File upload field"
msgstr "Champ de téléversement de fichier"
-#: cms_plugins.py:600
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:696
msgid "Image upload field"
msgstr "Champ de téléversement d'image"
-#: cms_plugins.py:638
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:735
msgid "Yes/No Field"
msgstr "Champ Oui/Non"
-#: cms_plugins.py:659
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:759
msgid "Yes"
msgstr "Oui"
-#: cms_plugins.py:659
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:759
msgid "No"
msgstr "Non"
-#: cms_plugins.py:667
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:767
msgid "Select Field"
msgstr "Liste déroulante"
-#: cms_plugins.py:701
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:803
msgid "Multiple Select Field"
msgstr "Champ de sélection multiple"
-#: cms_plugins.py:737
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:842
msgid "Multiple Checkbox Field"
msgstr "Champ de sélection multiple"
-#: cms_plugins.py:741
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:846
msgid "Radio Select Field"
msgstr "Champ de sélection radio"
-#: cms_plugins.py:782
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:889
msgid "Captcha Field"
msgstr "Champ de captcha"
-#: cms_plugins.py:803
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:911
msgid "Submit Button"
msgstr "Bouton Envoyer"
-#: contrib/email_notifications/cms_plugins.py:26
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:28
msgid "new email notification"
msgstr "nouvelle notification par courriel"
-#: contrib/email_notifications/cms_plugins.py:27
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:29
msgid "new email notifications"
msgstr "nouvelles notifications par courriel"
-#: contrib/email_notifications/cms_plugins.py:51 models.py:165
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:50
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:151
msgid "Recipients"
msgstr "Destinataires"
-#: contrib/email_notifications/cms_plugins.py:63
-#, python-brace-format
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:62
+msgid "Attaching files to email"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:75
msgid ""
-"variables can be used with by wrapping with \"${variable}\" like ${variable}"
+"the variables can be used within the email body, email sender,and other "
+"notification fields"
msgstr ""
-"les variables peuvent être utilisées en les encadrant avec \"${variable}\" "
-"comme ${variable}"
-#: contrib/email_notifications/cms_plugins.py:92
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:105
msgid "Email"
msgstr "E-mail"
-#: contrib/email_notifications/cms_plugins.py:117
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:131
msgid "available text variables"
msgstr "variables de texte disponibles"
-#: contrib/email_notifications/cms_plugins.py:121
-msgid "Form (Advanced)"
-msgstr "Formulaire (avancé)"
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:154
+#, fuzzy
+#| msgid "available text variables"
+msgid "available file variables"
+msgstr "variables de texte disponibles"
-#: contrib/email_notifications/models.py:28
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:29
msgid "default"
msgstr "par défaut"
-#: contrib/email_notifications/models.py:62
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:66
msgid "Email notification"
msgstr "Notification e-mail"
-#: contrib/email_notifications/models.py:63
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:67
msgid "Email notifications"
msgstr "Notifications e-mail"
-#: contrib/email_notifications/models.py:66
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:70
msgid "theme"
msgstr "thème"
-#: contrib/email_notifications/models.py:68
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:72
msgid "Provides the base theme for the email."
msgstr "Utilise le thème de base pour le courriel."
-#: contrib/email_notifications/models.py:72
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:76
msgid "to name"
msgstr "au nom"
-#: contrib/email_notifications/models.py:77
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:81
msgid "to email"
msgstr "à l'adresse électronique"
-#: contrib/email_notifications/models.py:83
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:87
msgid "to user"
msgstr "à l'utilisateur"
-#: contrib/email_notifications/models.py:89
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:94
msgid "from name"
msgstr "du nom"
-#: contrib/email_notifications/models.py:94
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:99
msgid "from email"
msgstr "du courriel"
-#: contrib/email_notifications/models.py:99
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:104
+#, fuzzy
+#| msgid "to email"
+msgid "reply to email"
+msgstr "à l'adresse électronique"
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:109
msgid "subject"
msgstr "objet"
-#: contrib/email_notifications/models.py:104
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:114
msgid "email body (txt)"
msgstr "corps du courriel (txt)"
-#: contrib/email_notifications/models.py:106
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:116
msgid "used when rendering the email in text only mode."
msgstr "utilisé lors de l'affichage du courriel en mode texte."
-#: contrib/email_notifications/models.py:109
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:119
msgid "email body (html)"
msgstr "corps du courriel (html)"
-#: contrib/email_notifications/models.py:111
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:121
msgid "used when rendering the email in html."
msgstr "utilisé lors de l'affichage du courriel en HTML."
-#: contrib/email_notifications/models.py:127
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:125
+#, fuzzy
+#| msgid "Provides the base theme for the email."
+msgid "Files to attach to the email"
+msgstr "Utilise le thème de base pour le courriel."
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:128
+msgid ""
+"Comma-separated list of file fields that should be attached directly to the "
+"email."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:137
+msgid "Use if condition succeeded"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:138
+msgid ""
+"This email notification will be used if condition field for the form is the "
+"same as condition value (See Form plugin configuration -> Condition Logic)"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:151
msgid "Please provide a recipient."
msgstr "Veuillez indiquer un destinataire."
-#: contrib/email_notifications/notification.py:54
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/notification.py:53
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/notification.py:65
msgid "Fields"
msgstr "Champs"
-#: forms.py:28
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:29
#, python-format
msgid ""
"File size must be under %(max_size)s. Current file size is %(actual_size)s."
msgstr ""
-"La taille du fichier doit être inférieure à %(max_size)s. La taille actuelle"
-" est %(actual_size)s."
+"La taille du fichier doit être inférieure à %(max_size)s. La taille actuelle "
+"est %(actual_size)s."
-#: forms.py:63
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:82
#, python-format
msgid ""
"Image width must be under %(max_size)s pixels. Current width is "
"%(actual_size)s pixels."
msgstr ""
-"La largeur de l'image doit être inférieure à %(max_size)s pixels. La largeur"
-" actuelle est %(actual_size)s pixels."
+"La largeur de l'image doit être inférieure à %(max_size)s pixels. La largeur "
+"actuelle est %(actual_size)s pixels."
-#: forms.py:73
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:92
#, python-format
msgid ""
"Image height must be under %(max_size)s pixels. Current height is "
"%(actual_size)s pixels."
msgstr ""
-"La hauteur de l'image doit être inférieure à %(max_size)s pixels. La hauteur"
-" actuelle est %(actual_size)s pixels."
+"La hauteur de l'image doit être inférieure à %(max_size)s pixels. La hauteur "
+"actuelle est %(actual_size)s pixels."
-#: forms.py:168
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:188
msgid "Please provide CMS page for redirect."
msgstr "Veuillez indiquer une page du CMS pour la redirection."
-#: forms.py:172
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:193
msgid "Please provide an absolute URL for redirect."
msgstr "Veuillez indiquer une URL absolue pour la redirection."
-#: forms.py:216
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:240
msgid "Min value can not be greater than max value."
msgstr "La valeur minimale doit être inférieure à la valeur maximale."
-#: forms.py:225
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:249
msgid "Min length"
msgstr "Longueur minimale"
-#: forms.py:226
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:250
msgid "Required number of characters to type."
msgstr "Nombre de caractères à saisir requis."
-#: forms.py:228
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:252
msgid "Max length"
msgstr "Longueur maximale"
-#: forms.py:229
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:253
msgid "Maximum number of characters to type."
msgstr "Nombre maximum de caractères à saisir."
-#: forms.py:264
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:293
msgid ""
"Explanatory text displayed next to input field. Just like this one. You can "
"use MAXSIZE as a placeholder for the maximum size configured below."
@@ -411,110 +378,168 @@ msgstr ""
"Texte explicatif affiché à côté du champ. Tout comme celui-ci. Vous pouvez "
"utiliser MAXSIZE pour reprendre la taille maximale configurée plus bas."
-#: forms.py:277
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:306
msgid ""
"Explanatory text displayed next to input field. Just like this one. You can "
-"use MAXSIZE, MAXWIDTH, MAXHEIGHT as a placeholders for the maximum file size"
-" and dimensions configured below."
+"use MAXSIZE, MAXWIDTH, MAXHEIGHT as a placeholders for the maximum file size "
+"and dimensions configured below."
msgstr ""
"Texte explicatif affiché à côté du champ. Tout comme celui-ci. Vous pouvez "
"utiliser MAXSIZE, MAXWIDTH et MAXHEIGHT pour reprendre la taille et les "
"dimensions maximales configurées plus bas."
-#: forms.py:301
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:330
msgid "Min choices"
msgstr "Choix au minimum"
-#: forms.py:302
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:331
msgid "Required amount of elements to chose."
msgstr "Nombre d'éléments à choisir au minimum."
-#: forms.py:304
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:333
msgid "Max choices"
msgstr "Choix au maximum"
-#: forms.py:305
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:334
msgid "Maximum amount of elements to chose."
msgstr "Nombre d'éléments à choisir au maximum."
-#: models.py:111 models.py:452
-msgid "Default"
-msgstr "Par défaut"
-
-#: models.py:119 models.py:151
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:106
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:170
msgid "CMS Page"
msgstr "Page du CMS"
-#: models.py:120 models.py:152
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:107
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:138
msgid "Absolute URL"
msgstr "URL absolue"
-#: models.py:127
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:114
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:384
msgid "Name"
msgstr "Nom"
-#: models.py:129
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:116
msgid "Used to filter out form submissions."
msgstr "Utilisé pour filtrer les soumissions de formulaire."
-#: models.py:132 models.py:309
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:119
msgid "Error message"
msgstr "Message d'erreur"
-#: models.py:135
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:122
msgid "An error message that will be displayed if the form doesn't validate."
msgstr ""
"Un message d'erreur qui sera affiché si la soumission du formulaire échoue."
-#: models.py:139
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:126
msgid "Success message"
msgstr "Message de validation"
-#: models.py:142
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:129
msgid "An success message that will be displayed."
msgstr "Un message qui sera affiché lorsque le formulaire sera soumis."
-#: models.py:145
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:132
msgid "Redirect to"
msgstr "Rediriger vers"
-#: models.py:148
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:135
msgid "Where to redirect the user when the form has been successfully sent?"
msgstr "Où rediriger l'utilisateur lorsque le formulaire a bien été envoyé ?"
-#: models.py:154 models.py:296 models.py:345 models.py:463
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:140
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:373
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:439
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:604
msgid "custom css classes"
msgstr "classes CSS personnalisées"
-#: models.py:156
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:142
msgid "form template"
msgstr "modèle de formulaire"
-#: models.py:168
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:154
msgid "People who will get the form content via e-mail."
msgstr "Personnes qui recevront le contenu du formulaire par courriel."
-#: models.py:294
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:158
+msgid "Action backend"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:165
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:413
+msgid "Attributes"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:177
+msgid "CMS Page (condition is false)"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:185
+msgid "Condition field"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:186
+msgid ""
+"This field is used to enable condition logic. If field doesn't match the "
+"condition value then redirect and notification works as usual. If value of "
+"the field matches the condition value field then custom redirect and "
+"notification will be used."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:193
+msgid "Condition field value"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:197
+msgid "Enable autofill from url parameters"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:199
+msgid ""
+"Eg if you open the form with a url that contains parameters as 'https://"
+"example.com/sub-page/?email=hello@example.com&name=Alex', then the fields "
+"'email' and 'name' are going to to be filled in automatically."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:371
msgid "Legend"
msgstr "Légende"
-#: models.py:307
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:386
+msgid "Used to set the field name"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:389
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:602
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/display/submission_data.html:4
+msgid "Label"
+msgstr "Libellé"
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:390
msgid "Field is required"
msgstr "Le champ est requis"
-#: models.py:312
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:392
+#, fuzzy
+#| msgid "Field is required"
+msgid "Field required error message"
+msgstr "Le champ est requis"
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:395
msgid ""
-"Error message displayed if the required field is left empty. Default: \"This"
-" field is required\"."
+"Error message displayed if the required field is left empty. Default: \"This "
+"field is required\"."
msgstr ""
-"Message d'erreur affiché si le champ requis n'est pas rempli. Par défaut : «"
-" Ce champ est requis »."
+"Message d'erreur affiché si le champ requis n'est pas rempli. Par défaut : "
+"« Ce champ est requis »."
-#: models.py:316
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:399
msgid "Placeholder text"
msgstr "Texte titulaire"
-#: models.py:319
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:402
msgid ""
"Default text in a form. Disappears when user starts typing. Example: "
"\"email@example.com\""
@@ -522,35 +547,49 @@ msgstr ""
"Texte par défaut. Disparaît lorsque l'utilisateur commence à saisir du "
"texte. Par exemple : \"email@exemple.fr\""
-#: models.py:323
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:406
msgid "Help text"
msgstr "Texte d'aide"
-#: models.py:326
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:409
msgid "Explanatory text displayed next to input field. Just like this one."
msgstr "Texte explicatif affiché à côté du champ. Tout comme celui-ci."
-#: models.py:333
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:421
msgid "Min value"
msgstr "Valeur minimale"
-#: models.py:339
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:427
msgid "Max value"
msgstr "Valeur maximale"
-#: models.py:380
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:432
+#, fuzzy
+#| msgid "Min value"
+msgid "Initial value"
+msgstr "Valeur minimale"
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:435
+msgid "Default value of field."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:467
+msgid "The \"name\" field cannot contain spaces."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:480
msgid "columns"
msgstr "colonnes"
-#: models.py:382
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:482
msgid "rows"
msgstr "lignes"
-#: models.py:387
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:487
msgid "send notification when form is submitted"
msgstr "envoyer une notification lorsque le formulaire est validé"
-#: models.py:389
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:489
msgid ""
"When checked, the value of this field will be used to send an email "
"notification."
@@ -558,31 +597,31 @@ msgstr ""
"Si coché, la valeur de ce champ sera utilisée pour envoyer une notification "
"par courriel."
-#: models.py:393
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:493
msgid "email subject"
msgstr "objet du courriel"
-#: models.py:397
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:497
msgid "Used as the email subject when email_send_notification is checked."
msgstr ""
-"Utilisé comme objet du courriel lorsque l'envoi de notification par courriel"
-" est coché."
+"Utilisé comme objet du courriel lorsque l'envoi de notification par courriel "
+"est coché."
-#: models.py:401
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:501
msgid "Additional email body"
msgstr "Texte supplémentaire du courriel"
-#: models.py:404
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:504
msgid "Additional body text used when email notifications are active."
msgstr ""
"Texte supplémentaire dans le courriel utilisé lorsque les notifications par "
"courriel sont activées."
-#: models.py:411
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:511
msgid "Upload files to"
msgstr "Téléverser les fichiers dans"
-#: models.py:412
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:512
msgid ""
"Select a folder to which all files submitted through this field will be "
"uploaded to."
@@ -590,11 +629,11 @@ msgstr ""
"Sélectionnez un dossier dans lequel tous les fichiers envoyés via ce champ "
"seront enregistrés."
-#: models.py:416
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:517
msgid "Maximum file size"
msgstr "Taille de fichier maximale"
-#: models.py:418
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:519
msgid ""
"The maximum file size of the upload, in bytes. You can use common size "
"suffixes (kB, MB, GB, ...)."
@@ -602,72 +641,178 @@ msgstr ""
"La taille de fichier maximale d'un téléversement, en octets. Vous pouvez "
"utiliser les suffixes courants (kB, MB, GB…)."
-#: models.py:432
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:524
+msgid "Allowed extensions"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:529
+msgid ""
+"Comma-separated list of file extensions allowed for this file field. Leave "
+"it empty to allow any extension."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:535
+msgid "Invalid extension error message"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:538
+msgid ""
+"Error message displayed if extensions are constrained and the uploaded file "
+"fails that validation.Default: \"File extension [extension] is not allowed "
+"for this field.\""
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:542
+msgid "Store this file to filer"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:546
+msgid ""
+"Whether to store this file to filer. If this is unchecked and this file is "
+"not attached to any email notification, the file will be lost forever and "
+"using it as a template variable in any email template will return empty "
+"result."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:565
msgid "Maximum image width"
msgstr "Largeur maximale de l'image"
-#: models.py:434
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:567
msgid "The maximum width of the uploaded image, in pixels."
msgstr "La largeur maximale de l'image téléversée, en pixels."
-#: models.py:437
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:570
msgid "Maximum image height"
msgstr "Hauteur maximale de l'image"
-#: models.py:439
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:572
msgid "The maximum height of the uploaded image, in pixels."
msgstr "La hauteur maximale de l'image téléversée, en pixels."
-#: models.py:447
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:578
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/display/submission_data.html:5
+msgid "Value"
+msgstr "Valeur"
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:580
+msgid "Position"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:583
msgid "Option"
msgstr "Option"
-#: models.py:448
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:584
msgid "Options"
msgstr "Options"
-#: models.py:474
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:616
msgid "form name"
msgstr "nom du formulaire"
-#: models.py:480
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:622
msgid "users notified"
msgstr "utilisateurs notifiés"
-#: models.py:482
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:624
msgid "People who got a notification when form was submitted."
msgstr ""
"Personnes qui ont reçu une notification lorsque le formulaire a été soumis."
-#: models.py:486
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:628
msgid "form language"
msgstr "langue du formulaire"
-#: models.py:492
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:634
msgid "form url"
msgstr "URL du formulaire"
-#: models.py:500
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:642
msgid "Form submission"
msgstr "Soumission de formulaire"
-#: models.py:501
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:643
msgid "Form submissions"
msgstr "Soumissions de formulaire"
-#: templates/aldryn_forms/form.html:15
+#: addons-dev/aldryn-forms/aldryn_forms/sizefield/models.py:11
+msgid "Incorrect file size format."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/sizefield/utils.py:79
#, python-format
-msgid ""
-"\n"
-" Thank you for submitting your information, you will be\n"
-" redirected shortly.\n"
-" "
+msgid "Size '%s' has incorrect format"
msgstr ""
-"\n"
-"Merci d'avoir soumis vos informations, vous allez être\n"
-"redirigé·e dans un instant."
-#: validators.py:35
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/display/submission_data.html:3
+msgid "Field"
+msgstr "Champ"
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/export.html:5
+msgid "Export form submissions"
+msgstr "Exporter les soumissions du formulaire"
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/export.html:8
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Veuillez corriger l'erreur ci-dessous."
+msgstr[1] "Veuillez corriger les erreurs ci-dessous."
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/export.html:30
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/export_wizard.html:11
+msgid "Export"
+msgstr "Exporter"
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/export_wizard.html:13
+msgid "Continue"
+msgstr "Continuer"
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/formsubmission/change_list.html:9
+msgid "Export Form Entries"
+msgstr "Exporter les entrées de formulaire"
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/email_notifications/emails/notification.body.html:9
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/email_notifications/emails/notification.body.txt:8
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/emails/notification.body.html:3
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/emails/notification.body.txt:2
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/emails/user/notification.body.txt:7
+#, python-format
+msgid "Form name: %(form_name)s"
+msgstr "Nom du formulaire : %(form_name)s"
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/email_notifications/emails/notification.subject.txt:1
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/emails/notification.subject.txt:1
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/emails/user/notification.subject.txt:1
+#, python-format
+msgid "[Form submission] %(form_name)s"
+msgstr "[Soumission du formulaire] %(form_name)s"
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/field.html:14
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/fields/multiplecheckboxselectfield.html:9
+msgid "Required field"
+msgstr "Champ requis"
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/form.html:19
+#, fuzzy, python-format
+#| msgid ""
+#| "Thank you for submitting your information, you will be redirected shortly."
+msgid "You will be redirected shortly."
+msgstr ""
+"Merci d'avoir envoyé vos informations ; vous allez être redirigé·e dans un instant."
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/form.html:23
+msgid "Thank you for submitting your information."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/validators.py:32
+#, python-brace-format
+msgid "File extension '{extension}' is not allowed for this field."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/validators.py:60
#, python-format
msgid ""
"You have to choose at least %(limit_value)d options (chosen %(show_value)d)."
@@ -675,7 +820,7 @@ msgstr ""
"Vous devez sélectionner au moins %(limit_value)d options (seulement "
"%(show_value)d sont sélectionnées)."
-#: validators.py:41
+#: addons-dev/aldryn-forms/aldryn_forms/validators.py:66
#, python-format
msgid ""
"You can't choose more than %(limit_value)d options (chosen %(show_value)d)."
@@ -683,6 +828,31 @@ msgstr ""
"Vous ne pouvez pas sélectionner plus de %(limit_value)d options "
"(%(show_value)d sont sélectionnées)."
+#~ msgid "The form has been sent."
+#~ msgstr "Le formulaire a été envoyé."
+
+#, python-brace-format
+#~ msgid ""
+#~ "variables can be used with by wrapping with \"${variable}\" like "
+#~ "${variable}"
+#~ msgstr ""
+#~ "les variables peuvent être utilisées en les encadrant avec "
+#~ "\"${variable}\" comme ${variable}"
+
+#~ msgid "Form (Advanced)"
+#~ msgstr "Formulaire (avancé)"
+
+#, python-format
+#~ msgid ""
+#~ "\n"
+#~ " Thank you for submitting your information, you will be\n"
+#~ " redirected shortly.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Merci d'avoir soumis vos informations, vous allez être\n"
+#~ "redirigé·e dans un instant."
+
#~ msgid ""
#~ "\n"
#~ " Please correct the error below."
diff --git a/aldryn_forms/locale/it/LC_MESSAGES/django.mo b/aldryn_forms/locale/it/LC_MESSAGES/django.mo
index 0e508783..6032af1e 100644
Binary files a/aldryn_forms/locale/it/LC_MESSAGES/django.mo and b/aldryn_forms/locale/it/LC_MESSAGES/django.mo differ
diff --git a/aldryn_forms/locale/it/LC_MESSAGES/django.po b/aldryn_forms/locale/it/LC_MESSAGES/django.po
index 989c6ab2..07261f6d 100644
--- a/aldryn_forms/locale/it/LC_MESSAGES/django.po
+++ b/aldryn_forms/locale/it/LC_MESSAGES/django.po
@@ -2,647 +2,765 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR , YEAR.
-#
+#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-08-25 21:09+0000\n"
+"POT-Creation-Date: 2024-03-08 18:39+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Language-Team: Italian (https://www.transifex.com/divio/teams/58664/it/)\n"
+"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/base.py:39
+#: addons-dev/aldryn-forms/aldryn_forms/action_backends.py:12
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:98
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:579
+msgid "Default"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/action_backends.py:21
+msgid "Email only"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/action_backends.py:29
+msgid "None"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/admin/base.py:35
msgid "data"
msgstr ""
-#: admin/base.py:55
+#: addons-dev/aldryn-forms/aldryn_forms/admin/base.py:51
msgid "people notified"
msgstr ""
-#: admin/forms.py:33
+#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:33
msgid "from date"
msgstr ""
-#: admin/forms.py:38
+#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:38
msgid "to date"
msgstr ""
-#: admin/forms.py:43
+#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:43
msgid "language"
msgstr ""
-#: admin/forms.py:58
+#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:58
msgid ""
"Export failed! More than 65,536 entries found, exceeded Excel limitation!"
msgstr ""
-#: admin/forms.py:132
+#: addons-dev/aldryn-forms/aldryn_forms/admin/forms.py:132
msgid "Please select at least one field to export."
msgstr ""
-#: admin/views.py:69
+#: addons-dev/aldryn-forms/aldryn_forms/admin/views.py:68
msgid "No records found"
msgstr ""
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/display/submission_data.html:3
-#: boilerplates/legacy/templates/admin/aldryn_forms/display/submission_data.html:3
-#: templates/admin/aldryn_forms/display/submission_data.html:3
-msgid "Field"
-msgstr ""
-
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/display/submission_data.html:4
-#: boilerplates/legacy/templates/admin/aldryn_forms/display/submission_data.html:4
-#: models.py:306 models.py:461
-#: templates/admin/aldryn_forms/display/submission_data.html:4
-msgid "Label"
-msgstr ""
-
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/display/submission_data.html:5
-#: boilerplates/legacy/templates/admin/aldryn_forms/display/submission_data.html:5
-#: models.py:451 templates/admin/aldryn_forms/display/submission_data.html:5
-msgid "Value"
-msgstr ""
-
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/export.html:5
-#: boilerplates/legacy/templates/admin/aldryn_forms/export.html:4
-#: boilerplates/legacy/templates/admin/aldryn_forms/export_wizard.html:4
-#: templates/admin/aldryn_forms/export.html:5
-msgid "Export form submissions"
-msgstr ""
-
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/export.html:8
-#: boilerplates/legacy/templates/admin/aldryn_forms/export.html:7
-#: boilerplates/legacy/templates/admin/aldryn_forms/export_wizard.html:7
-#: templates/admin/aldryn_forms/export.html:8
-msgid "Please correct the error below."
-msgid_plural "Please correct the errors below."
-msgstr[0] ""
-msgstr[1] ""
-
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/export.html:30
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/export_wizard.html:11
-#: boilerplates/legacy/templates/admin/aldryn_forms/export.html:27
-#: boilerplates/legacy/templates/admin/aldryn_forms/export_wizard.html:30
-#: templates/admin/aldryn_forms/export.html:30
-#: templates/admin/aldryn_forms/export_wizard.html:11
-msgid "Export"
-msgstr ""
-
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/export_wizard.html:13
-#: boilerplates/legacy/templates/admin/aldryn_forms/export_wizard.html:32
-#: templates/admin/aldryn_forms/export_wizard.html:13
-msgid "Continue"
-msgstr ""
-
-#: boilerplates/bootstrap3/templates/admin/aldryn_forms/formsubmission/change_list.html:9
-#: boilerplates/legacy/templates/admin/aldryn_forms/formsubmission/change_list.html:9
-#: templates/admin/aldryn_forms/formsubmission/change_list.html:9
-msgid "Export Form Entries"
-msgstr ""
-
-#: boilerplates/bootstrap3/templates/aldryn_forms/email_notifications/emails/notification.body.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/email_notifications/emails/notification.body.txt:8
-#: boilerplates/bootstrap3/templates/aldryn_forms/emails/notification.body.html:3
-#: boilerplates/bootstrap3/templates/aldryn_forms/emails/notification.body.txt:2
-#: boilerplates/bootstrap3/templates/aldryn_forms/emails/user/notification.body.txt:5
-#: boilerplates/legacy/templates/aldryn_forms/email_notifications/emails/notification.body.html:9
-#: boilerplates/legacy/templates/aldryn_forms/email_notifications/emails/notification.body.txt:8
-#: boilerplates/legacy/templates/aldryn_forms/emails/notification.body.html:3
-#: boilerplates/legacy/templates/aldryn_forms/emails/notification.body.txt:2
-#: boilerplates/legacy/templates/aldryn_forms/emails/user/notification.body.txt:5
-#: templates/aldryn_forms/email_notifications/emails/notification.body.html:9
-#: templates/aldryn_forms/email_notifications/emails/notification.body.txt:8
-#: templates/aldryn_forms/emails/notification.body.html:3
-#: templates/aldryn_forms/emails/notification.body.txt:2
-#: templates/aldryn_forms/emails/user/notification.body.txt:5
-#, python-format
-msgid "Form name: %(form_name)s"
+#: addons-dev/aldryn-forms/aldryn_forms/cms_apps.py:8
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:54
+msgid "Forms"
msgstr ""
-#: boilerplates/bootstrap3/templates/aldryn_forms/email_notifications/emails/notification.subject.txt:1
-#: boilerplates/bootstrap3/templates/aldryn_forms/emails/notification.subject.txt:1
-#: boilerplates/bootstrap3/templates/aldryn_forms/emails/user/notification.subject.txt:1
-#: boilerplates/legacy/templates/aldryn_forms/email_notifications/emails/notification.subject.txt:1
-#: boilerplates/legacy/templates/aldryn_forms/emails/notification.subject.txt:1
-#: boilerplates/legacy/templates/aldryn_forms/emails/user/notification.subject.txt:1
-#: templates/aldryn_forms/email_notifications/emails/notification.subject.txt:1
-#: templates/aldryn_forms/emails/notification.subject.txt:1
-#: templates/aldryn_forms/emails/user/notification.subject.txt:1
-#, python-format
-msgid "[Form submission] %(form_name)s"
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:63
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:163
+msgid "Form"
msgstr ""
-#: boilerplates/bootstrap3/templates/aldryn_forms/field.html:7
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/emailfield.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/filefield.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/imagefield.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/multiplecheckboxselectfield.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/multipleselectfield.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/radioselectfield.html:8
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/selectfield.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/textareafield.html:9
-#: boilerplates/bootstrap3/templates/aldryn_forms/fields/textfield.html:9
-#: templates/aldryn_forms/field.html:14
-#: templates/aldryn_forms/fields/multiplecheckboxselectfield.html:9
-msgid "Required field"
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:64
+msgid "Form types"
msgstr ""
-#: boilerplates/bootstrap3/templates/aldryn_forms/form.html:19
-#, python-format
-msgid ""
-"Thank you for submitting your information, you will be redirected shortly."
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:78
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:180
+msgid "Condition Logic"
msgstr ""
-#: cms_apps.py:9 cms_plugins.py:51
-msgid "Forms"
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:86
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:248
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:423
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:188
+msgid "Advanced Settings"
msgstr ""
-#: cms_plugins.py:60
-msgid "Form"
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:239
+msgid "Fieldset"
msgstr ""
-#: cms_plugins.py:74 cms_plugins.py:242 cms_plugins.py:383
-#: contrib/email_notifications/cms_plugins.py:137
-msgid "Advanced Settings"
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:276
+msgid "Form fields"
msgstr ""
-#: cms_plugins.py:204
-msgid "The form has been sent."
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:497
+msgid "Text Field"
msgstr ""
-#: cms_plugins.py:233
-msgid "Fieldset"
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:501
+msgid "Text Area Field"
msgstr ""
-#: cms_plugins.py:252
-msgid "Form fields"
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:542
+msgid "Hidden Field"
msgstr ""
-#: cms_plugins.py:420
-msgid "Text Field"
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:550
+msgid "Phone Field"
msgstr ""
-#: cms_plugins.py:444
-msgid "Text Area Field"
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:555
+msgid "Number Field"
msgstr ""
-#: cms_plugins.py:485
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:560
msgid "Email Field"
msgstr ""
-#: cms_plugins.py:520
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:596
msgid "File upload field"
msgstr ""
-#: cms_plugins.py:600
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:696
msgid "Image upload field"
msgstr ""
-#: cms_plugins.py:638
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:735
msgid "Yes/No Field"
msgstr ""
-#: cms_plugins.py:659
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:759
msgid "Yes"
msgstr ""
-#: cms_plugins.py:659
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:759
msgid "No"
msgstr ""
-#: cms_plugins.py:667
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:767
msgid "Select Field"
msgstr ""
-#: cms_plugins.py:701
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:803
msgid "Multiple Select Field"
msgstr ""
-#: cms_plugins.py:737
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:842
msgid "Multiple Checkbox Field"
msgstr ""
-#: cms_plugins.py:741
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:846
msgid "Radio Select Field"
msgstr ""
-#: cms_plugins.py:782
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:889
msgid "Captcha Field"
msgstr ""
-#: cms_plugins.py:803
+#: addons-dev/aldryn-forms/aldryn_forms/cms_plugins.py:911
msgid "Submit Button"
msgstr ""
-#: contrib/email_notifications/cms_plugins.py:26
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:28
msgid "new email notification"
msgstr ""
-#: contrib/email_notifications/cms_plugins.py:27
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:29
msgid "new email notifications"
msgstr ""
-#: contrib/email_notifications/cms_plugins.py:51 models.py:165
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:50
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:151
msgid "Recipients"
msgstr ""
-#: contrib/email_notifications/cms_plugins.py:63
-#, python-brace-format
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:62
+msgid "Attaching files to email"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:75
msgid ""
-"variables can be used with by wrapping with \"${variable}\" like ${variable}"
+"the variables can be used within the email body, email sender,and other "
+"notification fields"
msgstr ""
-#: contrib/email_notifications/cms_plugins.py:92
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:105
msgid "Email"
msgstr ""
-#: contrib/email_notifications/cms_plugins.py:117
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:131
msgid "available text variables"
msgstr ""
-#: contrib/email_notifications/cms_plugins.py:121
-msgid "Form (Advanced)"
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/cms_plugins.py:154
+msgid "available file variables"
msgstr ""
-#: contrib/email_notifications/models.py:28
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:29
msgid "default"
msgstr ""
-#: contrib/email_notifications/models.py:62
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:66
msgid "Email notification"
msgstr ""
-#: contrib/email_notifications/models.py:63
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:67
msgid "Email notifications"
msgstr ""
-#: contrib/email_notifications/models.py:66
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:70
msgid "theme"
msgstr ""
-#: contrib/email_notifications/models.py:68
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:72
msgid "Provides the base theme for the email."
msgstr ""
-#: contrib/email_notifications/models.py:72
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:76
msgid "to name"
msgstr ""
-#: contrib/email_notifications/models.py:77
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:81
msgid "to email"
msgstr ""
-#: contrib/email_notifications/models.py:83
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:87
msgid "to user"
msgstr ""
-#: contrib/email_notifications/models.py:89
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:94
msgid "from name"
msgstr ""
-#: contrib/email_notifications/models.py:94
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:99
msgid "from email"
msgstr ""
-#: contrib/email_notifications/models.py:99
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:104
+msgid "reply to email"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:109
msgid "subject"
msgstr ""
-#: contrib/email_notifications/models.py:104
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:114
msgid "email body (txt)"
msgstr ""
-#: contrib/email_notifications/models.py:106
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:116
msgid "used when rendering the email in text only mode."
msgstr ""
-#: contrib/email_notifications/models.py:109
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:119
msgid "email body (html)"
msgstr ""
-#: contrib/email_notifications/models.py:111
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:121
msgid "used when rendering the email in html."
msgstr ""
-#: contrib/email_notifications/models.py:127
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:125
+msgid "Files to attach to the email"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:128
+msgid ""
+"Comma-separated list of file fields that should be attached directly to the "
+"email."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:137
+msgid "Use if condition succeeded"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:138
+msgid ""
+"This email notification will be used if condition field for the form is the "
+"same as condition value (See Form plugin configuration -> Condition Logic)"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/models.py:151
msgid "Please provide a recipient."
msgstr ""
-#: contrib/email_notifications/notification.py:54
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/notification.py:53
+#: addons-dev/aldryn-forms/aldryn_forms/contrib/email_notifications/notification.py:65
msgid "Fields"
msgstr ""
-#: forms.py:28
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:29
#, python-format
msgid ""
"File size must be under %(max_size)s. Current file size is %(actual_size)s."
msgstr ""
-#: forms.py:63
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:82
#, python-format
msgid ""
"Image width must be under %(max_size)s pixels. Current width is "
"%(actual_size)s pixels."
msgstr ""
-#: forms.py:73
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:92
#, python-format
msgid ""
"Image height must be under %(max_size)s pixels. Current height is "
"%(actual_size)s pixels."
msgstr ""
-#: forms.py:168
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:188
msgid "Please provide CMS page for redirect."
msgstr ""
-#: forms.py:172
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:193
msgid "Please provide an absolute URL for redirect."
msgstr ""
-#: forms.py:216
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:240
msgid "Min value can not be greater than max value."
msgstr ""
-#: forms.py:225
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:249
msgid "Min length"
msgstr ""
-#: forms.py:226
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:250
msgid "Required number of characters to type."
msgstr ""
-#: forms.py:228
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:252
msgid "Max length"
msgstr ""
-#: forms.py:229
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:253
msgid "Maximum number of characters to type."
msgstr ""
-#: forms.py:264
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:293
msgid ""
"Explanatory text displayed next to input field. Just like this one. You can "
"use MAXSIZE as a placeholder for the maximum size configured below."
msgstr ""
-#: forms.py:277
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:306
msgid ""
"Explanatory text displayed next to input field. Just like this one. You can "
-"use MAXSIZE, MAXWIDTH, MAXHEIGHT as a placeholders for the maximum file size"
-" and dimensions configured below."
+"use MAXSIZE, MAXWIDTH, MAXHEIGHT as a placeholders for the maximum file size "
+"and dimensions configured below."
msgstr ""
-#: forms.py:301
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:330
msgid "Min choices"
msgstr ""
-#: forms.py:302
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:331
msgid "Required amount of elements to chose."
msgstr ""
-#: forms.py:304
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:333
msgid "Max choices"
msgstr ""
-#: forms.py:305
+#: addons-dev/aldryn-forms/aldryn_forms/forms.py:334
msgid "Maximum amount of elements to chose."
msgstr ""
-#: models.py:111 models.py:452
-msgid "Default"
-msgstr ""
-
-#: models.py:119 models.py:151
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:106
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:170
msgid "CMS Page"
msgstr ""
-#: models.py:120 models.py:152
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:107
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:138
msgid "Absolute URL"
msgstr ""
-#: models.py:127
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:114
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:384
msgid "Name"
msgstr ""
-#: models.py:129
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:116
msgid "Used to filter out form submissions."
msgstr ""
-#: models.py:132 models.py:309
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:119
msgid "Error message"
msgstr ""
-#: models.py:135
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:122
msgid "An error message that will be displayed if the form doesn't validate."
msgstr ""
-#: models.py:139
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:126
msgid "Success message"
msgstr ""
-#: models.py:142
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:129
msgid "An success message that will be displayed."
msgstr ""
-#: models.py:145
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:132
msgid "Redirect to"
msgstr ""
-#: models.py:148
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:135
msgid "Where to redirect the user when the form has been successfully sent?"
msgstr ""
-#: models.py:154 models.py:296 models.py:345 models.py:463
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:140
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:373
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:439
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:604
msgid "custom css classes"
msgstr ""
-#: models.py:156
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:142
msgid "form template"
msgstr ""
-#: models.py:168
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:154
msgid "People who will get the form content via e-mail."
msgstr ""
-#: models.py:294
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:158
+msgid "Action backend"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:165
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:413
+msgid "Attributes"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:177
+msgid "CMS Page (condition is false)"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:185
+msgid "Condition field"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:186
+msgid ""
+"This field is used to enable condition logic. If field doesn't match the "
+"condition value then redirect and notification works as usual. If value of "
+"the field matches the condition value field then custom redirect and "
+"notification will be used."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:193
+msgid "Condition field value"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:197
+msgid "Enable autofill from url parameters"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:199
+msgid ""
+"Eg if you open the form with a url that contains parameters as 'https://"
+"example.com/sub-page/?email=hello@example.com&name=Alex', then the fields "
+"'email' and 'name' are going to to be filled in automatically."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:371
msgid "Legend"
msgstr ""
-#: models.py:307
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:386
+msgid "Used to set the field name"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:389
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:602
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/display/submission_data.html:4
+msgid "Label"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:390
msgid "Field is required"
msgstr ""
-#: models.py:312
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:392
+msgid "Field required error message"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:395
msgid ""
-"Error message displayed if the required field is left empty. Default: \"This"
-" field is required\"."
+"Error message displayed if the required field is left empty. Default: \"This "
+"field is required\"."
msgstr ""
-#: models.py:316
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:399
msgid "Placeholder text"
msgstr ""
-#: models.py:319
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:402
msgid ""
"Default text in a form. Disappears when user starts typing. Example: "
"\"email@example.com\""
msgstr ""
-#: models.py:323
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:406
msgid "Help text"
msgstr ""
-#: models.py:326
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:409
msgid "Explanatory text displayed next to input field. Just like this one."
msgstr ""
-#: models.py:333
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:421
msgid "Min value"
msgstr ""
-#: models.py:339
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:427
msgid "Max value"
msgstr ""
-#: models.py:380
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:432
+msgid "Initial value"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:435
+msgid "Default value of field."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:467
+msgid "The \"name\" field cannot contain spaces."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:480
msgid "columns"
msgstr ""
-#: models.py:382
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:482
msgid "rows"
msgstr ""
-#: models.py:387
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:487
msgid "send notification when form is submitted"
msgstr ""
-#: models.py:389
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:489
msgid ""
"When checked, the value of this field will be used to send an email "
"notification."
msgstr ""
-#: models.py:393
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:493
msgid "email subject"
msgstr ""
-#: models.py:397
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:497
msgid "Used as the email subject when email_send_notification is checked."
msgstr ""
-#: models.py:401
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:501
msgid "Additional email body"
msgstr ""
-#: models.py:404
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:504
msgid "Additional body text used when email notifications are active."
msgstr ""
-#: models.py:411
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:511
msgid "Upload files to"
msgstr ""
-#: models.py:412
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:512
msgid ""
"Select a folder to which all files submitted through this field will be "
"uploaded to."
msgstr ""
-#: models.py:416
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:517
msgid "Maximum file size"
msgstr ""
-#: models.py:418
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:519
msgid ""
"The maximum file size of the upload, in bytes. You can use common size "
"suffixes (kB, MB, GB, ...)."
msgstr ""
-#: models.py:432
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:524
+msgid "Allowed extensions"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:529
+msgid ""
+"Comma-separated list of file extensions allowed for this file field. Leave "
+"it empty to allow any extension."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:535
+msgid "Invalid extension error message"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:538
+msgid ""
+"Error message displayed if extensions are constrained and the uploaded file "
+"fails that validation.Default: \"File extension [extension] is not allowed "
+"for this field.\""
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:542
+msgid "Store this file to filer"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:546
+msgid ""
+"Whether to store this file to filer. If this is unchecked and this file is "
+"not attached to any email notification, the file will be lost forever and "
+"using it as a template variable in any email template will return empty "
+"result."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:565
msgid "Maximum image width"
msgstr ""
-#: models.py:434
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:567
msgid "The maximum width of the uploaded image, in pixels."
msgstr ""
-#: models.py:437
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:570
msgid "Maximum image height"
msgstr ""
-#: models.py:439
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:572
msgid "The maximum height of the uploaded image, in pixels."
msgstr ""
-#: models.py:447
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:578
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/display/submission_data.html:5
+msgid "Value"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:580
+msgid "Position"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:583
msgid "Option"
msgstr ""
-#: models.py:448
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:584
msgid "Options"
msgstr ""
-#: models.py:474
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:616
msgid "form name"
msgstr ""
-#: models.py:480
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:622
msgid "users notified"
msgstr ""
-#: models.py:482
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:624
msgid "People who got a notification when form was submitted."
msgstr ""
-#: models.py:486
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:628
msgid "form language"
msgstr ""
-#: models.py:492
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:634
msgid "form url"
msgstr ""
-#: models.py:500
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:642
msgid "Form submission"
msgstr ""
-#: models.py:501
+#: addons-dev/aldryn-forms/aldryn_forms/models.py:643
msgid "Form submissions"
msgstr ""
-#: templates/aldryn_forms/form.html:15
+#: addons-dev/aldryn-forms/aldryn_forms/sizefield/models.py:11
+msgid "Incorrect file size format."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/sizefield/utils.py:79
#, python-format
-msgid ""
-"\n"
-" Thank you for submitting your information, you will be\n"
-" redirected shortly.\n"
-" "
+msgid "Size '%s' has incorrect format"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/display/submission_data.html:3
+msgid "Field"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/export.html:5
+msgid "Export form submissions"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/export.html:8
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] ""
+msgstr[1] ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/export.html:30
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/export_wizard.html:11
+msgid "Export"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/export_wizard.html:13
+msgid "Continue"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/admin/aldryn_forms/formsubmission/change_list.html:9
+msgid "Export Form Entries"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/email_notifications/emails/notification.body.html:9
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/email_notifications/emails/notification.body.txt:8
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/emails/notification.body.html:3
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/emails/notification.body.txt:2
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/emails/user/notification.body.txt:7
+#, python-format
+msgid "Form name: %(form_name)s"
msgstr ""
-#: validators.py:35
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/email_notifications/emails/notification.subject.txt:1
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/emails/notification.subject.txt:1
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/emails/user/notification.subject.txt:1
+#, python-format
+msgid "[Form submission] %(form_name)s"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/field.html:14
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/fields/multiplecheckboxselectfield.html:9
+msgid "Required field"
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/form.html:19
+#, python-format
+msgid "You will be redirected shortly."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/templates/aldryn_forms/form.html:23
+msgid "Thank you for submitting your information."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/validators.py:32
+#, python-brace-format
+msgid "File extension '{extension}' is not allowed for this field."
+msgstr ""
+
+#: addons-dev/aldryn-forms/aldryn_forms/validators.py:60
#, python-format
msgid ""
"You have to choose at least %(limit_value)d options (chosen %(show_value)d)."
msgstr ""
-#: validators.py:41
+#: addons-dev/aldryn-forms/aldryn_forms/validators.py:66
#, python-format
msgid ""
"You can't choose more than %(limit_value)d options (chosen %(show_value)d)."
msgstr ""
-
-#~ msgid ""
-#~ "\n"
-#~ " Please correct the error below."
-#~ msgid_plural ""
-#~ "Please correct the errors below.\n"
-#~ " "
-#~ msgstr[0] ""
-#~ msgstr[1] ""
diff --git a/aldryn_forms/migrations/0014_alter_emailfieldplugin_cmsplugin_ptr_and_more.py b/aldryn_forms/migrations/0014_alter_emailfieldplugin_cmsplugin_ptr_and_more.py
new file mode 100644
index 00000000..8d5bad6a
--- /dev/null
+++ b/aldryn_forms/migrations/0014_alter_emailfieldplugin_cmsplugin_ptr_and_more.py
@@ -0,0 +1,125 @@
+# Generated by Django 4.2.4 on 2023-08-20 15:56
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("cms", "0022_auto_20180620_1551"),
+ ("aldryn_forms", "0013_add_field_is_enable_autofill_from_url_params"),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name="emailfieldplugin",
+ name="cmsplugin_ptr",
+ field=models.OneToOneField(
+ on_delete=django.db.models.deletion.CASCADE,
+ parent_link=True,
+ primary_key=True,
+ related_name="%(app_label)s_%(class)s",
+ serialize=False,
+ to="cms.cmsplugin",
+ ),
+ ),
+ migrations.AlterField(
+ model_name="fieldplugin",
+ name="cmsplugin_ptr",
+ field=models.OneToOneField(
+ on_delete=django.db.models.deletion.CASCADE,
+ parent_link=True,
+ primary_key=True,
+ related_name="%(app_label)s_%(class)s",
+ serialize=False,
+ to="cms.cmsplugin",
+ ),
+ ),
+ migrations.AlterField(
+ model_name="fieldsetplugin",
+ name="cmsplugin_ptr",
+ field=models.OneToOneField(
+ on_delete=django.db.models.deletion.CASCADE,
+ parent_link=True,
+ primary_key=True,
+ related_name="%(app_label)s_%(class)s",
+ serialize=False,
+ to="cms.cmsplugin",
+ ),
+ ),
+ migrations.AlterField(
+ model_name="fileuploadfieldplugin",
+ name="cmsplugin_ptr",
+ field=models.OneToOneField(
+ on_delete=django.db.models.deletion.CASCADE,
+ parent_link=True,
+ primary_key=True,
+ related_name="%(app_label)s_%(class)s",
+ serialize=False,
+ to="cms.cmsplugin",
+ ),
+ ),
+ migrations.AlterField(
+ model_name="formbuttonplugin",
+ name="cmsplugin_ptr",
+ field=models.OneToOneField(
+ on_delete=django.db.models.deletion.CASCADE,
+ parent_link=True,
+ primary_key=True,
+ related_name="%(app_label)s_%(class)s",
+ serialize=False,
+ to="cms.cmsplugin",
+ ),
+ ),
+ migrations.AlterField(
+ model_name="formplugin",
+ name="cmsplugin_ptr",
+ field=models.OneToOneField(
+ on_delete=django.db.models.deletion.CASCADE,
+ parent_link=True,
+ primary_key=True,
+ related_name="%(app_label)s_%(class)s",
+ serialize=False,
+ to="cms.cmsplugin",
+ ),
+ ),
+ migrations.AlterField(
+ model_name="formsubmission",
+ name="id",
+ field=models.BigAutoField(
+ auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
+ ),
+ ),
+ migrations.AlterField(
+ model_name="imageuploadfieldplugin",
+ name="cmsplugin_ptr",
+ field=models.OneToOneField(
+ on_delete=django.db.models.deletion.CASCADE,
+ parent_link=True,
+ primary_key=True,
+ related_name="%(app_label)s_%(class)s",
+ serialize=False,
+ to="cms.cmsplugin",
+ ),
+ ),
+ migrations.AlterField(
+ model_name="option",
+ name="id",
+ field=models.BigAutoField(
+ auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
+ ),
+ ),
+ migrations.AlterField(
+ model_name="textareafieldplugin",
+ name="cmsplugin_ptr",
+ field=models.OneToOneField(
+ on_delete=django.db.models.deletion.CASCADE,
+ parent_link=True,
+ primary_key=True,
+ related_name="%(app_label)s_%(class)s",
+ serialize=False,
+ to="cms.cmsplugin",
+ ),
+ ),
+ ]
diff --git a/aldryn_forms/migrations/0014_auto_20211117_1131.py b/aldryn_forms/migrations/0014_auto_20211117_1131.py
new file mode 100644
index 00000000..e30a7bad
--- /dev/null
+++ b/aldryn_forms/migrations/0014_auto_20211117_1131.py
@@ -0,0 +1,36 @@
+# Generated by Django 3.1.4 on 2021-11-17 10:31
+
+import cms.models.fields
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('cms', '0022_auto_20180620_1551'),
+ ('aldryn_forms', '0013_add_field_is_enable_autofill_from_url_params'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='formplugin',
+ name='condition_field',
+ field=models.CharField(blank=True, help_text="This field is used to enable condition logic. If field matches the condition value then redirect and notification works as usual. If value of the field doesn't match the condition value field then custom redirect and notificaiton will be used.", max_length=512, null=True, verbose_name='Condition field'),
+ ),
+ migrations.AddField(
+ model_name='formplugin',
+ name='condition_value',
+ field=models.CharField(blank=True, max_length=512, null=True, verbose_name='Condition field value'),
+ ),
+ migrations.AddField(
+ model_name='formplugin',
+ name='redirect_page_negative_condition',
+ field=cms.models.fields.PageField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='page_condition_false', to='cms.page', verbose_name='CMS Page (condition is false)'),
+ ),
+ migrations.AlterField(
+ model_name='formplugin',
+ name='action_backend',
+ field=models.CharField(choices=[('none', 'None'), ('email_only', 'Email only'), ('default', 'Default')], default='default', max_length=15, verbose_name='Action backend'),
+ ),
+ ]
diff --git a/aldryn_forms/migrations/0015_auto_20211117_1202.py b/aldryn_forms/migrations/0015_auto_20211117_1202.py
new file mode 100644
index 00000000..18efed94
--- /dev/null
+++ b/aldryn_forms/migrations/0015_auto_20211117_1202.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.1.4 on 2021-11-17 11:02
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('aldryn_forms', '0014_auto_20211117_1131'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='formplugin',
+ name='condition_field',
+ field=models.CharField(blank=True, help_text="This field is used to enable condition logic. If field doesn't match the condition value then redirect and notification works as usual. If value of the field matches the condition value field then custom redirect and notification will be used.", max_length=512, null=True, verbose_name='Condition field'),
+ ),
+ ]
diff --git a/aldryn_forms/migrations/0015_auto_20231105_0313.py b/aldryn_forms/migrations/0015_auto_20231105_0313.py
new file mode 100644
index 00000000..217c8734
--- /dev/null
+++ b/aldryn_forms/migrations/0015_auto_20231105_0313.py
@@ -0,0 +1,33 @@
+# Generated by Django 3.2 on 2023-11-04 22:13
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('aldryn_forms', '0014_alter_emailfieldplugin_cmsplugin_ptr_and_more'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='fileuploadfieldplugin',
+ name='allowed_extensions',
+ field=models.CharField(blank=True, default='', help_text='Comma-separated list of file extensions allowed for this file field.', max_length=255, verbose_name='Allowed extensions'),
+ ),
+ migrations.AddField(
+ model_name='imageuploadfieldplugin',
+ name='allowed_extensions',
+ field=models.CharField(blank=True, default='', help_text='Comma-separated list of file extensions allowed for this file field.', max_length=255, verbose_name='Allowed extensions'),
+ ),
+ migrations.AlterField(
+ model_name='formsubmission',
+ name='id',
+ field=models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
+ ),
+ migrations.AlterField(
+ model_name='option',
+ name='id',
+ field=models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
+ ),
+ ]
diff --git a/aldryn_forms/migrations/0016_auto_20231108_2151.py b/aldryn_forms/migrations/0016_auto_20231108_2151.py
new file mode 100644
index 00000000..fd8abab3
--- /dev/null
+++ b/aldryn_forms/migrations/0016_auto_20231108_2151.py
@@ -0,0 +1,33 @@
+# Generated by Django 3.2 on 2023-11-08 16:51
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('aldryn_forms', '0015_auto_20231105_0313'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='fileuploadfieldplugin',
+ name='store_to_filer',
+ field=models.BooleanField(default=True, help_text='Whether to store this file to filer. If this is unchecked and this file is not attached to any email notification, the file will be lost forever and using it as a template variable in any email template will return empty result.', verbose_name='Store this file to filer'),
+ ),
+ migrations.AddField(
+ model_name='imageuploadfieldplugin',
+ name='store_to_filer',
+ field=models.BooleanField(default=True, help_text='Whether to store this file to filer. If this is unchecked and this file is not attached to any email notification, the file will be lost forever and using it as a template variable in any email template will return empty result.', verbose_name='Store this file to filer'),
+ ),
+ migrations.AlterField(
+ model_name='fileuploadfieldplugin',
+ name='allowed_extensions',
+ field=models.CharField(blank=True, default='', help_text='Comma-separated list of file extensions allowed for this file field. Leave it empty to allow any extension.', max_length=255, verbose_name='Allowed extensions'),
+ ),
+ migrations.AlterField(
+ model_name='imageuploadfieldplugin',
+ name='allowed_extensions',
+ field=models.CharField(blank=True, default='', help_text='Comma-separated list of file extensions allowed for this file field. Leave it empty to allow any extension.', max_length=255, verbose_name='Allowed extensions'),
+ ),
+ ]
diff --git a/aldryn_forms/migrations/0017_auto_20231113_1824.py b/aldryn_forms/migrations/0017_auto_20231113_1824.py
new file mode 100644
index 00000000..4c042c50
--- /dev/null
+++ b/aldryn_forms/migrations/0017_auto_20231113_1824.py
@@ -0,0 +1,48 @@
+# Generated by Django 3.2 on 2023-11-13 13:24
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('aldryn_forms', '0016_auto_20231108_2151'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='fileuploadfieldplugin',
+ name='invalid_extension_message',
+ field=models.TextField(blank=True, help_text='Error message displayed if extensions are constrained and the uploaded file fails that validation.Default: "File extension [extension] is not allowed for this field."', null=True, verbose_name='Invalid extension error message'),
+ ),
+ migrations.AddField(
+ model_name='imageuploadfieldplugin',
+ name='invalid_extension_message',
+ field=models.TextField(blank=True, help_text='Error message displayed if extensions are constrained and the uploaded file fails that validation.Default: "File extension [extension] is not allowed for this field."', null=True, verbose_name='Invalid extension error message'),
+ ),
+ migrations.AlterField(
+ model_name='emailfieldplugin',
+ name='required_message',
+ field=models.TextField(blank=True, help_text='Error message displayed if the required field is left empty. Default: "This field is required".', null=True, verbose_name='Field required error message'),
+ ),
+ migrations.AlterField(
+ model_name='fieldplugin',
+ name='required_message',
+ field=models.TextField(blank=True, help_text='Error message displayed if the required field is left empty. Default: "This field is required".', null=True, verbose_name='Field required error message'),
+ ),
+ migrations.AlterField(
+ model_name='fileuploadfieldplugin',
+ name='required_message',
+ field=models.TextField(blank=True, help_text='Error message displayed if the required field is left empty. Default: "This field is required".', null=True, verbose_name='Field required error message'),
+ ),
+ migrations.AlterField(
+ model_name='imageuploadfieldplugin',
+ name='required_message',
+ field=models.TextField(blank=True, help_text='Error message displayed if the required field is left empty. Default: "This field is required".', null=True, verbose_name='Field required error message'),
+ ),
+ migrations.AlterField(
+ model_name='textareafieldplugin',
+ name='required_message',
+ field=models.TextField(blank=True, help_text='Error message displayed if the required field is left empty. Default: "This field is required".', null=True, verbose_name='Field required error message'),
+ ),
+ ]
diff --git a/aldryn_forms/migrations/0018_merge_0015_auto_20211117_1202_0017_auto_20231113_1824.py b/aldryn_forms/migrations/0018_merge_0015_auto_20211117_1202_0017_auto_20231113_1824.py
new file mode 100644
index 00000000..5763afa6
--- /dev/null
+++ b/aldryn_forms/migrations/0018_merge_0015_auto_20211117_1202_0017_auto_20231113_1824.py
@@ -0,0 +1,14 @@
+# Generated by Django 3.2.17 on 2024-03-08 16:56
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('aldryn_forms', '0015_auto_20211117_1202'),
+ ('aldryn_forms', '0017_auto_20231113_1824'),
+ ]
+
+ operations = [
+ ]
diff --git a/aldryn_forms/models.py b/aldryn_forms/models.py
index 0bbefd66..eee26281 100644
--- a/aldryn_forms/models.py
+++ b/aldryn_forms/models.py
@@ -13,7 +13,7 @@
from django.db import models
from django.db.models.functions import Coalesce
from django.utils.functional import cached_property
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from djangocms_attributes_field.fields import AttributesField
from filer.fields.folder import FilerFolderField
@@ -75,10 +75,10 @@ def field_id(self):
field_label = self.label.strip()
if field_label:
- field_as_string = u'{}-{}'.format(field_label, self.field_type)
+ field_as_string = '{}-{}'.format(field_label, self.field_type)
else:
field_as_string = self.name
- field_id = u'{}:{}'.format(field_as_string, self.field_occurrence)
+ field_id = '{}:{}'.format(field_as_string, self.field_occurrence)
return field_id
@property
@@ -173,6 +173,25 @@ class BaseFormPlugin(CMSPlugin):
on_delete=models.SET_NULL,
)
+ redirect_page_negative_condition = PageField(
+ verbose_name=_('CMS Page (condition is false)'),
+ related_name="page_condition_false",
+ blank=True,
+ null=True,
+ on_delete=models.SET_NULL,
+ )
+
+ condition_field = models.CharField(
+ verbose_name=_('Condition field'),
+ help_text=_('This field is used to enable condition logic. '
+ 'If field doesn\'t match the condition value then redirect and notification works as usual. '
+ 'If value of the field matches the condition value field then custom redirect '
+ 'and notification will be used.'),
+ max_length=512, null=True, blank=True)
+
+ condition_value = models.CharField(
+ verbose_name=_('Condition field value'), max_length=512, null=True, blank=True)
+
is_enable_autofill_from_url_params = models.BooleanField(
default=False,
verbose_name=_("Enable autofill from url parameters"),
@@ -267,10 +286,10 @@ def get_form_fields(self) -> List[FormField]:
if field_plugin.name:
field_name = field_plugin.name
else:
- field_name = u'{0}_{1}'.format(field_type, field_type_occurrence)
+ field_name = '{0}_{1}'.format(field_type, field_type_occurrence)
if field_label:
- field_id = u'{0}_{1}'.format(field_type, field_label)
+ field_id = '{0}_{1}'.format(field_type, field_label)
else:
field_id = field_name
@@ -305,6 +324,12 @@ def get_form_fields_as_choices(self):
for field in fields:
yield (field.name, field.label)
+ def get_form_file_fields_as_choices(self):
+ fields = self.get_form_fields()
+ for field in fields:
+ if field.plugin_instance.IS_FILE_FIELD:
+ yield field.name, field.label
+
def get_form_elements(self):
from .utils import get_nested_plugins
@@ -364,7 +389,7 @@ class FieldPluginBase(CMSPlugin):
label = models.CharField(_('Label'), max_length=255, blank=True)
required = models.BooleanField(_('Field is required'), default=False)
required_message = models.TextField(
- verbose_name=_('Error message'),
+ verbose_name=_('Field required error message'),
blank=True,
null=True,
help_text=_('Error message displayed if the required field is left '
@@ -416,6 +441,8 @@ class FieldPluginBase(CMSPlugin):
on_delete=models.CASCADE,
)
+ IS_FILE_FIELD = False
+
class Meta:
abstract = True
@@ -492,6 +519,38 @@ class FileFieldPluginBase(FieldPluginBase):
help_text=_('The maximum file size of the upload, in bytes. You can '
'use common size suffixes (kB, MB, GB, ...).')
)
+ allowed_extensions = models.CharField(
+ max_length=255,
+ verbose_name=_("Allowed extensions"),
+ blank=True,
+ default="",
+ help_text=(
+ _(
+ "Comma-separated list of file extensions allowed for this file field. "
+ "Leave it empty to allow any extension."
+ )
+ ),
+ )
+ invalid_extension_message = models.TextField(
+ verbose_name=_('Invalid extension error message'),
+ blank=True,
+ null=True,
+ help_text=_('Error message displayed if extensions are constrained and the uploaded file fails that validation.'
+ 'Default: "File extension [extension] is not allowed for this field."')
+ )
+ store_to_filer = models.BooleanField(
+ verbose_name=_("Store this file to filer"),
+ default=True,
+ help_text=(
+ _(
+ "Whether to store this file to filer. If this is unchecked and this file is not attached to any email "
+ "notification, the file will be lost forever and using it as a template variable in any email template "
+ "will return empty result."
+ )
+ ),
+ )
+
+ IS_FILE_FIELD = True
class Meta:
abstract = True
@@ -591,7 +650,7 @@ def _form_data_hook(self, data, occurrences):
if field_label:
field_type = data['name'].rpartition('_')[0]
- field_id = u'{}_{}'.format(field_type, field_label)
+ field_id = '{}_{}'.format(field_type, field_label)
else:
field_id = data['name']
diff --git a/aldryn_forms/signals.py b/aldryn_forms/signals.py
index 653c9bfa..20059010 100644
--- a/aldryn_forms/signals.py
+++ b/aldryn_forms/signals.py
@@ -1,5 +1,6 @@
from django.dispatch import Signal
-form_pre_save = Signal(providing_args=['instance', 'form', 'request'])
-form_post_save = Signal(providing_args=['instance', 'form', 'request'])
+# Provides arguments: instance, form, request
+form_pre_save = Signal()
+form_post_save = Signal()
diff --git a/aldryn_forms/sizefield/models.py b/aldryn_forms/sizefield/models.py
index d30d6cb1..a261e879 100644
--- a/aldryn_forms/sizefield/models.py
+++ b/aldryn_forms/sizefield/models.py
@@ -1,6 +1,6 @@
from django.core import exceptions
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from .utils import parse_size
from .widgets import FileSizeWidget
@@ -8,7 +8,7 @@
class FileSizeField(models.BigIntegerField):
default_error_messages = {
- 'invalid': _(u'Incorrect file size format.'),
+ 'invalid': _('Incorrect file size format.'),
}
def formfield(self, **kwargs):
diff --git a/aldryn_forms/sizefield/utils.py b/aldryn_forms/sizefield/utils.py
index 3aed242b..a3ec3ca5 100644
--- a/aldryn_forms/sizefield/utils.py
+++ b/aldryn_forms/sizefield/utils.py
@@ -4,7 +4,7 @@
from django.conf import settings
from django.utils import formats
-from django.utils.translation import ugettext as _
+from django.utils.translation import gettext as _
if sys.version_info >= (3, 0):
diff --git a/aldryn_forms/templates/aldryn_forms/form.html b/aldryn_forms/templates/aldryn_forms/form.html
index 8c93111f..010ce6fb 100644
--- a/aldryn_forms/templates/aldryn_forms/form.html
+++ b/aldryn_forms/templates/aldryn_forms/form.html
@@ -40,7 +40,7 @@
{% endaddtoblock %}
{% endif %}
@@ -70,3 +70,43 @@
{% endaddtoblock %}
{% endif %}
+
\ No newline at end of file
diff --git a/aldryn_forms/urls.py b/aldryn_forms/urls.py
index b0b9d4dd..cdeea558 100644
--- a/aldryn_forms/urls.py
+++ b/aldryn_forms/urls.py
@@ -1,8 +1,8 @@
-from django.conf.urls import url
+from django.urls import re_path
from .views import submit_form_view
urlpatterns = [
- url(r'^$', submit_form_view, name='aldryn_forms_submit_form'),
+ re_path(r'^$', submit_form_view, name='aldryn_forms_submit_form'),
]
diff --git a/aldryn_forms/utils.py b/aldryn_forms/utils.py
index b28bd8f5..21d9ed8e 100644
--- a/aldryn_forms/utils.py
+++ b/aldryn_forms/utils.py
@@ -1,5 +1,7 @@
from __future__ import unicode_literals
+import typing
+
from django.conf import settings
from django.core.exceptions import ImproperlyConfigured
from django.forms.forms import NON_FIELD_ERRORS
@@ -123,3 +125,23 @@ def add_form_error(form, message, field=NON_FIELD_ERRORS):
form._errors[field].append(message)
except KeyError:
form._errors[field] = form.error_class([message])
+
+
+def serialize_delimiter_separated_values_string(
+ csl: str = "", delimiter=",", strip=True, lower=True
+) -> typing.List[str]:
+ """Convert a comma-separated string of values to list of strings"""
+ if not csl:
+ return []
+
+ values_list = [item for item in csl.split(delimiter)]
+
+ if strip:
+ values_list = [item.strip() for item in values_list]
+ if lower:
+ values_list = [item.lower() for item in values_list]
+
+ values_list = [item for item in values_list if item]
+ return values_list
+
+
diff --git a/aldryn_forms/validators.py b/aldryn_forms/validators.py
index a7f974bb..17dfcdaa 100644
--- a/aldryn_forms/validators.py
+++ b/aldryn_forms/validators.py
@@ -1,11 +1,39 @@
+import os
from email.utils import parseaddr
from django.core.exceptions import ValidationError
from django.core.validators import (
MaxLengthValidator, MinLengthValidator, validate_email,
)
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
+from aldryn_forms.utils import serialize_delimiter_separated_values_string
+
+
+def generate_file_extension_validator(allowed_extensions_str: str = "", error_message: str = ""):
+ allowed_extensions = serialize_delimiter_separated_values_string(
+ allowed_extensions_str, delimiter=",", strip=True, lower=True
+ )
+
+ if not allowed_extensions:
+ return lambda value: None
+
+ allowed_extensions = [
+ extension if extension.startswith(".") else f".{extension}"
+ for extension in allowed_extensions
+ ]
+
+ def validator(value):
+ extension = os.path.splitext(value.name)[1] # [0] returns path+filename
+ if not extension.lower() in allowed_extensions:
+ raise ValidationError(
+ error_message
+ if error_message
+ else _(f"File extension '{extension}' is not allowed for this field."),
+ code="invalid_extension",
+ )
+
+ return validator
def is_valid_recipient(recipient):
"""
diff --git a/aldryn_forms/views.py b/aldryn_forms/views.py
index 49d2f06e..e08017b4 100644
--- a/aldryn_forms/views.py
+++ b/aldryn_forms/views.py
@@ -44,7 +44,12 @@ def submit_form_view(request):
form_plugin_instance = form_plugin.get_plugin_instance()[1]
# saves the form if it's valid
form = form_plugin_instance.process_form(form_plugin, request)
- success_url = form_plugin_instance.get_success_url(instance=form_plugin)
+ condition_value = None
+ field_data = form.get_cleaned_data()
+ if form_plugin.condition_field in field_data:
+ condition_value = field_data[form_plugin.condition_field]
+
+ success_url = form_plugin_instance.get_success_url(instance=form_plugin, condition_value=condition_value)
if form.is_valid() and success_url:
return HttpResponseRedirect(success_url)
diff --git a/tests/test_utils.py b/tests/test_utils.py
index 54036972..b37a7f5d 100644
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -1,6 +1,6 @@
from django.core.exceptions import ImproperlyConfigured
from django.test import override_settings
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from cms.test_utils.testcases import CMSTestCase