Skip to content

Commit

Permalink
Move ServiceCategory to user, add User.municipal_type
Browse files Browse the repository at this point in the history
  • Loading branch information
TheSuncatcher222 committed Nov 26, 2023
1 parent 7136090 commit 3832651
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 51 deletions.
30 changes: 1 addition & 29 deletions backend/info/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from info.models import (
Answer, AnswerUser, Appeal,
News, NewsComment, NewsPicture,
ServiceCategory, Task, Quiz,
Task, Quiz,
)
from urban_utopia_2024.app_data import ADMIN_LIST_PER_PAGE

Expand Down Expand Up @@ -204,34 +204,6 @@ class NewsAdmin(admin.ModelAdmin):
list_per_page = ADMIN_LIST_PER_PAGE


@admin.register(ServiceCategory)
class ServiceCategoryAdmin(admin.ModelAdmin):
"""
Переопределяет административный интерфейс Django для модели ServiceCategory. # noqa (E501)
Атрибуты:
- list_display (tuple) - список полей для отображения в интерфейсе:
- ID категории новостей (id)
- название категории (name)
- list_editable (tuple) - список полей для изменения в интерфейсе:
- название категории (name)
- search_fields (tuple) - список полей для поиска объектов:
- название категории (name)
- list_per_page (int) - количество объектов на одной странице
"""
list_display = (
'id',
'name',
)
list_editable = (
'name',
)
search_fields = (
'name',
)
list_per_page = ADMIN_LIST_PER_PAGE


@admin.register(NewsComment)
class NewsCommentAdmin(admin.ModelAdmin):
"""
Expand Down
22 changes: 1 addition & 21 deletions backend/info/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,32 +5,12 @@
APPEAL_RATING_MAX_VAL, APPEAL_RATING_MESSAGE,
APPEAL_STATUS_CHOICES, APPEAL_STAGE_INITIAL, APPEAL_STATUS_MAX_LEN,
APPEAL_TEXT_MAX_LEN, APPEAL_TOPIC_MAX_LEN,
NEWS_CATEGORY_CHOICES, NEWS_CATEGORY_MAX_LEN,
NEWS_COMMENT_MAX_LEN, NEWS_COMMENT_SLICE,
NEWS_PICTURES_PATH, NEWS_TEXT_MAX_LEN,
TASK_TITLE_MAX_LEN,
QUIZ_ANSWER_MAX_LEN, QUIZ_ANSWER_SLICE, QUIZ_TITLE_MAX_LEN,
)
from user.models import Address, User


class ServiceCategory(models.Model):
"""Модель категорий услуг."""

name = models.CharField(
verbose_name='Название',
max_length=NEWS_CATEGORY_MAX_LEN,
choices=NEWS_CATEGORY_CHOICES,
unique=True,
)

class Meta:
ordering = ('id',)
verbose_name = 'Категория новостей'
verbose_name_plural = 'Категории новостей'

def __str__(self):
return self.name
from user.models import Address, ServiceCategory, User


class Task(models.Model):
Expand Down
30 changes: 29 additions & 1 deletion backend/user/admin.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from django.contrib import admin

from urban_utopia_2024.app_data import ADMIN_LIST_PER_PAGE
from user.models import Address, User
from user.models import Address, ServiceCategory, User


@admin.register(Address)
Expand Down Expand Up @@ -84,6 +84,34 @@ class AddressAdmin(admin.ModelAdmin):
list_per_page = ADMIN_LIST_PER_PAGE


@admin.register(ServiceCategory)
class ServiceCategoryAdmin(admin.ModelAdmin):
"""
Переопределяет административный интерфейс Django для модели ServiceCategory. # noqa (E501)
Атрибуты:
- list_display (tuple) - список полей для отображения в интерфейсе:
- ID категории новостей (id)
- название категории (name)
- list_editable (tuple) - список полей для изменения в интерфейсе:
- название категории (name)
- search_fields (tuple) - список полей для поиска объектов:
- название категории (name)
- list_per_page (int) - количество объектов на одной странице
"""
list_display = (
'id',
'name',
)
list_editable = (
'name',
)
search_fields = (
'name',
)
list_per_page = ADMIN_LIST_PER_PAGE


@admin.register(User)
class UserAdmin(admin.ModelAdmin):
"""
Expand Down
29 changes: 29 additions & 0 deletions backend/user/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
ADDRESS_APARTMENT_MAX_VAL, ADDRESS_BUILDING_MAX_LEN, ADDRESS_CITY_MAX_LEN,
ADDRESS_DISTRICT_MAX_LEN, ADDRESS_INDEX_MAX_VAL, ADDRESS_ENTRANCE_MAX_VAL,
ADDRESS_FLOOR_MAX_VAL, ADDRESS_HOUSE_MAX_VAL, ADDRESS_STREET_MAX_LEN,
NEWS_CATEGORY_CHOICES, NEWS_CATEGORY_MAX_LEN,
USER_FULL_EMAIL_MAX_LEN, USER_NAME_MAX_LEN, USER_PASS_MAX_LEN,
USER_PHOTO_PATH, USER_RATING_MAX_VAL,
)
Expand Down Expand Up @@ -128,6 +129,25 @@ def __str__(self):
return address


class ServiceCategory(models.Model):
"""Модель категорий услуг."""

name = models.CharField(
verbose_name='Название',
max_length=NEWS_CATEGORY_MAX_LEN,
choices=NEWS_CATEGORY_CHOICES,
unique=True,
)

class Meta:
ordering = ('id',)
verbose_name = 'Категория услуг'
verbose_name_plural = 'Категории услуг'

def __str__(self):
return self.name


class UserManager(BaseUserManager):
"""Менеджер модели пользователя."""

Expand Down Expand Up @@ -245,6 +265,15 @@ class User(AbstractUser):
blank=True,
null=True,
)
municipal_type = models.ForeignKey(
verbose_name='Категория деятельности',
to=ServiceCategory,
related_name='municipal',
on_delete=models.PROTECT,
default=None,
blank=True,
null=True,
)

# Excess fields
# Copy Django default, set value: None.
Expand Down

0 comments on commit 3832651

Please sign in to comment.