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 @@
- {% endfor %} - |
{{ message.text }}
- {% if message.user == user %} -