Skip to content

Commit 4bef28a

Browse files
committed
Команды для создания тестовых чатов и сообщений
1 parent fadbc5f commit 4bef28a

4 files changed

Lines changed: 136 additions & 1 deletion

File tree

videodef/chat/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def chats(request):
1515
) | SmallChat.objects.filter(user2=request.user)
1616
chats_info = []
1717
for chat in user_chats:
18-
last_message = Message.objects.filter(chat=chat).order_by("-timestamp").first()
18+
last_message = Message.objects.filter(chat=chat).order_by("timestamp").last()
1919
if last_message:
2020
if last_message.sender_id == request.user.unique_id:
2121
sender_name = "Вы"

videodef/main/management/commands/create_all.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@ def handle(self, *args, **kwargs):
1010

1111
call_command("create_test_users")
1212
call_command("create_test_children")
13+
1314
call_command("create_test_documents")
1415
call_command("create_test_resumes")
1516

17+
call_command("create_test_chats")
18+
call_command("create_test_messages")
19+
1620
self.stdout.write(self.style.SUCCESS("Все тестовые данные успешно созданы."))
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
from django.core.management.base import BaseCommand
2+
from django.core.exceptions import ObjectDoesNotExist
3+
from account.models import User
4+
from chat.models import SmallChat
5+
6+
7+
class Command(BaseCommand):
8+
help = "Создание тестовых чатов между родителями и преподавателями"
9+
10+
def handle(self, *args, **kwargs):
11+
try:
12+
user1 = User.objects.get(username="user1") # Ирина (Родитель)
13+
user2 = User.objects.get(username="user2") # Мария (Преподаватель)
14+
user3 = User.objects.get(username="user3") # Алексей (Преподаватель)
15+
user4 = User.objects.get(username="user4") # Елена (Родитель)
16+
17+
except ObjectDoesNotExist as e:
18+
self.stdout.write(self.style.ERROR(f"Ошибка: {e}"))
19+
return
20+
21+
chats_data = [
22+
{"user1": user1, "user2": user2}, # Ирина <-> Мария
23+
{"user1": user1, "user2": user3}, # Ирина <-> Алексей
24+
{"user1": user4, "user2": user2}, # Елена <-> Мария
25+
{"user1": user4, "user2": user3}, # Елена <-> Алексей
26+
]
27+
28+
for chat in chats_data:
29+
u1 = chat["user1"]
30+
u2 = chat["user2"]
31+
32+
if (
33+
SmallChat.objects.filter(user1=u1, user2=u2).exists()
34+
or SmallChat.objects.filter(user1=u2, user2=u1).exists()
35+
):
36+
self.stdout.write(
37+
self.style.WARNING(
38+
f"Чат между {u1.username} и {u2.username} уже существует"
39+
)
40+
)
41+
continue
42+
43+
SmallChat.objects.create(user1=u1, user2=u2)
44+
self.stdout.write(
45+
self.style.SUCCESS(f"Создан чат между {u1.username} и {u2.username}")
46+
)
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
from django.core.management.base import BaseCommand
2+
from django.core.exceptions import ObjectDoesNotExist
3+
import time
4+
5+
from account.models import User
6+
from chat.models import SmallChat, Message
7+
8+
9+
class Command(BaseCommand):
10+
help = "Создание тестовых сообщений для существующих чатов"
11+
12+
def handle(self, *args, **kwargs):
13+
try:
14+
user1 = User.objects.get(username="user1") # Ирина
15+
user2 = User.objects.get(username="user2") # Мария
16+
user3 = User.objects.get(username="user3") # Алексей
17+
user4 = User.objects.get(username="user4") # Елена
18+
except ObjectDoesNotExist as e:
19+
self.stdout.write(self.style.ERROR(f"Ошибка: {e}"))
20+
return
21+
22+
message_data = [
23+
{
24+
"users": (user1, user2),
25+
"messages": [
26+
(user1, "Здравствуйте, Мария! Нам посоветовали вас как логопеда."),
27+
(user2, "Здравствуйте! Да, я занимаюсь с детьми 4-7 лет."),
28+
(user1, "У дочки сложности с произношением 'р' и 'л'."),
29+
(user2, "Понимаю, можем начать со следующей недели."),
30+
],
31+
},
32+
{
33+
"users": (user1, user3),
34+
"messages": [
35+
(user1, "Добрый день, Алексей! Слышали о вас хорошие отзывы."),
36+
(user3, "Спасибо, приятно слышать. Чем могу помочь?"),
37+
(user1, "Нужна помощь с развитием речи у сына 5 лет."),
38+
(user3, "Конечно. Давайте созвонимся для обсуждения."),
39+
],
40+
},
41+
{
42+
"users": (user4, user2),
43+
"messages": [
44+
(user4, "Здравствуйте, Мария! Мы ищем дефектолога."),
45+
(user2, "Здравствуйте! Я как раз специализируюсь на этом."),
46+
(user4, "Ребёнок не разговаривает полными предложениями."),
47+
(user2, "Давайте организуем первый видеозвонок."),
48+
],
49+
},
50+
{
51+
"users": (user4, user3),
52+
"messages": [
53+
(user4, "Алексей, добрый день! Вы работаете с детьми 3 лет?"),
54+
(user3, "Здравствуйте! Да, с такими детьми я работаю."),
55+
(user4, "Очень хорошо. Можем ли созвониться на следующей неделе?"),
56+
(user3, "Конечно, я свободен во вторник и пятницу."),
57+
],
58+
},
59+
]
60+
61+
for entry in message_data:
62+
u1, u2 = entry["users"]
63+
64+
try:
65+
chat = SmallChat.objects.get(user1=u1, user2=u2)
66+
except SmallChat.DoesNotExist:
67+
try:
68+
chat = SmallChat.objects.get(user1=u2, user2=u1)
69+
except SmallChat.DoesNotExist:
70+
self.stdout.write(
71+
self.style.ERROR(
72+
f"Чат между {u1.username} и {u2.username} не найден"
73+
)
74+
)
75+
continue
76+
77+
for sender, text in entry["messages"]:
78+
time.sleep(0.2)
79+
Message.objects.create(chat=chat, sender=sender, content=text)
80+
81+
self.stdout.write(
82+
self.style.SUCCESS(
83+
f"Добавлены сообщения в чат {u1.username} <-> {u2.username}"
84+
)
85+
)

0 commit comments

Comments
 (0)