Convert the role creation, editing and deletion views to use the new class based views

This commit is contained in:
Roberto Rosario
2014-06-26 18:01:56 -04:00
parent 620dee80f4
commit c6a5ba8d3b
2 changed files with 41 additions and 15 deletions

View File

@@ -1,11 +1,15 @@
from __future__ import absolute_import
from django.conf.urls import patterns, url
from .views import RoleCreateView, RoleDeleteView, RoleEditView
urlpatterns = patterns('permissions.views',
url(r'^role/list/$', 'role_list', (), 'role_list'),
url(r'^role/create/$', 'role_create', (), 'role_create'),
url(r'^role/create/$', RoleCreateView.as_view(), name='role_create'),
url(r'^role/(?P<role_id>\d+)/permissions/$', 'role_permissions', (), 'role_permissions'),
url(r'^role/(?P<role_id>\d+)/edit/$', 'role_edit', (), 'role_edit'),
url(r'^role/(?P<role_id>\d+)/delete/$', 'role_delete', (), 'role_delete'),
url(r'^role/(?P<pk>\d+)/edit/$', RoleEditView.as_view(), name='role_edit'),
url(r'^role/(?P<pk>\d+)/delete/$', RoleDeleteView.as_view(), name='role_delete'),
url(r'^role/(?P<role_id>\d+)/members/$', 'role_members', (), 'role_members'),
url(r'^permissions/multiple/grant/$', 'permission_grant', (), 'permission_multiple_grant'),

View File

@@ -6,7 +6,7 @@ import operator
from django.contrib import messages
from django.contrib.auth.models import User, Group
from django.contrib.contenttypes.models import ContentType
from django.core.urlresolvers import reverse
from django.core.urlresolvers import reverse, reverse_lazy
from django.http import HttpResponseRedirect, Http404
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
@@ -14,10 +14,9 @@ from django.utils.simplejson import loads
from django.utils.translation import ugettext_lazy as _
from acls.classes import EncapsulatedObject
from common.backport.generic.list_detail import object_list
from common.backport.generic.create_update import create_object, delete_object, update_object
from common.models import AnonymousUserSingleton
from common.views import assign_remove
from common.views import SingleObjectCreateView, SingleObjectDeleteView, SingleObjectEditView
from common.utils import encapsulate, get_object_name
from common.widgets import two_state_template
@@ -28,18 +27,41 @@ from .permissions import (PERMISSION_ROLE_VIEW, PERMISSION_ROLE_EDIT,
PERMISSION_PERMISSION_GRANT, PERMISSION_PERMISSION_REVOKE)
class RoleCreateView(SingleObjectCreateView):
extra_context = {'object_name': _(u'role')}
form_class = RoleForm
model = Role
permissions_required = [PERMISSION_ROLE_CREATE]
success_url = reverse_lazy('role_list')
class RoleDeleteView(SingleObjectDeleteView):
model = Role
permissions_required = [PERMISSION_ROLE_DELETE]
extra_context = {
'object_name': _(u'role'),
'form_icon': u'medal_gold_delete.png'
}
success_url = reverse_lazy('role_list')
class RoleEditView(SingleObjectEditView):
extra_context={'object_name': _(u'role')}
model=Role
permissions_required=[PERMISSION_ROLE_EDIT]
def role_list(request):
Permission.objects.check_permissions(request.user, [PERMISSION_ROLE_VIEW])
return object_list(
request,
queryset=Role.objects.all(),
template_name='generic_list.html',
extra_context={
'title': _(u'roles'),
'hide_link': True,
},
)
context = {
'object_list': Role.objects.all(),
'title': _(u'roles'),
'hide_link': True,
}
return render_to_response('generic_list.html', context,
context_instance=RequestContext(request))
def role_permissions(request, role_id):