diff --git a/access_controller/urls.py b/access_controller/urls.py index 45d815b..6554616 100644 --- a/access_controller/urls.py +++ b/access_controller/urls.py @@ -14,15 +14,12 @@ Including another URLconf 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin -from django.contrib.auth.forms import AuthenticationForm -from django.contrib.auth.views import LoginView from django.contrib.auth import views as auth_views from django.urls import path, include -from access_controller import settings -from access_controller.settings import DEBUG -from main.views import main_page, profile_page, CustomRegistrationView, work_page, work_hand_over, work_become_engineer, AdminPageView from main.views import main_page, profile_page, CustomRegistrationView, CustomLoginView +from main.views import work_page, work_hand_over, work_become_engineer, \ + AdminPageView, statistic_page urlpatterns = [ path('admin/', admin.site.urls, name='admin'), @@ -37,7 +34,8 @@ urlpatterns = [ path('work/become_engineer/', work_become_engineer, name="work_become_engineer"), path('accounts/', include('django_registration.backends.activation.urls')), path('accounts/login/', include('django.contrib.auth.urls')), - path('control/', AdminPageView.as_view(), name='control') + path('control/', AdminPageView.as_view(), name='control'), + path('statistic/', statistic_page, name='statistic') ] urlpatterns += [ diff --git a/main/forms.py b/main/forms.py index e69de1d..ff6a9d3 100644 --- a/main/forms.py +++ b/main/forms.py @@ -10,6 +10,7 @@ class CustomRegistrationForm(RegistrationFormUniqueEmail): Форма для регистрации :class:`django_registration.forms.RegistrationFormUniqueEmail` с добавлением bootstrap-класса 'form-control' """ + def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) for visible in self.visible_fields(): @@ -18,7 +19,7 @@ class CustomRegistrationForm(RegistrationFormUniqueEmail): visible.field.widget.attrs['class'] += 'form-control' else: visible.field.widget.attrs['class'] = 'form-control' - if visible.html_name !='email': + if visible.html_name != 'email': visible.field.required = False class Meta(RegistrationFormUniqueEmail.Meta): @@ -57,3 +58,28 @@ class CustomAuthenticationForm(AuthenticationForm): , 'inactive': "Аккаунт не активен.", } + + +class StatisticForm(forms.Form): + email = forms.EmailField( + label='Электроная почта', + ) + inter = forms.CharField( # TODO: Переделать под html страницу + label='Выбор интервала', + ) + dio_start = forms.DateField( # TODO: Переделать под html страницу + label='Начало диапазона', + widget=forms.DateInput( + attrs={ + 'type': 'date', + } + ), + ) + dio_end = forms.DateField( # TODO: Переделать под html страницу + label='Конец диапазона', + widget=forms.DateInput( + attrs={ + 'type': 'date', + } + ), + ) diff --git a/main/migrations/0005_auto_20210304_0119.py b/main/migrations/0005_auto_20210304_0119.py new file mode 100644 index 0000000..361ec25 --- /dev/null +++ b/main/migrations/0005_auto_20210304_0119.py @@ -0,0 +1,67 @@ +# Generated by Django 3.1.6 on 2021-03-03 22:19 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('main', '0004_rolechangelogs'), + ] + + operations = [ + migrations.AddField( + model_name='rolechangelogs', + name='old_role', + field=models.TextField(default='agent', help_text='Старая роль'), + preserve_default=False, + ), + migrations.AlterField( + model_name='rolechangelogs', + name='change_time', + field=models.DateTimeField(help_text='Дата и время изменения роли'), + ), + migrations.AlterField( + model_name='rolechangelogs', + name='changed_by', + field=models.ForeignKey(help_text='Кем была изменена роль', on_delete=django.db.models.deletion.CASCADE, related_name='changed_by', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='rolechangelogs', + name='name', + field=models.TextField(help_text='Имя пользователя'), + ), + migrations.AlterField( + model_name='rolechangelogs', + name='new_role', + field=models.TextField(help_text='Присвоенная роль'), + ), + migrations.AlterField( + model_name='rolechangelogs', + name='user', + field=models.ForeignKey(help_text='Пользователь, которому присвоили другую роль', on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='userprofile', + name='image', + field=models.URLField(blank=True, help_text='Аватарка', null=True), + ), + migrations.AlterField( + model_name='userprofile', + name='name', + field=models.CharField(default='None', help_text='Имя пользователя на нашем сайте', max_length=100), + ), + migrations.AlterField( + model_name='userprofile', + name='role', + field=models.CharField(default='None', help_text='Код роли пользователя', max_length=100), + ), + migrations.AlterField( + model_name='userprofile', + name='user', + field=models.OneToOneField(help_text='Пользователь', on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/main/models.py b/main/models.py index 8665570..13bd55e 100644 --- a/main/models.py +++ b/main/models.py @@ -34,6 +34,7 @@ class RoleChangeLogs(models.Model): """ user = models.ForeignKey(to=User, on_delete=models.CASCADE, help_text='Пользователь, которому присвоили другую роль') name = models.TextField(help_text='Имя пользователя') + old_role = models.TextField(help_text='Старая роль') new_role = models.TextField(help_text='Присвоенная роль') change_time = models.DateTimeField(help_text='Дата и время изменения роли') changed_by = models.ForeignKey(to=User, on_delete=models.CASCADE, related_name='changed_by', help_text='Кем была изменена роль') diff --git a/main/templates/pages/stat.html b/main/templates/pages/stat.html new file mode 100644 index 0000000..1ac47d7 --- /dev/null +++ b/main/templates/pages/stat.html @@ -0,0 +1,26 @@ +{% extends 'base/base.html' %} + +{% load static %} + +{% block title %}{{ pagename }}{% endblock %} + +{% block heading %}Статистика{% endblock %} + +{% block extra_css %} + +{% endblock %} + +{% block content %} +