add a delete button to the users table

This commit is contained in:
Andreas Zweili 2020-08-03 17:14:54 +02:00
parent bad049a521
commit 1ddca51d77
4 changed files with 34 additions and 0 deletions

View File

@ -1,4 +1,5 @@
import django_tables2 as tables
from django_tables2.utils import A
from core.tables import CoreTable
@ -11,6 +12,11 @@ class UsersTable(CoreTable):
customer = tables.Column('Customer', linkify=True)
ad_groups = tables.ManyToManyColumn()
mail_groups = tables.ManyToManyColumn()
delete = tables.LinkColumn('user_delete',
text='delete',
args=[A('pk')], attrs={
'a': {'class': 'delete material-icons', }
})
class Meta(CoreTable.Meta):
model = User

View File

@ -0,0 +1,16 @@
{% extends "core/base.html" %}
{% block section_title %}Delete user{% endblock %}
{% block content %}
<div class="row">
<form method="post">{% csrf_token %}
<p>Are you sure you want to delete the user "{{ object }}"?</p>
<button type="submit" class="btn btn-danger">Delete</button>
<a href="{% url 'users' object.customer.pk %}" class="btn btn-primary">Cancel</a>
<input type="hidden" id="previous_page" name="previous_page" value="/previous/page/url">
</form>
<script>
prev = document.getElementById("previous_page");
prev.value = document.referrer;
</script>
</div>
{% endblock %}

View File

@ -6,4 +6,6 @@ urlpatterns = [
path('customer/<int:pk>/users/', views.users_table_view,
name='users'),
path('user/<int:pk>/', views.user_detail_view, name='user'),
path('delete/user/<int:pk>/', views.UserDeleteView.as_view(),
name='user_delete')
]

View File

@ -1,6 +1,9 @@
from django.contrib.auth.decorators import login_required
from django.contrib.auth.mixins import LoginRequiredMixin
from django.shortcuts import get_object_or_404
from django.shortcuts import render
from django.urls import reverse
from django.views.generic import DeleteView
from django_tables2 import RequestConfig
@ -40,3 +43,10 @@ def user_detail_view(request, pk):
'mail_alias': mail_alias,
'computers': computers,
'licenses': licenses})
class UserDeleteView(LoginRequiredMixin, DeleteView):
model = User
def get_success_url(self):
return reverse('users', args=(self.object.customer.pk,))