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 }}

{% csrf_token %} {{ form }} - {% translate "Löschen" %} + {% translate "Löschen" %}
{% 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

+
+ {% csrf_token %} + + {% translate "Zurück (nicht löschen)" %} + +
+{% 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):