Update group delete view to CBVs. Remove multiple group delete view.

This commit is contained in:
Roberto Rosario
2015-08-24 20:55:22 -04:00
parent 8481802b23
commit f54c0d5058
4 changed files with 18 additions and 71 deletions

View File

@@ -15,10 +15,10 @@ from rest_api.classes import APIEndPoint
from .links import (
link_group_add, link_group_delete, link_group_edit, link_group_list,
link_group_members, link_group_multiple_delete, link_group_setup,
link_user_add, link_user_delete, link_user_edit, link_user_groups,
link_user_list, link_user_multiple_delete,
link_user_multiple_set_password, link_user_set_password, link_user_setup
link_group_members, link_group_setup, link_user_add, link_user_delete,
link_user_edit, link_user_groups, link_user_list,
link_user_multiple_delete, link_user_multiple_set_password,
link_user_set_password, link_user_setup
)
@@ -64,10 +64,6 @@ class UserManagementApp(MayanAppConfig):
)
)
menu_multi_item.bind_links(
links=(link_group_multiple_delete,),
sources=('user_management:group_list',)
)
menu_multi_item.bind_links(
links=(link_user_multiple_set_password, link_user_multiple_delete),
sources=('user_management:user_list',)

View File

@@ -30,10 +30,6 @@ link_group_members = Link(
permissions=(permission_group_edit,), text=_('Members'),
view='user_management:group_members', args='object.id'
)
link_group_multiple_delete = Link(
permissions=(permission_group_delete,), text=_('Delete'),
view='user_management:group_multiple_delete'
)
link_group_setup = Link(
icon='fa fa-group', permissions=(permission_group_view,), text=_('Groups'),
view='user_management:group_list'

View File

@@ -7,8 +7,8 @@ from .api_views import (
APIUserView
)
from .views import (
GroupCreateView, GroupEditView, GroupListView, GroupMembersView,
UserGroupsView, UserListView
GroupCreateView, GroupDeleteView, GroupEditView, GroupListView,
GroupMembersView, UserGroupsView, UserListView
)
urlpatterns = patterns(
@@ -20,13 +20,9 @@ urlpatterns = patterns(
name='group_edit'
),
url(
r'^group/(?P<group_id>\d+)/delete/$', 'group_delete',
r'^group/(?P<pk>\d+)/delete/$', GroupDeleteView.as_view(),
name='group_delete'
),
url(
r'^group/multiple/delete/$', 'group_multiple_delete',
name='group_multiple_delete'
),
url(
r'^group/(?P<pk>\d+)/members/$', GroupMembersView.as_view(),
name='group_members'

View File

@@ -11,8 +11,8 @@ from django.template import RequestContext
from django.utils.translation import ugettext_lazy as _
from common.views import (
AssignRemoveView, SingleObjectCreateView, SingleObjectEditView,
SingleObjectListView
AssignRemoveView, SingleObjectCreateView, SingleObjectDeleteView,
SingleObjectEditView, SingleObjectListView
)
from permissions import Permission
@@ -322,57 +322,16 @@ class GroupListView(SingleObjectListView):
view_permission = permission_group_view
def group_delete(request, group_id=None, group_id_list=None):
Permission.check_permissions(request.user, (permission_group_delete,))
post_action_redirect = None
class GroupDeleteView(SingleObjectDeleteView):
model = Group
post_action_redirect = reverse_lazy('user_management:group_list')
view_permission = permission_group_delete
if group_id:
groups = [get_object_or_404(Group, pk=group_id)]
post_action_redirect = reverse('user_management:group_list')
elif group_id_list:
groups = [
get_object_or_404(Group, pk=group_id) for group_id in group_id_list.split(',')
]
else:
messages.error(request, _('Must provide at least one group.'))
return HttpResponseRedirect(request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))
previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))))
next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))))
if request.method == 'POST':
for group in groups:
try:
group.delete()
messages.success(request, _('Group "%s" deleted successfully.') % group)
except Exception as exception:
messages.error(request, _('Error deleting group "%(group)s": %(error)s') % {
'group': group, 'error': exception
})
return HttpResponseRedirect(next)
context = {
'delete_view': True,
'previous': previous,
'next': next,
}
if len(groups) == 1:
context['object'] = groups[0]
context['title'] = _('Delete the group: %s?') % ', '.join([unicode(d) for d in groups])
elif len(groups) > 1:
context['title'] = _('Delete the groups: %s?') % ', '.join([unicode(d) for d in groups])
return render_to_response(
'appearance/generic_confirm.html', context,
context_instance=RequestContext(request)
)
def group_multiple_delete(request):
return group_delete(
request, group_id_list=request.GET.get('id_list', [])
)
def get_extra_context(self):
return {
'object': self.get_object(),
'title': _('Delete the group: %s?') % self.get_object(),
}
class GroupMembersView(AssignRemoveView):