Compact interfaces and edit more things inline
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import re
|
||||
|
||||
from asgiref.sync import async_to_sync
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
from django.db import transaction
|
||||
@@ -12,6 +14,7 @@ from core.models import Message, QueuedMessage
|
||||
from core.util import logs
|
||||
|
||||
log = logs.get_logger("queue")
|
||||
_INLINE_TARGET_RE = re.compile(r"^#queue-inline-editor-[A-Za-z0-9_-]+$")
|
||||
|
||||
|
||||
class AcceptMessageAPI(LoginRequiredMixin, APIView):
|
||||
@@ -92,9 +95,22 @@ class QueueCreate(LoginRequiredMixin, ObjectCreate):
|
||||
class QueueUpdate(LoginRequiredMixin, ObjectUpdate):
|
||||
model = QueuedMessage
|
||||
form_class = QueueForm
|
||||
window_content = "mixins/window-content/queue-form-inline.html"
|
||||
|
||||
submit_url_name = "queue_update"
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
raw_target = str(self.request.GET.get("hx_target") or "").strip()
|
||||
if _INLINE_TARGET_RE.fullmatch(raw_target):
|
||||
context["submit_target"] = raw_target
|
||||
else:
|
||||
context["submit_target"] = "#modals-here"
|
||||
context["is_inline_edit"] = context["submit_target"].startswith(
|
||||
"#queue-inline-editor-"
|
||||
)
|
||||
return context
|
||||
|
||||
|
||||
class QueueDelete(LoginRequiredMixin, ObjectDelete):
|
||||
model = QueuedMessage
|
||||
|
||||
Reference in New Issue
Block a user