Notfellchen/src/fellchensammlung/views.py

76 lines
2.7 KiB
Python

from django.shortcuts import render, redirect
from django.http import HttpResponse
from django.urls import reverse
import markdown
from fellchensammlung.models import AdoptionNotice, MarkdownContent, Animal
from .forms import AdoptionNoticeForm, AnimalForm
def index(request):
"""View function for home page of site."""
latest_adoption_list = AdoptionNotice.objects.order_by("-created_at")[:5]
context = {"latest_adoptions": latest_adoption_list}
return render(request, 'fellchensammlung/index.html', context=context)
def adoption_notice_detail(request, adoption_notice_id):
adoption_notice = AdoptionNotice.objects.get(id=adoption_notice_id)
context = {"adoption_notice": adoption_notice}
return render(request, 'fellchensammlung/detail_adoption_notice.html', context=context)
def animal_detail(request, animal_id):
animal = Animal.objects.get(id=animal_id)
context = {"animal": animal}
return render(request, 'fellchensammlung/detail_animal.html', context=context)
def search(request):
latest_adoption_list = AdoptionNotice.objects.order_by("-created_at")
context = {"adoption_notices": latest_adoption_list}
return render(request, 'fellchensammlung/search.html', context=context)
def add_adoption(request):
if request.method == 'POST':
form = AdoptionNoticeForm(request.POST, request.FILES)
if form.is_valid():
instance = form.save()
return redirect(reverse("add-animal-to-adoption", args=[instance.pk]))
else:
form = AdoptionNoticeForm()
return render(request, 'fellchensammlung/form_add_adoption.html', {'form': form})
def add_animal_to_adoption(request, adoption_notice_id):
if request.method == 'POST':
form = AnimalForm(request.POST, request.FILES)
if form.is_valid():
form.cleaned_data["adoption_notice_id"] = adoption_notice_id
instance = form.save(commit=False)
instance.adoption_notice_id = adoption_notice_id
instance.save()
if "button_add_another_animal" in request.POST:
return redirect(reverse("add-animal-to-adoption", args=[str(adoption_notice_id)]))
else:
return redirect(reverse("adoption-notice-detail", args=[str(adoption_notice_id)]))
else:
form = AnimalForm()
return render(request, 'fellchensammlung/form_add_animal_to_adoption.html', {'form': form})
def about(request):
md = markdown.Markdown(extensions=["fenced_code"])
markdown_content = MarkdownContent.objects.first()
markdown_content.content = md.convert(markdown_content.content)
context = {"markdown_content": markdown_content}
return render(
request,
"fellchensammlung/about.html",
context=context
)