diff --git a/mayan/apps/user_management/apps.py b/mayan/apps/user_management/apps.py index d155dc7554..99fd3b27d0 100644 --- a/mayan/apps/user_management/apps.py +++ b/mayan/apps/user_management/apps.py @@ -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',) diff --git a/mayan/apps/user_management/links.py b/mayan/apps/user_management/links.py index 1203cedea0..1efa0b7068 100644 --- a/mayan/apps/user_management/links.py +++ b/mayan/apps/user_management/links.py @@ -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' diff --git a/mayan/apps/user_management/urls.py b/mayan/apps/user_management/urls.py index 3602434c50..20fb32c150 100644 --- a/mayan/apps/user_management/urls.py +++ b/mayan/apps/user_management/urls.py @@ -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\d+)/delete/$', 'group_delete', + r'^group/(?P\d+)/delete/$', GroupDeleteView.as_view(), name='group_delete' ), - url( - r'^group/multiple/delete/$', 'group_multiple_delete', - name='group_multiple_delete' - ), url( r'^group/(?P\d+)/members/$', GroupMembersView.as_view(), name='group_members' diff --git a/mayan/apps/user_management/views.py b/mayan/apps/user_management/views.py index bde236bd03..0b0f46a434 100644 --- a/mayan/apps/user_management/views.py +++ b/mayan/apps/user_management/views.py @@ -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):