Add pylint settings - .pylintrc file

This commit is contained in:
Степаненко Ольга 2021-04-28 11:53:29 +03:00
parent 8e0610840d
commit d8b15d087b
4 changed files with 26 additions and 36 deletions

View File

@ -149,6 +149,7 @@ docker run -d -p 8000:8000 \
## Для проверки pylint используем: ## Для проверки pylint используем:
pylint --load-plugins pylint_django --disable=E5110,C0415 ../access_controller pylint --load-plugins pylint_django --disable=E5110,C0415 ../access_controller
pylint ../access_controller
## Для приведения файлов к стандарту PEP8 используем: ## Для приведения файлов к стандарту PEP8 используем:
autopep8 --in-place <filename> autopep8 --in-place <filename>

View File

@ -13,6 +13,8 @@ import os
from pathlib import Path from pathlib import Path
# Build paths inside the project like this: BASE_DIR / 'subdir'. # Build paths inside the project like this: BASE_DIR / 'subdir'.
import django as django
BASE_DIR = Path(__file__).resolve().parent.parent BASE_DIR = Path(__file__).resolve().parent.parent
# Quick-start development settings - unsuitable for production # Quick-start development settings - unsuitable for production
@ -140,6 +142,8 @@ ACCOUNT_ACTIVATION_DAYS = 7
LOGIN_REDIRECT_URL = '/' LOGIN_REDIRECT_URL = '/'
LOGOUT_REDIRECT_URL = '/' LOGOUT_REDIRECT_URL = '/'
# Название_приложения.Названиеайла.Название_класса_обработчика # Название_приложения.Названиеайла.Название_класса_обработчика
AUTHENTICATION_BACKENDS = [ AUTHENTICATION_BACKENDS = [
'access_controller.auth.EmailAuthBackend', '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_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_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') ACTRL_API_PASSWORD = os.getenv('ACTRL_API_PASSWORD') or os.getenv('ACCESS_CONTROLLER_API_PASSWORD')

View File

@ -19,15 +19,11 @@ class UserProfile(models.Model):
('has_control_access', 'Can view admin page'), ('has_control_access', 'Can view admin page'),
) )
user = models.OneToOneField( user = models.OneToOneField(to=User, on_delete=models.CASCADE, help_text='Пользователь')
to=User, on_delete=models.CASCADE, help_text='Пользователь') role = models.CharField(default='None', max_length=100, help_text='Глобальное имя роли пользователя')
role = models.CharField(default='None', max_length=100, custom_role_id = models.IntegerField(default=0, help_text='Код роли пользователя')
help_text='Глобальное имя роли пользователя')
custom_role_id = models.IntegerField(
default=0, help_text='Код роли пользователя')
image = models.URLField(null=True, blank=True, help_text='Аватарка') image = models.URLField(null=True, blank=True, help_text='Аватарка')
name = models.CharField(default='None', max_length=100, name = models.CharField(default='None', max_length=100, help_text='Имя пользователя на нашем сайте')
help_text='Имя пользователя на нашем сайте')
@property @property
def zendesk_role(self): def zendesk_role(self):
@ -89,11 +85,8 @@ class UnassignedTicket(models.Model):
""" """
Модель не распределенного тикета. Модель не распределенного тикета.
""" """
assignee = models.ForeignKey(to=User, on_delete=models.CASCADE, assignee = models.ForeignKey(to=User, on_delete=models.CASCADE, related_name='tickets',
related_name='tickets',
help_text='Пользователь, с которого снят тикет') help_text='Пользователь, с которого снят тикет')
ticket_id = models.IntegerField( ticket_id = models.IntegerField(help_text='Номер тикера, для которого сняли ответственного')
help_text='Номер тикера, для которого сняли ответственного') status = models.IntegerField(choices=UnassignedTicketStatus.choices, default=UnassignedTicketStatus.UNASSIGNED,
status = models.IntegerField(choices=UnassignedTicketStatus.choices,
default=UnassignedTicketStatus.UNASSIGNED,
help_text='Статус тикета') help_text='Статус тикета')

View File

