diff --git a/main/extra_func.py b/main/extra_func.py index 8d2ef91..f215544 100644 --- a/main/extra_func.py +++ b/main/extra_func.py @@ -107,8 +107,7 @@ def update_profile(user_profile: UserProfile) -> None: Функция обновляет профиль пользователя в соответствии с текущим в Zendesk. :param user_profile: Профиль пользователя - :return: Обновленный, в соответствие с текущими данными - в Zendesk, профиль пользователя + :return: Обновленный, в соответствие с текущими данными в Zendesk, профиль пользователя """ user = zenpy.get_user(user_profile.user.email) user_profile.name = user.name @@ -142,8 +141,7 @@ def check_user_auth(email: str, password: str) -> bool: """ Функция проверяет, верны ли входные данные. - :raise: :class:`APIException`: исключение, - вызываемое если пользователь не аутентифицирован + :raise: :class:`APIException`: исключение, вызываемое если пользователь не аутентифицирован """ creds = { 'email': email, @@ -176,7 +174,7 @@ def update_user_in_model(profile: UserProfile, zendesk_user: ZenpyUser) -> None: def count_users(users: list) -> tuple: """ - Функция подсчета количества сотрудников с ролями engineer и light_agent + Функция подсчета количества сотрудников с ролями engineer и light_agent. """ engineers, light_agents = 0, 0 for user in users: @@ -189,7 +187,7 @@ def count_users(users: list) -> tuple: def update_users_in_model() -> list: """ - Обновляет пользователей в модели UserProfile по списку пользователей в организации + Обновляет пользователей в модели UserProfile по списку пользователей в организации. """ users = get_users_list() for user in users: @@ -217,10 +215,8 @@ def daterange(start_date: timedelta, end_date: timedelta) -> list: def get_timedelta(log: RoleChangeLogs, time: timedelta = None) -> timedelta: """ - Функция возвращает объект класса timedelta, - который хранит промежуток времени от начала суток до момента, - который находится в log (объект класса RoleChangeLogs) - или в time(datetime.time), если введён. + Функция возвращает объект класса timedelta, который хранит промежуток времени от начала суток до момента, + который находится в log (объект класса RoleChangeLogs) или в time(datetime.time), если введён. :param log: Лог :param time: Время @@ -427,8 +423,7 @@ class StatisticData: def _init_statistic(self) -> None: """ - Функция заполняет словарь, в котором ключ - дата, - значение - кол-во проработанных в этот день секунд. + Функция заполняет словарь, в котором ключ - дата, значение - кол-во проработанных в этот день секунд. :return: Статистика работы пользователя (statistic) """ @@ -559,7 +554,8 @@ class CsvFormatter(logging.Formatter): def format(self, record: logging.LogRecord) -> str: """ - Функция форматирует запись смены роли пользователя в строку + Функция форматирует запись смены роли пользователя в строку. + :param record: Запись смены роли пользователя. :return: Строка с записью смены пользователя. """ @@ -606,8 +602,8 @@ def log(user: User, admin: int = 0) -> None: def set_session_params_for_work_page(request: WSGIRequest, count: int = None, is_confirm: bool = True) -> \ Union[HttpResponsePermanentRedirect, HttpResponseRedirect]: """ - Функция для страницы получения прав, устанавливает данные сессии - о успешности запроса и количестве назначенных тикетов. + Функция для страницы получения прав, устанавливает данные сессии о успешности запроса и количестве + назначенных тикетов. :param request: Получение данных с рабочей страницы пользователя :param count: Количество запрошенных тикетов diff --git a/main/models.py b/main/models.py index 35daa68..fcde327 100644 --- a/main/models.py +++ b/main/models.py @@ -1,3 +1,8 @@ +""" +Модели, использующиеся в приложении. +""" + + from django.db import models from django.contrib.auth.models import User from django.db.models.signals import post_save @@ -26,7 +31,12 @@ class UserProfile(models.Model): name = models.CharField(default='None', max_length=100, help_text='Имя пользователя на нашем сайте') @property - def zendesk_role(self): + def zendesk_role(self) -> str: + """ + Функция возвращает роль пользователя в Zendesk в формате str, либо UNDERFINED, если пользователь не найден. + + :return: Роль пользователя в Zendesk + """ id = self.custom_role_id for role, r_id in ZENDESK_ROLES.items(): if r_id == id: @@ -35,13 +45,28 @@ class UserProfile(models.Model): @receiver(post_save, sender=User) -def create_user_profile(sender, instance, created, **kwargs): +def create_user_profile(instance, created, **kwargs) -> None: + """ + Функция создания профиля пользователя (Userprofile) при регистрации пользователя. + + :param instance: Экземпляр класса User + :param created: Создание профиля пользователя + :param kwargs: Параметры + :return: Обновленный список объектов профилей пользователей + """ if created: UserProfile.objects.create(user=instance) @receiver(post_save, sender=User) -def save_user_profile(sender, instance, **kwargs): +def save_user_profile(instance, **kwargs) -> None: + """ + Функция записи БД профиля пользователя. + + :param instance: Экземпляр класса User + :param kwargs: Параметры + :return: Запись профиля пользователя + """ instance.userprofile.save() @@ -49,16 +74,12 @@ class RoleChangeLogs(models.Model): """ Модель для логирования изменений ролей пользователя. """ - user = models.ForeignKey(to=User, - on_delete=models.CASCADE, + 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', + 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='Кем была изменена роль') diff --git a/main/views.py b/main/views.py index 7c58221..15f393e 100644 --- a/main/views.py +++ b/main/views.py @@ -1,3 +1,8 @@ +""" +View функции. +""" + + from smtplib import SMTPException from typing import Dict, Any, Optional