Use pylint for models.py

This commit is contained in:
Степаненко Ольга 2021-04-28 16:18:55 +03:00
parent a7dd7d84e0
commit e5460d90fc
3 changed files with 47 additions and 25 deletions

View File

@ -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: Количество запрошенных тикетов

View File

@ -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='Кем была изменена роль')

View File

@ -1,3 +1,8 @@
"""
View функции.
"""
from smtplib import SMTPException
from typing import Dict, Any, Optional