From 483b9f3ba0d756c08c5bfee08d0099022afbe1ae Mon Sep 17 00:00:00 2001 From: Konstantin Date: Mon, 7 Oct 2024 09:26:43 +0200 Subject: [PATCH] feat: add newsletter with mailjet --- Makefile | 2 +- blog/templates/blog/blog_page.html | 3 +++ home/templates/home/home_page.html | 3 +++ iamkonstantin_web/settings/base.py | 1 + iamkonstantin_web/urls.py | 4 +++- newsletter/__init__.py | 0 newsletter/admin.py | 3 +++ newsletter/apps.py | 6 ++++++ newsletter/migrations/__init__.py | 0 newsletter/models.py | 3 +++ .../newsletter/snippets/signup_form.html | 4 ++++ newsletter/templates/newsletter/thanks.html | 15 +++++++++++++++ newsletter/tests.py | 3 +++ newsletter/views.py | 8 ++++++++ 14 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 newsletter/__init__.py create mode 100644 newsletter/admin.py create mode 100644 newsletter/apps.py create mode 100644 newsletter/migrations/__init__.py create mode 100644 newsletter/models.py create mode 100644 newsletter/templates/newsletter/snippets/signup_form.html create mode 100644 newsletter/templates/newsletter/thanks.html create mode 100644 newsletter/tests.py create mode 100644 newsletter/views.py diff --git a/Makefile b/Makefile index e2885df..98e61cc 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ .PHONY: help build publish -VERSION = 1.2.2 +VERSION = 1.2.3 help: @perl -nle'print $& if m{^[a-zA-Z_-]+:.*?## .*$$}' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' diff --git a/blog/templates/blog/blog_page.html b/blog/templates/blog/blog_page.html index 5e85027..c790824 100644 --- a/blog/templates/blog/blog_page.html +++ b/blog/templates/blog/blog_page.html @@ -80,4 +80,7 @@ +
+ {% include 'newsletter/snippets/signup_form.html' %} +
{% endblock %} \ No newline at end of file diff --git a/home/templates/home/home_page.html b/home/templates/home/home_page.html index e54aff8..5aa2390 100644 --- a/home/templates/home/home_page.html +++ b/home/templates/home/home_page.html @@ -781,4 +781,7 @@ +
+ {% include 'newsletter/snippets/signup_form.html' %} +
{% endblock content %} \ No newline at end of file diff --git a/iamkonstantin_web/settings/base.py b/iamkonstantin_web/settings/base.py index be1a823..44ac0f7 100644 --- a/iamkonstantin_web/settings/base.py +++ b/iamkonstantin_web/settings/base.py @@ -29,6 +29,7 @@ INSTALLED_APPS = [ "blog", "home", "search", + "newsletter", "wagtailcodeblock", "wagtailseo", "wagtail.contrib.settings", diff --git a/iamkonstantin_web/urls.py b/iamkonstantin_web/urls.py index 1a7982a..d53a50e 100644 --- a/iamkonstantin_web/urls.py +++ b/iamkonstantin_web/urls.py @@ -8,6 +8,7 @@ from wagtail import urls as wagtail_urls from wagtail.documents import urls as wagtaildocs_urls from blog.feeds import RssBlogFeed +from newsletter import views as newsletter_views from search import views as search_views from wagtail.contrib.sitemaps.views import sitemap from base.views import KeyView @@ -20,7 +21,8 @@ urlpatterns = [ path("blog/feed/", RssBlogFeed(), name="blog_feed"), path('sitemap.xml', sitemap), path('robots.txt', TemplateView.as_view(template_name="robots.txt", content_type="text/plain")), - path('.txt', KeyView.as_view()) + path('.txt', KeyView.as_view()), + path('newsletter/thanks', newsletter_views.thanks, name='thanks') ] if settings.DEBUG: diff --git a/newsletter/__init__.py b/newsletter/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/newsletter/admin.py b/newsletter/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/newsletter/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/newsletter/apps.py b/newsletter/apps.py new file mode 100644 index 0000000..76e54c1 --- /dev/null +++ b/newsletter/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class NewsletterConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'newsletter' diff --git a/newsletter/migrations/__init__.py b/newsletter/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/newsletter/models.py b/newsletter/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/newsletter/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/newsletter/templates/newsletter/snippets/signup_form.html b/newsletter/templates/newsletter/snippets/signup_form.html new file mode 100644 index 0000000..500fc82 --- /dev/null +++ b/newsletter/templates/newsletter/snippets/signup_form.html @@ -0,0 +1,4 @@ +
+ + +
\ No newline at end of file diff --git a/newsletter/templates/newsletter/thanks.html b/newsletter/templates/newsletter/thanks.html new file mode 100644 index 0000000..cf6b061 --- /dev/null +++ b/newsletter/templates/newsletter/thanks.html @@ -0,0 +1,15 @@ +{% extends "base.html" %} +{% load static wagtailcore_tags %} + +{% block title %}Newsletter{% endblock %} + +{% block content %} +
+
+
+

Thank you

+ Your newsletter subscription is confirmed. +
+
+
+{% endblock %} \ No newline at end of file diff --git a/newsletter/tests.py b/newsletter/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/newsletter/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/newsletter/views.py b/newsletter/views.py new file mode 100644 index 0000000..d15538c --- /dev/null +++ b/newsletter/views.py @@ -0,0 +1,8 @@ +from django.template.response import TemplateResponse + + +def thanks(request): + return TemplateResponse( + request, + "newsletter/thanks.html", + )