sms
This commit is contained in:
1 parent
250cdbab7f
commit
5c6069c3ef
87 files changed
+29209
-3697
No files matched your search
@@ -0,0 +1,59 @@
|
||||
"""پیامهای نتیجهٔ عملیات پنل پیامک.
|
||||
|
||||
جایگزین flash message جنگو است: پیامهای جنگو در session ذخیره میشوند و اگر
|
||||
قالب مقصد آنها را رندر نکند، تا صفحهٔ بعدِ دارای بلوک پیام «سرگردان» میمانند و
|
||||
بیربط به عملیات ظاهر میشوند. اینجا پیام با یک کد در querystring
|
||||
(``?notice=<code>``) رد و بدل میشود؛ چون کد فقط روی همان URL وجود دارد، پیام هم
|
||||
فقط همانجا دیده میشود و هیچجا سرگردان نمیماند.
|
||||
|
||||
مقدار ``{placeholder}`` در متن از پارامترهای querystring پر میشود
|
||||
(نبودِ پارامتر ⇒ رشتهٔ خالی).
|
||||
"""
|
||||
from collections import defaultdict
|
||||
|
||||
# کد → (شدت، متن). شدت به کلاس Bulma نگاشت میشود.
|
||||
NOTICES = {
|
||||
# --- تنظیمات و ارسال آزمایشی ---
|
||||
"test_sent": ("success", "پیامک آزمایشی در صف ارسال قرار گرفت."),
|
||||
"settings_saved": ("success", "تنظیمات سامانه پیامک ذخیره شد."),
|
||||
# --- قالبها ---
|
||||
"tpl_saved": ("success", "قالب «{title}» ذخیره شد."),
|
||||
"tpl_bad_timing": ("error", "مقدار زمانبندی باید یک عدد صحیح باشد."),
|
||||
# --- مشتری ---
|
||||
"customer_sms_saved": ("success", "تنظیم پیامک مشتری بهروزرسانی شد."),
|
||||
"primary_updated": ("success", "شمارهٔ اصلی پیامک بهروزرسانی شد."),
|
||||
"primary_not_found": ("error", "شماره موردنظر برای این مشتری یافت نشد."),
|
||||
"custom_queued": ("success", "پیامک سفارشی در صف ارسال قرار گرفت."),
|
||||
"custom_empty": ("error", "متن پیامک خالی است."),
|
||||
"custom_no_phone": ("error", "شماره اصلی معتبری برای این مشتری یافت نشد."),
|
||||
# --- صف ---
|
||||
"approved": ("success", "پیامک تأیید شد و برای ارسال در صف قرار گرفت."),
|
||||
"not_pending": ("warning", "این پیامک در وضعیت «در انتظار تأیید» نیست."),
|
||||
"deleted": ("success", "پیامک از صف حذف شد."),
|
||||
"bulk_approved_all": ("success", "{count} پیامک تأیید شد و برای ارسال در صف قرار گرفت."),
|
||||
"bulk_approved": ("success", "{count} پیامک تأیید شد."),
|
||||
"bulk_deleted": ("success", "{count} پیامک از صف حذف شد."),
|
||||
"invalid_action": ("error", "اقدام نامعتبر است."),
|
||||
"queue_emptied": ("success", "کل صف خالی شد ({count} پیامک حذف شد)."),
|
||||
"retried": ("success", "پیامک برای ارسال مجدد تأیید شد."),
|
||||
}
|
||||
|
||||
_KIND_CLASSES = {
|
||||
"success": "is-success",
|
||||
"error": "is-danger",
|
||||
"warning": "is-warning",
|
||||
"info": "is-info",
|
||||
}
|
||||
|
||||
|
||||
def resolve(request):
|
||||
"""کد ``?notice=`` را به متن/کلاس قابل رندر در قالب تبدیل میکند."""
|
||||
get = getattr(request, "GET", None) or {}
|
||||
entry = NOTICES.get((get.get("notice") or "").strip())
|
||||
if not entry:
|
||||
return {}
|
||||
kind, text = entry
|
||||
return {
|
||||
"notice_text": text.format_map(defaultdict(str, get)),
|
||||
"notice_kind": _KIND_CLASSES.get(kind, "is-info"),
|
||||
}
|
||||
Reference in new issue
Block a user