diff --git a/main/extra_func.py b/main/extra_func.py index c9e72cb..bb3ade5 100644 --- a/main/extra_func.py +++ b/main/extra_func.py @@ -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 diff --git a/main/views.py b/main/views.py index 36365f2..4d1a9a5 100644 --- a/main/views.py +++ b/main/views.py @@ -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)