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

30 lines
953 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):
expense_data = event['expense']
action = event['action']
# Enviar actualización por WebSocket al cliente
await self.send(text_data=json.dumps({
'action': action,
'expense': expense_data
}))