Update group delete view to CBVs. Remove multiple group delete view.
This commit is contained in:
@@ -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',)
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user