From 6fd81c3ccc00a667c9c01a58758b5290869a8d8c Mon Sep 17 00:00:00 2001 From: Sokurov Idar Date: Mon, 29 Mar 2021 21:40:13 +0300 Subject: [PATCH] marge statistic/backend and statistic/frontend --- main/forms.py | 59 ++++++-- main/models.py | 1 - main/templates/pages/stat.html | 49 ------- main/templates/pages/statistic.html | 106 ++++++++++++++ main/templates/statistic.html | 207 ---------------------------- main/views.py | 6 +- 6 files changed, 154 insertions(+), 274 deletions(-) delete mode 100644 main/templates/pages/stat.html create mode 100644 main/templates/pages/statistic.html delete mode 100644 main/templates/statistic.html diff --git a/main/forms.py b/main/forms.py index a8c2ec1..9bd09e0 100644 --- a/main/forms.py +++ b/main/forms.py @@ -2,7 +2,6 @@ from django import forms from django.contrib.auth.forms import AuthenticationForm from django_registration.forms import RegistrationFormUniqueEmail -from access_controller.settings import ZENDESK_ROLES from main.models import UserProfile @@ -15,6 +14,7 @@ class CustomRegistrationForm(RegistrationFormUniqueEmail): :param visible_fields.email: Поле для ввода email, зарегистирированного на Zendesk :type visible_fields.email: :class:`django_registration.forms.RegistrationFormUniqueEmail` """ + def __init__(self, *args, **kwargs) -> RegistrationFormUniqueEmail: super().__init__(*args, **kwargs) for visible in self.visible_fields(): @@ -68,29 +68,60 @@ class CustomAuthenticationForm(AuthenticationForm): } +INTERVAL_CHOICES = [ + ('days', 'Дни'), + ('months', 'Месяцы') +] +DISPLAY_CHOICES = [ + ('hours', 'Часы'), + ('days', 'Дни') +] + + class StatisticForm(forms.Form): email = forms.EmailField( label='Электроная почта', - ) - interval = forms.CharField( # TODO: Переделать под html страницу - label='Интервал работы', - ) - display_format = forms.CharField( # TODO: Переделать под html страницу - label='Формат отображения', - ) - range_start = forms.DateField( # TODO: Переделать под html страницу - label='Начало диапазона', - widget=forms.DateInput( + widget=forms.EmailInput( attrs={ - 'type': 'date', + 'placeholder': 'example@ngenix.ru', + 'class': 'form-control', + 'style': 'background-color:#f2f2f2;' } ), ) - range_end = forms.DateField( # TODO: Переделать под html страницу - label='Конец диапазона', + interval = forms.ChoiceField( + label='Выберите интервалы времени работы', + choices=INTERVAL_CHOICES, + widget=forms.RadioSelect( + attrs={ + 'class': 'btn-check', + } + ) + ) + display_format = forms.ChoiceField( + label='Выберите формат отображения', + choices=DISPLAY_CHOICES, + widget=forms.RadioSelect( + attrs={ + 'class': 'btn-check', + } + ) + ) + range_start = forms.DateField( + label='Начало статистики', widget=forms.DateInput( attrs={ 'type': 'date', + 'class': 'btn btn-secondary text-primary bg-white', + } + ), + ) + range_end = forms.DateField( + label='Конец статистики', + widget=forms.DateInput( + attrs={ + 'type': 'date', + 'class': 'btn btn-secondary text-primary bg-white', } ), ) diff --git a/main/models.py b/main/models.py index 112e29e..8880890 100644 --- a/main/models.py +++ b/main/models.py @@ -34,7 +34,6 @@ class RoleChangeLogs(models.Model): """Модель для логирования изменений ролей пользователя""" user = models.ForeignKey(to=User, on_delete=models.CASCADE, help_text='Пользователь, которому присвоили другую роль') - name = models.TextField(help_text='Имя пользователя') old_role = models.IntegerField(default=0, help_text='Старая роль') new_role = models.IntegerField(default=0, help_text='Присвоенная роль') change_time = models.DateTimeField(help_text='Дата и время изменения роли') diff --git a/main/templates/pages/stat.html b/main/templates/pages/stat.html deleted file mode 100644 index 9279123..0000000 --- a/main/templates/pages/stat.html +++ /dev/null @@ -1,49 +0,0 @@ -{% extends 'base/base.html' %} - -{% load static %} - -{% block title %}{{ pagename }}{% endblock %} - -{% block heading %} Пример страницы статистики(палками не бейти плиз){% endblock %} - -{% block extra_css %} - -{% endblock %} - -{% block content %} -
-
- {% csrf_token %} - {% for field in form %} - {{field.label}} - {{field}} -
- {% endfor %} - -
- - {%if form.errors%} - - {%endif%} - - {% for key,val in log_stats.items %} -

{{key}} | {{val}}

-
- {% endfor %} -
-{% endblock %} - diff --git a/main/templates/pages/statistic.html b/main/templates/pages/statistic.html new file mode 100644 index 0000000..9a9219b --- /dev/null +++ b/main/templates/pages/statistic.html @@ -0,0 +1,106 @@ +{% extends 'base/base.html' %} + +{% load static %} + +{% block title %}{{ pagename }}{% endblock %} + +{% block heading %} Страницы просмотра статистики{% endblock %} + +{% block content%} +
+
+
+ {% csrf_token %} +
+
+ {{ form.email.label }} +
+
+ {{ form.email }} +
+
+
+
+ {{ form.interval.label }} +
+
+ {% for radio in form.interval%} + {{ radio.tag }} + + {% endfor %} +
+
+
+
+ {{ form.display_format.label }} +
+
+ {% for radio in form.display_format%} + {{ radio.tag }} + + {% endfor %} +
+
+
+
+ {{ form.range_start.label}} +
+
+
+ {{ form.range_start}} +
+
+
+
+
+ {{ form.range_end.label}} +
+
+
+ {{ form.range_end}} +
+
+
+
+
+ +
+
+
+
+ + +
+ + + + + {% for date in log_stats.keys %} + + {% endfor %} + + + + + + {% for time in log_stats.values %} + + {% endfor %} + + +
Пользователи/Даты{{date}}
{{ form.email.value }}{{time}}
+
+
+{% endblock %} diff --git a/main/templates/statistic.html b/main/templates/statistic.html deleted file mode 100644 index 174182c..0000000 --- a/main/templates/statistic.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - - Statistic - - - - - - - - - - - - - - - - - -
- - -
-
-
-
-
-
-

Введите email пользователя

-
-
- -
-
-
-
-

Выберите интервалы времени работы

-
-
- - - - - -
-
-
-
-

Начало статистики

-
- -
-
-
-
- -
- -
-
-
-
-
-
-

Начало статистики

-
- -
-
-
- -
- -
-
-
-
-
- -
-
- -
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Пользователи/Даты05/01/2021-01/02/202101/02/2021-28/02/202101/03/2021-05/03/2021
keanu@gmail.com15211
vadim@mail.ru2153
example@ngenix.ru0194
-
-
- - -
- - - diff --git a/main/views.py b/main/views.py index cae5d90..1e35105 100644 --- a/main/views.py +++ b/main/views.py @@ -244,8 +244,6 @@ class UsersViewSet(viewsets.ReadOnlyModelViewSet): @login_required() def statistic_page(request): - if not request.user.is_superuser: - return redirect('index') context = { 'pagename': 'страница статистики', 'errors': list(), @@ -267,4 +265,6 @@ def statistic_page(request): if request.method == 'GET': form = StatisticForm() context['form'] = form - return render(request, 'pages/stat.html', context) + a = form['interval'] + print(form['interval'].auto_id,form['interval'].id_for_label) + return render(request, 'pages/statistic.html', context)