apply languages

This commit is contained in:
Egor Matveev
2022-02-17 22:02:36 +03:00
parent bcc1bff6d8
commit a422ab9ad3
12 changed files with 28 additions and 217 deletions

View File

@@ -1,36 +0,0 @@
from typing import Optional
from Main.management.commands.bot import bot
from Main.models import Chat, Message
from Sprint.settings import CONSTS
from SprintLib.BaseView import BaseView
class ChatView(BaseView):
endpoint = "chat"
required_login = True
view_file = "chat.html"
chat: Optional[Chat] = None
def pre_handle(self):
if self.entities.chat.from_user == self.request.user:
self.entities.chat.user = self.entities.chat.to_user
else:
self.entities.chat.user = self.entities.chat.from_user
def post(self):
Message.objects.create(
user=self.request.user,
chat=self.entities.chat,
text=self.request.POST["text"],
)
if (
self.entities.chat.user.userinfo.activity_status != CONSTS["online_status"]
and self.entities.chat.user.userinfo.notification_messages
):
bot.send_message(
self.entities.chat.user.userinfo.telegram_chat_id,
f"Пользователь {self.request.user.username} отправил сообщение:\n"
f"{self.request.POST['text']}",
)
return "/chat?chat_id" + str(self.entities.chat.id)

View File

@@ -1,30 +0,0 @@
from django.contrib.auth.models import User
from django.db.models import Q
from Main.models import Chat
from SprintLib.BaseView import BaseView, AccessError
class ChatWithView(BaseView):
required_login = True
endpoint = "chat_with"
chat = None
def pre_handle(self):
if "username" not in self.request.GET:
raise AccessError()
def get(self):
chat = Chat.objects.filter(
Q(
from_user=self.request.user,
to_user__username=self.request.GET["username"],
)
| Q(
to_user=self.request.user,
from_user__username=self.request.GET["username"],
)
).first()
if chat is None:
chat = Chat.objects.create(from_user=self.request.user, to_user=User.objects.get(username=self.request.GET['username']))
return "/chat?chat_id=" + str(chat.id)

View File

@@ -1,24 +0,0 @@
from Main.models import Message
from SprintLib.BaseView import BaseView, AccessError
class MessagesView(BaseView):
required_login = True
view_file = "messages.html"
endpoint = "messages"
page_size = 20
def pre_handle(self):
if not hasattr(self.entities, "chat") or 'page' not in self.request.GET:
raise AccessError()
if self.entities.chat.from_user != self.request.user and self.entities.chat.to_user != self.request.user:
raise AccessError()
def get(self):
offset = (int(self.request.GET["page"]) - 1) * self.page_size
limit = self.page_size
messages = Message.objects.filter(chat=self.entities.chat).order_by("-time_sent")
messages.update(read=True)
self.context["messages"] = messages[offset:offset + limit]
self.context["count_pages"] = range(1, (len(messages) - 1) // self.page_size + 2)
self.context["need_pagination"] = len(self.context["count_pages"]) > 1

View File

@@ -1,18 +0,0 @@
from django.contrib.auth.models import User
from SprintLib.BaseView import BaseView
class UsersView(BaseView):
endpoint = "users"
def get(self):
startswith = self.request.GET.get("startswith", "")
return {
"users": [
user.username
for user in User.objects.filter(
username__startswith=startswith
).order_by("username")
]
}

View File

@@ -13,11 +13,7 @@ from Main.views.SolutionView import SolutionView
from Main.views.ImageView import ImageView
from Main.views.SendCodeView import SendCodeView
from Main.views.SetSettingsView import SetSettingsView
from Main.views.UsersView import UsersView
from Main.views.SolutionsView import SolutionsView
from Main.views.ChatView import ChatView
from Main.views.ChatWithView import ChatWithView
from Main.views.MessagesView import MessagesView
from Main.views.SetView import SetView
from Main.views.GroupView import GroupView
from Main.views.CheckersView import CheckersView