From 8dd8e7640aeac6cda8b87f6495dd6ad42e931282 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D1=82=D0=B5=D0=BF=D0=B0=D0=BD=D0=B5=D0=BD=D0=BA?= =?UTF-8?q?=D0=BE=20=D0=9E=D0=BB=D1=8C=D0=B3=D0=B0?= Date: Tue, 27 Apr 2021 09:40:05 +0300 Subject: [PATCH] Update docs for files (except views) --- docs/source/spelling_wordlist.txt | 1 + main/forms.py | 2 ++ main/models.py | 13 ++++++------ main/serializers.py | 33 +++++++++++++++++++++++++++++-- main/zendesk_admin.py | 12 ++++++++--- 5 files changed, 50 insertions(+), 11 deletions(-) diff --git a/docs/source/spelling_wordlist.txt b/docs/source/spelling_wordlist.txt index da91912..1582561 100644 --- a/docs/source/spelling_wordlist.txt +++ b/docs/source/spelling_wordlist.txt @@ -83,6 +83,7 @@ functions Serializer Serializers Сериализатор +сериализатор переадресации чекбоксов админских diff --git a/main/forms.py b/main/forms.py index 81b2e8a..0f6b44c 100644 --- a/main/forms.py +++ b/main/forms.py @@ -56,6 +56,8 @@ class CustomAuthenticationForm(AuthenticationForm): :param username: Поле для ввода email пользователя :type username: :class:`django.forms.fields.CharField` + :param error_messages: Список ошибок авторизации + :type error_messages: :class:`dict` """ username = forms.CharField( label="Электронная почта", diff --git a/main/models.py b/main/models.py index e48fb1e..456bff9 100644 --- a/main/models.py +++ b/main/models.py @@ -11,13 +11,11 @@ class UserProfile(models.Model): """ Модель профиля пользователя. - Профиль создается и изменяется при создании и изменении модель User. + Профиль создается и изменяется при создании и изменении модель User """ - class Meta: permissions = ( - ('has_control_access', 'Can view admin page'), - ) + ('has_control_access', 'Can view admin page')) user = models.OneToOneField(to=User, on_delete=models.CASCADE, help_text='Пользователь') role = models.CharField(default='None', max_length=100, help_text='Глобальное имя роли пользователя') @@ -49,11 +47,13 @@ class RoleChangeLogs(models.Model): """ Модель для логирования изменений ролей пользователя. """ - user = models.ForeignKey(to=User, on_delete=models.CASCADE, help_text='Пользователь, которому присвоили другую роль') + user = models.ForeignKey(to=User, on_delete=models.CASCADE, help_text='Пользователь, которому присвоили другую ' + 'роль') old_role = models.IntegerField(default=0, help_text='Старая роль') new_role = models.IntegerField(default=0, help_text='Присвоенная роль') change_time = models.DateTimeField(default=timezone.now, help_text='Дата и время изменения роли') - changed_by = models.ForeignKey(to=User, on_delete=models.CASCADE, related_name='changed_by', help_text='Кем была изменена роль') + changed_by = models.ForeignKey(to=User, on_delete=models.CASCADE, related_name='changed_by', + help_text='Кем была изменена роль') class UnassignedTicketStatus(models.IntegerChoices): @@ -81,3 +81,4 @@ class UnassignedTicket(models.Model): ticket_id = models.IntegerField(help_text='Номер тикера, для которого сняли ответственного') status = models.IntegerField(choices=UnassignedTicketStatus.choices, default=UnassignedTicketStatus.UNASSIGNED, help_text='Статус тикета') + diff --git a/main/serializers.py b/main/serializers.py index f5100b4..5ed3138 100644 --- a/main/serializers.py +++ b/main/serializers.py @@ -7,6 +7,11 @@ from access_controller.settings import ZENDESK_ROLES class UserSerializer(serializers.HyperlinkedModelSerializer): """ Класс serializer для модели User. + + :param model: Модель, на основании которой создается сериализатор + :type model: :class:`django.contrib.auth.Models` + :param fields: Передаваемые поля + :type email: :class:`list` """ class Meta: model = User @@ -14,7 +19,16 @@ class UserSerializer(serializers.HyperlinkedModelSerializer): class ProfileSerializer(serializers.HyperlinkedModelSerializer): - """Класс serializer для модели профиля пользователя""" + """ + Класс serializer для модели профиля пользователя. + + :param user: Вложенный сериализатор + :type user: :class:`UserSerializer` + :param model: Модель, на основании которой создается сериализатор + :type model: :class:`django.contrib.auth.Models` + :param fields: Передаваемые поля + :type email: :class:`list` + """ user = UserSerializer() class Meta: @@ -23,13 +37,28 @@ class ProfileSerializer(serializers.HyperlinkedModelSerializer): class ZendeskUserSerializer(serializers.Serializer): - """Класс serializer для объектов пользователей из zenpy""" + """ + Класс serializer для объектов пользователей из Zenpy. + + :param name: Имя пользователя + :type name: :class:`str` + :param zendesk_role: Роль из Zendesk + :type zendesk_role: :class:`str` + :param email: Email пользователя + :type email: :class:`str` + """ name = serializers.CharField() zendesk_role = serializers.SerializerMethodField('get_zendesk_role') email = serializers.EmailField() @staticmethod def get_zendesk_role(obj) -> str: + """ + Функция строкового заполнения поля сериализатора zendesk_role. + + :param obj: объект пользователя Zendesk + :return: роль engineer либо light_agent + """ if obj.custom_role_id == ZENDESK_ROLES['engineer']: return 'engineer' elif obj.custom_role_id == ZENDESK_ROLES['light_agent']: diff --git a/main/zendesk_admin.py b/main/zendesk_admin.py index 8ecb877..9d83109 100644 --- a/main/zendesk_admin.py +++ b/main/zendesk_admin.py @@ -10,17 +10,23 @@ from access_controller.settings import ACTRL_ZENDESK_SUBDOMAIN, ACTRL_API_EMAIL, class ZendeskAdmin: """ - Класс **ZendeskAdmin** существует, чтобы в каждой функции отдельно не проверять аккаунт администратора. + Класс **ZendeskAdmin** содержит описание всего функционала администратора. :param credentials: Полномочия (первым указывается учетная запись организации в Zendesk) :type credentials: :class:`Dict[str, str]` + :param admin: Администратор + :type admin: :class:`Zenpy` + :param buffer_group_id: ID буферной группы + :type buffer_group_id: :class:`int` + :param solved_tickets_user_id: ID пользователя, который решил тикет + :type solved_tickets_user_id: :class:`int` """ def __init__(self, credentials: Dict[str, str]): self.credentials = credentials self.admin = self.create_admin() - self.buffer_group_id: int = self.get_group(ZENDESK_GROUPS['buffer']).id - self.solved_tickets_user_id: int = self.get_user(SOLVED_TICKETS_EMAIL).id + self.buffer_group_id= self.get_group(ZENDESK_GROUPS['buffer']).id + self.solved_tickets_user_id = self.get_user(SOLVED_TICKETS_EMAIL).id def check_user(self, email: str) -> bool: """