Aviary only on specific status
This commit is contained in:
parent
41d60eaee8
commit
e38aacafbe
6 changed files with 39 additions and 21 deletions
|
@ -22,4 +22,4 @@ class BirdAdmin(admin.ModelAdmin):
|
|||
|
||||
@admin.register(BirdStatus)
|
||||
class BirdStatusAdmin(admin.ModelAdmin):
|
||||
list_display = ["description"]
|
||||
list_display = ["id","description"]
|
||||
|
|
|
@ -11,21 +11,17 @@ from rescuer.models import Rescuer
|
|||
|
||||
class FallenBird(models.Model):
|
||||
id = models.UUIDField(primary_key=True, default=uuid4, editable=False)
|
||||
bird_identifier = models.CharField(max_length=256,default=names.get_full_name(), verbose_name=_("Kennung"))
|
||||
bird = models.ForeignKey(
|
||||
"Bird", on_delete=models.CASCADE, verbose_name=_("Patient")
|
||||
)
|
||||
bird_identifier = models.CharField(max_length=256, verbose_name=_("Kennung"))
|
||||
bird = models.ForeignKey("Bird", on_delete=models.CASCADE, verbose_name=_("Patient"))
|
||||
date_found = models.DateField(verbose_name=_("Datum des Fundes"))
|
||||
place = models.CharField(max_length=256, verbose_name=_("Ort des Fundes"))
|
||||
created = models.DateTimeField(auto_now_add=True, verbose_name=_("angelegt am"))
|
||||
updated = models.DateTimeField(auto_now=True, verbose_name=_("geändert am"))
|
||||
diagnostic_finding = models.CharField(max_length=256)
|
||||
cost_sum = models.DecimalField(max_digits=5, decimal_places=2, default=0.00)
|
||||
rescuer = models.ForeignKey(
|
||||
Rescuer, on_delete=models.SET_NULL, blank=True, null=True
|
||||
)
|
||||
rescuer = models.ForeignKey(Rescuer, on_delete=models.SET_NULL, blank=True, null=True)
|
||||
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
|
||||
status = models.ForeignKey("BirdStatus", on_delete=models.CASCADE)
|
||||
status = models.ForeignKey("BirdStatus", on_delete=models.CASCADE, default=1)
|
||||
aviary = models.ForeignKey(Aviary, on_delete=models.SET_NULL, blank=True, null=True)
|
||||
|
||||
class Meta:
|
||||
|
@ -49,7 +45,7 @@ class Bird(models.Model):
|
|||
|
||||
|
||||
class BirdStatus(models.Model):
|
||||
id = models.UUIDField(primary_key=True, default=uuid4, editable=False)
|
||||
id = models.BigAutoField(primary_key=True)
|
||||
description = models.CharField(max_length=256, unique=True)
|
||||
|
||||
class Meta:
|
||||
|
|
|
@ -49,4 +49,7 @@
|
|||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
|
||||
<script src="{% static 'js/bird.js' %}"></script
|
||||
|
||||
{% endblock content %}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import names
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.shortcuts import HttpResponse, redirect, render
|
||||
|
||||
|
@ -8,12 +9,12 @@ from rescuer.models import Rescuer
|
|||
|
||||
@login_required(login_url="account_login")
|
||||
def bird_create(request):
|
||||
form = BirdAddForm(initial={"bird_identifier": names.get_full_name()})
|
||||
# Rescuer for modal usage
|
||||
form = BirdAddForm()
|
||||
rescuer_id = request.session.get("rescuer_id")
|
||||
rescuer = Rescuer.objects.get(id=rescuer_id, user=request.user)
|
||||
|
||||
# just show only related rescuers in select field of the form
|
||||
# Just show only related rescuers in select field of the form.
|
||||
if request.method == "POST":
|
||||
form = BirdAddForm(request.POST or None, request.FILES or None)
|
||||
rescuer_id = request.session.get("rescuer_id")
|
||||
|
@ -35,7 +36,7 @@ def bird_all(request):
|
|||
birds = FallenBird.objects.all()
|
||||
rescuer_modal = Rescuer.objects.all()
|
||||
context = {"birds": birds, "rescuer_modal": rescuer_modal}
|
||||
# Post came from the modal form
|
||||
# Post came from the modal form.
|
||||
if request.method == "POST":
|
||||
rescuer_id = request._post["rescuer_id"]
|
||||
if rescuer_id != "new_rescuer":
|
||||
|
@ -57,7 +58,10 @@ def bird_single(request, id):
|
|||
form = BirdEditForm(request.POST or None, request.FILES or None, instance=bird)
|
||||
if request.method == "POST":
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
fs = form.save(commit=False)
|
||||
if fs.status.description!="In Auswilderung":
|
||||
fs.aviary = None
|
||||
fs.save()
|
||||
return redirect("bird_all")
|
||||
context = {"form": form, "bird": bird}
|
||||
return render(request, "bird/bird_single.html", context)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue