Basic group view and permissions management on the pages

This commit is contained in:
Skia
2015-11-26 17:40:31 +01:00
parent 48e3f88b87
commit b19ec084b6
11 changed files with 119 additions and 4 deletions

View File

@ -1,3 +1,4 @@
from .user import *
from .page import *
from .site import *
from .group import *

View File

@ -4,7 +4,7 @@ from django.contrib.auth import logout, login, authenticate
from django.forms import CheckboxSelectMultiple
import logging
from core.models import User, Page
from core.models import User, Page, Group
class RegisteringForm(UserCreationForm):
error_css_class = 'error'
@ -33,3 +33,13 @@ class UserGroupsForm(forms.ModelForm):
'user_permissions': CheckboxSelectMultiple,
}
class GroupEditForm(forms.ModelForm):
error_css_class = 'error'
required_css_class = 'required'
class Meta:
model = Group
fields = ['name', 'permissions',]
widgets = {
'permissions': CheckboxSelectMultiple,
}

19
core/views/group.py Normal file
View File

@ -0,0 +1,19 @@
from django.views.generic.edit import UpdateView
from django.views.generic import ListView
from core.models import Group
from core.views.forms import GroupEditForm
class GroupListView(ListView):
"""
Displays the group list
"""
model = Group
template_name = "core/group_list.html"
class GroupEditView(UpdateView):
model = Group
pk_url_kwarg = "group_id"
template_name = "core/group_edit.html"
form_class = GroupEditForm

View File

@ -2,6 +2,8 @@
from django.shortcuts import render, redirect, get_object_or_404
from django.views.generic import ListView, DetailView
from django.views.generic.edit import UpdateView
from django.contrib.auth.decorators import login_required, permission_required
from django.utils.decorators import method_decorator
from core.models import Page
@ -15,6 +17,10 @@ class PageListView(ListView):
class PageView(DetailView):
model = Page
@method_decorator(permission_required('core.can_view'))
def dispatch(self, *args, **kwargs):
return super(PageView, self).dispatch(*args, **kwargs)
def get_object(self):
self.page = Page.get_page_by_full_name(self.kwargs['page_name'])
return self.page