Select Git revision
-
Alexa Valentová authoredAlexa Valentová authored
utils.py 2.26 KiB
import json
import logging
import bleach
import requests
from django.conf import settings
from django.utils.translation import gettext_lazy
from wagtail.admin.edit_handlers import (
CommentPanel,
FieldPanel,
HelpPanel,
MultiFieldPanel,
)
from wagtail.core.models import Page
from wagtail.images.edit_handlers import FieldPanel
from tuning import admin_help
logger = logging.getLogger()
def get_subpage_url(page, dest_page_type):
try:
return page.get_descendants().type(dest_page_type).live().first().get_url()
except (Page.DoesNotExist, AttributeError):
return "#"
def make_promote_panels(
help_content=None, *, seo_title=True, search_description=True, search_image=True
):
if help_content is None:
help_content = admin_help.build(
admin_help.NO_SEO_TITLE, admin_help.NO_SEARCH_IMAGE
)
panels = [FieldPanel("slug")]
if seo_title:
panels.append(FieldPanel("seo_title"))
if search_description:
panels.append(FieldPanel("search_description"))
if search_image:
panels.append(FieldPanel("search_image"))
panels.append(HelpPanel(help_content))
panels.append(CommentPanel())
return [MultiFieldPanel(panels, gettext_lazy("Common page configuration"))]
def subscribe_to_newsletter(email, news_id, source):
payload = {
"email": email,
"news_id": news_id,
"source": source,
"verify_email": 1,
}
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},
)
def strip_all_html_tags(value: str):
"""Drop all HTML tags from given value.
:param value: string to sanitize
"""
return bleach.clean(value, tags=[], attributes=[], strip=True, strip_comments=True)
def trim_to_length(value: str, max_length: int = 150):
"""Trim value to max length shall it exceed it.
:param value: input string
:param max_length: max allowed length
"""
if len(value) > max_length:
return value[:max_length] + "..."
return value