Update docs for files (except views)

This commit is contained in:
Степаненко Ольга 2021-04-27 09:40:05 +03:00
parent aa59eb31ec
commit 8dd8e7640a
5 changed files with 50 additions and 11 deletions

View File

@ -83,6 +83,7 @@ functions
Serializer
Serializers
Сериализатор
сериализатор
переадресации
чекбоксов
админских

View File

@ -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="Электронная почта",

View File

@ -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='Статус тикета')

View File

@ -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']:

View File

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