Fixed userprofile.custom_role_id updating issue in work_hand_over and work_become_engineer
This commit is contained in:
parent
259ab76cba
commit
67da8681e5
@ -1,38 +1,29 @@
|
||||
import logging
|
||||
import os
|
||||
from datetime import datetime
|
||||
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMixin
|
||||
from django.contrib.auth.models import User, Permission
|
||||
from django.contrib.auth.tokens import default_token_generator
|
||||
from django.contrib.auth.forms import PasswordResetForm
|
||||
from django.contrib.auth.views import LoginView
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.core.handlers.wsgi import WSGIRequest
|
||||
from django.http import HttpResponseRedirect, HttpResponse
|
||||
from django.shortcuts import render, get_list_or_404, redirect
|
||||
from django.urls import reverse_lazy, reverse
|
||||
from django.views.generic import FormView
|
||||
from zenpy import Zenpy
|
||||
|
||||
from access_controller.settings import EMAIL_HOST_USER
|
||||
from main.extra_func import check_user_exist, update_profile, get_user_organization, \
|
||||
make_engineer, make_light_agent, get_users_list, log
|
||||
|
||||
from django.contrib.auth.models import User, Permission
|
||||
from main.models import UserProfile
|
||||
from main.forms import CustomRegistrationForm, AdminPageUsers, CustomAuthenticationForm
|
||||
from django_registration.views import RegistrationView
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMixin
|
||||
from django.core.exceptions import PermissionDenied
|
||||
|
||||
from access_controller.settings import ZENDESK_ROLES
|
||||
from zenpy import Zenpy
|
||||
from zenpy.lib.api_objects import User as ZenpyUser
|
||||
|
||||
content_type_temp = ContentType.objects.get_for_model(UserProfile)
|
||||
permission_temp, created = Permission.objects.get_or_create(
|
||||
codename='has_control_access',
|
||||
content_type=content_type_temp,
|
||||
)
|
||||
|
||||
from access_controller.settings import EMAIL_HOST_USER, ZENDESK_ROLES
|
||||
from main.extra_func import check_user_exist, update_profile, get_user_organization, make_engineer, make_light_agent, \
|
||||
get_users_list, StatisticData, log
|
||||
from main.forms import AdminPageUsers, CustomRegistrationForm, CustomAuthenticationForm, StatisticForm
|
||||
from .models import UserProfile
|
||||
|
||||
class CustomRegistrationView(RegistrationView):
|
||||
"""
|
||||
@ -111,7 +102,6 @@ def profile_page(request: WSGIRequest) -> HttpResponse:
|
||||
'profile': user_profile,
|
||||
'pagename': 'Страница профиля'
|
||||
}
|
||||
log(request.user)
|
||||
return render(request, 'pages/profile.html', context)
|
||||
|
||||
|
||||
@ -151,12 +141,14 @@ def work_page(request, id):
|
||||
@login_required()
|
||||
def work_hand_over(request):
|
||||
zenpy_user, admin = auth_user(request)
|
||||
|
||||
if zenpy_user.custom_role_id == ZENDESK_ROLES['engineer']:
|
||||
zenpy_user.custom_role_id = ZENDESK_ROLES['light_agent']
|
||||
admin.users.update(zenpy_user)
|
||||
request.user.userprofile.role = "agent"
|
||||
request.user.userprofile.custom_role_id = ZENDESK_ROLES['light_agent']
|
||||
request.user.userprofile.save()
|
||||
# log(request.user.userprofile.user)
|
||||
log(request.user.userprofile)
|
||||
return HttpResponseRedirect(reverse('work', args=(request.user.id,)))
|
||||
|
||||
|
||||
@ -167,8 +159,9 @@ def work_become_engineer(request):
|
||||
zenpy_user.custom_role_id = ZENDESK_ROLES['engineer']
|
||||
admin.users.update(zenpy_user)
|
||||
request.user.userprofile.role = "agent"
|
||||
request.user.userprofile.custom_role_id = ZENDESK_ROLES['engineer']
|
||||
request.user.userprofile.save()
|
||||
# log(request.user.userprofile.user)
|
||||
log(request.user.userprofile)
|
||||
return HttpResponseRedirect(reverse('work', args=(request.user.id,)))
|
||||
|
||||
|
||||
@ -200,10 +193,12 @@ class AdminPageView(LoginRequiredMixin, PermissionRequiredMixin, FormView):
|
||||
@staticmethod
|
||||
def make_engineers(users):
|
||||
[make_engineer(user) for user in users]
|
||||
# [log(user, self.request.user.userprofile) for user in users]
|
||||
|
||||
@staticmethod
|
||||
def make_light_agents(users):
|
||||
[make_light_agent(user) for user in users]
|
||||
# [log(user, self.request.user.userprofile) for user in users]
|
||||
|
||||
@staticmethod
|
||||
def count_users(users) -> tuple:
|
||||
@ -239,3 +234,31 @@ class CustomLoginView(LoginView):
|
||||
Отображение страницы авторизации пользователя
|
||||
"""
|
||||
form_class = CustomAuthenticationForm
|
||||
|
||||
|
||||
@login_required()
|
||||
def statistic_page(request):
|
||||
if not request.user.is_superuser:
|
||||
return redirect('index')
|
||||
context = {
|
||||
'pagename': 'страница статистики',
|
||||
'errors': list(),
|
||||
}
|
||||
if request.method == "POST":
|
||||
form = StatisticForm(request.POST)
|
||||
if form.is_valid():
|
||||
start_date, end_date = form.cleaned_data['range_start'], form.cleaned_data['range_end']
|
||||
interval, show = form.cleaned_data['interval'], form.cleaned_data['display_format']
|
||||
Data = StatisticData(start_date, end_date, form.cleaned_data['email'])
|
||||
Data.set_display(show)
|
||||
Data.set_interval(interval)
|
||||
stats = Data.get_statistic()
|
||||
if Data.errors:
|
||||
context['errors'] = Data.errors
|
||||
if Data.warnings:
|
||||
context['warnings'] = Data.warnings
|
||||
context['log_stats'] = stats if not context['errors'] else None
|
||||
if request.method == 'GET':
|
||||
form = StatisticForm()
|
||||
context['form'] = form
|
||||
return render(request, 'pages/stat.html', context)
|
||||
|
Loading…
x
Reference in New Issue
Block a user