Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cmsplugin_remote_form/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "1.2b7"
__version__ = "1.2b8"
19 changes: 15 additions & 4 deletions cmsplugin_remote_form/cms_plugins.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,14 @@ def render(self, context, instance, placeholder):
self.request = request
self.saved_record = self.submitted_form.save_record(instance, ts)
self.notification_emails(instance)
self.remote_response = self.post_to_remote(instance, request, self.submitted_form.cleaned_data)
self.handle_response()

if self.instance.post_url:
self.remote_response = self.post_to_remote(instance, request, self.submitted_form.cleaned_data)

self.handle_response()

else:
self.success_callback()
else:
form = self.submitted_form
context.update({
Expand Down Expand Up @@ -116,8 +122,13 @@ def error_notifications_emails(self):

def notification_emails(self, instance):
if self.instance.notification_emails:
url = instance.page.get_public_url()
title = str(instance.page)
if instance.page:
url = instance.page.get_public_url()
title = str(instance.page)
else:
# if being rendered from modal or context without page instance
url = self.request.build_absolute_uri()
title = "Form Submission"
email_addresses = [x.strip() for x in self.instance.notification_emails.split(',')]

data = self.saved_record.get_ordered_data()
Expand Down
14 changes: 7 additions & 7 deletions cmsplugin_remote_form/forms.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from captcha.fields import ReCaptchaField
from captcha.widgets import ReCaptchaV3
from django import forms
from django.conf import settings
from django.contrib.sites.models import Site
from django.utils.translation import ugettext_lazy as _
from localflavor.us.forms import USStateSelect
from simplemathcaptcha.fields import MathCaptchaField

from cmsplugin_remote_form.models import ContactRecord, RemoteForm as RemoteFormModel
from cmsplugin_remote_form.utils import get_validators
Expand Down Expand Up @@ -85,13 +85,13 @@ def __init__(self, contactFormInstance, request, *args, **kwargs):
widget=forms.HiddenInput,
required=False,
)
elif extraField.fieldType == "MathCaptcha":
self.extra_field_factory(
extraField, MathCaptchaField, required=True
)
elif extraField.fieldType == "ReCaptcha":
self.extra_field_factory(
extraField, ReCaptchaField, label="", required=True
extraField,
ReCaptchaField,
widget=ReCaptchaV3,
label="",
required=True
)
elif extraField.fieldType == "auto_GET_parameter":
lInitial = _("Key/value parameter not available.")
Expand Down Expand Up @@ -128,7 +128,7 @@ def save_record(self, instance, ts):
order = RemoteFormModel.objects.get(id=instance.id).extrafield_set.order_by(
"inline_ordering_position"
)
excluded_field_types = ["MathCaptcha", "ReCaptcha"]
excluded_field_types = ["ReCaptcha"]
order = [
field for field in order if field.fieldType not in excluded_field_types
]
Expand Down
5 changes: 2 additions & 3 deletions cmsplugin_remote_form/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.contrib.sites.models import Site
from django.utils.encoding import python_2_unicode_compatible
from six import python_2_unicode_compatible
from django.db.models import Model

from cms.models.fields import PageField
Expand Down Expand Up @@ -89,7 +89,7 @@ def __str__(self):
if self.post_url:
url_obj = urlparse(self.post_url)
return "Remote Form: %s - %s" % (url_obj.netloc, url_obj.path)
return _("Remote Form")
return "Remote Form"


def recaptcha_installed():
Expand All @@ -107,7 +107,6 @@ def recaptcha_installed():
('ImageField', 'ImageField'),
('USStateSelect', 'US State Selector'),
('IPAddressField', 'IPAddressField'),
('MathCaptcha', 'Math Captcha'),
('auto_Textarea', _('CharField as Textarea')),
('auto_hidden_input', _('CharField as HiddenInput')),
('auto_referral_page', _('Referral page as HiddenInput')),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
{% if show_thanks and object.thanks_page %}
{% addtoblock 'js-external' %}
<script>
window.location.href = "{{ object.thanks_page.get_absolute_url }}{{ object.link_parameter }}";
window.location.href = "{{ object.thanks_page.get_absolute_url }}{% if object.link_parameter %}{{ object.link_parameter }}{% endif %}";
</script>
{% endaddtoblock %}
{% endif %}
3 changes: 1 addition & 2 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
django-cms
django-admin-sortable
django-simple-math-captcha
jsonfield
django-localflavor
six
django-bootstrap3>=12.0.0
requests
django-recaptcha>=1.4.0
grequests
grequests