From d8b15d087b2bb72e4ce6d4bfcbe145b5469fe77c 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: Wed, 28 Apr 2021 11:53:29 +0300 Subject: [PATCH] Add pylint settings - .pylintrc file --- README.md | 1 + access_controller/settings.py | 6 ++++++ main/models.py | 21 +++++++-------------- main/views.py | 34 ++++++++++++---------------------- 4 files changed, 26 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index 97d63bb..51a76ef 100644 --- a/README.md +++ b/README.md @@ -149,6 +149,7 @@ docker run -d -p 8000:8000 \ ## Для проверки pylint используем: pylint --load-plugins pylint_django --disable=E5110,C0415 ../access_controller +pylint ../access_controller ## Для приведения файлов к стандарту PEP8 используем: autopep8 --in-place diff --git a/access_controller/settings.py b/access_controller/settings.py index a7585ed..7b1f707 100644 --- a/access_controller/settings.py +++ b/access_controller/settings.py @@ -13,6 +13,8 @@ import os from pathlib import Path # Build paths inside the project like this: BASE_DIR / 'subdir'. +import django as django + BASE_DIR = Path(__file__).resolve().parent.parent # Quick-start development settings - unsuitable for production @@ -140,6 +142,8 @@ ACCOUNT_ACTIVATION_DAYS = 7 LOGIN_REDIRECT_URL = '/' LOGOUT_REDIRECT_URL = '/' + + # Название_приложения.Название_файла.Название_класса_обработчика AUTHENTICATION_BACKENDS = [ 'access_controller.auth.EmailAuthBackend', @@ -177,3 +181,5 @@ ACTRL_ZENDESK_SUBDOMAIN = os.getenv('ACTRL_ZENDESK_SUBDOMAIN') or os.getenv('ZD_ ACTRL_API_EMAIL = os.getenv('ACTRL_API_EMAIL') or os.getenv('ACCESS_CONTROLLER_API_EMAIL') ACTRL_API_TOKEN = os.getenv('ACTRL_API_TOKEN') or os.getenv('ACCESS_CONTROLLER_API_TOKEN') ACTRL_API_PASSWORD = os.getenv('ACTRL_API_PASSWORD') or os.getenv('ACCESS_CONTROLLER_API_PASSWORD') + + diff --git a/main/models.py b/main/models.py index c955636..35daa68 100644 --- a/main/models.py +++ b/main/models.py @@ -19,15 +19,11 @@ class UserProfile(models.Model): ('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='Глобальное имя роли пользователя') - custom_role_id = models.IntegerField( - default=0, help_text='Код роли пользователя') + user = models.OneToOneField(to=User, on_delete=models.CASCADE, help_text='Пользователь') + role = models.CharField(default='None', max_length=100, help_text='Глобальное имя роли пользователя') + custom_role_id = models.IntegerField(default=0, help_text='Код роли пользователя') image = models.URLField(null=True, blank=True, help_text='Аватарка') - name = models.CharField(default='None', max_length=100, - help_text='Имя пользователя на нашем сайте') + name = models.CharField(default='None', max_length=100, help_text='Имя пользователя на нашем сайте') @property def zendesk_role(self): @@ -89,11 +85,8 @@ class UnassignedTicket(models.Model): """ Модель не распределенного тикета. """ - assignee = models.ForeignKey(to=User, on_delete=models.CASCADE, - related_name='tickets', + assignee = models.ForeignKey(to=User, on_delete=models.CASCADE, related_name='tickets', help_text='Пользователь, с которого снят тикет') - ticket_id = models.IntegerField( - help_text='Номер тикера, для которого сняли ответственного') - status = models.IntegerField(choices=UnassignedTicketStatus.choices, - default=UnassignedTicketStatus.UNASSIGNED, + ticket_id = models.IntegerField(help_text='Номер тикера, для которого сняли ответственного') + status = models.IntegerField(choices=UnassignedTicketStatus.choices, default=UnassignedTicketStatus.UNASSIGNED, help_text='Статус тикета') diff --git a/main/views.py b/main/views.py index 68ea8d1..dc0c65a 100644 --- a/main/views.py +++ b/main/views.py @@ -25,12 +25,10 @@ from rest_framework import viewsets from rest_framework.response import Response from access_controller.settings import DEFAULT_FROM_EMAIL, ZENDESK_ROLES, ZENDESK_MAX_AGENTS -from main.extra_func import check_user_exist, update_profile, get_user_organization, \ - make_engineer, make_light_agent, get_users_list, update_users_in_model, count_users, \ - StatisticData, log, set_session_params_for_work_page +from main.extra_func import check_user_exist, update_profile, get_user_organization, make_engineer, make_light_agent, \ + get_users_list, update_users_in_model, count_users, StatisticData, log, set_session_params_for_work_page from main.zendesk_admin import zenpy -from main.forms import AdminPageUsers, CustomRegistrationForm, CustomAuthenticationForm, \ - StatisticForm +from main.forms import AdminPageUsers, CustomRegistrationForm, CustomAuthenticationForm, StatisticForm from main.serializers import ProfileSerializer, ZendeskUserSerializer from .models import UserProfile @@ -78,8 +76,7 @@ class CustomRegistrationView(RegistrationView): """ Функция регистрации пользователя. 1. Ввод email пользователя, указанный на Zendesk - 2. В случае если пользователь с данным паролем зарегистрирован на Zendesk - и относится к организации SYSTEM, + 2. В случае если пользователь с данным паролем зарегистрирован на Zendesk и относится к организации SYSTEM, происходит сброс ссылки с установлением пароля на указанный email 3. Создается пользователь class User, а также его профиль. @@ -87,8 +84,7 @@ class CustomRegistrationView(RegistrationView): :return: user """ self.redirect_url = 'done' - if check_user_exist(form.data['email']) and \ - get_user_organization(form.data['email']) == 'SYSTEM': + if check_user_exist(form.data['email']) and get_user_organization(form.data['email']) == 'SYSTEM': forms = PasswordResetForm(self.request.POST) if forms.is_valid(): opts = { @@ -121,8 +117,7 @@ class CustomRegistrationView(RegistrationView): @staticmethod def set_permission(user: User) -> None: """ - Функция дает разрешение на просмотр страница администратора, - если пользователь имеет роль admin. + Функция дает разрешение на просмотр страница администратора, если пользователь имеет роль admin. :param user: авторизованный пользователь (получает разрешение, имея роль "admin") """ @@ -136,8 +131,7 @@ class CustomRegistrationView(RegistrationView): def get_success_url(self, user: User = None) -> Dict: """ - Функция возвращает url-адрес страницы, куда нужно перейти после - успешной/не успешной регистрации. + Функция возвращает url-адрес страницы, куда нужно перейти после успешной/не успешной регистрации. Используется самой django-registration. :param user: пользователь, пытающийся зарегистрироваться @@ -178,8 +172,7 @@ def profile_page(request: WSGIRequest) -> HttpResponse: @login_required() def work_page(request: WSGIRequest, id: int) -> HttpResponse: """ - Функция отображения страницы "Управления правами" - для текущего пользователя (login_required). + Функция отображения страницы "Управления правами" для текущего пользователя (login_required). :param request: объект пользователя :param id: id пользователя, используется для динамической адресации @@ -220,8 +213,7 @@ def work_page(request: WSGIRequest, id: int) -> HttpResponse: @login_required() def work_hand_over(request: WSGIRequest) -> HttpResponseRedirect: """ - Функция позволяет текущему пользователю сдать права, - а именно сменить в Zendesk роль с "engineer" на "light_agent" + Функция позволяет текущему пользователю сдать права, а именно сменить в Zendesk роль с "engineer" на "light_agent". :param request: данные текущего пользователя (login_required) :return: перезагрузка текущей страницы после выполнения смены роли @@ -233,9 +225,8 @@ def work_hand_over(request: WSGIRequest) -> HttpResponseRedirect: @login_required() def work_become_engineer(request: WSGIRequest) -> HttpResponseRedirect: """ - Функция позволяет текущему пользователю получить права, - а именно сменить в Zendesk роль с "light_agent" на - "engineer" + Функция позволяет текущему пользователю получить права, а именно сменить в Zendesk роль с "light_agent" на + "engineer". :param request: данные текущего пользователя (login_required) :return: перезагрузка текущей страницы после выполнения смены роли @@ -382,8 +373,7 @@ def statistic_page(request: WSGIRequest) -> HttpResponse: """ Функция отображения страницы статистики (для "superuser"). - :param request: данные о пользователе: email, время и интервал работы. - Данные получаем через forms.StatisticForm + :param request: данные о пользователе: email, время и интервал работы. Данные получаем через forms.StatisticForm :return: адресация на страницу статистики """