add a delete button to the nets table

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

View File

@ -1,4 +1,5 @@
import django_tables2 as tables
from django_tables2.utils import A
from core.tables import CoreTable
@ -10,6 +11,11 @@ class NetsTable(CoreTable):
id = tables.Column(visible=False)
name = tables.Column('Net', linkify=True)
customer = tables.Column('Customer', linkify=True)
delete = tables.LinkColumn('net_delete',
text='delete',
args=[A('pk')], attrs={
'a': {'class': 'delete material-icons', }
})
class Meta(CoreTable.Meta):
model = Net

View File

@ -0,0 +1,16 @@
{% extends "core/base.html" %}
{% block section_title %}Delete net{% endblock %}
{% block content %}
<div class="row">
<form method="post">{% csrf_token %}
<p>Are you sure you want to delete the net "{{ object }}"?</p>
<button type="submit" class="btn btn-danger">Delete</button>
<a href="{% url 'nets' 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>/nets/', views.nets_table_view,
name='nets'),
path('net/<int:pk>/', views.net_detail_view, name='net'),
path('delete/net/<int:pk>/', views.NetDeleteView.as_view(),
name='net_delete'),
]

View File

@ -1,7 +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
from customers.decorators import customer_view_permission
@ -30,3 +32,10 @@ def net_detail_view(request, pk):
return render(request, 'nets/net_details.html',
{'table': table,
'net': net})
class NetDeleteView(LoginRequiredMixin, DeleteView):
model = Net
def get_success_url(self):
return reverse('nets', args=(self.object.customer.pk,))