|
|
|
|
@@ -28,7 +28,7 @@ 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
|
|
|
|
|
get_users_list, update_users_in_model, count_users, StatisticData, set_session_params_for_work_page
|
|
|
|
|
from main.zendesk_admin import zenpy
|
|
|
|
|
from main.forms import AdminPageUsers, CustomRegistrationForm, CustomAuthenticationForm, StatisticForm
|
|
|
|
|
from main.serializers import ProfileSerializer, ZendeskUserSerializer
|
|
|
|
|
@@ -120,6 +120,7 @@ class CustomRegistrationView(RegistrationView):
|
|
|
|
|
return None
|
|
|
|
|
else:
|
|
|
|
|
self.redirect_url = 'email_sending_error'
|
|
|
|
|
return None
|
|
|
|
|
else:
|
|
|
|
|
self.redirect_url = 'invalid_zendesk_email'
|
|
|
|
|
return None
|
|
|
|
|
@@ -180,7 +181,7 @@ def profile_page(request: WSGIRequest) -> HttpResponse:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@login_required()
|
|
|
|
|
def work_page(request: WSGIRequest, id: int) -> HttpResponse:
|
|
|
|
|
def work_page(request: WSGIRequest, required_id: int) -> HttpResponse:
|
|
|
|
|
"""
|
|
|
|
|
Функция отображения страницы "Управления правами" для текущего пользователя (login_required).
|
|
|
|
|
|
|
|
|
|
@@ -189,7 +190,7 @@ def work_page(request: WSGIRequest, id: int) -> HttpResponse:
|
|
|
|
|
:return: адресация на страницу "Управления правами" (либо на страницу "Авторизации", если id и user.id не совпадают
|
|
|
|
|
"""
|
|
|
|
|
users = get_users_list()
|
|
|
|
|
if request.user.id == id:
|
|
|
|
|
if request.user.id == required_id:
|
|
|
|
|
if request.session.get('is_confirm', None):
|
|
|
|
|
messages.success(request, 'Изменения были применены')
|
|
|
|
|
elif request.session.get('is_confirm', None) is not None:
|
|
|
|
|
@@ -256,7 +257,7 @@ def work_get_tickets(request: WSGIRequest) -> HttpResponse:
|
|
|
|
|
tickets = [ticket for ticket in zenpy.admin.search(type="ticket") if
|
|
|
|
|
ticket.group.name == 'Сменная группа' and ticket.assignee is None]
|
|
|
|
|
count = 0
|
|
|
|
|
for i in range(len(tickets)):
|
|
|
|
|
for i in enumerate(tickets):
|
|
|
|
|
if i == int(request.GET.get('count_tickets')):
|
|
|
|
|
return set_session_params_for_work_page(request, count)
|
|
|
|
|
tickets[i].assignee = zenpy_user
|
|
|
|
|
@@ -306,7 +307,8 @@ class AdminPageView(LoginRequiredMixin, PermissionRequiredMixin, SuccessMessageM
|
|
|
|
|
self.make_light_agents(users)
|
|
|
|
|
return super().form_valid(form)
|
|
|
|
|
|
|
|
|
|
def make_engineers(self, users: list) -> None:
|
|
|
|
|
@staticmethod
|
|
|
|
|
def make_engineers(users: list) -> None:
|
|
|
|
|
"""
|
|
|
|
|
Функция проходит по списку пользователей, проставляя статус "engineer".
|
|
|
|
|
|
|
|
|
|
@@ -315,8 +317,8 @@ class AdminPageView(LoginRequiredMixin, PermissionRequiredMixin, SuccessMessageM
|
|
|
|
|
"""
|
|
|
|
|
for user in users:
|
|
|
|
|
make_engineer(user)
|
|
|
|
|
|
|
|
|
|
def make_light_agents(self, users: list) -> None:
|
|
|
|
|
@staticmethod
|
|
|
|
|
def make_light_agents(users: list) -> None:
|
|
|
|
|
"""
|
|
|
|
|
Функция проходит по списку пользователей, проставляя статус "light agent".
|
|
|
|
|
|
|
|
|
|
|