diff --git a/czech_inspirational/models.py b/czech_inspirational/models.py index aa8176283e3f17a045e0a9349e0477acce5e772a..bc19a2cad006625616ab739fcb257a01c452e39e 100644 --- a/czech_inspirational/models.py +++ b/czech_inspirational/models.py @@ -1,3 +1,10 @@ +import json +import logging + +import requests +from django.conf import settings +from django.core.exceptions import ValidationError +from django.core.validators import validate_email from django.db import models from django.utils.translation import gettext_lazy from wagtail.admin.edit_handlers import FieldPanel, HelpPanel, MultiFieldPanel @@ -11,6 +18,8 @@ from shared.models import SubpageMixin from tuning import help from uniweb.constants import RICH_TEXT_FEATURES +logger = logging.getLogger() + class CzechInspirationalHomePage(Page, MetadataPageMixin): ### FIELDS @@ -249,3 +258,40 @@ class CzechInspirationalDownloadPage(Page, SubpageMixin, MetadataPageMixin): class Meta: verbose_name = "Download" + + def get_context(self, request): + context = super().get_context(request) + + if "stahnout" in request.GET: + context["show"] = "download" + elif "diky" in request.GET: + context["show"] = "thanks" + else: + context["show"] = "info" + + if "email" in request.POST: + context["show"] = "download" + + if "subscribe" in request.POST: + email = request.POST.get("email", "") + try: + validate_email(email) + except ValidationError: + pass + else: + payload = { + "email": email, + "news_id": settings.CZECH_INSPIRATIONAL_NEWSLETTER_ID, + } + response = requests.post( + settings.NALODENI_API_NEWS_SUBSCRIBE_URL, + data=json.dumps(payload), + auth=tuple(settings.NALODENI_API_CREDENTIALS.split(":")), + ) + if response.status_code != 200: + logger.error( + "Failed to subscribe!", + extra={"email": email, "response": response.text}, + ) + + return context diff --git a/czech_inspirational/static/czech_inspirational/js/main.bundle.js b/czech_inspirational/static/czech_inspirational/js/main.bundle.js index c9482a5e2314e46a7b23ac744ef1739dad86094f..7cf233838b8cf5c4e34c5d9dddd3c4806e2d92ff 100644 --- a/czech_inspirational/static/czech_inspirational/js/main.bundle.js +++ b/czech_inspirational/static/czech_inspirational/js/main.bundle.js @@ -551,17 +551,6 @@ </button></a> </div> `; - var hrefs = document.getElementsByClassName("dlhref"); - for (var i = 0; i < hrefs.length; i++) { - hrefs.item(i).addEventListener('click', function(e){ - e.preventDefault(); - console.log(this.href); - forceDownload(this.href); - setTimeout(function(){ - window.location.href = "thankyou.html"; - }, 1000); - }); - } } var savemailform = document.getElementById('savemailform'); @@ -583,6 +572,18 @@ }); } + var hrefs = document.getElementsByClassName("dlhref"); + for (var i = 0; i < hrefs.length; i++) { + hrefs.item(i).addEventListener('click', function(e){ + e.preventDefault(); + console.log(this.href); + forceDownload(this.href); + setTimeout(function(){ + window.location.href = "?diky"; + }, 1000); + }); + } + }(Vue)); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsic2NyZWVucy5qcyIsInNvdXJjZS9qcy91dGlscy5qcyIsInNvdXJjZS9qcy9jb21wb25lbnRzL25hdmJhci9OYXZiYXJTdWJpdGVtLnZ1ZSIsIm5vZGVfbW9kdWxlcy92dWUtcnVudGltZS1oZWxwZXJzL2Rpc3Qvbm9ybWFsaXplLWNvbXBvbmVudC5tanMiLCJzb3VyY2UvanMvY29tcG9uZW50cy9uYXZiYXIvTmF2YmFyLnZ1ZSIsInNvdXJjZS9qcy9jb21wb25lbnRzL2Zvb3Rlci9Gb290ZXJDb2xsYXBzaWJsZS52dWUiLCJzb3VyY2UvanMvY29tcG9uZW50cy9VaUFwcC52dWUiLCJzb3VyY2UvanMvbWFpbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHtcclxuICAnc20nOiAnNTc2cHgnLFxyXG4gICdtZCc6ICc3NjhweCcsXHJcbiAgJ2xnJzogJzk5MnB4JyxcclxuICAneGwnOiAnMTIwMHB4JyxcclxuICAnMnhsJzogJzEzNjZweCcsXHJcbn07XHJcbiIsImltcG9ydCBzY3JlZW5zIGZyb20gXCIuLi8uLi9zY3JlZW5zXCI7XHJcblxyXG5jb25zdCBsZ1NjcmVlblNpemUgPSBwYXJzZUludChzY3JlZW5zLmxnLnJlcGxhY2UoXCJweFwiLCBcIlwiKSwgMTApO1xyXG5cclxuZXhwb3J0IGNvbnN0IGZvckVhY2hOb2RlID0gZnVuY3Rpb24gKGFycmF5LCBjYWxsYmFjaywgc2NvcGUpIHtcclxuICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjYWxsYmFjay5jYWxsKHNjb3BlLCBhcnJheVtpXSk7IC8vIHBhc3NlcyBiYWNrIHN0dWZmIHdlIG5lZWRcclxuICB9XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2luZG93V2lkdGgoKSB7XHJcbiAgcmV0dXJuIE1hdGgubWF4KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCB8fCAwLCB3aW5kb3cuaW5uZXJXaWR0aCB8fCAwKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzTGdTY3JlZW5TaXplKCkge1xyXG4gIHJldHVybiBnZXRXaW5kb3dXaWR0aCgpID49IGxnU2NyZWVuU2l6ZTtcclxufVxyXG4iLCI8dGVtcGxhdGU+XHJcbiAgPGRpdiBAbW91c2VlbnRlcj1cIm9uTW91c2VFbnRlclwiIEBtb3VzZWxlYXZlPVwib25Nb3VzZUxlYXZlXCI+XHJcbiAgICA8c3BhbiB2LWlmPVwiIWhyZWZcIiBjbGFzcz1cIm5hdmJhci1tZW51X19saW5rIG5hdmJhci1tZW51X19zdWJtZW51LXRvZ2dsZVwiIDpjbGFzcz1cInsnbmF2YmFyLW1lbnVfX3N1Ym1lbnUtdG9nZ2xlLS1vcGVuJzogc2hvd31cIiBAY2xpY2s9XCJoYW5kbGVDbGlja1wiPnt7IGxhYmVsIH19PC9zcGFuPlxyXG4gICAgPGEgdi1pZj1cImhyZWZcIiA6aHJlZj1cImhyZWZcIiBjbGFzcz1cIm5hdmJhci1tZW51X19saW5rIG5hdmJhci1tZW51X19zdWJtZW51LXRvZ2dsZVwiIDpjbGFzcz1cInsnbmF2YmFyLW1lbnVfX3N1Ym1lbnUtdG9nZ2xlLS1vcGVuJzogc2hvd31cIiBAY2xpY2sucHJldmVudD1cImhhbmRsZUNsaWNrXCI+e3sgbGFiZWwgfX08L2E+XHJcbiAgICA8ZGl2IDpjbGFzcz1cInsnbmF2YmFyLW1lbnVfX3N1Ym1lbnUtd3JhcC0tc2hvdyc6IHNob3d9XCIgY2xhc3M9XCJuYXZiYXItbWVudV9fc3VibWVudS13cmFwXCI+XHJcbiAgICAgIDxzbG90PlxyXG4gICAgICA8L3Nsb3Q+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcbmltcG9ydCB7IGlzTGdTY3JlZW5TaXplIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHNob3c6IGZhbHNlXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgcHJvcHM6IHtcclxuICAgIGhyZWY6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIGxhYmVsOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgIH1cclxuICB9LFxyXG4gIG1ldGhvZHM6IHtcclxuICAgIG9uTW91c2VFbnRlcigpIHtcclxuICAgICAgaWYgKGlzTGdTY3JlZW5TaXplKCkpIHtcclxuICAgICAgICB0aGlzLiRkYXRhLnNob3cgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgb25Nb3VzZUxlYXZlKCkge1xyXG4gICAgICBpZiAoaXNMZ1NjcmVlblNpemUoKSkge1xyXG4gICAgICAgIHRoaXMuJGRhdGEuc2hvdyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgaGFuZGxlQ2xpY2soZXZ0KSB7XHJcbiAgICAgIC8vIE9uIG1vYmlsZSBzY3JlZW5zLCBmaXJzdCBjbGljayBzaG91bGQganVzdCB0b2dnbGUgYW5kIHJlZGlyIG9uIHNlY29uZCBvbmVcclxuICAgICAgaWYgKGlzTGdTY3JlZW5TaXplKCkgfHwgdGhpcy4kZGF0YS5zaG93KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuJHByb3BzLmhyZWYpIHtcclxuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHRoaXMuJHByb3BzLmhyZWY7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLiRkYXRhLnNob3cgPSAhdGhpcy4kZGF0YS5zaG93O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3NjcmlwdD5cclxuIiwiZnVuY3Rpb24gbm9ybWFsaXplQ29tcG9uZW50KHRlbXBsYXRlLCBzdHlsZSwgc2NyaXB0LCBzY29wZUlkLCBpc0Z1bmN0aW9uYWxUZW1wbGF0ZSwgbW9kdWxlSWRlbnRpZmllciAvKiBzZXJ2ZXIgb25seSAqLywgc2hhZG93TW9kZSwgY3JlYXRlSW5qZWN0b3IsIGNyZWF0ZUluamVjdG9yU1NSLCBjcmVhdGVJbmplY3RvclNoYWRvdykge1xyXG4gICAgaWYgKHR5cGVvZiBzaGFkb3dNb2RlICE9PSAnYm9vbGVhbicpIHtcclxuICAgICAgICBjcmVhdGVJbmplY3RvclNTUiA9IGNyZWF0ZUluamVjdG9yO1xyXG4gICAgICAgIGNyZWF0ZUluamVjdG9yID0gc2hhZG93TW9kZTtcclxuICAgICAgICBzaGFkb3dNb2RlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBWdWUuZXh0ZW5kIGNvbnN0cnVjdG9yIGV4cG9ydCBpbnRlcm9wLlxyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHR5cGVvZiBzY3JpcHQgPT09ICdmdW5jdGlvbicgPyBzY3JpcHQub3B0aW9ucyA6IHNjcmlwdDtcclxuICAgIC8vIHJlbmRlciBmdW5jdGlvbnNcclxuICAgIGlmICh0ZW1wbGF0ZSAmJiB0ZW1wbGF0ZS5yZW5kZXIpIHtcclxuICAgICAgICBvcHRpb25zLnJlbmRlciA9IHRlbXBsYXRlLnJlbmRlcjtcclxuICAgICAgICBvcHRpb25zLnN0YXRpY1JlbmRlckZucyA9IHRlbXBsYXRlLnN0YXRpY1JlbmRlckZucztcclxuICAgICAgICBvcHRpb25zLl9jb21waWxlZCA9IHRydWU7XHJcbiAgICAgICAgLy8gZnVuY3Rpb25hbCB0ZW1wbGF0ZVxyXG4gICAgICAgIGlmIChpc0Z1bmN0aW9uYWxUZW1wbGF0ZSkge1xyXG4gICAgICAgICAgICBvcHRpb25zLmZ1bmN0aW9uYWwgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIHNjb3BlZElkXHJcbiAgICBpZiAoc2NvcGVJZCkge1xyXG4gICAgICAgIG9wdGlvbnMuX3Njb3BlSWQgPSBzY29wZUlkO1xyXG4gICAgfVxyXG4gICAgbGV0IGhvb2s7XHJcbiAgICBpZiAobW9kdWxlSWRlbnRpZmllcikge1xyXG4gICAgICAgIC8vIHNlcnZlciBidWlsZFxyXG4gICAgICAgIGhvb2sgPSBmdW5jdGlvbiAoY29udGV4dCkge1xyXG4gICAgICAgICAgICAvLyAyLjMgaW5qZWN0aW9uXHJcbiAgICAgICAgICAgIGNvbnRleHQgPVxyXG4gICAgICAgICAgICAgICAgY29udGV4dCB8fCAvLyBjYWNoZWQgY2FsbFxyXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLiR2bm9kZSAmJiB0aGlzLiR2bm9kZS5zc3JDb250ZXh0KSB8fCAvLyBzdGF0ZWZ1bFxyXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC4kdm5vZGUgJiYgdGhpcy5wYXJlbnQuJHZub2RlLnNzckNvbnRleHQpOyAvLyBmdW5jdGlvbmFsXHJcbiAgICAgICAgICAgIC8vIDIuMiB3aXRoIHJ1bkluTmV3Q29udGV4dDogdHJ1ZVxyXG4gICAgICAgICAgICBpZiAoIWNvbnRleHQgJiYgdHlwZW9mIF9fVlVFX1NTUl9DT05URVhUX18gIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0ID0gX19WVUVfU1NSX0NPTlRFWFRfXztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBpbmplY3QgY29tcG9uZW50IHN0eWxlc1xyXG4gICAgICAgICAgICBpZiAoc3R5bGUpIHtcclxuICAgICAgICAgICAgICAgIHN0eWxlLmNhbGwodGhpcywgY3JlYXRlSW5qZWN0b3JTU1IoY29udGV4dCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIHJlZ2lzdGVyIGNvbXBvbmVudCBtb2R1bGUgaWRlbnRpZmllciBmb3IgYXN5bmMgY2h1bmsgaW5mZXJlbmNlXHJcbiAgICAgICAgICAgIGlmIChjb250ZXh0ICYmIGNvbnRleHQuX3JlZ2lzdGVyZWRDb21wb25lbnRzKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0Ll9yZWdpc3RlcmVkQ29tcG9uZW50cy5hZGQobW9kdWxlSWRlbnRpZmllcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIC8vIHVzZWQgYnkgc3NyIGluIGNhc2UgY29tcG9uZW50IGlzIGNhY2hlZCBhbmQgYmVmb3JlQ3JlYXRlXHJcbiAgICAgICAgLy8gbmV2ZXIgZ2V0cyBjYWxsZWRcclxuICAgICAgICBvcHRpb25zLl9zc3JSZWdpc3RlciA9IGhvb2s7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChzdHlsZSkge1xyXG4gICAgICAgIGhvb2sgPSBzaGFkb3dNb2RlXHJcbiAgICAgICAgICAgID8gZnVuY3Rpb24gKGNvbnRleHQpIHtcclxuICAgICAgICAgICAgICAgIHN0eWxlLmNhbGwodGhpcywgY3JlYXRlSW5qZWN0b3JTaGFkb3coY29udGV4dCwgdGhpcy4kcm9vdC4kb3B0aW9ucy5zaGFkb3dSb290KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgOiBmdW5jdGlvbiAoY29udGV4dCkge1xyXG4gICAgICAgICAgICAgICAgc3R5bGUuY2FsbCh0aGlzLCBjcmVhdGVJbmplY3Rvcihjb250ZXh0KSk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAoaG9vaykge1xyXG4gICAgICAgIGlmIChvcHRpb25zLmZ1bmN0aW9uYWwpIHtcclxuICAgICAgICAgICAgLy8gcmVnaXN0ZXIgZm9yIGZ1bmN0aW9uYWwgY29tcG9uZW50IGluIHZ1ZSBmaWxlXHJcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsUmVuZGVyID0gb3B0aW9ucy5yZW5kZXI7XHJcbiAgICAgICAgICAgIG9wdGlvbnMucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyV2l0aFN0eWxlSW5qZWN0aW9uKGgsIGNvbnRleHQpIHtcclxuICAgICAgICAgICAgICAgIGhvb2suY2FsbChjb250ZXh0KTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbFJlbmRlcihoLCBjb250ZXh0KTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIGluamVjdCBjb21wb25lbnQgcmVnaXN0cmF0aW9uIGFzIGJlZm9yZUNyZWF0ZSBob29rXHJcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nID0gb3B0aW9ucy5iZWZvcmVDcmVhdGU7XHJcbiAgICAgICAgICAgIG9wdGlvbnMuYmVmb3JlQ3JlYXRlID0gZXhpc3RpbmcgPyBbXS5jb25jYXQoZXhpc3RpbmcsIGhvb2spIDogW2hvb2tdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBzY3JpcHQ7XHJcbn1cblxuZXhwb3J0IGRlZmF1bHQgbm9ybWFsaXplQ29tcG9uZW50O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9ybWFsaXplLWNvbXBvbmVudC5tanMubWFwXG4iLCI8c2NyaXB0PlxyXG4gIGltcG9ydCBVaU5hdmJhclN1Yml0ZW0gZnJvbSBcIi4vTmF2YmFyU3ViaXRlbVwiO1xyXG4gIGltcG9ydCB7IGlzTGdTY3JlZW5TaXplIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcblxyXG4gIGV4cG9ydCBkZWZhdWx0IHtcclxuICAgIGNvbXBvbmVudHM6IHtcclxuICAgICAgVWlOYXZiYXJTdWJpdGVtXHJcbiAgICB9LFxyXG4gICAgZGF0YSgpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBpc0xnU2NyZWVuU2l6ZTogaXNMZ1NjcmVlblNpemUoKSxcclxuICAgICAgICBzaG93OiBmYWxzZSxcclxuICAgICAgICByZXNpemVIYW5kbGVyOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRkYXRhLmlzTGdTY3JlZW5TaXplID0gaXNMZ1NjcmVlblNpemUoKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgfSxcclxuICAgIG1vdW50ZWQoKSB7XHJcbiAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCB0aGlzLiRkYXRhLnJlc2l6ZUhhbmRsZXIpO1xyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBiZWZvcmVEZXN0cm95KCkge1xyXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCB0aGlzLiRkYXRhLnJlc2l6ZUhhbmRsZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuPC9zY3JpcHQ+XHJcbiIsIjx0ZW1wbGF0ZT5cclxuICA8ZGl2IDpjbGFzcz1cIlt3cmFwcGVyY2xhc3MsICdmb290ZXItY29sbGFwc2libGUnXVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXhsIHVwcGVyY2FzZSB0ZXh0LXdoaXRlIGZvb3Rlci1jb2xsYXBzaWJsZV9fdG9nZ2xlXCIgOmNsYXNzPVwiW2xhYmVsY2xhc3MsIHNob3cgPyAnZm9vdGVyLWNvbGxhcHNpYmxlX190b2dnbGUtLW9wZW4nIDogJyddXCIgQGNsaWNrPVwiaGFuZGxlQ2xpY2tcIj57eyBsYWJlbCB9fTwvc3Bhbj5cclxuICAgIDxkaXYgdi1zaG93PVwic2hvdyB8fCBpc0xnU2NyZWVuU2l6ZVwiIDpjbGFzcz1cIltzbG90d3JhcHBlcmNsYXNzXVwiPlxyXG4gICAgICA8c2xvdD5cclxuICAgICAgPC9zbG90PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgeyBpc0xnU2NyZWVuU2l6ZSB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBpc0xnU2NyZWVuU2l6ZTogaXNMZ1NjcmVlblNpemUoKSxcclxuICAgICAgc2hvdzogZmFsc2UsXHJcbiAgICAgIHJlc2l6ZUhhbmRsZXI6ICgpID0+IHtcclxuICAgICAgICB0aGlzLiRkYXRhLmlzTGdTY3JlZW5TaXplID0gaXNMZ1NjcmVlblNpemUoKTtcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgfSxcclxuICBwcm9wczoge1xyXG4gICAgaHJlZjoge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICB9LFxyXG4gICAgbGFiZWw6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIGxhYmVsY2xhc3M6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIHdyYXBwZXJjbGFzczoge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6IFwiXCIsXHJcbiAgICB9LFxyXG4gICAgc2xvdHdyYXBwZXJjbGFzczoge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6IFwiXCIsXHJcbiAgICB9XHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICBoYW5kbGVDbGljaygpIHtcclxuICAgICAgaWYgKHRoaXMuJHByb3BzLmhyZWYpIHtcclxuICAgICAgICB3aW5kb3cubG9jYXRpb24gPSB0aGlzLiRwcm9wcy5ocmVmO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLiRkYXRhLnNob3cgPSAhdGhpcy4kZGF0YS5zaG93O1xyXG4gICAgfVxyXG4gIH0sXHJcbiAgbW91bnRlZCgpIHtcclxuICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhpcy4kZGF0YS5yZXNpemVIYW5kbGVyKTtcclxuICAgIH0pO1xyXG4gIH0sXHJcbiAgYmVmb3JlRGVzdHJveSgpIHtcclxuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIHRoaXMuJGRhdGEucmVzaXplSGFuZGxlcik7XHJcbiAgfVxyXG59XHJcbjwvc2NyaXB0PlxyXG4iLCI8c2NyaXB0PlxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgbW91bnRlZCgpIHtcclxuICAgIGNvbnNvbGUubG9nKGBNb3VudGVkIGdlbmVyaWMgVnVlIGFwcCBpbiBgICwgdGhpcy4kZWwpO1xyXG4gIH1cclxufVxyXG48L3NjcmlwdD5cclxuIiwiaW1wb3J0IFZ1ZSBmcm9tIFwidnVlXCI7XHJcblxyXG5pbXBvcnQgeyBmb3JFYWNoTm9kZSB9IGZyb20gXCIuL3V0aWxzXCI7XHJcblxyXG4vLyBpbXBvcnQgUmVuZGVyZXIgZnJvbSBcIi4vY29tcG9uZW50cy9jYWxlbmRhci9SZW5kZXJlclwiO1xyXG4vLyBpbXBvcnQgRHVtbXlQcm92aWRlciBmcm9tIFwiLi9jb21wb25lbnRzL2NhbGVuZGFyL0R1bW15UHJvdmlkZXJcIjtcclxuLy8gaW1wb3J0IEdvb2dsZVByb3ZpZGVyIGZyb20gXCIuL2NvbXBvbmVudHMvY2FsZW5kYXIvR29vZ2xlUHJvdmlkZXJcIjtcclxuLy8gaW1wb3J0IFJlZ2lvbk1hcCBmcm9tIFwiLi9jb21wb25lbnRzL1JlZ2lvbk1hcFwiO1xyXG4vLyBpbXBvcnQgVmlld1Byb3ZpZGVyIGZyb20gXCIuL2NvbXBvbmVudHMvVmlld1Byb3ZpZGVyXCI7XHJcbmltcG9ydCBOYXZiYXIgZnJvbSBcIi4vY29tcG9uZW50cy9uYXZiYXIvTmF2YmFyXCI7XHJcbmltcG9ydCBGb290ZXJDb2xsYXBzaWJsZSBmcm9tIFwiLi9jb21wb25lbnRzL2Zvb3Rlci9Gb290ZXJDb2xsYXBzaWJsZVwiO1xyXG4vLyBpbXBvcnQgRmxpcENsb2NrIGZyb20gXCIuL2NvbXBvbmVudHMvRmxpcENsb2NrXCI7XHJcblxyXG5cclxuLy8gVnVlLmNvbXBvbmVudChcInVpLWNhbGVuZGFyLXJlbmRlcmVyXCIsIFJlbmRlcmVyKTtcclxuLy8gVnVlLmNvbXBvbmVudChcInVpLWNhbGVuZGFyLWR1bW15LXByb3ZpZGVyXCIsIER1bW15UHJvdmlkZXIpO1xyXG4vLyBWdWUuY29tcG9uZW50KFwidWktY2FsZW5kYXItZ29vZ2xlLXByb3ZpZGVyXCIsIEdvb2dsZVByb3ZpZGVyKTtcclxuLy8gVnVlLmNvbXBvbmVudChcInVpLXJlZ2lvbi1tYXBcIiwgUmVnaW9uTWFwKTtcclxuLy8gVnVlLmNvbXBvbmVudChcInVpLXZpZXctcHJvdmlkZXJcIiwgVmlld1Byb3ZpZGVyKTtcclxuVnVlLmNvbXBvbmVudChcInVpLW5hdmJhclwiLCBOYXZiYXIpO1xyXG5WdWUuY29tcG9uZW50KFwidWktZm9vdGVyLWNvbGxhcHNpYmxlXCIsIEZvb3RlckNvbGxhcHNpYmxlKTtcclxuLy8gVnVlLmNvbXBvbmVudChcInVpLWZsaXAtY2xvY2tcIiwgRmxpcENsb2NrKTtcclxuXHJcblxyXG5cclxuXHJcblxyXG5pbXBvcnQgVWlBcHAgZnJvbSBcIi4vY29tcG9uZW50cy9VaUFwcC52dWVcIjtcclxuXHJcblxyXG5jb25zdCBhcHBGYWN0b3J5ID0gKGVsLCBhdHRycykgPT4ge1xyXG4gIC8vIEJvb3RzdHJhcCBWdWUuanMuXHJcbiAgbmV3IFZ1ZSh7XHJcbiAgICBlbCxcclxuICAgIGNvbXBvbmVudHM6IHtcclxuICAgICAgVWlBcHBcclxuICAgIH1cclxuICB9KTtcclxufTtcclxuXHJcblxyXG5cclxuXHJcbi8qKlxyXG4gKiBCb290c3RyYXAgVnVlLmpzIGFwcGxpY2F0aW9uIGF0IGdpdmVuIEVsZW1lbnQgaW5zdGFuY2UuXHJcbiAqXHJcbiAqIEFwcCBwcm9wZXJ0aWVzIGFyZSBwYXNzZWQgdmlhIGRhdGEgYXR0cmlidXRlcywgbGlrZTpcclxuICpcclxuICogPGRpdiBjbGFzcz1cIl9fdnVlLXJvb3RcIiBkYXRhLW1lc3NhZ2U9XCJIZWxsb1wiIGRhdGEtYXBwPVwiU29tZUFwcFwiPjwvZGl2PlxyXG4gKlxyXG4gKiBAcGFyYW0ge0VsZW1lbnR9IGVsIERPTSBFbGVtZW50XHJcbiAqL1xyXG5mdW5jdGlvbiByZW5kZXJWdWVBcHBFbGVtZW50KGVsKSB7XHJcbiAgY29uc3QgYXR0cnMgPSBPYmplY3QuYXNzaWduKHt9LCBlbC5kYXRhc2V0KTtcclxuICByZXR1cm4gYXBwRmFjdG9yeShlbCwgYXR0cnMpO1xyXG59XHJcblxyXG5cclxuZnVuY3Rpb24gaW5pdChldmVudCkge1xyXG4gIC8vIEluaXRpYWxpemUgVnVlLmpzIGFwcHMuXHJcbiAgZm9yRWFjaE5vZGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLl9fanMtcm9vdCcpLCByZW5kZXJWdWVBcHBFbGVtZW50KTtcclxuICBcclxufVxyXG5cclxuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGluaXQpO1xyXG5cclxudmFyIGFuY2hvclByZWhyYXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJlaHJhdC12aWRlbycpO1xyXG5cclxuaWYoYW5jaG9yUHJlaHJhdCAhPT0gbnVsbCkge1xyXG4gYW5jaG9yUHJlaHJhdC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpe1xyXG4gICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgIHZhciBvcmlnaW5hbGhlaWdodD10aGlzLm9mZnNldEhlaWdodDtcclxuICAgLy8gY29uc29sZS5sb2codGhpcy5wYXJlbnROb2RlKTtcclxuICAgLy8gdGhpcy5jaGlsZHJlblswXS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAvLyB0aGlzLmNoaWxkcmVuWzFdLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xyXG4gICB0aGlzLnBhcmVudE5vZGUuY2xhc3NMaXN0LmFkZChcInRoYV92aWRlb2NvbnRfYWN0aXZhdGVkXCIpO1xyXG4gICB0aGlzLm91dGVySFRNTD1gXHJcbiAgICAgICAgICA8aWZyYW1lIHN0eWxlPVwid2lkdGg6MTAwJTsgaGVpZ2h0OmAgKyBvcmlnaW5hbGhlaWdodCArIGBweDtcIiBzcmM9XCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9oaHMtY1dXcktvWT9hdXRvcGxheT0xXCIgZnJhbWVib3JkZXI9XCIwXCIgYWxsb3c9XCJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlXCIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPlxyXG4gICAgICAgICAgYDtcclxuIH0pO1xyXG59XHJcblxyXG4vL3VuY29tbWVudCBmb3IgY29sbGFwc2libGUgY2hhcHRlciBsaXN0IGluc3RlYWQgb2YgbGluayB0byBzZXBhcmF0ZSBwYWdlXHJcblxyXG4vLyB2YXIgYW5jaG9yU2hvd0Z1bGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2hvd2Z1bGx0YWJsZScpO1xyXG5cclxuLy8gaWYoYW5jaG9yU2hvd0Z1bGwgIT09IG51bGwpIHtcclxuIC8vIGFuY2hvclNob3dGdWxsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSl7XHJcbiAgLy8gZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIC8vIHZhciBjaGFwdGVydGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNoYXB0ZXJ0YWJsZVwiKTtcclxuICAvLyBjaGFwdGVydGFibGUuY2xhc3NMaXN0LnJlbW92ZShcImNhbmRpZGF0ZS10YWJsZS0tZmFkZW91dFwiKTtcclxuICAvLyB2YXIgc2Vjb25kY2hhcHRlcmxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNlY29uZGNoYXB0ZXJsaXN0XCIpO1xyXG4gIC8vIHNlY29uZGNoYXB0ZXJsaXN0LmNsYXNzTGlzdC5yZW1vdmUoXCJoaWRkZW5cIik7XHJcbiAgLy8gdGhpcy5yZW1vdmUoKTtcclxuIC8vIH0pO1xyXG4vLyB9XHJcblxyXG5cclxuXHJcblxyXG5mdW5jdGlvbiBmb3JjZURvd25sb2FkKGhyZWYpIHtcclxuXHR2YXIgYW5jaG9yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG5cdGFuY2hvci5ocmVmID0gaHJlZjtcclxuXHRhbmNob3IuZG93bmxvYWQgPSBocmVmO1xyXG5cdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYW5jaG9yKTtcclxuXHRhbmNob3IuY2xpY2soKTtcclxufVxyXG5mdW5jdGlvbiBjaGFuZ2VfZG93bmxvYWRfSFRNTChlbGVtZW50LGhlYWRpbmcpe1xyXG4gIHZhciBkb3dubG9hZGhlYWRpbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImRvd25sb2FkaGVhZGluZ1wiKTtcclxuICBkb3dubG9hZGhlYWRpbmcuaW5uZXJIVE1MPWhlYWRpbmc7XHJcbiAgZWxlbWVudC5vdXRlckhUTUw9YFxyXG4gICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHBiLTIgbWQ6cGItMCBtYi0yOFwiPlxyXG4gICAgIDxhIGNsYXNzPVwiZGxocmVmIG1kOm14LTRcIiBocmVmPVwiL2Rvd25sb2Fkcy9FYm9va19jZXNrb19pbnNwaXJhdGl2bmkucGRmXCI+PGJ1dHRvbiBjbGFzcz1cInctODAgdGV4dC1sZyBidG4gYnRuLS1ob3ZlcmFjdGl2ZSBidG4tLXRvLWdyZXktNzAwIGlubGluZS1ibG9jayBhbGlnbi10b3AgbWItM1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYnRuX19ib2R5IHB5LTEwIGgtMTJcIj5TdMOhaG5vdXQgZWJvb2s8L2Rpdj5cclxuICAgICA8L2J1dHRvbj48L2E+PCEtLVxyXG4gICAgIC0tPjxhIGNsYXNzPVwiZGxocmVmIG1kOm14LTRcIiBocmVmPVwiL2Rvd25sb2Fkcy9FYm9va19jZXNrb19pbnNwaXJhdGl2bmkuZXB1YlwiPjxidXR0b24gY2xhc3M9XCJ3LTgwIGJ0biB0ZXh0LWxnIGJ0biBidG4tLWN5YW4tMjAwIGJ0bi0taG92ZXJhY3RpdmUgaW5saW5lLWJsb2NrIGFsaWduLXRvcCBtYi0zXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJidG5fX2JvZHkgcHktMTAgaC0xMlwiPlN0w6Fobm91dCBlYm9vayBwcm8gxI10ZcSNa3k8L2Rpdj5cclxuICAgICA8L2J1dHRvbj48L2E+XHJcbiAgICA8L2Rpdj5cclxuICBgO1xyXG4gIHZhciBocmVmcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJkbGhyZWZcIik7XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBocmVmcy5sZW5ndGg7IGkrKykge1xyXG4gICBocmVmcy5pdGVtKGkpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSl7XHJcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmhyZWYpO1xyXG4gICAgZm9yY2VEb3dubG9hZCh0aGlzLmhyZWYpO1xyXG4gICAgc2V0VGltZW91dChmdW5jdGlvbigpe1xyXG4gICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gXCJ0aGFua3lvdS5odG1sXCI7XHJcbiAgICB9LCAxMDAwKTtcclxuICAgfSk7XHJcbiAgfSAgXHJcbn1cclxuXHJcbnZhciBzYXZlbWFpbGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2F2ZW1haWxmb3JtJyk7XHJcblxyXG5pZihzYXZlbWFpbGZvcm0gIT09IG51bGwpIHtcclxuIHNhdmVtYWlsZm9ybS5hZGRFdmVudExpc3RlbmVyKCdzdWJtaXQnLCBmdW5jdGlvbihlKXtcclxuICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgY2hhbmdlX2Rvd25sb2FkX0hUTUwodGhpcyxcIkVtYWlsIHVsb8W+ZW4sPGJyPkTEm2t1amVtZVwiKTtcclxuIH0pO1xyXG59XHJcblxyXG4vL29wdCB0byBkb3dubG9hZCB3aXRob3V0IGdpdmluZyBlLW1haWxcclxudmFyIE5vTWFpbExpbmsgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm9tYWlsJyk7XHJcblxyXG5pZihOb01haWxMaW5rICE9PSBudWxsKSB7XHJcbiBOb01haWxMaW5rLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSl7XHJcbiAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIGNoYW5nZV9kb3dubG9hZF9IVE1MKHNhdmVtYWlsZm9ybSxcIlDFmcOtamVtbsOpPGJyPsSNdGVuw60hXCIpO1xyXG4gfSk7XHJcbn0iXSwibmFtZXMiOlsiVnVlIiwiTmF2YmFyIiwiRm9vdGVyQ29sbGFwc2libGUiLCJVaUFwcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztFQUFBLFdBQWMsR0FBRztFQUNqQixFQUFFLElBQUksRUFBRSxPQUFPO0VBQ2YsRUFBRSxJQUFJLEVBQUUsT0FBTztFQUNmLEVB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 diff --git a/czech_inspirational/templates/czech_inspirational/czech_inspirational_download_page.html b/czech_inspirational/templates/czech_inspirational/czech_inspirational_download_page.html index fcda4b619be3e3662fa250f5b8ba5c271f10a6f8..68cfb3ccd59cb38368a95f1df294eaa62289ad6a 100644 --- a/czech_inspirational/templates/czech_inspirational/czech_inspirational_download_page.html +++ b/czech_inspirational/templates/czech_inspirational/czech_inspirational_download_page.html @@ -4,31 +4,56 @@ {% block content %} <div class="container container--default"> - <h2 id="downloadheading" class="mt-40 mx-auto mb-8 --leading-4 head-alt-md lg:head-alt-lg max-w-xl text-center">Zadejte svůj e-mail a stáhněte si ebook</h2> - <form id="savemailform" class="text-center block"> - <div class="inline-block text-left align-top"> - <input type="email" name="email" class="text-input form-field__control w-full" value="" placeholder="Váš Email" required=""> - <div class="checkbox form-field__control display-block mt-2 mb-8 md:mb-0"> - <input type="checkbox" id="checkbox_1" required=""> - <label for="checkbox_1">Souhlasím se zásadami ochrany osobních údajů</label> + {% if show == "download" %} + + <h2 id="downloadheading" class="mt-40 mx-auto mb-8 --leading-4 head-alt-md lg:head-alt-lg max-w-xl text-center">Příjemné<br>čtení!</h2> + + <div class="text-center pb-2 md:pb-0 mb-28"> + <a class="dlhref md:mx-4" href="{{ page.book_file.url }}"> + <button class="w-80 text-lg btn btn--hoveractive btn--to-grey-700 inline-block align-top mb-3"> + <div class="btn__body py-10 h-12">Stáhnout ebook</div> + </button> + </a> </div> - <div class="checkbox form-field__control display-block mt-2 mb-8 md:mb-0"> - <input type="checkbox" id="checkbox_2"> - <label for="checkbox_2">Souhlasím se zasíláním novinek od Pirátské strany</label> + + {% elif show == "thanks" %} + + <h2 id="downloadheading" class="mt-40 mx-auto mb-46 --leading-4 head-alt-md lg:head-alt-lg max-w-xl text-center">Kniha se stahuje,<br>děkujeme</h2> + <div class="mt-64 pt-8 sm:pt-0 sm:mt-48 text-center"> + <a href="/" class="head-heavy-2xs underline text-cyan-200 whitespace-nowrap"><span class="head-heavy-2xs">Zpět na Homepage</span></a> </div> - </div> - <button class="mt-0 btn text-lg btn btn--cyan-200 btn--hoveractive border-cyan-200 inline-block align-top" disabled="disabled"> - <div class="btn__body py-0 h-12">Potvrdit</div> - </button> - <div class="mt-12 pt-1 text-center"> - <a id="nomail" href="{{ page.book_file.url }}" class="head-heavy-2xs underline text-cyan-200 whitespace-nowrap"> - <span href="#" class="social-icon social-icon--fill social-icon--4 bg-cyan-200 text-white mr-2"> - <i class="ico--download3 text-sm"></i> - </span> - <span class="head-heavy-2xs">Chci stáhnout ebook bez zadání emailu</span> - </a> - </div> - </form> + + {% else %} + + <h2 id="downloadheading" class="mt-40 mx-auto mb-8 --leading-4 head-alt-md lg:head-alt-lg max-w-xl text-center">Zadejte svůj e-mail a stáhněte si ebook</h2> + <form class="text-center block" method="post"> + {% csrf_token %} + <div class="inline-block text-left align-top"> + <input type="email" name="email" class="text-input form-field__control w-full" value="" placeholder="Váš Email" required="required"> + <div class="checkbox form-field__control display-block mt-2 mb-8 md:mb-0"> + <input type="checkbox" id="checkbox_1" required="required" name="accept_terms"> + <label for="checkbox_1">Souhlasím se zásadami ochrany osobních údajů</label> + </div> + <div class="checkbox form-field__control display-block mt-2 mb-8 md:mb-0"> + <input type="checkbox" id="checkbox_2" name="subscribe"> + <label for="checkbox_2">Souhlasím se zasíláním novinek od Pirátské strany</label> + </div> + </div> + <button class="mt-0 btn text-lg btn btn--cyan-200 btn--hoveractive border-cyan-200 inline-block align-top"> + <div class="btn__body py-0 h-12">Potvrdit</div> + </button> + <div class="mt-12 pt-1 text-center"> + <a href="?stahnout" class="head-heavy-2xs underline text-cyan-200 whitespace-nowrap"> + <span href="#" class="social-icon social-icon--fill social-icon--4 bg-cyan-200 text-white mr-2"> + <i class="ico--download3 text-sm"></i> + </span> + <span class="head-heavy-2xs">Chci stáhnout ebook bez zadání emailu</span> + </a> + </div> + </form> + + {% endif %} + </div> <div class="text-center mb-20"> diff --git a/majak/settings/base.py b/majak/settings/base.py index 262f55fa7b181df65e7df7c75e84289cce91ef50..aff01a4c6e05a7ffb4b1a2c218c3eb61fe795c60 100644 --- a/majak/settings/base.py +++ b/majak/settings/base.py @@ -249,3 +249,9 @@ DONATE_PORTAL_REDIRECT_SOURCE = env.str( DONATE_PORTAL_API_URL = env.str("DONATE_PORTAL_API_URL", default="") DONATE_PORTAL_API_TIMEOUT = 5 DONATE_PORTAL_API_CACHE_TIMEOUT = 60 * 5 + +CZECH_INSPIRATIONAL_NEWSLETTER_ID = env.int( + "CZECH_INSPIRATIONAL_NEWSLETTER_ID", default=0 +) +NALODENI_API_NEWS_SUBSCRIBE_URL = env.str("NALODENI_API_NEWS_SUBSCRIBE_URL", default="") +NALODENI_API_CREDENTIALS = env.str("NALODENI_API_CREDENTIALS", default="")