fix mandehesab, bazdid, sms
This commit is contained in:
1 parent
7e5c83bea2
commit
1fd27d0445
22 files changed
+16462
-5918
No files matched your search
@@ -3,11 +3,21 @@ from persiantools.jdatetime import JalaliDate, JalaliDateTime
|
||||
|
||||
|
||||
class _SafeDict(dict):
|
||||
"""دیکشنری که برای کلیدهای ناشناخته رشته خالی برمیگرداند (بدون خطا)."""
|
||||
"""دیکشنری امن برای ``str.format_map``.
|
||||
|
||||
* کلیدِ ناشناخته ⇒ رشتهٔ خالی (بدون ``KeyError``).
|
||||
* کلیدِ شناختهشده با مقدار ``None`` ⇒ رشتهٔ خالی. فیلدهای اختیاری مدل
|
||||
(مثل ``Sarresid.check_sayyad_id`` یا ``check_row_number``) ممکن است ``NULL``
|
||||
باشند؛ بدون این تبدیل، ``None`` عیناً در متن پیامک چاپ میشد.
|
||||
"""
|
||||
|
||||
def __missing__(self, key):
|
||||
return ""
|
||||
|
||||
def __getitem__(self, key):
|
||||
value = super().__getitem__(key) if key in self else ""
|
||||
return "" if value is None else value
|
||||
|
||||
|
||||
def format_amount(value):
|
||||
try:
|
||||
@@ -35,6 +45,10 @@ def render_template(text, context=None):
|
||||
ctx = dict(context or {})
|
||||
if "amount" in ctx:
|
||||
ctx.setdefault("amount_sep", format_amount(ctx["amount"]))
|
||||
if "balance" in ctx:
|
||||
# مثل «مبلغ»، نسخهٔ جداکنندهدار هم آماده میشود تا در قالبها
|
||||
# ``{balance_sep}`` در دسترس باشد (۳٬۵۰۰٬۰۰۰ → "3,500,000").
|
||||
ctx.setdefault("balance_sep", format_amount(ctx["balance"]))
|
||||
if "date" in ctx:
|
||||
ctx.setdefault("date_raw", ctx["date"])
|
||||
ctx["date"] = format_jalali(ctx["date"])
|
||||
|
||||
Reference in new issue
Block a user