Notfellchen/src/fellchensammlung/views.py

74 lines
2.6 KiB
Python
Raw Normal View History

from django.shortcuts import render, redirect
from django.http import HttpResponse
from django.urls import reverse
2024-03-18 15:41:22 +00:00
import markdown
2024-03-17 10:26:32 +00:00
2024-03-19 05:15:38 +00:00
from fellchensammlung.models import AdoptionNotice, MarkdownContent, Animal
from .forms import AdoptionNoticeForm, AnimalForm
2024-03-17 10:26:32 +00:00
def index(request):
2024-03-18 13:53:31 +00:00
"""View function for home page of site."""
2024-03-18 13:21:42 +00:00
latest_adoption_list = AdoptionNotice.objects.order_by("-created_at")[:5]
2024-03-18 13:53:31 +00:00
context = {"latest_adoptions": latest_adoption_list}
return render(request, 'fellchensammlung/index.html', context=context)
2024-03-18 07:26:21 +00:00
def adoption_notice_detail(request, adoption_notice_id):
return HttpResponse("You're looking at adoption notice %s." % adoption_notice_id)
def animal_detail(request, animal_id):
2024-03-19 05:15:38 +00:00
animal = Animal.objects.get(id=animal_id)
context = {"animal": animal}
return render(request, 'fellchensammlung/detail_animal.html', context=context)
2024-03-18 15:36:45 +00:00
2024-03-18 15:36:45 +00:00
def search(request):
latest_adoption_list = AdoptionNotice.objects.order_by("-created_at")[:5]
context = {"adoption_notices": latest_adoption_list}
return render(request, 'fellchensammlung/search.html', context=context)
2024-03-18 15:36:45 +00:00
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})
2024-03-18 15:36:45 +00:00
2024-03-18 15:41:22 +00:00
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
)