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

czech inspirational: Newsletter subscribe refactoring

parent 2d7f1805
No related branches found
No related tags found
2 merge requests!263release,!262Volby
This commit is part of merge request !263. Comments created here will be created in the context of that merge request.
import json
import logging
import requests
from django.conf import settings from django.conf import settings
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.core.validators import validate_email from django.core.validators import validate_email
...@@ -20,11 +16,10 @@ from wagtail.images.edit_handlers import ImageChooserPanel ...@@ -20,11 +16,10 @@ from wagtail.images.edit_handlers import ImageChooserPanel
from wagtailmetadata.models import MetadataPageMixin from wagtailmetadata.models import MetadataPageMixin
from shared.models import SubpageMixin from shared.models import SubpageMixin
from shared.utils import subscribe_to_newsletter
from tuning import help from tuning import help
from uniweb.constants import RICH_TEXT_FEATURES from uniweb.constants import RICH_TEXT_FEATURES
logger = logging.getLogger()
class CzechInspirationalHomePage(Page, MetadataPageMixin): class CzechInspirationalHomePage(Page, MetadataPageMixin):
### FIELDS ### FIELDS
...@@ -285,19 +280,10 @@ class CzechInspirationalDownloadPage(Page, SubpageMixin, MetadataPageMixin): ...@@ -285,19 +280,10 @@ class CzechInspirationalDownloadPage(Page, SubpageMixin, MetadataPageMixin):
except ValidationError: except ValidationError:
pass pass
else: else:
payload = { subscribe_to_newsletter(
"email": email, email,
"news_id": settings.CZECH_INSPIRATIONAL_NEWSLETTER_ID, settings.CZECH_INSPIRATIONAL_NEWSLETTER_ID,
} settings.CZECH_INSPIRATIONAL_NEWSLETTER_SOURCE,
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 return context
...@@ -254,7 +254,15 @@ DONATE_PORTAL_API_CACHE_TIMEOUT = 60 * 5 ...@@ -254,7 +254,15 @@ DONATE_PORTAL_API_CACHE_TIMEOUT = 60 * 5
CZECH_INSPIRATIONAL_NEWSLETTER_ID = env.int( CZECH_INSPIRATIONAL_NEWSLETTER_ID = env.int(
"CZECH_INSPIRATIONAL_NEWSLETTER_ID", default=0 "CZECH_INSPIRATIONAL_NEWSLETTER_ID", default=0
) )
CZECH_INSPIRATIONAL_NEWSLETTER_SOURCE = env.str(
"CZECH_INSPIRATIONAL_NEWSLETTER_SOURCE", default="Česko inspirativní"
)
NALODENI_API_NEWS_SUBSCRIBE_URL = env.str("NALODENI_API_NEWS_SUBSCRIBE_URL", default="") NALODENI_API_NEWS_SUBSCRIBE_URL = env.str("NALODENI_API_NEWS_SUBSCRIBE_URL", default="")
NALODENI_API_CREDENTIALS = env.str("NALODENI_API_CREDENTIALS", default="") NALODENI_API_CREDENTIALS = env.str("NALODENI_API_CREDENTIALS", default="")
ELECTIONS2021_COOKIE_NAME = "program" ELECTIONS2021_COOKIE_NAME = "program"
ELECTIONS2021_NEWSLETTER_ID = env.int("ELECTIONS2021_NEWSLETTER_ID", default=0)
ELECTIONS2021_NEWSLETTER_SOURCE = env.str(
"ELECTIONS2021_NEWSLETTER_SOURCE", "Koalice 2021"
)
import json
import logging
import requests
from django.conf import settings
from wagtail.core.models import Page from wagtail.core.models import Page
logger = logging.getLogger()
def get_subpage_url(page, dest_page_type): def get_subpage_url(page, dest_page_type):
try: try:
return page.get_descendants().type(dest_page_type).live().first().get_url() return page.get_descendants().type(dest_page_type).live().first().get_url()
except (Page.DoesNotExist, AttributeError): except (Page.DoesNotExist, AttributeError):
return "#" return "#"
def subscribe_to_newsletter(email, news_id, source):
payload = {
"email": email,
"news_id": news_id,
"source": source,
}
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={"payload": payload, "response": response.text},
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment