From a422ab9ad332a08b677eee548826bdf794fe8b69 Mon Sep 17 00:00:00 2001 From: Egor Matveev Date: Thu, 17 Feb 2022 22:02:36 +0300 Subject: [PATCH] apply languages --- Main/migrations/0022_auto_20220217_2202.py | 27 ++++++++++++++ Main/models/__init__.py | 2 - Main/models/chat.py | 8 ---- Main/models/message.py | 18 --------- Main/views/ChatView.py | 36 ------------------ Main/views/ChatWithView.py | 30 --------------- Main/views/MessagesView.py | 24 ------------ Main/views/UsersView.py | 18 --------- Main/views/__init__.py | 4 -- templates/account.html | 2 +- templates/chat.html | 43 ---------------------- templates/messages.html | 33 ----------------- 12 files changed, 28 insertions(+), 217 deletions(-) create mode 100644 Main/migrations/0022_auto_20220217_2202.py delete mode 100644 Main/models/chat.py delete mode 100644 Main/models/message.py delete mode 100644 Main/views/ChatView.py delete mode 100644 Main/views/ChatWithView.py delete mode 100644 Main/views/MessagesView.py delete mode 100644 Main/views/UsersView.py delete mode 100644 templates/chat.html delete mode 100644 templates/messages.html diff --git a/Main/migrations/0022_auto_20220217_2202.py b/Main/migrations/0022_auto_20220217_2202.py new file mode 100644 index 0000000..b89c984 --- /dev/null +++ b/Main/migrations/0022_auto_20220217_2202.py @@ -0,0 +1,27 @@ +# Generated by Django 3.2.4 on 2022-02-17 19:02 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('Main', '0021_auto_20220215_2211'), + ] + + operations = [ + migrations.RemoveField( + model_name='message', + name='chat', + ), + migrations.RemoveField( + model_name='message', + name='user', + ), + migrations.DeleteModel( + name='Chat', + ), + migrations.DeleteModel( + name='Message', + ), + ] diff --git a/Main/models/__init__.py b/Main/models/__init__.py index a382dff..82152b8 100644 --- a/Main/models/__init__.py +++ b/Main/models/__init__.py @@ -9,6 +9,4 @@ from Main.models.extrafile import ExtraFile from Main.models.progress import Progress from Main.models.solution_file import SolutionFile from Main.models.friendship import Friendship -from Main.models.chat import Chat -from Main.models.message import Message from Main.models.language_apply import LanguageApply diff --git a/Main/models/chat.py b/Main/models/chat.py deleted file mode 100644 index 3c3c6df..0000000 --- a/Main/models/chat.py +++ /dev/null @@ -1,8 +0,0 @@ -from django.contrib.auth.models import User -from django.db import models - - -class Chat(models.Model): - from_user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="from_chat") - to_user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="to_chat") - user = None diff --git a/Main/models/message.py b/Main/models/message.py deleted file mode 100644 index 73a7a77..0000000 --- a/Main/models/message.py +++ /dev/null @@ -1,18 +0,0 @@ -from django.contrib.auth.models import User -from django.db import models -from django.utils import timezone - -from Main.models.chat import Chat - - -class Message(models.Model): - user = models.ForeignKey(User, on_delete=models.CASCADE) - chat = models.ForeignKey(Chat, on_delete=models.CASCADE) - text = models.TextField() - read = models.BooleanField(default=False) - time_sent = models.DateTimeField(default=timezone.now) - - class Meta: - indexes = [ - models.Index(fields=['chat', '-time_sent']) - ] diff --git a/Main/views/ChatView.py b/Main/views/ChatView.py deleted file mode 100644 index 7a88ff1..0000000 --- a/Main/views/ChatView.py +++ /dev/null @@ -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) diff --git a/Main/views/ChatWithView.py b/Main/views/ChatWithView.py deleted file mode 100644 index 844343b..0000000 --- a/Main/views/ChatWithView.py +++ /dev/null @@ -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) diff --git a/Main/views/MessagesView.py b/Main/views/MessagesView.py deleted file mode 100644 index 1f65d35..0000000 --- a/Main/views/MessagesView.py +++ /dev/null @@ -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 diff --git a/Main/views/UsersView.py b/Main/views/UsersView.py deleted file mode 100644 index 1369325..0000000 --- a/Main/views/UsersView.py +++ /dev/null @@ -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") - ] - } diff --git a/Main/views/__init__.py b/Main/views/__init__.py index a82e291..2f72fde 100644 --- a/Main/views/__init__.py +++ b/Main/views/__init__.py @@ -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 diff --git a/templates/account.html b/templates/account.html index 8c6e380..e058746 100644 --- a/templates/account.html +++ b/templates/account.html @@ -23,7 +23,7 @@

{{ account.userinfo.surname }} {{ account.userinfo.name }} - {{ account.userinfo.activity_status }} + {{ account.userinfo.activity_status }} {% if not owner %}
{% csrf_token %} diff --git a/templates/chat.html b/templates/chat.html deleted file mode 100644 index 9cf0c75..0000000 --- a/templates/chat.html +++ /dev/null @@ -1,43 +0,0 @@ -{% extends 'base_main.html' %} - -{% block scripts %} - var page = 1; - function setPage(number) { - page = number; - } - function doPoll() { - jQuery.get('/messages?chat_id={{ chat.id }}&page=' + page.toString(), function(data) { - var e = document.getElementById('messages'); - if (e.innerHTML !== data) - e.innerHTML = data; - const name = "page_num_" + page.toString(); - elem = document.getElementById(name); - if (elem) { - elem.className = "btn btn-dark"; - } - setTimeout(function() {doPoll()}, 2000); - }) - } -{% endblock %} - -{% block onload %}doPoll(){% endblock %} - -{% block main %} -
-
- -
-
- -
-
-

{{ chat.user.username }}

-
-
- - {% csrf_token %} - - -
-
-{% endblock %} \ No newline at end of file diff --git a/templates/messages.html b/templates/messages.html deleted file mode 100644 index b5cce9c..0000000 --- a/templates/messages.html +++ /dev/null @@ -1,33 +0,0 @@ -{% if need_pagination %} -
- - - {% for num in count_pages %} - - {% endfor %} - -
-
-{% endif %} -
- {% for message in messages %} -
- {% if message.user == user %} -
-
- {% else %} -
- {% endif %} -

{{ message.text }}

- {% if message.user == user %} -
- {% else %} -
-
- -
- {% endif %} - -
- {% endfor %} -
\ No newline at end of file