improve entezar bazdid
This commit is contained in:
1 parent
1fd27d0445
commit
2aee85593f
18 files changed
+10271
-7558
No files matched your search
@@ -597,6 +597,10 @@ def sms_queue_delete(request, q_id):
|
||||
if request.method == "POST":
|
||||
if item.status in DONE_STATUSES:
|
||||
return _notice(reverse("admin_panel:sms_queue"), "delete_done_blocked")
|
||||
# تصمیم محصولی: حذف توسط مدیر = «کنسل همین دوره». برای همین کلید یکتاسازی
|
||||
# پیش از حذف در دفتر ثبت میشود؛ وگرنه اسکنر در اجرای بعدی همان پیامک را
|
||||
# دوباره میساخت.
|
||||
_remember_keys([item])
|
||||
item.delete()
|
||||
return _notice(reverse("admin_panel:sms_queue"), "deleted")
|
||||
return redirect("admin_panel:sms_queue")
|
||||
@@ -621,6 +625,7 @@ def sms_queue_bulk(request):
|
||||
# تاریخچهٔ ارسالشدهها از طریق صف حذف نمیشود.
|
||||
selected = selected.exclude(status__in=DONE_STATUSES)
|
||||
count = selected.count()
|
||||
_remember_keys(selected)
|
||||
selected.delete()
|
||||
code, extra = "bulk_deleted", {"count": count}
|
||||
else:
|
||||
@@ -629,6 +634,19 @@ def sms_queue_bulk(request):
|
||||
return redirect("admin_panel:sms_queue")
|
||||
|
||||
|
||||
def _remember_keys(rows):
|
||||
"""کلیدهای یکتاسازیِ رکوردهای صف را پیش از حذف در دفتر ``SMSDedup`` ثبت میکند.
|
||||
|
||||
قرارداد: وقتی مدیر یادآوری را حذف میکند، یعنی «همین دوره کنسل شد»؛ وگرنه
|
||||
اسکنر در اجرای بعدی همان پیامک را از نو میسازد و حذفِ مدیر بیاثر میشود.
|
||||
"""
|
||||
keys = [k for k in (row.dedup_key for row in rows) if k]
|
||||
if keys:
|
||||
SMSDedup.objects.bulk_create(
|
||||
[SMSDedup(key=key) for key in keys], ignore_conflicts=True,
|
||||
)
|
||||
|
||||
|
||||
@login_required(login_url='/panel/p_login/')
|
||||
@_manage_required
|
||||
def sms_queue_empty(request):
|
||||
@@ -640,10 +658,7 @@ def sms_queue_empty(request):
|
||||
"""
|
||||
if request.method == "POST":
|
||||
rows = SMSQueue.objects.exclude(status__in=DONE_STATUSES)
|
||||
keys = [k for k in rows.values_list("dedup_key", flat=True) if k]
|
||||
SMSDedup.objects.bulk_create(
|
||||
[SMSDedup(key=k) for k in keys], ignore_conflicts=True,
|
||||
)
|
||||
_remember_keys(rows)
|
||||
count = rows.count()
|
||||
rows.delete()
|
||||
return _notice(reverse("admin_panel:sms_queue"), "queue_emptied", count=count)
|
||||
|
||||
Reference in new issue
Block a user