feat: Add image upload form in bulma
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
{% extends "fellchensammlung/base_bulma.html" %}
|
||||
|
||||
{% load i18n %}
|
||||
{% load widget_tweaks %}
|
||||
|
||||
{% block content %}
|
||||
<div>
|
||||
{% 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 %}
|
||||
<p><a class="button"
|
||||
href="https://www.dbsv.org/bildbeschreibung-4-regeln.html">{% translate 'Anleitung für Bildbeschreibungen' %}</a>
|
||||
</p>
|
||||
</div>
|
||||
<form method="post" enctype="multipart/form-data">
|
||||
{% csrf_token %}
|
||||
<div class="field">
|
||||
<label class="label" for="image">{{ form.image.label }}</label>
|
||||
{{ form.image|add_class:"input"|attr:"id:image" }}
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" for="alt-text">{{ form.alt_text.label }}</label>
|
||||
{{ form.alt_text|add_class:"textarea"|attr:"id:alt-text"|attr:"rows:3" }}
|
||||
<div class="is-danger">{{ form.alt_text.errors }}</div>
|
||||
</div>
|
||||
<input class="button is-primary" type="submit" value="{% translate "Speichern" %}">
|
||||
</form>
|
||||
{% endblock %}
|
@@ -31,7 +31,7 @@
|
||||
<div class="card-footer">
|
||||
<a class="card-footer-item button" href="{% url 'animal-edit' animal_id=animal.pk %}">{% translate 'Bearbeiten' %}</a>
|
||||
<a class="card-footer-item button"
|
||||
href="{% url 'animal-add-photo' animal_id=animal.pk %}">{% translate 'Foto hinzufügen' %}</a>
|
||||
href="{% url 'animal-add-photo-bulma' animal_id=animal.pk %}">{% translate 'Foto hinzufügen' %}</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
@@ -27,6 +27,7 @@ urlpatterns = [
|
||||
path("tier/<int:animal_id>/edit", views.animal_edit, name="animal-edit"),
|
||||
# ex: /animal/5/add-photo
|
||||
path("tier/<int:animal_id>/add-photo", views.add_photo_to_animal, name="animal-add-photo"),
|
||||
path("bulma/tier/<int:animal_id>/add-photo", views.add_photo_to_animal_bulma, name="animal-add-photo-bulma"),
|
||||
# ex: /adoption_notice/7/
|
||||
path("vermittlung/<int:adoption_notice_id>/", views.adoption_notice_detail, name="adoption-notice-detail"),
|
||||
path("bulma/vermittlung/<int:adoption_notice_id>/", views.adoption_notice_detail_bulma, name="adoption-notice-detail-bulma"),
|
||||
@@ -35,6 +36,8 @@ urlpatterns = [
|
||||
# ex: /vermittlung/5/add-photo
|
||||
path("vermittlung/<int:adoption_notice_id>/add-photo", views.add_photo_to_adoption_notice,
|
||||
name="adoption-notice-add-photo"),
|
||||
path("bulma/vermittlung/<int:adoption_notice_id>/add-photo", views.add_photo_to_adoption_notice_bulma,
|
||||
name="adoption-notice-add-photo-bulma"),
|
||||
# ex: /adoption_notice/2/add-animal
|
||||
path("vermittlung/<int:adoption_notice_id>/add-animal", views.adoption_notice_add_animal,
|
||||
name="adoption-notice-add-animal"),
|
||||
|
@@ -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):
|
||||
|
Reference in New Issue
Block a user