Merge remote-tracking branch 'origin/feature/logging/func' into feature/logging/func

This commit is contained in:
Timofey Mazurov 2021-03-15 19:38:25 +03:00
commit 644f4de1e9
2 changed files with 25 additions and 41 deletions

View File

@ -3,6 +3,7 @@ import os
from datetime import timedelta, datetime, date
from django.contrib.auth.models import User
from django.utils import timezone
from zenpy import Zenpy
from zenpy.lib.exception import APIException

View File

@ -1,29 +1,38 @@
import logging
import os
from datetime import datetime
from django.contrib.auth.decorators import login_required
from django.contrib.auth.forms import PasswordResetForm
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 django_registration.views import RegistrationView
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.lib.api_objects import User as ZenpyUser
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
from main.forms import AdminPageUsers, CustomRegistrationForm, CustomAuthenticationForm, StatisticForm
from .models import UserProfile
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,
)
class CustomRegistrationView(RegistrationView):
"""
@ -102,6 +111,7 @@ def profile_page(request: WSGIRequest) -> HttpResponse:
'profile': user_profile,
'pagename': 'Страница профиля'
}
log(request.user)
return render(request, 'pages/profile.html', context)
@ -141,12 +151,12 @@ 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.save()
# log(request.user.userprofile.user)
return HttpResponseRedirect(reverse('work', args=(request.user.id,)))
@ -158,6 +168,7 @@ def work_become_engineer(request):
admin.users.update(zenpy_user)
request.user.userprofile.role = "agent"
request.user.userprofile.save()
# log(request.user.userprofile.user)
return HttpResponseRedirect(reverse('work', args=(request.user.id,)))
@ -228,31 +239,3 @@ 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)