parent
cb0696b0bd
commit
3a3bcea588
32 changed files with 32 additions and 615 deletions
|
@ -26,6 +26,7 @@ class BirdAddForm(forms.ModelForm):
|
|||
"find_circumstances",
|
||||
"diagnostic_finding",
|
||||
"comment",
|
||||
"finder",
|
||||
]
|
||||
labels = {
|
||||
"bird_identifier": _("Kennung"),
|
||||
|
@ -37,6 +38,7 @@ class BirdAddForm(forms.ModelForm):
|
|||
"find_circumstances": _("Fundumstände"),
|
||||
"diagnostic_finding": _("Diagnose bei Fund"),
|
||||
"comment": _("Bermerkung"),
|
||||
"finder": _("Finder"),
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
# Generated by Django 4.2.5 on 2023-09-17 21:04
|
||||
# Generated by Django 4.2.6 on 2023-10-09 21:31
|
||||
|
||||
import ckeditor.fields
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
@ -11,7 +12,6 @@ class Migration(migrations.Migration):
|
|||
initial = True
|
||||
|
||||
dependencies = [
|
||||
('rescuer', '0002_alter_rescuer_options'),
|
||||
('aviary', '0001_initial'),
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
]
|
||||
|
@ -22,7 +22,7 @@ class Migration(migrations.Migration):
|
|||
fields=[
|
||||
('id', models.BigAutoField(primary_key=True, serialize=False)),
|
||||
('name', models.CharField(max_length=256, unique=True, verbose_name='Bezeichnung')),
|
||||
('description', models.CharField(blank=True, max_length=256, null=True, verbose_name='Beschreibung')),
|
||||
('description', ckeditor.fields.RichTextField(verbose_name='Erläuterungen')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Vogel',
|
||||
|
@ -65,11 +65,11 @@ class Migration(migrations.Migration):
|
|||
('updated', models.DateTimeField(auto_now=True, verbose_name='geändert am')),
|
||||
('diagnostic_finding', models.CharField(max_length=256, verbose_name='Diagnose bei Fund')),
|
||||
('sent_to', models.CharField(blank=True, max_length=256, null=True, verbose_name='Übersandt nach')),
|
||||
('comment', models.TextField(blank=True, null=True, verbose_name='Bemerkung')),
|
||||
('comment', models.TextField(blank=True, null=True, verbose_name='Bemerkungen')),
|
||||
('finder', models.TextField(blank=True, null=True, verbose_name='Finder')),
|
||||
('aviary', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='aviary.aviary', verbose_name='Voliere')),
|
||||
('bird', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='bird.bird', verbose_name='Vogel')),
|
||||
('find_circumstances', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='bird.circumstance', verbose_name='Fundumstände')),
|
||||
('rescuer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='rescuer.rescuer', verbose_name='Finder')),
|
||||
('status', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='bird.birdstatus')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Benutzer')),
|
||||
],
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
# Generated by Django 4.2.6 on 2023-10-08 09:07
|
||||
|
||||
import ckeditor.fields
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('bird', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='birdstatus',
|
||||
name='description',
|
||||
field=ckeditor.fields.RichTextField(verbose_name='Erläuterungen'),
|
||||
),
|
||||
]
|
|
@ -8,7 +8,6 @@ from django.utils.translation import gettext_lazy as _
|
|||
from ckeditor.fields import RichTextField
|
||||
|
||||
from aviary.models import Aviary
|
||||
from rescuer.models import Rescuer
|
||||
|
||||
|
||||
CHOICE_AGE = [
|
||||
|
@ -51,13 +50,6 @@ class FallenBird(models.Model):
|
|||
diagnostic_finding = models.CharField(
|
||||
max_length=256, verbose_name=_("Diagnose bei Fund")
|
||||
)
|
||||
rescuer = models.ForeignKey(
|
||||
Rescuer,
|
||||
on_delete=models.SET_NULL,
|
||||
blank=True,
|
||||
null=True,
|
||||
verbose_name=_("Finder"),
|
||||
)
|
||||
user = models.ForeignKey(
|
||||
settings.AUTH_USER_MODEL, on_delete=models.CASCADE, verbose_name=_("Benutzer")
|
||||
)
|
||||
|
@ -73,6 +65,7 @@ class FallenBird(models.Model):
|
|||
max_length=256, null=True, blank=True, verbose_name=_("Übersandt nach")
|
||||
)
|
||||
comment = models.TextField(blank=True, null=True, verbose_name=_("Bemerkung"))
|
||||
finder = models.TextField(blank=True, null=True, verbose_name=_("Finder"))
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("Patient")
|
||||
|
|
|
@ -48,9 +48,7 @@
|
|||
mehr in Behandlung befindlichen Patienten finden Sie <a href="{% url 'bird_inactive' %}">hier</a>.
|
||||
</p>
|
||||
<p>
|
||||
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#addPatientModal">einen Patienten
|
||||
anlegen
|
||||
</button>
|
||||
<p><a href="{% url 'bird_create' %}" class="btn btn-primary">einen Patienten anlegen</a></p>
|
||||
</p>
|
||||
<table class="table table-striped table-hover display responsive nowrap" id="t__bird_all">
|
||||
<thead>
|
||||
|
@ -58,7 +56,6 @@
|
|||
<th>Patienten Alias</th>
|
||||
<th>Vogel</th>
|
||||
<th>gefunden am</th>
|
||||
<th>Finder</th>
|
||||
<th>Fundort</th>
|
||||
<th>Status</th>
|
||||
<th>Voliere</th>
|
||||
|
@ -73,7 +70,6 @@
|
|||
<td><a href="{% url 'bird_single' bird.id %}">{{ bird.bird_identifier }}</a></td>
|
||||
<td>{{ bird.bird }}</td>
|
||||
<td data-order="{{ forloop.counter }}">{{ bird.date_found }}</td>
|
||||
<td><a href="{% url 'rescuer_single' bird.rescuer_id %}">{{ bird.rescuer|default_if_none:"" }}</a></td>
|
||||
<td>{{ bird.place }}</td>
|
||||
<td>{{ bird.status }}</td>
|
||||
<td>{{ bird.aviary|default_if_none:"" }}</td>
|
||||
|
@ -84,37 +80,5 @@
|
|||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="modal fade" id="addPatientModal" tabindex="-1" data-bs-backdrop="static"
|
||||
aria-labelledby="addRescuerModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header bg-primary">
|
||||
<h5 class="modal-title text-white" id="addRescuerModalLabel">(neuen) Finder zuweisen</h5>
|
||||
</div>
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
<div class="modal-body">
|
||||
<label for="rescuer" class="form-label mt-3">Wählen Sie einen <strong>bereits angelegten</strong>
|
||||
Finder aus oder legen Sie einen <strong>neuen</strong> Finder an:</label>
|
||||
<select id="rescuer" class="form-select" name="rescuer_id">
|
||||
<option value="new_rescuer"><strong>neuen
|
||||
Finder anlegen</strong></option>
|
||||
{% for rescuer in rescuer_modal %}
|
||||
<option value={{rescuer.id}}>
|
||||
{{rescuer.last_name}}, {{rescuer.first_name}},
|
||||
{{rescuer.street}} {{rescuer.street_number}},
|
||||
{{rescuer.city}}
|
||||
</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-danger" data-bs-dismiss="modal">Abbrechen</button>
|
||||
<button class="btn btn-primary" type="submit">Übernehmen und weiter</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{% endblock content %}
|
||||
|
|
|
@ -3,15 +3,14 @@
|
|||
{% load crispy_forms_tags %}
|
||||
{% block content %}
|
||||
|
||||
<h3>Patient anlegen</h3>
|
||||
<p>(Retter: {{rescuer.first_name}} {{rescuer.last_name}})</p>
|
||||
<h3>Einen Patienten anlegen</h3>
|
||||
<div class="row">
|
||||
<div class="col-lg-8 mb-3">
|
||||
<form method="post" enctype="multipart/form-data">
|
||||
{% csrf_token %}
|
||||
{{ form|crispy }}
|
||||
<a href="{% url 'bird_all' %}" class="btn btn-success">Abbrechen</a>
|
||||
<button class="btn btn-primary" type="submit">Patient anlegen</button>
|
||||
<button class="btn btn-primary" type="submit">Speichern</button>
|
||||
<div class="mt-3"><small>* Pflichtfeld</small></div>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -52,7 +52,6 @@
|
|||
<th>Patienten Alias</th>
|
||||
<th>Vogel</th>
|
||||
<th>gefunden am</th>
|
||||
<th>Finder</th>
|
||||
<th>Fundort</th>
|
||||
<th>Status</th>
|
||||
<th>Kosten</th>
|
||||
|
@ -66,9 +65,6 @@
|
|||
<td><a href="{% url 'bird_single' bird.id %}">{{ bird.bird_identifier }}</a></td>
|
||||
<td>{{ bird.bird }}</td>
|
||||
<td data-order="{{ forloop.counter }}">{{ bird.date_found }}</td>
|
||||
<td>
|
||||
<a href="{% url 'rescuer_single' bird.rescuer_id %}">{{ bird.rescuer|default_if_none:"" }}</a>
|
||||
</td>
|
||||
<td>{{ bird.place }}</td>
|
||||
<td>{{ bird.status }}</td>
|
||||
<td>{{ bird.total_costs|default_if_none:"0,00" }} €</td>
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
{% block content %}
|
||||
|
||||
<h3>Patient <strong>{{ bird.bird_identifier }}</strong> bearbeiten </h3>
|
||||
<p>Finder des Patienten: <strong> <a href="{% url 'rescuer_single' bird.rescuer_id %}">{{ bird.rescuer|default_if_none:"" }}</a></strong>.
|
||||
Das Alter des Patienten bei Fund wurde mit <strong>{{ bird.age }}</strong> angegeben.</p>
|
||||
<div class="row">
|
||||
<div class="col-lg-6 mb-3">
|
||||
|
|
|
@ -5,23 +5,17 @@ from django.shortcuts import HttpResponse, redirect, render
|
|||
|
||||
from .forms import BirdAddForm, BirdEditForm
|
||||
from .models import Bird, FallenBird
|
||||
from rescuer.models import Rescuer
|
||||
|
||||
|
||||
@login_required(login_url="account_login")
|
||||
def bird_create(request):
|
||||
form = BirdAddForm(initial={"bird_identifier": names.get_first_name()})
|
||||
# Rescuer for modal usage
|
||||
rescuer_id = request.session.get("rescuer_id")
|
||||
rescuer = Rescuer.objects.get(id=rescuer_id)
|
||||
rescuer_id = None
|
||||
|
||||
# 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)
|
||||
|
||||
# circumstances = Circumstance.objects.all()
|
||||
rescuer_id = request.session.get("rescuer_id")
|
||||
rescuer = Rescuer.objects.get(id=rescuer_id)
|
||||
rescuer_id = None
|
||||
|
||||
if form.is_valid():
|
||||
fs = form.save(commit=False)
|
||||
|
@ -30,7 +24,7 @@ def bird_create(request):
|
|||
fs.save()
|
||||
request.session["rescuer_id"] = None
|
||||
return redirect("bird_all")
|
||||
context = {"form": form, "rescuer": rescuer}
|
||||
context = {"form": form}
|
||||
return render(request, "bird/bird_create.html", context)
|
||||
|
||||
|
||||
|
@ -55,16 +49,7 @@ def bird_all(request):
|
|||
.annotate(total_costs=Sum("costs__costs"))
|
||||
.order_by("date_found")
|
||||
)
|
||||
rescuer_modal = Rescuer.objects.all()
|
||||
context = {"birds": birds, "rescuer_modal": rescuer_modal}
|
||||
# Post came from the modal form.
|
||||
if request.method == "POST":
|
||||
rescuer_id = request._post["rescuer_id"]
|
||||
if rescuer_id != "new_rescuer":
|
||||
request.session["rescuer_id"] = rescuer_id
|
||||
return redirect("bird_create")
|
||||
else:
|
||||
return redirect("rescuer_create")
|
||||
context = {"birds": birds}
|
||||
return render(request, "bird/bird_all.html", context)
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue