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">
|
<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-edit' animal_id=animal.pk %}">{% translate 'Bearbeiten' %}</a>
|
||||||
<a class="card-footer-item button"
|
<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>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
@@ -27,6 +27,7 @@ urlpatterns = [
|
|||||||
path("tier/<int:animal_id>/edit", views.animal_edit, name="animal-edit"),
|
path("tier/<int:animal_id>/edit", views.animal_edit, name="animal-edit"),
|
||||||
# ex: /animal/5/add-photo
|
# ex: /animal/5/add-photo
|
||||||
path("tier/<int:animal_id>/add-photo", views.add_photo_to_animal, name="animal-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/
|
# ex: /adoption_notice/7/
|
||||||
path("vermittlung/<int:adoption_notice_id>/", views.adoption_notice_detail, name="adoption-notice-detail"),
|
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"),
|
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
|
# ex: /vermittlung/5/add-photo
|
||||||
path("vermittlung/<int:adoption_notice_id>/add-photo", views.add_photo_to_adoption_notice,
|
path("vermittlung/<int:adoption_notice_id>/add-photo", views.add_photo_to_adoption_notice,
|
||||||
name="adoption-notice-add-photo"),
|
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
|
# ex: /adoption_notice/2/add-animal
|
||||||
path("vermittlung/<int:adoption_notice_id>/add-animal", views.adoption_notice_add_animal,
|
path("vermittlung/<int:adoption_notice_id>/add-animal", views.adoption_notice_add_animal,
|
||||||
name="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)
|
form = ImageForm(in_flow=True)
|
||||||
return render(request, 'fellchensammlung/forms/form-image.html', {'form': form})
|
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
|
@login_required
|
||||||
def add_photo_to_adoption_notice(request, adoption_notice_id):
|
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)
|
form = ImageForm(in_flow=True)
|
||||||
return render(request, 'fellchensammlung/forms/form-image.html', {'form': form})
|
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
|
@login_required
|
||||||
def animal_edit(request, animal_id):
|
def animal_edit(request, animal_id):
|
||||||
|
Reference in New Issue
Block a user