@ -25,12 +25,10 @@ from rest_framework import viewsets
from rest_framework.response import Response from rest_framework.response import Response
from access_controller.settings import DEFAULT_FROM_EMAIL, ZENDESK_ROLES, ZENDESK_MAX_AGENTS 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, \ from main.extra_func import check_user_exist, update_profile, get_user_organization, make_engineer, make_light_agent, \
make_engineer, make_light_agent, get_users_list, update_users_in_model, count_users, \ get_users_list, update_users_in_model, count_users, StatisticData, log, set_session_params_for_work_page
StatisticData, log, set_session_params_for_work_page
from main.zendesk_admin import zenpy from main.zendesk_admin import zenpy
from main.forms import AdminPageUsers, CustomRegistrationForm, CustomAuthenticationForm, \ from main.forms import AdminPageUsers, CustomRegistrationForm, CustomAuthenticationForm, StatisticForm
StatisticForm
from main.serializers import ProfileSerializer, ZendeskUserSerializer from main.serializers import ProfileSerializer, ZendeskUserSerializer
from .models import UserProfile from .models import UserProfile
@ -78,8 +76,7 @@ class CustomRegistrationView(RegistrationView):
""" """
Функция регистрации пользователя. Функция регистрации пользователя.
1. Ввод email пользователя, указанный на Zendesk 1. Ввод email пользователя, указанный на Zendesk
2. В случае если пользователь с данным паролем зарегистрирован на Zendesk 2. В случае если пользователь с данным паролем зарегистрирован на Zendesk и относится к организации SYSTEM,
и относится к организации SYSTEM,
происходит сброс ссылки с установлением пароля на указанный email происходит сброс ссылки с установлением пароля на указанный email
3. Создается пользователь class User, а также его профиль. 3. Создается пользователь class User, а также его профиль.
@ -87,8 +84,7 @@ class CustomRegistrationView(RegistrationView):
:return: user :return: user
""" """
self.redirect_url = 'done' self.redirect_url = 'done'
if check_user_exist(form.data['email']) and \ if check_user_exist(form.data['email']) and get_user_organization(form.data['email']) == 'SYSTEM':
get_user_organization(form.data['email']) == 'SYSTEM':
forms = PasswordResetForm(self.request.POST) forms = PasswordResetForm(self.request.POST)
if forms.is_valid(): if forms.is_valid():
opts = { opts = {
@ -121,8 +117,7 @@ class CustomRegistrationView(RegistrationView):
@staticmethod @staticmethod
def set_permission(user: User) -> None: def set_permission(user: User) -> None:
""" """
Функция дает разрешение на просмотр страница администратора, Функция дает разрешение на просмотр страница администратора, если пользователь имеет роль admin.
если пользователь имеет роль admin.
:param user: авторизованный пользователь (получает разрешение, имея роль "admin") :param user: авторизованный пользователь (получает разрешение, имея роль "admin")
""" """
@ -136,8 +131,7 @@ class CustomRegistrationView(RegistrationView):
def get_success_url(self, user: User = None) -> Dict: def get_success_url(self, user: User = None) -> Dict:
""" """
Функция возвращает url-адрес страницы, куда нужно перейти после Функция возвращает url-адрес страницы, куда нужно перейти после успешной/не успешной регистрации.
успешной/не успешной регистрации.
Используется самой django-registration. Используется самой django-registration.
:param user: пользователь, пытающийся зарегистрироваться :param user: пользователь, пытающийся зарегистрироваться
@ -178,8 +172,7 @@ def profile_page(request: WSGIRequest) -> HttpResponse:
@login_required() @login_required()
def work_page(request: WSGIRequest, id: int) -> HttpResponse: def work_page(request: WSGIRequest, id: int) -> HttpResponse:
""" """
Функция отображения страницы "Управления правами" Функция отображения страницы "Управления правами" для текущего пользователя (login_required).
для текущего пользователя (login_required).
:param request: объект пользователя :param request: объект пользователя
:param id: id пользователя, используется для динамической адресации :param id: id пользователя, используется для динамической адресации
@ -220,8 +213,7 @@ def work_page(request: WSGIRequest, id: int) -> HttpResponse:
@login_required() @login_required()
def work_hand_over(request: WSGIRequest) -> HttpResponseRedirect: def work_hand_over(request: WSGIRequest) -> HttpResponseRedirect:
""" """
Функция позволяет текущему пользователю сдать права, Функция позволяет текущему пользователю сдать права, а именно сменить в Zendesk роль с "engineer" на "light_agent".
а именно сменить в Zendesk роль с "engineer" на "light_agent"
:param request: данные текущего пользователя (login_required) :param request: данные текущего пользователя (login_required)
:return: перезагрузка текущей страницы после выполнения смены роли :return: перезагрузка текущей страницы после выполнения смены роли
@ -233,9 +225,8 @@ def work_hand_over(request: WSGIRequest) -> HttpResponseRedirect:
@login_required() @login_required()
def work_become_engineer(request: WSGIRequest) -> HttpResponseRedirect: def work_become_engineer(request: WSGIRequest) -> HttpResponseRedirect:
""" """
Функция позволяет текущему пользователю получить права, Функция позволяет текущему пользователю получить права, а именно сменить в Zendesk роль с "light_agent" на
а именно сменить в Zendesk роль с "light_agent" на "engineer".
"engineer"
:param request: данные текущего пользователя (login_required) :param request: данные текущего пользователя (login_required)
:return: перезагрузка текущей страницы после выполнения смены роли :return: перезагрузка текущей страницы после выполнения смены роли
@ -382,8 +373,7 @@ def statistic_page(request: WSGIRequest) -> HttpResponse:
""" """
Функция отображения страницы статистики (для "superuser"). Функция отображения страницы статистики (для "superuser").
:param request: данные о пользователе: email, время и интервал работы. :param request: данные о пользователе: email, время и интервал работы. Данные получаем через forms.StatisticForm
Данные получаем через forms.StatisticForm
:return: адресация на страницу статистики :return: адресация на страницу статистики
""" """