improve bazdid 6

This commit is contained in:
javad committed 2026-10-22 14:01:08 +03:30
1 parent 99c25a8216
commit fa73a734a0
21 files changed
+32760 -7985

No files matched your search

+14 -5
View File
@@ -628,7 +628,8 @@ def entezar(request):
entry = sources.get(cid) or {}
if not entry:
return 0
if len(entry) > 1:
days = {value.astimezone(current_tz).date() for value in entry.values()}
if len(days) > 1:
return 4
if SOURCE_MANUAL in entry:
return 1
@@ -699,8 +700,10 @@ def entezar(request):
try:
entezar_bazdid = CacheTable.objects.get(key='9mahbazdid')
# کارت داشبورد = «کارِ فوری» = تعیین تکلیف نشده.
entezar_bazdid.value = counts['uncoordinated']
entezar_bazdid.save()
# فقط در صورت تغییر می‌نویسیم تا یک GET ساده بی‌دلیل دیتابیس را تغییر ندهد.
if str(entezar_bazdid.value) != str(counts['uncoordinated']):
entezar_bazdid.value = str(counts['uncoordinated'])
entezar_bazdid.save(update_fields=['value'])
except CacheTable.DoesNotExist:
pass
@@ -812,14 +815,20 @@ def entezar(request):
entry.update(followup_entry)
flags = [key for key in (SOURCE_MANUAL, SOURCE_SCHEDULED,
SOURCE_COORDINATION) if key in entry]
# «N قرار» = تعداد **روزهای یکتای** قرار، نه تعداد منابع. یک هماهنگی
# که تاریخ تعویقش همان روز است، هم‌زمان «manual» و «coordination»
# تولید می‌کند ولی دو قرارِ متفاوت نیست (برچسب «۲ قرار» گمراه‌کننده بود).
appointment_days = {
entry[key].astimezone(current_tz).date() for key in flags
}
appointment_rows[customer.id] = {
'manual': entry.get(SOURCE_MANUAL),
'scheduled': entry.get(SOURCE_SCHEDULED),
'coordination': entry.get(SOURCE_COORDINATION),
'overdue_days': overdue_days.get(customer.id, 0),
'last_visit': visits.get(customer.id),
# تعداد منابع (۰ تا ۳) — قالب بر اساس آن برچسب وضعیت را می‌سازد.
'source_count': len(flags),
# تعداد قرارهای یکتا (۱ تا ۳ روز متمایز) — قالب بر اساس آن برچسب می‌سازد.
'source_count': len(appointment_days),
# تاریخ پیگیری این نمای خاص (برای ستون اختصاصی نمای «امروز»).
'followup_at': (min(followup_entry.values())
if followup_entry else None),