# Copyright (C) 2024 by Animath # SPDX-License-Identifier: GPL-3.0-or-later from django.contrib.auth.mixins import LoginRequiredMixin from django.views.generic import TemplateView from chat.models import Channel class ChatView(LoginRequiredMixin, TemplateView): """ This view is the main interface of the chat system, which is working with Javascript and websockets. """ template_name = "chat/chat.html" def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) from asgiref.sync import async_to_sync context['channels'] = async_to_sync(Channel.get_accessible_channels)(self.request.user, 'read') return context