Actualizar backend/services.py
This commit is contained in:
@@ -1778,6 +1778,7 @@ def programa_dashboard(ano="TODOS", mes="TODOS", programa="TODOS"):
|
|||||||
# de las pautas del programa. Telefonos unicos por etiqueta.
|
# de las pautas del programa. Telefonos unicos por etiqueta.
|
||||||
from collections import defaultdict as _dd
|
from collections import defaultdict as _dd
|
||||||
etiq_tels = _dd(set)
|
etiq_tels = _dd(set)
|
||||||
|
etiq_ase_tels = _dd(lambda: _dd(set)) # estado -> asesor -> {telefonos}
|
||||||
cods_set0 = set(cods)
|
cods_set0 = set(cods)
|
||||||
for l in _leads_crudos():
|
for l in _leads_crudos():
|
||||||
if not l.get("es_unico") or not l.get("asesor"):
|
if not l.get("es_unico") or not l.get("asesor"):
|
||||||
@@ -1788,9 +1789,16 @@ def programa_dashboard(ano="TODOS", mes="TODOS", programa="TODOS"):
|
|||||||
if not tel:
|
if not tel:
|
||||||
continue
|
continue
|
||||||
ult = l.get("ultima") or "NO TRABAJADO"
|
ult = l.get("ultima") or "NO TRABAJADO"
|
||||||
|
ase = l.get("asesor") or "SIN ASESOR"
|
||||||
etiq_tels[ult].add(tel)
|
etiq_tels[ult].add(tel)
|
||||||
|
etiq_ase_tels[ult][ase].add(tel)
|
||||||
matriz_etiq = sorted(
|
matriz_etiq = sorted(
|
||||||
[{"estado": k, "cantidad": len(v)} for k, v in etiq_tels.items()],
|
[{"estado": k, "cantidad": len(v),
|
||||||
|
"asesores": sorted(
|
||||||
|
[{"asesor": a, "cantidad": len(t), "telefonos": sorted(t)}
|
||||||
|
for a, t in etiq_ase_tels[k].items()],
|
||||||
|
key=lambda x: -x["cantidad"])}
|
||||||
|
for k, v in etiq_tels.items()],
|
||||||
key=lambda x: -x["cantidad"])
|
key=lambda x: -x["cantidad"])
|
||||||
|
|
||||||
# 3) CARTERA TOTAL: MISMA logica que 'Detalle por Curso'. Por cada curso,
|
# 3) CARTERA TOTAL: MISMA logica que 'Detalle por Curso'. Por cada curso,
|
||||||
@@ -2713,10 +2721,13 @@ def ultima_actualizacion():
|
|||||||
|
|
||||||
|
|
||||||
def refrescar_todo():
|
def refrescar_todo():
|
||||||
from cache_manager import cache_invalidate
|
from cache_manager import set_forzar
|
||||||
from data_manager_v2 import invalidar_campanias_cache
|
from data_manager_v2 import invalidar_campanias_cache
|
||||||
cache_invalidate() # vaciar y recargar TODO
|
|
||||||
invalidar_campanias_cache() # tambien las campañas (cache aparte)
|
invalidar_campanias_cache() # tambien las campañas (cache aparte)
|
||||||
|
set_forzar(True) # recalcula y sobrescribe (no lee cache viejo)
|
||||||
|
try:
|
||||||
precargar_todo() # leads (mes actual/anterior)
|
precargar_todo() # leads (mes actual/anterior)
|
||||||
precargar_otros_general() # cartera + Otros General (para que no quede vacia)
|
precargar_otros_general() # cartera + Otros General
|
||||||
|
finally:
|
||||||
|
set_forzar(False)
|
||||||
_marcar_actualizacion()
|
_marcar_actualizacion()
|
||||||
|
|||||||
Reference in New Issue
Block a user