Files
erp-efintel-2026-portainer/expenses/consumers.py
T

26 lines
873 B
Python

import json
from channels.generic.websocket import AsyncWebsocketConsumer
class ExpenseConsumer(AsyncWebsocketConsumer):
async def connect(self):
# Todos los clientes se conectan a este grupo para escuchar actualizaciones de gastos
self.group_name = 'expenses_updates'
await self.channel_layer.group_add(
self.group_name,
self.channel_name
)
await self.accept()
async def disconnect(self, close_code):
await self.channel_layer.group_discard(
self.group_name,
self.channel_name
)
# Recibir actualización desde el Channel Layer
async def expense_update(self, event):
html_payload = event['html']
# Enviar actualización por WebSocket al cliente (HTMX espera HTML puro, no JSON)
await self.send(text_data=html_payload)