AleksandrKosmylev/python-project-52

View on GitHub
task_manager/users/views.py

Summary

Maintainability
A
3 hrs
Test Coverage
A
100%
from task_manager.users.forms import UsersForm
from django.views.generic import ListView, CreateView, UpdateView, DeleteView
from django.contrib.messages.views import SuccessMessageMixin
from django.urls import reverse_lazy
from django.utils.translation import gettext as _
from task_manager.users.models import CustomUser
from task_manager.mixins import CustomLoginRequiredMixin
from task_manager.users.mixins import AccessCheck


class IndexView(ListView):
    model = CustomUser
    template_name = 'users/users_list.html'


class UserCreateView(SuccessMessageMixin, CreateView):
    model = CustomUser
    form_class = UsersForm
    template_name = 'form.html'
    extra_context = {
        'title': _('Registration'),
        'btn_text': _('Sign up'),
        'btn_class': 'btn-primary'}
    success_url = reverse_lazy('login')
    success_message = _('Successfully registered!')


class UserUpdateView(CustomLoginRequiredMixin,
                     AccessCheck,
                     SuccessMessageMixin,
                     UpdateView):
    model = CustomUser
    form_class = UsersForm
    extra_context = {
        'title': _('Edit user'),
        'btn_text': _('Update'),
        'btn_class': 'btn-primary'}
    template_name = 'form.html'
    success_url = reverse_lazy('users_index')
    success_message = _('Successfully updated!')


class UserDeleteView(CustomLoginRequiredMixin,
                     AccessCheck,
                     SuccessMessageMixin,
                     DeleteView):
    model = CustomUser
    extra_context = {
        'description': _('Are you sure you want to delete'),
        'title': _('Delete user'),
        'btn_text': _('Yes, delete'),
        'btn_class': 'btn-danger'}
    template_name = 'form.html'
    success_url = reverse_lazy('users_index')
    success_message = _("User successfully deleted!")