You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

52 lines
1.9 KiB

from django.views.generic import ListView, UpdateView, CreateView
from django.contrib.auth.decorators import login_required
from django.utils.translation import gettext_lazy as _
from django.utils.decorators import method_decorator
from django.urls import reverse_lazy
from django.contrib import messages
from django.conf import settings
from . import models
from . import forms
@method_decorator(login_required, name='dispatch')
class GroupListView(ListView):
http_method_names = ('get',)
paginate_by = getattr(settings, 'PAGINATION_ITEMS_PER_PAGE', 10)
template_name = 'group_app/group_list.html'
model = models.Group
context_object_name = 'groups'
@method_decorator(login_required, name='dispatch')
class EditGroupView(UpdateView):
http_method_names = ('get', 'post')
template_name = 'group_app/edit_group.html'
form_class = forms.GroupForm
model = models.Group
pk_url_kwarg = 'group_id'
success_url = reverse_lazy('group_app:group_list')
def form_valid(self, form):
messages.success(self.request, _('Group changes has been saved'))
return super(EditGroupView, self).form_valid(form)
def form_invalid(self, form):
messages.success(self.request, _('Please fix form errors'))
return super(EditGroupView, self).form_invalid(form)
@method_decorator(login_required, name='dispatch')
class AddGroupView(CreateView):
http_method_names = ('get', 'post')
template_name = 'group_app/add_group.html'
form_class = forms.GroupForm
success_url = reverse_lazy('group_app:group_list')
def form_valid(self, form):
messages.success(self.request, _('New group are created'))
return super(AddGroupView, self).form_valid(form)
def form_invalid(self, form):
messages.success(self.request, _('Please fix form errors'))
return super(AddGroupView, self).form_invalid(form)