parent
f8c1482ef8
commit
accdb60a8c
9 changed files with 231 additions and 2 deletions
29
app/aviary/migrations/0001_initial.py
Normal file
29
app/aviary/migrations/0001_initial.py
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
# Generated by Django 4.2.6 on 2023-10-22 09:59
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import uuid
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
initial = True
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Aviary',
|
||||||
|
fields=[
|
||||||
|
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
||||||
|
('description', models.CharField(max_length=256, unique=True, verbose_name='Beschreibung')),
|
||||||
|
('condition', models.CharField(choices=[('Offen', 'Offen'), ('Geschlossen', 'Geschlossen'), ('Gesperrt', 'Gesperrt')], max_length=256, verbose_name='Zustand')),
|
||||||
|
('last_ward_round', models.DateField(verbose_name='letzte Visite')),
|
||||||
|
('comment', models.CharField(blank=True, max_length=512, null=True, verbose_name='Bemerkungen')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Voliere',
|
||||||
|
'verbose_name_plural': 'Volieren',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
81
app/bird/migrations/0001_initial.py
Normal file
81
app/bird/migrations/0001_initial.py
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
# Generated by Django 4.2.6 on 2023-10-22 09:59
|
||||||
|
|
||||||
|
import ckeditor.fields
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
import uuid
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
initial = True
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('aviary', '0001_initial'),
|
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Bird',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(primary_key=True, serialize=False)),
|
||||||
|
('name', models.CharField(max_length=256, unique=True, verbose_name='Bezeichnung')),
|
||||||
|
('description', ckeditor.fields.RichTextField(verbose_name='Erläuterungen')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Vogel',
|
||||||
|
'verbose_name_plural': 'Vögel',
|
||||||
|
'ordering': ['name'],
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='BirdStatus',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(primary_key=True, serialize=False)),
|
||||||
|
('description', models.CharField(max_length=256, unique=True, verbose_name='Bezeichnung')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Patientenstatus',
|
||||||
|
'verbose_name_plural': 'Patientenstatus',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Circumstance',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(primary_key=True, serialize=False)),
|
||||||
|
('description', models.CharField(max_length=256, verbose_name='Bezeichnung')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Fundumstand',
|
||||||
|
'verbose_name_plural': 'Fundumstände',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='FallenBird',
|
||||||
|
fields=[
|
||||||
|
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
||||||
|
('bird_identifier', models.CharField(max_length=256, verbose_name='Patienten Alias')),
|
||||||
|
('age', models.CharField(choices=[('unbekannt', 'unbekannt'), ('Ei', 'Ei'), ('Nestling', 'Nestling'), ('Ästling', 'Ästling'), ('Juvenil', 'Juvenil'), ('Adult', 'Adult')], max_length=15, verbose_name='Alter')),
|
||||||
|
('sex', models.CharField(choices=[('Weiblich', 'Weiblich'), ('Männlich', 'Männlich'), ('Unbekannt', 'Unbekannt')], max_length=15, verbose_name='Geschlecht')),
|
||||||
|
('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, 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')),
|
||||||
|
('finder', models.TextField(blank=True, default='Vorname: \nNachname: \nStraße: \nHausnummer: \nStadt: \nPLZ: \nTelefonnummer: ', 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')),
|
||||||
|
('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')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Patient',
|
||||||
|
'verbose_name_plural': 'Patienten',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
|
@ -1,6 +1,6 @@
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
|
||||||
from .models import Contact
|
from .models import Contact, ContactTag
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Contact)
|
@admin.register(Contact)
|
||||||
|
@ -13,3 +13,10 @@ class FallenBirdAdmin(admin.ModelAdmin):
|
||||||
"comment",
|
"comment",
|
||||||
]
|
]
|
||||||
list_filter = ("name", "phone", "email", "address", "comment")
|
list_filter = ("name", "phone", "email", "address", "comment")
|
||||||
|
|
||||||
|
@admin.register(ContactTag)
|
||||||
|
class ContactTagAdmin(admin.ModelAdmin):
|
||||||
|
list_display = [
|
||||||
|
"tag",
|
||||||
|
]
|
||||||
|
list_filter = ("tag",)
|
30
app/contact/migrations/0001_initial.py
Normal file
30
app/contact/migrations/0001_initial.py
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
# Generated by Django 4.2.6 on 2023-10-22 09:59
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import uuid
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
initial = True
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Contact',
|
||||||
|
fields=[
|
||||||
|
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
||||||
|
('name', models.CharField(blank=True, max_length=50, null=True, verbose_name='Kontakt Name')),
|
||||||
|
('phone', models.CharField(blank=True, max_length=50, null=True, verbose_name='Telefon')),
|
||||||
|
('email', models.CharField(blank=True, max_length=50, null=True, verbose_name='Email')),
|
||||||
|
('address', models.CharField(blank=True, max_length=50, null=True, verbose_name='Adresse')),
|
||||||
|
('comment', models.CharField(blank=True, max_length=50, null=True, verbose_name='Bemerkungen')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Kontakt',
|
||||||
|
'verbose_name_plural': 'Kontakte',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
31
app/contact/migrations/0002_contacttag_contact_tag_id.py
Normal file
31
app/contact/migrations/0002_contacttag_contact_tag_id.py
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
# Generated by Django 4.2.6 on 2023-10-22 10:14
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
import uuid
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('contact', '0001_initial'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='ContactTag',
|
||||||
|
fields=[
|
||||||
|
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
||||||
|
('tag', models.CharField(blank=True, max_length=50, null=True, verbose_name='Tag')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Kontakt Tag',
|
||||||
|
'verbose_name_plural': 'Kontakt Tags',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='contact',
|
||||||
|
name='tag_id',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='contact.contacttag', verbose_name='Tag'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -21,7 +21,21 @@ class Contact(models.Model):
|
||||||
comment = models.CharField(
|
comment = models.CharField(
|
||||||
max_length=50, null=True, blank=True, verbose_name=_("Bemerkungen")
|
max_length=50, null=True, blank=True, verbose_name=_("Bemerkungen")
|
||||||
)
|
)
|
||||||
|
tag_id = models.ForeignKey("ContactTag", on_delete=models.CASCADE, null=True, blank=True, verbose_name=_("Tag"))
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = _("Kontakt")
|
verbose_name = _("Kontakt")
|
||||||
verbose_name_plural = _("Kontakte")
|
verbose_name_plural = _("Kontakte")
|
||||||
|
|
||||||
|
class ContactTag(models.Model):
|
||||||
|
id = models.UUIDField(primary_key=True, default=uuid4, editable=False)
|
||||||
|
tag = models.CharField(
|
||||||
|
max_length=50, null=True, blank=True, verbose_name=_("Tag")
|
||||||
|
)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = _("Kontakt Tag")
|
||||||
|
verbose_name_plural = _("Kontakt Tags")
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.tag
|
|
@ -29,7 +29,7 @@
|
||||||
"pagingType": "first_last_numbers",
|
"pagingType": "first_last_numbers",
|
||||||
responsive: true,
|
responsive: true,
|
||||||
scrollX: true,
|
scrollX: true,
|
||||||
order: [[2, 'desc']],
|
order: [[0, 'asc']],
|
||||||
columnDefs: [
|
columnDefs: [
|
||||||
{ responsivePriority: 1, targets: 0 },
|
{ responsivePriority: 1, targets: 0 },
|
||||||
]
|
]
|
||||||
|
@ -57,6 +57,7 @@
|
||||||
<th>Email</th>
|
<th>Email</th>
|
||||||
<th>Adresse</th>
|
<th>Adresse</th>
|
||||||
<th>Bemerkung</th>
|
<th>Bemerkung</th>
|
||||||
|
<th>Kategorie</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
@ -67,6 +68,7 @@
|
||||||
<td> {{ item.email|default_if_none:"" }} </td>
|
<td> {{ item.email|default_if_none:"" }} </td>
|
||||||
<td> {{ item.address|default_if_none:"" }} </td>
|
<td> {{ item.address|default_if_none:"" }} </td>
|
||||||
<td> {{ item.comment|default_if_none:"" }} </td>
|
<td> {{ item.comment|default_if_none:"" }} </td>
|
||||||
|
<td> {{ item.tag_id|default_if_none:"" }} </td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
@ -87,6 +87,7 @@ JAZZMIN_SETTINGS = {
|
||||||
"bird.FallenBird": "fas fa-solid fa-bed",
|
"bird.FallenBird": "fas fa-solid fa-bed",
|
||||||
"costs.Costs": "fas fa-solid fa-money-bill",
|
"costs.Costs": "fas fa-solid fa-money-bill",
|
||||||
"contact.Contact": "fas fa-solid fa-address-card",
|
"contact.Contact": "fas fa-solid fa-address-card",
|
||||||
|
"contact.ContactTag": "fas fa-solid fa-tags",
|
||||||
},
|
},
|
||||||
# Icons that are used when one is not manually specified
|
# Icons that are used when one is not manually specified
|
||||||
# "default_icon_parents": "fas fa-chevron-circle-right",
|
# "default_icon_parents": "fas fa-chevron-circle-right",
|
||||||
|
|
34
app/costs/migrations/0001_initial.py
Normal file
34
app/costs/migrations/0001_initial.py
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
# Generated by Django 4.2.6 on 2023-10-22 09:59
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
import uuid
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
initial = True
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('bird', '0001_initial'),
|
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Costs',
|
||||||
|
fields=[
|
||||||
|
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
||||||
|
('costs', models.DecimalField(decimal_places=2, default='0.00', max_digits=5, verbose_name='Betrag')),
|
||||||
|
('created', models.DateField(verbose_name='Gebucht am')),
|
||||||
|
('comment', models.CharField(blank=True, max_length=512, null=True, verbose_name='Bemerkungen')),
|
||||||
|
('id_bird', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='bird.fallenbird', verbose_name='Patient')),
|
||||||
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Benutzer')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Kosten',
|
||||||
|
'verbose_name_plural': 'Kosten',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
Loading…
Add table
Add a link
Reference in a new issue