41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
from __future__ import annotations
|
|
|
|
from django.contrib.messages.constants import ( # noqa: F401
|
|
DEBUG,
|
|
DEFAULT_TAGS,
|
|
ERROR,
|
|
INFO,
|
|
SUCCESS,
|
|
WARNING,
|
|
)
|
|
from django.http import HttpRequest, HttpResponse
|
|
from django_htmx.http import trigger_client_event
|
|
|
|
|
|
def add_htmx_message(*,
|
|
request: HttpRequest,
|
|
response: HttpResponse,
|
|
level: str,
|
|
message: str,
|
|
extra_tags: str = '',
|
|
fail_silently: bool = False,
|
|
):
|
|
if not request.htmx:
|
|
if fail_silently is False:
|
|
raise RuntimeError(
|
|
"This doesn't look like an HTMX request: request=`%s`",
|
|
request,
|
|
)
|
|
else:
|
|
trigger_client_event(
|
|
response,
|
|
'HotPocket:UI:Messages:addMessage',
|
|
{
|
|
'level': DEFAULT_TAGS.get(level, DEFAULT_TAGS[INFO]),
|
|
'message': message,
|
|
'extra_tags': extra_tags,
|
|
},
|
|
after='swap',
|
|
)
|