This commit is contained in:
gw3000 2023-07-21 22:11:52 +02:00
parent 52790276da
commit 9125242821
2 changed files with 32 additions and 26 deletions

View file

@ -1,11 +1,12 @@
from datetime import date from datetime import date
from uuid import uuid4 from uuid import uuid4
from aviary.models import Aviary
from ckeditor.fields import RichTextField from ckeditor.fields import RichTextField
from django.conf import settings from django.conf import settings
from django.db import models from django.db import models
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from aviary.models import Aviary
from rescuer.models import Rescuer from rescuer.models import Rescuer
@ -15,17 +16,21 @@ def costs_default():
class FallenBird(models.Model): class FallenBird(models.Model):
id = models.UUIDField(primary_key=True, default=uuid4, editable=False) id = models.UUIDField(primary_key=True, default=uuid4, editable=False)
bird_identifier = models.CharField(max_length=256, verbose_name=_("Kennung")) bird_identifier = models.CharField(
max_length=256, verbose_name=_("Kennung"))
bird = models.ForeignKey( bird = models.ForeignKey(
"Bird", on_delete=models.CASCADE, verbose_name=_("Patient") "Bird", on_delete=models.CASCADE, verbose_name=_("Patient")
) )
date_found = models.DateField(verbose_name=_("Datum des Fundes")) date_found = models.DateField(verbose_name=_("Datum des Fundes"))
place = models.CharField(max_length=256, verbose_name=_("Ort des Fundes")) place = models.CharField(max_length=256, verbose_name=_("Ort des Fundes"))
created = models.DateTimeField(auto_now_add=True, verbose_name=_("angelegt am")) created = models.DateTimeField(
updated = models.DateTimeField(auto_now=True, verbose_name=_("geändert am")) auto_now_add=True,
verbose_name=_("angelegt am"))
updated = models.DateTimeField(
auto_now=True, verbose_name=_("geändert am"))
find_circumstances = models.ForeignKey( find_circumstances = models.ForeignKey(
"Circumstance", on_delete=models.CASCADE, verbose_name=_("Fundumstände") "Circumstance", on_delete=models.CASCADE,
) verbose_name=_("Fundumstände"))
diagnostic_finding = models.CharField( diagnostic_finding = models.CharField(
max_length=256, verbose_name=_("Diagnose bei Fund") max_length=256, verbose_name=_("Diagnose bei Fund")
) )
@ -37,9 +42,13 @@ class FallenBird(models.Model):
verbose_name=_("Finder"), verbose_name=_("Finder"),
) )
user = models.ForeignKey( user = models.ForeignKey(
settings.AUTH_USER_MODEL, on_delete=models.CASCADE, verbose_name=_("Benutzer") settings.AUTH_USER_MODEL,
) on_delete=models.CASCADE,
status = models.ForeignKey("BirdStatus", on_delete=models.CASCADE, default=1) verbose_name=_("Benutzer"))
status = models.ForeignKey(
"BirdStatus",
on_delete=models.CASCADE,
default=1)
aviary = models.ForeignKey( aviary = models.ForeignKey(
Aviary, Aviary,
on_delete=models.SET_NULL, on_delete=models.SET_NULL,
@ -61,7 +70,10 @@ class FallenBird(models.Model):
class Bird(models.Model): class Bird(models.Model):
id = models.BigAutoField(primary_key=True) id = models.BigAutoField(primary_key=True)
name = models.CharField(max_length=256, unique=True, verbose_name=_("Bezeichnung")) name = models.CharField(
max_length=256,
unique=True,
verbose_name=_("Bezeichnung"))
description = RichTextField(blank=True, null=True) description = RichTextField(blank=True, null=True)
class Meta: class Meta:
@ -86,19 +98,10 @@ class BirdStatus(models.Model):
return self.description return self.description
# CHOICE_FIND_CIRCUMSTANCES = [
# ("Neu", "Neu"),
# ("Scheibenschlag", "Scheibenschlag"),
# ("Angriff Hund/Katze", "Angriff Hund/Katze"),
# ("Entkräftet", "Entkräftet"),
# ("Verkehrsunfall", "Verkehrsunfall"),
# ("unbekannt", "unbekannt"),
# ]
class Circumstance(models.Model): class Circumstance(models.Model):
id = models.BigAutoField(primary_key=True) id = models.BigAutoField(primary_key=True)
description = models.CharField(max_length=256, verbose_name=_("Bezeichnung")) description = models.CharField(
max_length=256, verbose_name=_("Bezeichnung"))
class Meta: class Meta:
verbose_name = _("Fundumstand") verbose_name = _("Fundumstand")

View file

@ -2,10 +2,10 @@ import names
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.db.models import Q, Sum from django.db.models import Q, Sum
from django.shortcuts import HttpResponse, redirect, render from django.shortcuts import HttpResponse, redirect, render
from rescuer.models import Rescuer
from .forms import BirdAddForm, BirdEditForm from .forms import BirdAddForm, BirdEditForm
from .models import Bird, FallenBird from .models import Bird, FallenBird
from rescuer.models import Rescuer
@login_required(login_url="account_login") @login_required(login_url="account_login")
@ -68,9 +68,9 @@ def bird_all(request):
@login_required(login_url="account_login") @login_required(login_url="account_login")
def bird_inactive(request): def bird_inactive(request):
birds = FallenBird.objects.filter(~Q(status="1") & ~Q(status="2")).annotate( birds = FallenBird.objects.filter(
total_costs=Sum("costs__costs") ~Q(status="1") & ~Q(status="2")).annotate(
) total_costs=Sum("costs__costs"))
context = {"birds": birds} context = {"birds": birds}
return render(request, "bird/bird_inactive.html", context) return render(request, "bird/bird_inactive.html", context)
@ -83,7 +83,10 @@ def bird_recover_all(request):
@login_required(login_url="account_login") @login_required(login_url="account_login")
def bird_single(request, id): def bird_single(request, id):
bird = FallenBird.objects.get(id=id) bird = FallenBird.objects.get(id=id)
form = BirdEditForm(request.POST or None, request.FILES or None, instance=bird) form = BirdEditForm(
request.POST or None,
request.FILES or None,
instance=bird)
if request.method == "POST": if request.method == "POST":
if form.is_valid(): if form.is_valid():
fs = form.save(commit=False) fs = form.save(commit=False)