From 0f83b5a5a3243dd5f061310abbb32e6fcc713558 Mon Sep 17 00:00:00 2001 From: Ilya Kotneko Date: Mon, 22 Jan 2024 23:19:08 +0300 Subject: [PATCH 1/2] =?UTF-8?q?comments=20app=20=D1=82=C3=90=C3=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- comments/__init__.py | 0 comments/admin.py | 9 +++++++++ comments/apps.py | 8 ++++++++ comments/models.py | 37 +++++++++++++++++++++++++++++++++++++ config/settings.py | 1 + core/enums.py | 6 ++++++ 6 files changed, 61 insertions(+) create mode 100644 comments/__init__.py create mode 100644 comments/admin.py create mode 100644 comments/apps.py create mode 100644 comments/models.py create mode 100644 core/enums.py diff --git a/comments/__init__.py b/comments/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/comments/admin.py b/comments/admin.py new file mode 100644 index 0000000..4e87622 --- /dev/null +++ b/comments/admin.py @@ -0,0 +1,9 @@ +from django.contrib import admin + +from .models import Comment + + +@admin.register(Comment) +class CommentAdmin(admin.ModelAdmin): + list_display = ("pk", "author", "text", "created_at") + list_filter = ("author", "created_at") diff --git a/comments/apps.py b/comments/apps.py new file mode 100644 index 0000000..5bb6f4a --- /dev/null +++ b/comments/apps.py @@ -0,0 +1,8 @@ +from django.apps import AppConfig + + +class CommentsConfig(AppConfig): + default_auto_field = "django.db.models.BigAutoField" + name = "comments" + verbose_name = "Комментарий" + verbose_name_plural = "Комментарии" diff --git a/comments/models.py b/comments/models.py new file mode 100644 index 0000000..97d7fa4 --- /dev/null +++ b/comments/models.py @@ -0,0 +1,37 @@ +from django.db import models +from ipr.models import IPR +from task.models import Task +from users.models import User + +from core.enums import Limits + + +class Comment(models.Model): + author = models.ForeignKey( + User, + related_name="comments", + on_delete=models.CASCADE, + verbose_name="Автор комментария", + ) + ipr = models.ForeignKey( + IPR, + related_name="comments", + on_delete=models.CASCADE, + verbose_name="ИПР", + ) + task = models.ForeignKey( + Task, + related_name="comments", + on_delete=models.CASCADE, + verbose_name="Задача", + ) + + text = models.TextField( + verbose_name="Комментарий", + max_length=Limits.MAX_LEN_COMMENT_TEXT, + ) + + created_at = models.DateField( + auto_now_add=True, + verbose_name="Дата создания", + ) diff --git a/config/settings.py b/config/settings.py index 3a2346f..d2b1f1b 100644 --- a/config/settings.py +++ b/config/settings.py @@ -31,6 +31,7 @@ ] LOCAL_APPS = [ "api.v1.apps.ApiConfig", + "comments.apps.CommentsConfig", ] INSTALLED_APPS = DJANGO_APPS + THIRD_PARTY_APPS + LOCAL_APPS diff --git a/core/enums.py b/core/enums.py new file mode 100644 index 0000000..c91ae7e --- /dev/null +++ b/core/enums.py @@ -0,0 +1,6 @@ +from enum import IntEnum + + +class Limits(IntEnum): + # Максимальная длина текстового поля комментария в приложении "comments" + MAX_LEN_COMMENT_TEXT = (200,) From b7c4fd536949c14e0b318a204584d9f6a91c1014 Mon Sep 17 00:00:00 2001 From: Ilya Kotneko Date: Tue, 23 Jan 2024 17:17:21 +0300 Subject: [PATCH 2/2] constant transfer to settings --- comments/models.py | 5 ++--- config/settings.py | 3 +++ core/enums.py | 6 ------ 3 files changed, 5 insertions(+), 9 deletions(-) delete mode 100644 core/enums.py diff --git a/comments/models.py b/comments/models.py index 97d7fa4..5dc7d4f 100644 --- a/comments/models.py +++ b/comments/models.py @@ -1,10 +1,9 @@ +from django.conf import settings from django.db import models from ipr.models import IPR from task.models import Task from users.models import User -from core.enums import Limits - class Comment(models.Model): author = models.ForeignKey( @@ -28,7 +27,7 @@ class Comment(models.Model): text = models.TextField( verbose_name="Комментарий", - max_length=Limits.MAX_LEN_COMMENT_TEXT, + max_length=settings.MAX_LEN_COMMENT_TEXT, ) created_at = models.DateField( diff --git a/config/settings.py b/config/settings.py index d2b1f1b..728321e 100644 --- a/config/settings.py +++ b/config/settings.py @@ -118,3 +118,6 @@ "ACCESS_TOKEN_LIFETIME": timedelta(days=1), "AUTH_HEADER_TYPES": ("Bearer",), } + + +MAX_LEN_COMMENT_TEXT = 200 diff --git a/core/enums.py b/core/enums.py deleted file mode 100644 index c91ae7e..0000000 --- a/core/enums.py +++ /dev/null @@ -1,6 +0,0 @@ -from enum import IntEnum - - -class Limits(IntEnum): - # Максимальная длина текстового поля комментария в приложении "comments" - MAX_LEN_COMMENT_TEXT = (200,)