diff --git a/app/aviary/migrations/0001_initial.py b/app/aviary/migrations/0001_initial.py new file mode 100644 index 0000000..4b6a817 --- /dev/null +++ b/app/aviary/migrations/0001_initial.py @@ -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', + }, + ), + ] diff --git a/app/bird/migrations/0001_initial.py b/app/bird/migrations/0001_initial.py new file mode 100644 index 0000000..c9d02e0 --- /dev/null +++ b/app/bird/migrations/0001_initial.py @@ -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', + }, + ), + ] diff --git a/app/contact/admin.py b/app/contact/admin.py index a444f08..8b0846b 100644 --- a/app/contact/admin.py +++ b/app/contact/admin.py @@ -1,6 +1,6 @@ from django.contrib import admin -from .models import Contact +from .models import Contact, ContactTag @admin.register(Contact) @@ -13,3 +13,10 @@ class FallenBirdAdmin(admin.ModelAdmin): "comment", ] list_filter = ("name", "phone", "email", "address", "comment") + +@admin.register(ContactTag) +class ContactTagAdmin(admin.ModelAdmin): + list_display = [ + "tag", + ] + list_filter = ("tag",) \ No newline at end of file diff --git a/app/contact/migrations/0001_initial.py b/app/contact/migrations/0001_initial.py new file mode 100644 index 0000000..a7b1428 --- /dev/null +++ b/app/contact/migrations/0001_initial.py @@ -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', + }, + ), + ] diff --git a/app/contact/migrations/0002_contacttag_contact_tag_id.py b/app/contact/migrations/0002_contacttag_contact_tag_id.py new file mode 100644 index 0000000..663ea0f --- /dev/null +++ b/app/contact/migrations/0002_contacttag_contact_tag_id.py @@ -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'), + ), + ] diff --git a/app/contact/models.py b/app/contact/models.py index 9b566af..a29df48 100644 --- a/app/contact/models.py +++ b/app/contact/models.py @@ -21,7 +21,21 @@ class Contact(models.Model): comment = models.CharField( 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: verbose_name = _("Kontakt") 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 \ No newline at end of file diff --git a/app/contact/templates/contact/contact_all.html b/app/contact/templates/contact/contact_all.html index 949c475..8a5f7b5 100644 --- a/app/contact/templates/contact/contact_all.html +++ b/app/contact/templates/contact/contact_all.html @@ -29,7 +29,7 @@ "pagingType": "first_last_numbers", responsive: true, scrollX: true, - order: [[2, 'desc']], + order: [[0, 'asc']], columnDefs: [ { responsivePriority: 1, targets: 0 }, ] @@ -57,6 +57,7 @@