From 16fc66385ffa905dfdabee713170de6a3b89c6ff Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sun, 28 Jun 2020 19:12:49 +0200 Subject: [PATCH] add form to delete a ComputerSoftwareRelation --- computers/templates/computers/computer_details.html | 4 ++-- computers/tests/test_computer_form_views.py | 13 +++++++++++++ computers/urls.py | 3 +++ computers/views.py | 8 ++++++++ 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/computers/templates/computers/computer_details.html b/computers/templates/computers/computer_details.html index 6015a07..aad3029 100644 --- a/computers/templates/computers/computer_details.html +++ b/computers/templates/computers/computer_details.html @@ -51,8 +51,8 @@

Software

add

diff --git a/computers/tests/test_computer_form_views.py b/computers/tests/test_computer_form_views.py index 93fa009..3363702 100644 --- a/computers/tests/test_computer_form_views.py +++ b/computers/tests/test_computer_form_views.py @@ -178,3 +178,16 @@ def test_disk_relation_delete_view(create_admin_user): url = '/delete/disk-relation/{}/'.format(disk_relation.id) response = client.post(url) assert response.status_code == 302 + + +def test_software_relation_delete_view(create_admin_user): + create_admin_user() + client = Client() + client.login(username="pharma-admin", password="password") + computer = mixer.blend('computers.Computer', customer=mixer.SELECT) + software = mixer.blend('softwares.Software') + software_relation = mixer.blend('computers.ComputerSoftwareRelation', + computer=computer, software=software) + url = '/delete/software-relation/{}/'.format(software_relation.id) + response = client.post(url) + assert response.status_code == 302 diff --git a/computers/urls.py b/computers/urls.py index c893249..fad56a2 100644 --- a/computers/urls.py +++ b/computers/urls.py @@ -47,4 +47,7 @@ urlpatterns = [ path('computer//create/software-relation/', views.ComputerSoftwareRelationCreateView.as_view(), name='software_relation_create'), + path('delete/software-relation//', + views.ComputerSoftwareRelationDeleteView.as_view(), + name='software_relation_delete'), ] diff --git a/computers/views.py b/computers/views.py index cf9b45d..e2d9eae 100644 --- a/computers/views.py +++ b/computers/views.py @@ -266,3 +266,11 @@ class ComputerSoftwareRelationCreateView(LoginRequiredMixin, CreateView): 'computer': self.computer, } + +class ComputerSoftwareRelationDeleteView(LoginRequiredMixin, DeleteView): + model = ComputerSoftwareRelation + template_name = 'computers/relation_confirm_delete.html' + + def get_success_url(self): + return reverse('computer', args=(self.object.computer.pk,)) +