lista de espera: salas consultoria/cabina (toggle + etiqueta) y scroll de WhatsApp
- skeen_citas: campo sala en skeen.lista.espera (consultoria/cabina, indexado) - frontend.py: sala en _lista_espera_to_dict, create y update (toggle desde la etiqueta; valor invalido vuelve a sin sala; cambio queda en historial) - ListaEspera.tsx: toggle Todas/Consultoria/Cabina con conteo, etiqueta clicable en cada tarjeta que alterna de sala, selector en el modal de alta - Agenda.tsx: cambiarSala() conectado al panel - WacrmMessages.tsx: el auto-refresco ya no empuja el scroll abajo si el usuario esta leyendo mensajes anteriores (solo baja al cambiar de conversacion, por deep-link o al enviar respuesta propia) Verificacion API: 7/7 tests OK (alta con sala, toggle, valor invalido, GET)
This commit is contained in:
@@ -1362,6 +1362,8 @@ class SkeenFrontendController(http.Controller):
|
||||
'priority': r.priority,
|
||||
'priority_label': dict(r._fields['priority'].selection).get(r.priority, ''),
|
||||
'franja': r.franja or '',
|
||||
'sala': r.sala or '',
|
||||
'sala_label': dict(r._fields['sala'].selection).get(r.sala, '') if r.sala else '',
|
||||
'date_from': r.date_from.strftime('%Y-%m-%d') if r.date_from else None,
|
||||
'date_to': r.date_to.strftime('%Y-%m-%d') if r.date_to else None,
|
||||
'notes': r.notes or '',
|
||||
@@ -1446,6 +1448,7 @@ class SkeenFrontendController(http.Controller):
|
||||
'servicio_id': int(data['service_id'] or data['servicio_id']) if (data.get('service_id') or data.get('servicio_id')) else False,
|
||||
'priority': data.get('priority') or 'normal',
|
||||
'franja': data.get('franja') or '',
|
||||
'sala': data.get('sala') if data.get('sala') in ('consultoria', 'cabina') else False,
|
||||
'date_from': data.get('date_from') or False,
|
||||
'date_to': data.get('date_to') or False,
|
||||
'notes': data.get('notes') or '',
|
||||
@@ -1485,6 +1488,12 @@ class SkeenFrontendController(http.Controller):
|
||||
):
|
||||
if key in data:
|
||||
vals[field] = data[key] or False
|
||||
if 'sala' in data:
|
||||
# Toggle de sala desde la etiqueta: '' vuelve a "Sin asignar"
|
||||
vals['sala'] = data['sala'] if data['sala'] in ('consultoria', 'cabina') else False
|
||||
if vals['sala']:
|
||||
record._log('Sala: %s' % dict(record._fields['sala'].selection).get(vals['sala'], vals['sala']),
|
||||
user=request.frontend_user.login)
|
||||
if data.get('cita_id'):
|
||||
vals['cita_id'] = int(data['cita_id'])
|
||||
new_state = data.get('state')
|
||||
|
||||
Reference in New Issue
Block a user