diff --git a/src/fellchensammlung/templates/fellchensammlung/forms/bulma-form-image.html b/src/fellchensammlung/templates/fellchensammlung/forms/bulma-form-image.html new file mode 100644 index 0000000..cb2c28e --- /dev/null +++ b/src/fellchensammlung/templates/fellchensammlung/forms/bulma-form-image.html @@ -0,0 +1,29 @@ +{% extends "fellchensammlung/base_bulma.html" %} + +{% load i18n %} +{% load widget_tweaks %} + +{% block content %} +
+ {% blocktranslate %} + Lade hier ein Foto hoch - wähle den Titel wie du willst und mach bitte eine Bildbeschreibung, + damit die Fotos auch für blinde und sehbehinderte Personen zugänglich sind. + {% endblocktranslate %} +

{% translate 'Anleitung für Bildbeschreibungen' %} +

+
+
+ {% csrf_token %} +
+ + {{ form.image|add_class:"input"|attr:"id:image" }} +
+
+ + {{ form.alt_text|add_class:"textarea"|attr:"id:alt-text"|attr:"rows:3" }} +
{{ form.alt_text.errors }}
+
+ +
+{% endblock %} \ No newline at end of file diff --git a/src/fellchensammlung/templates/fellchensammlung/partials/bulma-partial-animal-card.html b/src/fellchensammlung/templates/fellchensammlung/partials/bulma-partial-animal-card.html index 8858473..78c53e4 100644 --- a/src/fellchensammlung/templates/fellchensammlung/partials/bulma-partial-animal-card.html +++ b/src/fellchensammlung/templates/fellchensammlung/partials/bulma-partial-animal-card.html @@ -31,7 +31,7 @@ {% endif %} diff --git a/src/fellchensammlung/urls.py b/src/fellchensammlung/urls.py index d58c83b..41b968b 100644 --- a/src/fellchensammlung/urls.py +++ b/src/fellchensammlung/urls.py @@ -27,6 +27,7 @@ urlpatterns = [ path("tier//edit", views.animal_edit, name="animal-edit"), # ex: /animal/5/add-photo path("tier//add-photo", views.add_photo_to_animal, name="animal-add-photo"), + path("bulma/tier//add-photo", views.add_photo_to_animal_bulma, name="animal-add-photo-bulma"), # ex: /adoption_notice/7/ path("vermittlung//", views.adoption_notice_detail, name="adoption-notice-detail"), path("bulma/vermittlung//", views.adoption_notice_detail_bulma, name="adoption-notice-detail-bulma"), @@ -35,6 +36,8 @@ urlpatterns = [ # ex: /vermittlung/5/add-photo path("vermittlung//add-photo", views.add_photo_to_adoption_notice, name="adoption-notice-add-photo"), + path("bulma/vermittlung//add-photo", views.add_photo_to_adoption_notice_bulma, + name="adoption-notice-add-photo-bulma"), # ex: /adoption_notice/2/add-animal path("vermittlung//add-animal", views.adoption_notice_add_animal, name="adoption-notice-add-animal"), diff --git a/src/fellchensammlung/views.py b/src/fellchensammlung/views.py index 57900d4..b447df7 100644 --- a/src/fellchensammlung/views.py +++ b/src/fellchensammlung/views.py @@ -408,6 +408,38 @@ def add_photo_to_animal(request, animal_id): form = ImageForm(in_flow=True) return render(request, 'fellchensammlung/forms/form-image.html', {'form': form}) +@login_required +def add_photo_to_animal_bulma(request, animal_id): + animal = Animal.objects.get(id=animal_id) + # Only users that are mods or owners of the animal are allowed to add to it + fail_if_user_not_owner_or_trust_level(request.user, animal) + if request.method == 'POST': + form = ImageForm(request.POST, request.FILES) + + if form.is_valid(): + instance = form.save(commit=False) + instance.owner = request.user + instance.save() + + animal.photos.add(instance) + + """Log""" + Log.objects.create(user=request.user, action="add_photo_to_animal", + text=f"{request.user} hat Foto {instance.pk} zum Tier {animal.pk} hinzugefügt") + + if "save-and-add-another" in request.POST: + form = ImageForm(in_flow=True) + return render(request, 'fellchensammlung/forms/bulma-form-image.html', {'form': form}) + else: + return redirect(reverse("adoption-notice-detail-bulma", args=[animal.adoption_notice.pk], )) + else: + return render(request, 'fellchensammlung/forms/bulma-form-image.html', {'form': form}) + + else: + form = ImageForm(in_flow=True) + return render(request, 'fellchensammlung/forms/bulma-form-image.html', {'form': form}) + + @login_required def add_photo_to_adoption_notice(request, adoption_notice_id): @@ -436,6 +468,33 @@ def add_photo_to_adoption_notice(request, adoption_notice_id): form = ImageForm(in_flow=True) return render(request, 'fellchensammlung/forms/form-image.html', {'form': form}) +@login_required +def add_photo_to_adoption_notice_bulma(request, adoption_notice_id): + adoption_notice = AdoptionNotice.objects.get(id=adoption_notice_id) + # Only users that are mods or owners of the adoption notice are allowed to add to it + fail_if_user_not_owner_or_trust_level(request.user, adoption_notice) + if request.method == 'POST': + form = ImageForm(request.POST, request.FILES) + + if form.is_valid(): + instance = form.save(commit=False) + instance.owner = request.user + instance.save() + adoption_notice.photos.add(instance) + """Log""" + Log.objects.create(user=request.user, action="add_photo_to_animal", + text=f"{request.user} hat Foto {instance.pk} zur Vermittlung {adoption_notice.pk} hinzugefügt") + if "save-and-add-another" in request.POST: + form = ImageForm(in_flow=True) + return render(request, 'fellchensammlung/forms/bulma-form-image.html', {'form': form}) + else: + return redirect(reverse("adoption-notice-detail", args=[adoption_notice_id])) + else: + return render(request, 'fellchensammlung/forms/bulma-form-image.html', {'form': form}) + else: + form = ImageForm(in_flow=True) + return render(request, 'fellchensammlung/forms/bulma-form-image.html', {'form': form}) + @login_required def animal_edit(request, animal_id):