Skip to content
Snippets Groups Projects
Commit 9db57199 authored by jan.bednarik's avatar jan.bednarik
Browse files

uniweb: Captcha in forms

parent 94e2f350
No related branches found
No related tags found
2 merge requests!206Release,!205Uniweb
Pipeline #2849 passed
......@@ -4,4 +4,4 @@ line_length = 88
multi_line_output = 3
default_section = "THIRDPARTY"
include_trailing_comma = true
known_third_party = arrow,django,environ,faker,ics,markdown,modelcluster,pirates,pytest,pytz,requests,sentry_sdk,snapshottest,taggit,wagtail,wagtailmetadata
known_third_party = arrow,captcha,django,environ,faker,ics,markdown,modelcluster,pirates,pytest,pytz,requests,sentry_sdk,snapshottest,taggit,wagtail,wagtailmetadata
......@@ -52,6 +52,7 @@ INSTALLED_APPS = [
"regulace_konopi",
"green_deal",
"widget_tweaks",
"captcha",
"wagtail.contrib.forms",
"wagtail.contrib.redirects",
"wagtail.contrib.modeladmin",
......@@ -232,6 +233,13 @@ MAJAK_ENV = env.str("MAJAK_ENV", default="prod")
SETTINGS_EXPORT = ["MAJAK_ENV"]
CAPTCHA_BACKGROUND_COLOR = "#fafafa"
CAPTCHA_FOREGROUND_COLOR = "#303132"
CAPTCHA_LETTER_ROTATION = (-20, 20)
CAPTCHA_FONT_SIZE = 30
CAPTCHA_IMAGE_SIZE = (120, 47)
# CUSTOM APPS SETTINGS
# ------------------------------------------------------------------------------
DONATE_PORTAL_REDIRECT_URL = env.str("DONATE_PORTAL_REDIRECT_URL", default="")
......
import captcha.urls
from django.conf import settings
from django.conf.urls import include, url
from django.contrib import admin
......@@ -13,6 +14,7 @@ urlpatterns = [
url(r"^admin/", include(wagtailadmin_urls)),
url(r"^documents/", include(wagtaildocs_urls)),
url(r"^search/$", search_views.search, name="search"),
url(r"^captcha/", include(captcha.urls)),
] + pirates_urlpatterns
......
......@@ -5,6 +5,7 @@ django-extensions
django-redis
django-settings-export
django-widget-tweaks
django-simple-captcha
psycopg2-binary
pirates<=0.6
whitenoise
......
......@@ -16,12 +16,14 @@ django-environ==0.4.5 # via -r base.in
django-extensions==3.1.1 # via -r base.in
django-filter==2.4.0 # via wagtail
django-modelcluster==5.1 # via wagtail
django-ranged-response==0.2.0 # via django-simple-captcha
django-redis==4.12.1 # via -r base.in
django-settings-export==1.2.1 # via -r base.in
django-simple-captcha==0.5.14 # via -r base.in
django-taggit==1.3.0 # via wagtail
django-treebeard==4.5.1 # via wagtail
django-widget-tweaks==1.4.8 # via -r base.in
django==3.1.7 # via django-filter, django-redis, django-settings-export, django-taggit, django-treebeard, djangorestframework, mozilla-django-oidc, wagtail
django==3.1.7 # via django-filter, django-ranged-response, django-redis, django-settings-export, django-simple-captcha, django-taggit, django-treebeard, djangorestframework, mozilla-django-oidc, wagtail
djangorestframework==3.12.4 # via wagtail
draftjs-exporter==2.1.7 # via wagtail
et-xmlfile==1.0.1 # via openpyxl
......@@ -35,7 +37,7 @@ mozilla-django-oidc==1.2.4 # via pirates
numpy==1.20.2 # via opencv-python
opencv-python==4.5.1.48 # via -r base.in
openpyxl==3.0.7 # via tablib
pillow==8.1.2 # via wagtail
pillow==8.1.2 # via django-simple-captcha, wagtail
pirates==0.5.0 # via -r base.in
psycopg2-binary==2.8.6 # via -r base.in
pycparser==2.20 # via cffi
......@@ -45,7 +47,7 @@ pytz==2021.1 # via django, django-modelcluster, l18n
redis==3.5.3 # via django-redis
requests==2.25.1 # via -r base.in, mozilla-django-oidc, wagtail
sentry-sdk==1.0.0 # via -r base.in
six==1.15.0 # via html5lib, ics, l18n, mozilla-django-oidc, pyopenssl, python-dateutil
six==1.15.0 # via django-simple-captcha, html5lib, ics, l18n, mozilla-django-oidc, pyopenssl, python-dateutil
soupsieve==2.2.1 # via beautifulsoup4
sqlparse==0.4.1 # via django
tablib[xls,xlsx]==3.0.0 # via wagtail
......
from captcha.fields import CaptchaField
from django import forms
from django.core.paginator import Paginator
from django.db import models
......@@ -489,7 +490,6 @@ class UniwebFormPage(AbstractForm, SubpageMixin, MetadataPageMixin):
### PANELS
content_panels = AbstractForm.content_panels + [
FormSubmissionsPanel(),
StreamFieldPanel("content_before"),
InlinePanel("form_fields", label="formulář"),
StreamFieldPanel("content_after"),
......@@ -534,3 +534,8 @@ class UniwebFormPage(AbstractForm, SubpageMixin, MetadataPageMixin):
class Meta:
verbose_name = "Formulářová stránka"
def get_form_class(self):
form = super().get_form_class()
form.base_fields["captcha"] = CaptchaField(label="opište písmena z obrázku")
return form
......@@ -58,8 +58,13 @@
<label class="form-field__label" for="{{ field.id_for_label }}">{{ field.label }}</label>
</div>
</div>
{% elif field.widget_type == "captchatext" %}
<label class="form-field__label" for="{{ field.id_for_label }}">{{ field.label }}</label>
<div class="form-field__wrapper form-field__wrapper--shadowed w-1/2">
{{ field|add_class:"text-input form-field__control" }}
</div>
{% else %}
<label class="form-field__label" for="{{ field.id_for_label }}">{{ field.label }} ({{ field.widget_type }})</label>
<label class="form-field__label" for="{{ field.id_for_label }}">{{ field.label }}</label>
<div class="form-field__wrapper form-field__wrapper--shadowed">
{{ field|add_class:"text-input form-field__control" }}
</div>
......@@ -77,7 +82,7 @@
{% endfor %}
</div>
<button class="btn text-lg mt-6 mb-4 btn--black-100">
<button class="btn text-lg mt-6 mb-4 btn--black-100 btn--hoveractive">
<div class="btn__body ">odeslat</div>
</button>
</form>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment