notifications
This commit is contained in:
18
Main/migrations/0008_userinfo_notification_friends.py
Normal file
18
Main/migrations/0008_userinfo_notification_friends.py
Normal file
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.2.4 on 2021-12-19 15:44
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('Main', '0007_friendship'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='userinfo',
|
||||
name='notification_friends',
|
||||
field=models.BooleanField(default=False),
|
||||
),
|
||||
]
|
@@ -5,6 +5,7 @@ from django.db import models
|
||||
from django.db.models import Q
|
||||
from django.utils import timezone
|
||||
|
||||
from Main.models.friendship import Friendship
|
||||
from Main.models.set import Set
|
||||
from Main.models.group import Group
|
||||
from Main.models.settask import SetTask
|
||||
@@ -24,6 +25,7 @@ class UserInfo(models.Model):
|
||||
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True)
|
||||
telegram_chat_id = models.TextField(default="")
|
||||
notification_solution_result = models.BooleanField(default=False)
|
||||
notification_friends = models.BooleanField(default=False)
|
||||
code = models.IntegerField(null=True)
|
||||
verified = models.BooleanField(default=False)
|
||||
|
||||
@@ -33,10 +35,7 @@ class UserInfo(models.Model):
|
||||
|
||||
@cached_property
|
||||
def friends(self):
|
||||
return User.objects.filter(
|
||||
Q(to_friendship__to_user=self, to_friendship__verified=True)
|
||||
| Q(from_friendship__from_user=self, from_friendship__verified=True)
|
||||
)
|
||||
return Friendship.objects.filter(Q(to_user=self.user) | Q(from_user=self.user))
|
||||
|
||||
@property
|
||||
def favourite_language(self):
|
||||
|
@@ -44,19 +44,22 @@ class AccountView(BaseView):
|
||||
).first()
|
||||
if friendship is None:
|
||||
Friendship.objects.create(from_user=self.request.user, to_user=self.context["account"])
|
||||
bot.send_message(self.context["account"].userinfo.telegram_chat_id, f"Пользователь {self.request.user.username} хочет добавить тебя в друзья")
|
||||
if self.context["account"].userinfo.notification_friends:
|
||||
bot.send_message(self.context["account"].userinfo.telegram_chat_id, f"Пользователь {self.request.user.username} хочет добавить тебя в друзья")
|
||||
elif friendship.verified or friendship.from_user == self.request.user:
|
||||
friendship.delete()
|
||||
else:
|
||||
if self.request.POST["to_do"] == "yes":
|
||||
friendship.verified = True
|
||||
friendship.save()
|
||||
bot.send_message(self.context["account"].userinfo.telegram_chat_id,
|
||||
f"Пользователь {self.request.user.username} добавил тебя в друзья")
|
||||
if self.context["account"].userinfo.notification_friends:
|
||||
bot.send_message(self.context["account"].userinfo.telegram_chat_id,
|
||||
f"Пользователь {self.request.user.username} добавил тебя в друзья")
|
||||
else:
|
||||
friendship.delete()
|
||||
bot.send_message(self.context["account"].userinfo.telegram_chat_id,
|
||||
f"Пользователь {self.request.user.username} отклонил твою заявку")
|
||||
if self.context["account"].userinfo.notification_friends:
|
||||
bot.send_message(self.context["account"].userinfo.telegram_chat_id,
|
||||
f"Пользователь {self.request.user.username} отклонил твою заявку")
|
||||
return "/account?username=" + self.request.GET["username"]
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user