Merge branch 'develop' of https://gitlab.informatics.ru/2020-2021/online/s101/group-02/access_controller into develop
This commit is contained in:
commit
d451ed15fe
@ -44,7 +44,7 @@ sudo apt install make
|
|||||||
pip install --upgrade pip
|
pip install --upgrade pip
|
||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
./manage.py migrate
|
./manage.py migrate
|
||||||
./manage.py shell -c "from django.contrib.auth import get_user_model; get_user_model().objects.create_superuser('vasya', '1@abc.net', 'promprog')"
|
./manage.py loaddata data.json
|
||||||
./manage.py runserver
|
./manage.py runserver
|
||||||
```
|
```
|
||||||
Создать токен
|
Создать токен
|
||||||
|
@ -191,6 +191,8 @@ ZENDESK_GROUPS = {
|
|||||||
|
|
||||||
SOLVED_TICKETS_EMAIL = 'd.krikov@ngenix.net'
|
SOLVED_TICKETS_EMAIL = 'd.krikov@ngenix.net'
|
||||||
|
|
||||||
|
ZENDESK_MAX_AGENTS = 3
|
||||||
|
|
||||||
REST_FRAMEWORK = {
|
REST_FRAMEWORK = {
|
||||||
# Use Django's standard `django.contrib.auth` permissions,
|
# Use Django's standard `django.contrib.auth` permissions,
|
||||||
# or allow read-only access for unauthenticated users.
|
# or allow read-only access for unauthenticated users.
|
||||||
@ -200,4 +202,3 @@ REST_FRAMEWORK = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ONE_DAY = 12 # Количество часов в 1 рабочем дне
|
ONE_DAY = 12 # Количество часов в 1 рабочем дне
|
||||||
|
|
||||||
|
@ -443,7 +443,7 @@ class StatisticData:
|
|||||||
if first_log.old_role == ROLES['engineer']:
|
if first_log.old_role == ROLES['engineer']:
|
||||||
self.statistic[first_log.change_time.date()] += get_timedelta(first_log).total_seconds()
|
self.statistic[first_log.change_time.date()] += get_timedelta(first_log).total_seconds()
|
||||||
|
|
||||||
if last_log.new_role == ROLES['engineer']:
|
if last_log.new_role == ROLES['engineer']: #TODO отдельная функция
|
||||||
self.fill_daterange(last_log.change_time.date() + timedelta(days=1), self.end_date + timedelta(days=1))
|
self.fill_daterange(last_log.change_time.date() + timedelta(days=1), self.end_date + timedelta(days=1))
|
||||||
if last_log.change_time.date() == timezone.now().date():
|
if last_log.change_time.date() == timezone.now().date():
|
||||||
self.statistic[last_log.change_time.date()] += (
|
self.statistic[last_log.change_time.date()] += (
|
||||||
@ -455,7 +455,7 @@ class StatisticData:
|
|||||||
if self.end_date == timezone.now().date():
|
if self.end_date == timezone.now().date():
|
||||||
self.statistic[self.end_date] = get_timedelta(None, timezone.now().time()).total_seconds()
|
self.statistic[self.end_date] = get_timedelta(None, timezone.now().time()).total_seconds()
|
||||||
|
|
||||||
for log_index in range(len(self.data) - 1):
|
for log_index in range(len(self.data) - 1): #TODO отдельная функция
|
||||||
if self.data[log_index].new_role == ROLES['engineer']:
|
if self.data[log_index].new_role == ROLES['engineer']:
|
||||||
current_log, next_log = self.data[log_index], self.data[log_index + 1]
|
current_log, next_log = self.data[log_index], self.data[log_index + 1]
|
||||||
if current_log.change_time.date() != next_log.change_time.date():
|
if current_log.change_time.date() != next_log.change_time.date():
|
||||||
|
@ -20,6 +20,10 @@
|
|||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="container-md">
|
<div class="container-md">
|
||||||
|
|
||||||
|
<div class="new-section">
|
||||||
|
<p class="row page-description">Свободных Мест: {{ licences_remaining }}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
{% block form %}
|
{% block form %}
|
||||||
<form method="post">
|
<form method="post">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
<div class="container-md">
|
<div class="container-md">
|
||||||
|
|
||||||
<div class="new-section">
|
<div class="new-section">
|
||||||
<p class="row page-description">Основаная информация о странице</p>
|
<p class="row page-description">Свободных Мест: {{ licences_remaining }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row justify-content-center new-section">
|
<div class="row justify-content-center new-section">
|
||||||
|
@ -19,7 +19,7 @@ from rest_framework import viewsets
|
|||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from zenpy.lib.api_objects import User as ZenpyUser
|
from zenpy.lib.api_objects import User as ZenpyUser
|
||||||
|
|
||||||
from access_controller.settings import EMAIL_HOST_USER, ZENDESK_ROLES
|
from access_controller.settings import EMAIL_HOST_USER, ZENDESK_ROLES, ZENDESK_MAX_AGENTS
|
||||||
from main.extra_func import ZendeskAdmin
|
from main.extra_func import ZendeskAdmin
|
||||||
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, get_users_list, update_users_in_model, count_users, \
|
make_engineer, make_light_agent, get_users_list, update_users_in_model, count_users, \
|
||||||
@ -131,6 +131,7 @@ def work_page(request, id):
|
|||||||
context = {
|
context = {
|
||||||
'engineers': engineers,
|
'engineers': engineers,
|
||||||
'agents': light_agents,
|
'agents': light_agents,
|
||||||
|
'licences_remaining': max(0, ZENDESK_MAX_AGENTS - len(engineers)),
|
||||||
'pagename': 'Управление правами'
|
'pagename': 'Управление правами'
|
||||||
}
|
}
|
||||||
return render(request, 'pages/work.html', context)
|
return render(request, 'pages/work.html', context)
|
||||||
@ -203,6 +204,7 @@ class AdminPageView(LoginRequiredMixin, PermissionRequiredMixin, FormView):
|
|||||||
UserProfile, role='agent')
|
UserProfile, role='agent')
|
||||||
context['users'] = users
|
context['users'] = users
|
||||||
context['engineers'], context['light_agents'] = count_users(get_users_list())
|
context['engineers'], context['light_agents'] = count_users(get_users_list())
|
||||||
|
context['licences_remaining'] = max(0, ZENDESK_MAX_AGENTS - context['engineers'])
|
||||||
return context # TODO: need to get profile page url
|
return context # TODO: need to get profile page url
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user