button force anoncecall

This commit is contained in:
javad committed 2026-09-28 20:35:27 +03:30
1 parent c7993aae44
commit 9af91941d9
15 files changed
+294 -23

No files matched your search

+24
View File
@@ -17,6 +17,30 @@ def schedule_announcement(message):
},
)[0]
def schedule_immediate_announcement(ticket, requested_by):
"""Queue an urgent call, coalescing repeated clicks for one minute."""
from django.db import transaction
from apps.tickets.models import Ticket
with transaction.atomic():
Ticket.objects.select_for_update().get(pk=ticket.pk)
now = timezone.now()
recent = AnnouncementJob.objects.filter(
ticket=ticket,
source=AnnouncementJob.Source.MANUAL,
created_at__gte=now - timedelta(minutes=1),
).order_by("-created_at").first()
if recent:
return recent, False
return AnnouncementJob.objects.create(
source=AnnouncementJob.Source.MANUAL,
ticket=ticket,
requested_by=requested_by,
next_attempt_at=now,
idempotency_key=f"manual-ticket-{uuid4().hex}",
), True
def enqueue_unit_supervisor_ticket_sms(ticket):
"""Queue one concise new-ticket SMS for each configured unit supervisor."""
unit = ticket.owning_unit