From a9e411d3592c5c2ddbac0b419603dffcb58a7380 Mon Sep 17 00:00:00 2001 From: KoalaSat Date: Fri, 14 Jun 2024 20:32:28 +0200 Subject: [PATCH] CodeReview --- api/migrations/0047_notification.py | 12 ++++-------- api/models/notification.py | 10 ++++------ api/notifications.py | 9 +++------ api/views.py | 4 ++-- 4 files changed, 13 insertions(+), 22 deletions(-) diff --git a/api/migrations/0047_notification.py b/api/migrations/0047_notification.py index b0eaf976..24ce5c92 100644 --- a/api/migrations/0047_notification.py +++ b/api/migrations/0047_notification.py @@ -1,9 +1,7 @@ -# Generated by Django 5.0.6 on 2024-06-09 10:21 +# Generated by Django 5.0.6 on 2024-06-14 18:31 import django.db.models.deletion import django.utils.timezone -import uuid -from django.conf import settings from django.db import migrations, models @@ -11,7 +9,6 @@ class Migration(migrations.Migration): dependencies = [ ('api', '0046_alter_currency_currency'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ @@ -19,12 +16,11 @@ class Migration(migrations.Migration): name='Notification', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('reference', models.UUIDField(default=uuid.uuid4, editable=False)), ('created_at', models.DateTimeField(default=django.utils.timezone.now)), - ('title', models.CharField(default=None, max_length=120)), - ('description', models.CharField(blank=True, default=None, max_length=120)), + ('title', models.CharField(default=None, max_length=240)), + ('description', models.CharField(blank=True, default=None, max_length=240)), ('order', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='api.order')), - ('user', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ('robot', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='api.robot')), ], ), ] diff --git a/api/models/notification.py b/api/models/notification.py index c65655f6..790b98dc 100644 --- a/api/models/notification.py +++ b/api/models/notification.py @@ -2,8 +2,7 @@ import uuid from decouple import config -from django.contrib.auth.models import User -from api.models import Order +from api.models import Order, Robot from django.db import models from django.utils import timezone @@ -23,15 +22,14 @@ else: class Notification(models.Model): # notification info - reference = models.UUIDField(default=custom_uuid, editable=False) created_at = models.DateTimeField(default=timezone.now) - user = models.ForeignKey(User, on_delete=models.CASCADE, default=None) + robot = models.ForeignKey(Robot, on_delete=models.CASCADE, default=None) order = models.ForeignKey(Order, on_delete=models.CASCADE, default=None) # notification details - title = models.CharField(max_length=120, null=False, default=None) - description = models.CharField(max_length=120, default=None, blank=True) + title = models.CharField(max_length=240, null=False, default=None) + description = models.CharField(max_length=240, default=None, blank=True) def __str__(self): return f"{self.title} {self.description}" diff --git a/api/notifications.py b/api/notifications.py index b042d202..b080d1ba 100644 --- a/api/notifications.py +++ b/api/notifications.py @@ -39,12 +39,9 @@ class Notifications: def save_message(self, order, robot, title, description): """Save a message for a user""" - notification = Notification() - notification.title = title - notification.description = description - notification.user = robot - notification.order = order - notification.save() + Notification.objects.create( + title=title, description=description, robot=robot, order=order + ) def send_telegram_message(self, chat_id, title, description): """sends a message to a user with telegram notifications enabled""" diff --git a/api/views.py b/api/views.py index 9d3fbae8..70de65f8 100644 --- a/api/views.py +++ b/api/views.py @@ -749,8 +749,8 @@ class NotificationsView(ListAPIView): @extend_schema(**NotificationSchema.get) def get(self, request, format=None): - user = request.user - queryset = Notification.objects.filter(user=user) + robot = request.user.robot + queryset = Notification.objects.filter(robot=robot) created_at = request.GET.get("created_at") if created_at: