diff --git a/src/fellchensammlung/templates/fellchensammlung/forms/form-animal.html b/src/fellchensammlung/templates/fellchensammlung/forms/form-animal.html
index e752a8d..85320cd 100644
--- a/src/fellchensammlung/templates/fellchensammlung/forms/form-animal.html
+++ b/src/fellchensammlung/templates/fellchensammlung/forms/form-animal.html
@@ -3,13 +3,13 @@
{% load widget_tweaks %}
{% block content %}
-
{{ form.name.data }}
+ {{ animal }}
{% endblock %}
\ No newline at end of file
diff --git a/src/fellchensammlung/templates/fellchensammlung/forms/form-delete-animal.html b/src/fellchensammlung/templates/fellchensammlung/forms/form-delete-animal.html
new file mode 100644
index 0000000..3181662
--- /dev/null
+++ b/src/fellchensammlung/templates/fellchensammlung/forms/form-delete-animal.html
@@ -0,0 +1,17 @@
+{% extends "fellchensammlung/base_bulma.html" %}
+{% load i18n %}
+{% load widget_tweaks %}
+
+{% block title %}
+ Löschen von {{ animal }} bestätigen
+{% endblock %}
+
+{% block content %}
+ Löschen von {{ animal }} bestätigen
+
+{% endblock %}
\ No newline at end of file
diff --git a/src/fellchensammlung/urls.py b/src/fellchensammlung/urls.py
index 459bf9e..f343923 100644
--- a/src/fellchensammlung/urls.py
+++ b/src/fellchensammlung/urls.py
@@ -24,6 +24,8 @@ urlpatterns = [
path("tier//", views.animal_detail, name="animal-detail"),
# ex: /animal/5/edit
path("tier//edit", views.animal_edit, name="animal-edit"),
+ # ex: /animal/5/delete
+ path("tier//delete", views.animal_delete, name="animal-delete"),
# ex: /animal/5/add-photo
path("tier//add-photo", views.add_photo_to_animal_bulma, name="animal-add-photo"),
# ex: /adoption_notice/7/
diff --git a/src/fellchensammlung/views.py b/src/fellchensammlung/views.py
index f1fdbf4..33bccde 100644
--- a/src/fellchensammlung/views.py
+++ b/src/fellchensammlung/views.py
@@ -389,7 +389,30 @@ def animal_edit(request, animal_id):
return redirect(reverse("adoption-notice-detail", args=[animal.adoption_notice.pk], ))
else:
form = AnimalForm(instance=animal)
- return render(request, 'fellchensammlung/forms/form-animal.html', context={"form": form})
+ return render(request, 'fellchensammlung/forms/form-animal.html',
+ context={"form": form, "animal": animal})
+
+
+@login_required
+def animal_delete(request, animal_id):
+ """
+ Shows a conformation page from which a user can delete an animal or go back to the adoption notice.
+ """
+ animal = Animal.objects.get(pk=animal_id)
+ # Only users that are mods or owners of the animal are allowed to edit it
+ fail_if_user_not_owner_or_trust_level(request.user, animal)
+ if request.method == 'POST':
+ if "delete" in request.POST:
+ # First delete related images, then animal
+ images = animal.get_photos()
+ for image in images:
+ image.delete()
+ animal.delete()
+ """Log"""
+ Log.objects.create(user=request.user, action="delete_animal",
+ text=f"{request.user} hat Tier {animal.pk} gelöscht")
+ return redirect(reverse("adoption-notice-detail", args=[animal.adoption_notice.pk], ))
+ return render(request, 'fellchensammlung/forms/form-delete-animal.html', context={"animal": animal})
def about_bulma(request):