notifications

This commit is contained in:
Egor Matveev
2021-12-19 18:46:26 +03:00
parent 5a3e696eac
commit b28490697f
4 changed files with 60 additions and 25 deletions

View 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),
),
]

View File

@@ -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):

View File

@@ -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"]