feat!: add status to adoption notices, reset migrations because why not
This commit is contained in:
		@@ -5,7 +5,7 @@ from django.utils.html import format_html
 | 
			
		||||
from .models import User, Language, Text, ReportComment, ReportAdoptionNotice
 | 
			
		||||
 | 
			
		||||
from .models import Animal, Species, RescueOrganization, AdoptionNotice, Location, Rule, Image, ModerationAction, \
 | 
			
		||||
    Member, Comment, Report, Announcement
 | 
			
		||||
    Member, Comment, Report, Announcement, AdoptionNoticeStatus
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Define an inline admin descriptor for Employee model
 | 
			
		||||
@@ -21,6 +21,17 @@ class UserAdmin(BaseUserAdmin):
 | 
			
		||||
    inlines = [MemberInline]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class StatusInline(admin.StackedInline):
 | 
			
		||||
    model = AdoptionNoticeStatus
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@admin.register(AdoptionNotice)
 | 
			
		||||
class AdoptionNoticeAdmin(admin.ModelAdmin):
 | 
			
		||||
    inlines = [
 | 
			
		||||
        StatusInline,
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Re-register UserAdmin
 | 
			
		||||
admin.site.register(User, UserAdmin)
 | 
			
		||||
 | 
			
		||||
@@ -56,10 +67,10 @@ admin.site.register(Animal)
 | 
			
		||||
admin.site.register(Species)
 | 
			
		||||
admin.site.register(RescueOrganization)
 | 
			
		||||
admin.site.register(Location)
 | 
			
		||||
admin.site.register(AdoptionNotice)
 | 
			
		||||
admin.site.register(Rule)
 | 
			
		||||
admin.site.register(Image)
 | 
			
		||||
admin.site.register(ModerationAction)
 | 
			
		||||
admin.site.register(Language)
 | 
			
		||||
admin.site.register(Text)
 | 
			
		||||
admin.site.register(Announcement)
 | 
			
		||||
admin.site.register(AdoptionNoticeStatus)
 | 
			
		||||
 
 | 
			
		||||
@@ -4,9 +4,10 @@ from fellchensammlung.models import *
 | 
			
		||||
 | 
			
		||||
location = Recipe(
 | 
			
		||||
    Location,
 | 
			
		||||
    name=seq('Ort_'),
 | 
			
		||||
    description=seq('Detaillierte Beschreibung_'),
 | 
			
		||||
    postcode=seq("7322"),
 | 
			
		||||
    place_id=seq(''),
 | 
			
		||||
    name=seq('Location_'),
 | 
			
		||||
    longitude=seq(""),
 | 
			
		||||
    latitude=seq(""),
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
rescue_org = Recipe(
 | 
			
		||||
 
 | 
			
		||||
@@ -35,7 +35,7 @@ class Command(BaseCommand):
 | 
			
		||||
        # Check if there already is and AdoptionNotice named Vermittung1TestSalt9227. If it is, the database
 | 
			
		||||
        # is already populated and no data will be added again
 | 
			
		||||
        try:
 | 
			
		||||
            AdoptionNotice.objects.get(name="Vermittung1TestSalt9227")
 | 
			
		||||
            AdoptionNotice.objects.get(name="Vermittlung1TestSalt9227")
 | 
			
		||||
            print("Database already populated. No additional data will be created")
 | 
			
		||||
            return
 | 
			
		||||
        except AdoptionNotice.DoesNotExist:
 | 
			
		||||
@@ -48,7 +48,7 @@ class Command(BaseCommand):
 | 
			
		||||
            'fellchensammlung.rescue_org'
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        adoption1 = baker.make(AdoptionNotice, name="Vermittung1TestSalt9227", organization=rescue1)
 | 
			
		||||
        adoption1 = baker.make(AdoptionNotice, name="Vermittlung1TestSalt9227", organization=rescue1)
 | 
			
		||||
 | 
			
		||||
        adoption2 = baker.make(AdoptionNotice, name="Vermittung2", organization=rescue2)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
# Generated by Django 5.0.3 on 2024-04-14 13:57
 | 
			
		||||
# Generated by Django 5.0.6 on 2024-06-06 16:11
 | 
			
		||||
 | 
			
		||||
import datetime
 | 
			
		||||
import django.contrib.auth.models
 | 
			
		||||
@@ -19,6 +19,87 @@ class Migration(migrations.Migration):
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name="AdoptionNotice",
 | 
			
		||||
            fields=[
 | 
			
		||||
                (
 | 
			
		||||
                    "id",
 | 
			
		||||
                    models.BigAutoField(
 | 
			
		||||
                        auto_created=True,
 | 
			
		||||
                        primary_key=True,
 | 
			
		||||
                        serialize=False,
 | 
			
		||||
                        verbose_name="ID",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "created_at",
 | 
			
		||||
                    models.DateField(
 | 
			
		||||
                        default=datetime.datetime.now, verbose_name="Erstellt am"
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "searching_since",
 | 
			
		||||
                    models.DateField(verbose_name="Sucht nach einem Zuhause seit"),
 | 
			
		||||
                ),
 | 
			
		||||
                ("name", models.CharField(max_length=200)),
 | 
			
		||||
                (
 | 
			
		||||
                    "description",
 | 
			
		||||
                    models.TextField(
 | 
			
		||||
                        blank=True, null=True, verbose_name="Beschreibung"
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "further_information",
 | 
			
		||||
                    models.URLField(
 | 
			
		||||
                        blank=True, null=True, verbose_name="Link zu mehr Informationen"
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "group_only",
 | 
			
		||||
                    models.BooleanField(
 | 
			
		||||
                        default=False, verbose_name="Ausschließlich Gruppenadoption"
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "location_string",
 | 
			
		||||
                    models.CharField(max_length=200, verbose_name="Ortsangabe"),
 | 
			
		||||
                ),
 | 
			
		||||
            ],
 | 
			
		||||
            options={
 | 
			
		||||
                "permissions": [
 | 
			
		||||
                    (
 | 
			
		||||
                        "create_active_adoption_notice",
 | 
			
		||||
                        "Can create an active adoption notice",
 | 
			
		||||
                    )
 | 
			
		||||
                ],
 | 
			
		||||
            },
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name="Text",
 | 
			
		||||
            fields=[
 | 
			
		||||
                (
 | 
			
		||||
                    "id",
 | 
			
		||||
                    models.BigAutoField(
 | 
			
		||||
                        auto_created=True,
 | 
			
		||||
                        primary_key=True,
 | 
			
		||||
                        serialize=False,
 | 
			
		||||
                        verbose_name="ID",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                ("title", models.CharField(max_length=100)),
 | 
			
		||||
                ("content", models.TextField(verbose_name="Inhalt")),
 | 
			
		||||
                (
 | 
			
		||||
                    "text_code",
 | 
			
		||||
                    models.CharField(
 | 
			
		||||
                        blank=True, max_length=24, verbose_name="Text code"
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
            ],
 | 
			
		||||
            options={
 | 
			
		||||
                "verbose_name": "Text",
 | 
			
		||||
                "verbose_name_plural": "Texte",
 | 
			
		||||
            },
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name="Image",
 | 
			
		||||
            fields=[
 | 
			
		||||
@@ -31,7 +112,6 @@ class Migration(migrations.Migration):
 | 
			
		||||
                        verbose_name="ID",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                ("title", models.CharField(max_length=200)),
 | 
			
		||||
                ("image", models.ImageField(upload_to="images")),
 | 
			
		||||
                ("alt_text", models.TextField(max_length=2000)),
 | 
			
		||||
            ],
 | 
			
		||||
@@ -82,26 +162,42 @@ class Migration(migrations.Migration):
 | 
			
		||||
                        verbose_name="ID",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                ("name", models.CharField(max_length=200)),
 | 
			
		||||
                ("postcode", models.CharField(max_length=200)),
 | 
			
		||||
                ("place_id", models.IntegerField()),
 | 
			
		||||
                ("latitude", models.FloatField()),
 | 
			
		||||
                ("longitude", models.FloatField()),
 | 
			
		||||
                ("name", models.CharField(max_length=2000)),
 | 
			
		||||
            ],
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name="Report",
 | 
			
		||||
            fields=[
 | 
			
		||||
                (
 | 
			
		||||
                    "country",
 | 
			
		||||
                    "id",
 | 
			
		||||
                    models.UUIDField(
 | 
			
		||||
                        default=uuid.uuid4,
 | 
			
		||||
                        help_text="ID dieses reports",
 | 
			
		||||
                        primary_key=True,
 | 
			
		||||
                        serialize=False,
 | 
			
		||||
                        verbose_name="ID",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "status",
 | 
			
		||||
                    models.CharField(
 | 
			
		||||
                        choices=[
 | 
			
		||||
                            ("DE", "Germany"),
 | 
			
		||||
                            ("AT", "Austria"),
 | 
			
		||||
                            ("CH", "Switzerland"),
 | 
			
		||||
                            ("action taken", "Action was taken"),
 | 
			
		||||
                            ("no action taken", "No action was taken"),
 | 
			
		||||
                            ("waiting", "Waiting for moderator action"),
 | 
			
		||||
                        ],
 | 
			
		||||
                        max_length=20,
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "description",
 | 
			
		||||
                    models.TextField(
 | 
			
		||||
                        blank=True, null=True, verbose_name="Beschreibung"
 | 
			
		||||
                        max_length=30,
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                ("user_comment", models.TextField(blank=True)),
 | 
			
		||||
                ("created_at", models.DateTimeField(auto_now_add=True)),
 | 
			
		||||
            ],
 | 
			
		||||
            options={
 | 
			
		||||
                "permissions": [],
 | 
			
		||||
            },
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name="Species",
 | 
			
		||||
@@ -244,7 +340,7 @@ class Migration(migrations.Migration):
 | 
			
		||||
            ],
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name="AdoptionNotice",
 | 
			
		||||
            name="AdoptionNoticeStatus",
 | 
			
		||||
            fields=[
 | 
			
		||||
                (
 | 
			
		||||
                    "id",
 | 
			
		||||
@@ -256,47 +352,119 @@ class Migration(migrations.Migration):
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "created_at",
 | 
			
		||||
                    models.DateField(
 | 
			
		||||
                        default=datetime.datetime.now, verbose_name="Erstellt am"
 | 
			
		||||
                    "major_status",
 | 
			
		||||
                    models.CharField(
 | 
			
		||||
                        choices=[
 | 
			
		||||
                            ("active", "active"),
 | 
			
		||||
                            ("in_review", "in review"),
 | 
			
		||||
                            ("closed", "closed"),
 | 
			
		||||
                            ("disabled", "disabled"),
 | 
			
		||||
                        ],
 | 
			
		||||
                        max_length=200,
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "searching_since",
 | 
			
		||||
                    models.DateField(verbose_name="Sucht nach einem Zuhause seit"),
 | 
			
		||||
                ),
 | 
			
		||||
                ("name", models.CharField(max_length=200)),
 | 
			
		||||
                (
 | 
			
		||||
                    "description",
 | 
			
		||||
                    models.TextField(
 | 
			
		||||
                        blank=True, null=True, verbose_name="Beschreibung"
 | 
			
		||||
                    "minor_status",
 | 
			
		||||
                    models.CharField(
 | 
			
		||||
                        choices=[
 | 
			
		||||
                            ("searching", "searching"),
 | 
			
		||||
                            ("interested", "interested"),
 | 
			
		||||
                            ("waiting_for_review", "waiting_for_review"),
 | 
			
		||||
                            (
 | 
			
		||||
                                "successful_with_notfellchen",
 | 
			
		||||
                                "successful_with_notfellchen",
 | 
			
		||||
                            ),
 | 
			
		||||
                            (
 | 
			
		||||
                                "successful_without_notfellchen",
 | 
			
		||||
                                "successful_without_notfellchen",
 | 
			
		||||
                            ),
 | 
			
		||||
                            ("animal_died", "animal_died"),
 | 
			
		||||
                            (
 | 
			
		||||
                                "closed_for_other_adoption_notice",
 | 
			
		||||
                                "closed_for_other_adoption_notice",
 | 
			
		||||
                            ),
 | 
			
		||||
                            (
 | 
			
		||||
                                "not_open_for_adoption_anymore",
 | 
			
		||||
                                "not_open_for_adoption_anymore",
 | 
			
		||||
                            ),
 | 
			
		||||
                            ("other", "other"),
 | 
			
		||||
                            ("against_the_rules", "against_the_rules"),
 | 
			
		||||
                            ("missing_information", "missing_information"),
 | 
			
		||||
                        ],
 | 
			
		||||
                        max_length=200,
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "further_information",
 | 
			
		||||
                    models.URLField(
 | 
			
		||||
                        blank=True, null=True, verbose_name="Link zu mehr Informationen"
 | 
			
		||||
                    "adoption_notice",
 | 
			
		||||
                    models.OneToOneField(
 | 
			
		||||
                        on_delete=django.db.models.deletion.CASCADE,
 | 
			
		||||
                        to="fellchensammlung.adoptionnotice",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "group_only",
 | 
			
		||||
                    models.BooleanField(
 | 
			
		||||
                        default=False, verbose_name="Ausschließlich Gruppenadoption"
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "photos",
 | 
			
		||||
                    models.ManyToManyField(blank=True, to="fellchensammlung.image"),
 | 
			
		||||
                ),
 | 
			
		||||
            ],
 | 
			
		||||
            options={
 | 
			
		||||
                "permissions": [
 | 
			
		||||
                    (
 | 
			
		||||
                        "create_active_adoption_notice",
 | 
			
		||||
                        "Can create an active adoption notice",
 | 
			
		||||
                    )
 | 
			
		||||
                ],
 | 
			
		||||
            },
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name="Announcement",
 | 
			
		||||
            fields=[
 | 
			
		||||
                (
 | 
			
		||||
                    "text_ptr",
 | 
			
		||||
                    models.OneToOneField(
 | 
			
		||||
                        auto_created=True,
 | 
			
		||||
                        on_delete=django.db.models.deletion.CASCADE,
 | 
			
		||||
                        parent_link=True,
 | 
			
		||||
                        primary_key=True,
 | 
			
		||||
                        serialize=False,
 | 
			
		||||
                        to="fellchensammlung.text",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                ("logged_in_only", models.BooleanField(default=False)),
 | 
			
		||||
                ("created_at", models.DateTimeField(auto_now_add=True)),
 | 
			
		||||
                (
 | 
			
		||||
                    "publish_start_time",
 | 
			
		||||
                    models.DateTimeField(verbose_name="Veröffentlichungszeitpunk"),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "publish_end_time",
 | 
			
		||||
                    models.DateTimeField(verbose_name="Veröffentlichungsende"),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "type",
 | 
			
		||||
                    models.CharField(
 | 
			
		||||
                        choices=[
 | 
			
		||||
                            ("important", "important"),
 | 
			
		||||
                            ("warning", "warning"),
 | 
			
		||||
                            ("info", "info"),
 | 
			
		||||
                        ],
 | 
			
		||||
                        default="info",
 | 
			
		||||
                        max_length=100,
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
            ],
 | 
			
		||||
            bases=("fellchensammlung.text",),
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.AddField(
 | 
			
		||||
            model_name="adoptionnotice",
 | 
			
		||||
            name="photos",
 | 
			
		||||
            field=models.ManyToManyField(blank=True, to="fellchensammlung.image"),
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.AddField(
 | 
			
		||||
            model_name="text",
 | 
			
		||||
            name="language",
 | 
			
		||||
            field=models.ForeignKey(
 | 
			
		||||
                on_delete=django.db.models.deletion.PROTECT,
 | 
			
		||||
                to="fellchensammlung.language",
 | 
			
		||||
                verbose_name="Sprache",
 | 
			
		||||
            ),
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.AddField(
 | 
			
		||||
            model_name="adoptionnotice",
 | 
			
		||||
            name="location",
 | 
			
		||||
            field=models.ForeignKey(
 | 
			
		||||
                blank=True,
 | 
			
		||||
                null=True,
 | 
			
		||||
                on_delete=django.db.models.deletion.SET_NULL,
 | 
			
		||||
                to="fellchensammlung.location",
 | 
			
		||||
            ),
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name="Member",
 | 
			
		||||
@@ -348,42 +516,46 @@ class Migration(migrations.Migration):
 | 
			
		||||
            },
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name="Report",
 | 
			
		||||
            name="Comment",
 | 
			
		||||
            fields=[
 | 
			
		||||
                (
 | 
			
		||||
                    "id",
 | 
			
		||||
                    models.UUIDField(
 | 
			
		||||
                        default=uuid.uuid4,
 | 
			
		||||
                        help_text="ID dieses reports",
 | 
			
		||||
                    models.BigAutoField(
 | 
			
		||||
                        auto_created=True,
 | 
			
		||||
                        primary_key=True,
 | 
			
		||||
                        serialize=False,
 | 
			
		||||
                        verbose_name="ID",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "status",
 | 
			
		||||
                    models.CharField(
 | 
			
		||||
                        choices=[
 | 
			
		||||
                            ("action taken", "Action was taken"),
 | 
			
		||||
                            ("no action taken", "No action was taken"),
 | 
			
		||||
                            ("waiting", "Waiting for moderator action"),
 | 
			
		||||
                        ],
 | 
			
		||||
                        max_length=30,
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                ("comment", models.TextField(blank=True)),
 | 
			
		||||
                ("created_at", models.DateTimeField(auto_now_add=True)),
 | 
			
		||||
                ("text", models.TextField(verbose_name="Inhalt")),
 | 
			
		||||
                (
 | 
			
		||||
                    "adoption_notice",
 | 
			
		||||
                    models.ForeignKey(
 | 
			
		||||
                        on_delete=django.db.models.deletion.CASCADE,
 | 
			
		||||
                        to="fellchensammlung.adoptionnotice",
 | 
			
		||||
                        verbose_name="AdoptionNotice",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "reply_to",
 | 
			
		||||
                    models.ForeignKey(
 | 
			
		||||
                        blank=True,
 | 
			
		||||
                        null=True,
 | 
			
		||||
                        on_delete=django.db.models.deletion.CASCADE,
 | 
			
		||||
                        to="fellchensammlung.comment",
 | 
			
		||||
                        verbose_name="Antwort auf",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "user",
 | 
			
		||||
                    models.ForeignKey(
 | 
			
		||||
                        on_delete=django.db.models.deletion.CASCADE,
 | 
			
		||||
                        to="fellchensammlung.member",
 | 
			
		||||
                        verbose_name="Nutzer*in",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
            ],
 | 
			
		||||
            options={
 | 
			
		||||
                "permissions": [],
 | 
			
		||||
            },
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name="ModerationAction",
 | 
			
		||||
@@ -439,6 +611,12 @@ class Migration(migrations.Migration):
 | 
			
		||||
                    "trusted",
 | 
			
		||||
                    models.BooleanField(default=False, verbose_name="Vertrauenswürdig"),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "location_string",
 | 
			
		||||
                    models.CharField(
 | 
			
		||||
                        max_length=200, verbose_name="Ort der Organisation"
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "instagram",
 | 
			
		||||
                    models.URLField(
 | 
			
		||||
@@ -508,7 +686,7 @@ class Migration(migrations.Migration):
 | 
			
		||||
        migrations.AddField(
 | 
			
		||||
            model_name="report",
 | 
			
		||||
            name="reported_broken_rules",
 | 
			
		||||
            field=models.ManyToManyField(blank=True, to="fellchensammlung.rule"),
 | 
			
		||||
            field=models.ManyToManyField(to="fellchensammlung.rule"),
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name="Animal",
 | 
			
		||||
@@ -563,37 +741,51 @@ class Migration(migrations.Migration):
 | 
			
		||||
            ],
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name="Text",
 | 
			
		||||
            name="ReportAdoptionNotice",
 | 
			
		||||
            fields=[
 | 
			
		||||
                (
 | 
			
		||||
                    "id",
 | 
			
		||||
                    models.BigAutoField(
 | 
			
		||||
                    "report_ptr",
 | 
			
		||||
                    models.OneToOneField(
 | 
			
		||||
                        auto_created=True,
 | 
			
		||||
                        on_delete=django.db.models.deletion.CASCADE,
 | 
			
		||||
                        parent_link=True,
 | 
			
		||||
                        primary_key=True,
 | 
			
		||||
                        serialize=False,
 | 
			
		||||
                        verbose_name="ID",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                ("title", models.CharField(max_length=100)),
 | 
			
		||||
                ("content", models.TextField(verbose_name="Inhalt")),
 | 
			
		||||
                (
 | 
			
		||||
                    "text_code",
 | 
			
		||||
                    models.CharField(
 | 
			
		||||
                        blank=True, max_length=24, verbose_name="Text code"
 | 
			
		||||
                        to="fellchensammlung.report",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "language",
 | 
			
		||||
                    "adoption_notice",
 | 
			
		||||
                    models.ForeignKey(
 | 
			
		||||
                        on_delete=django.db.models.deletion.PROTECT,
 | 
			
		||||
                        to="fellchensammlung.language",
 | 
			
		||||
                        verbose_name="Sprache",
 | 
			
		||||
                        on_delete=django.db.models.deletion.CASCADE,
 | 
			
		||||
                        to="fellchensammlung.adoptionnotice",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
            ],
 | 
			
		||||
            options={
 | 
			
		||||
                "verbose_name": "Text",
 | 
			
		||||
                "verbose_name_plural": "Texte",
 | 
			
		||||
            },
 | 
			
		||||
            bases=("fellchensammlung.report",),
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name="ReportComment",
 | 
			
		||||
            fields=[
 | 
			
		||||
                (
 | 
			
		||||
                    "report_ptr",
 | 
			
		||||
                    models.OneToOneField(
 | 
			
		||||
                        auto_created=True,
 | 
			
		||||
                        on_delete=django.db.models.deletion.CASCADE,
 | 
			
		||||
                        parent_link=True,
 | 
			
		||||
                        primary_key=True,
 | 
			
		||||
                        serialize=False,
 | 
			
		||||
                        to="fellchensammlung.report",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "reported_comment",
 | 
			
		||||
                    models.ForeignKey(
 | 
			
		||||
                        on_delete=django.db.models.deletion.CASCADE,
 | 
			
		||||
                        to="fellchensammlung.comment",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
            ],
 | 
			
		||||
            bases=("fellchensammlung.report",),
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
 
 | 
			
		||||
@@ -1,56 +0,0 @@
 | 
			
		||||
# Generated by Django 5.0.6 on 2024-06-03 19:22
 | 
			
		||||
 | 
			
		||||
import django.db.models.deletion
 | 
			
		||||
from django.db import migrations, models
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ("fellchensammlung", "0001_initial"),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name="Comment",
 | 
			
		||||
            fields=[
 | 
			
		||||
                (
 | 
			
		||||
                    "id",
 | 
			
		||||
                    models.BigAutoField(
 | 
			
		||||
                        auto_created=True,
 | 
			
		||||
                        primary_key=True,
 | 
			
		||||
                        serialize=False,
 | 
			
		||||
                        verbose_name="ID",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                ("created_at", models.DateTimeField(auto_now_add=True)),
 | 
			
		||||
                ("text", models.TextField(verbose_name="Inhalt")),
 | 
			
		||||
                (
 | 
			
		||||
                    "adoption_notice",
 | 
			
		||||
                    models.ForeignKey(
 | 
			
		||||
                        on_delete=django.db.models.deletion.CASCADE,
 | 
			
		||||
                        to="fellchensammlung.adoptionnotice",
 | 
			
		||||
                        verbose_name="AdoptionNotice",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "reply_to",
 | 
			
		||||
                    models.ForeignKey(
 | 
			
		||||
                        blank=True,
 | 
			
		||||
                        null=True,
 | 
			
		||||
                        on_delete=django.db.models.deletion.CASCADE,
 | 
			
		||||
                        to="fellchensammlung.comment",
 | 
			
		||||
                        verbose_name="Antwort auf",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "user",
 | 
			
		||||
                    models.ForeignKey(
 | 
			
		||||
                        on_delete=django.db.models.deletion.CASCADE,
 | 
			
		||||
                        to="fellchensammlung.member",
 | 
			
		||||
                        verbose_name="Nutzer*in",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
            ],
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
@@ -1,71 +0,0 @@
 | 
			
		||||
# Generated by Django 5.0.6 on 2024-06-04 06:22
 | 
			
		||||
 | 
			
		||||
import django.db.models.deletion
 | 
			
		||||
from django.db import migrations, models
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ("fellchensammlung", "0002_comment"),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.RemoveField(
 | 
			
		||||
            model_name="report",
 | 
			
		||||
            name="adoption_notice",
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.RenameField(
 | 
			
		||||
            model_name="report",
 | 
			
		||||
            old_name="comment",
 | 
			
		||||
            new_name="user_comment",
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name="ReportComment",
 | 
			
		||||
            fields=[
 | 
			
		||||
                (
 | 
			
		||||
                    "report_ptr",
 | 
			
		||||
                    models.OneToOneField(
 | 
			
		||||
                        auto_created=True,
 | 
			
		||||
                        on_delete=django.db.models.deletion.CASCADE,
 | 
			
		||||
                        parent_link=True,
 | 
			
		||||
                        primary_key=True,
 | 
			
		||||
                        serialize=False,
 | 
			
		||||
                        to="fellchensammlung.report",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "reported_comment",
 | 
			
		||||
                    models.ForeignKey(
 | 
			
		||||
                        on_delete=django.db.models.deletion.CASCADE,
 | 
			
		||||
                        to="fellchensammlung.comment",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
            ],
 | 
			
		||||
            bases=("fellchensammlung.report",),
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name="ReportAdoptionNotice",
 | 
			
		||||
            fields=[
 | 
			
		||||
                (
 | 
			
		||||
                    "report_ptr",
 | 
			
		||||
                    models.OneToOneField(
 | 
			
		||||
                        auto_created=True,
 | 
			
		||||
                        on_delete=django.db.models.deletion.CASCADE,
 | 
			
		||||
                        parent_link=True,
 | 
			
		||||
                        primary_key=True,
 | 
			
		||||
                        serialize=False,
 | 
			
		||||
                        to="fellchensammlung.report",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "adoption_notice",
 | 
			
		||||
                    models.ForeignKey(
 | 
			
		||||
                        on_delete=django.db.models.deletion.CASCADE,
 | 
			
		||||
                        to="fellchensammlung.adoptionnotice",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
            ],
 | 
			
		||||
            bases=("fellchensammlung.report",),
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
@@ -1,18 +0,0 @@
 | 
			
		||||
# Generated by Django 5.0.6 on 2024-06-04 08:40
 | 
			
		||||
 | 
			
		||||
from django.db import migrations, models
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ("fellchensammlung", "0003_remove_report_adoption_notice_and_more"),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.AlterField(
 | 
			
		||||
            model_name="report",
 | 
			
		||||
            name="reported_broken_rules",
 | 
			
		||||
            field=models.ManyToManyField(to="fellchensammlung.rule"),
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
@@ -1,41 +0,0 @@
 | 
			
		||||
# Generated by Django 5.0.6 on 2024-06-05 04:21
 | 
			
		||||
 | 
			
		||||
import django.db.models.deletion
 | 
			
		||||
from django.db import migrations, models
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ("fellchensammlung", "0004_alter_report_reported_broken_rules"),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name="Announcement",
 | 
			
		||||
            fields=[
 | 
			
		||||
                (
 | 
			
		||||
                    "text_ptr",
 | 
			
		||||
                    models.OneToOneField(
 | 
			
		||||
                        auto_created=True,
 | 
			
		||||
                        on_delete=django.db.models.deletion.CASCADE,
 | 
			
		||||
                        parent_link=True,
 | 
			
		||||
                        primary_key=True,
 | 
			
		||||
                        serialize=False,
 | 
			
		||||
                        to="fellchensammlung.text",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                ("logged_in_only", models.BooleanField(default=False)),
 | 
			
		||||
                ("created_at", models.DateTimeField(auto_now_add=True)),
 | 
			
		||||
                (
 | 
			
		||||
                    "publish_start_time",
 | 
			
		||||
                    models.DateTimeField(verbose_name="Veröffentlichungszeitpunk"),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "publish_end_time",
 | 
			
		||||
                    models.DateTimeField(verbose_name="Veröffentlichungsende"),
 | 
			
		||||
                ),
 | 
			
		||||
            ],
 | 
			
		||||
            bases=("fellchensammlung.text",),
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
@@ -1,26 +0,0 @@
 | 
			
		||||
# Generated by Django 5.0.6 on 2024-06-05 06:21
 | 
			
		||||
 | 
			
		||||
from django.db import migrations, models
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ("fellchensammlung", "0005_announcement"),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.AddField(
 | 
			
		||||
            model_name="announcement",
 | 
			
		||||
            name="type",
 | 
			
		||||
            field=models.CharField(
 | 
			
		||||
                choices=[
 | 
			
		||||
                    ("important", "important"),
 | 
			
		||||
                    ("warning", "warning"),
 | 
			
		||||
                    ("info", "info"),
 | 
			
		||||
                ],
 | 
			
		||||
                default="info",
 | 
			
		||||
                max_length=100,
 | 
			
		||||
            ),
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
@@ -1,81 +0,0 @@
 | 
			
		||||
# Generated by Django 5.0.6 on 2024-06-05 13:19
 | 
			
		||||
 | 
			
		||||
import django.db.models.deletion
 | 
			
		||||
from django.db import migrations, models
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ("fellchensammlung", "0006_announcement_type"),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.RemoveField(
 | 
			
		||||
            model_name="location",
 | 
			
		||||
            name="country",
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.RemoveField(
 | 
			
		||||
            model_name="location",
 | 
			
		||||
            name="description",
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.RemoveField(
 | 
			
		||||
            model_name="location",
 | 
			
		||||
            name="postcode",
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.AddField(
 | 
			
		||||
            model_name="adoptionnotice",
 | 
			
		||||
            name="location",
 | 
			
		||||
            field=models.ForeignKey(
 | 
			
		||||
                blank=True,
 | 
			
		||||
                null=True,
 | 
			
		||||
                on_delete=django.db.models.deletion.SET_NULL,
 | 
			
		||||
                to="fellchensammlung.location",
 | 
			
		||||
            ),
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.AddField(
 | 
			
		||||
            model_name="adoptionnotice",
 | 
			
		||||
            name="location_string",
 | 
			
		||||
            field=models.CharField(
 | 
			
		||||
                default="72072", max_length=200, verbose_name="Ortsangabe"
 | 
			
		||||
            ),
 | 
			
		||||
            preserve_default=False,
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.AddField(
 | 
			
		||||
            model_name="location",
 | 
			
		||||
            name="latitude",
 | 
			
		||||
            field=models.FloatField(default=47),
 | 
			
		||||
            preserve_default=False,
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.AddField(
 | 
			
		||||
            model_name="location",
 | 
			
		||||
            name="longitude",
 | 
			
		||||
            field=models.FloatField(default=9),
 | 
			
		||||
            preserve_default=False,
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.AddField(
 | 
			
		||||
            model_name="location",
 | 
			
		||||
            name="osm_id",
 | 
			
		||||
            field=models.IntegerField(default=1),
 | 
			
		||||
            preserve_default=False,
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.AddField(
 | 
			
		||||
            model_name="location",
 | 
			
		||||
            name="place_id",
 | 
			
		||||
            field=models.IntegerField(default=1),
 | 
			
		||||
            preserve_default=False,
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.AddField(
 | 
			
		||||
            model_name="rescueorganization",
 | 
			
		||||
            name="location_string",
 | 
			
		||||
            field=models.CharField(
 | 
			
		||||
                default="72072", max_length=200, verbose_name="Ort der Organisation"
 | 
			
		||||
            ),
 | 
			
		||||
            preserve_default=False,
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.AlterField(
 | 
			
		||||
            model_name="location",
 | 
			
		||||
            name="name",
 | 
			
		||||
            field=models.CharField(max_length=2000),
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
@@ -1,20 +0,0 @@
 | 
			
		||||
# Generated by Django 5.0.6 on 2024-06-05 19:52
 | 
			
		||||
 | 
			
		||||
from django.db import migrations
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        (
 | 
			
		||||
            "fellchensammlung",
 | 
			
		||||
            "0007_remove_location_country_remove_location_description_and_more",
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.RemoveField(
 | 
			
		||||
            model_name="location",
 | 
			
		||||
            name="osm_id",
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
@@ -1,17 +0,0 @@
 | 
			
		||||
# Generated by Django 5.0.6 on 2024-06-06 08:48
 | 
			
		||||
 | 
			
		||||
from django.db import migrations
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ("fellchensammlung", "0008_remove_location_osm_id"),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.RemoveField(
 | 
			
		||||
            model_name="image",
 | 
			
		||||
            name="title",
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
@@ -1,70 +0,0 @@
 | 
			
		||||
# Generated by Django 5.0.6 on 2024-06-06 14:51
 | 
			
		||||
 | 
			
		||||
from django.db import migrations, models
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ("fellchensammlung", "0009_remove_image_title"),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name="Status",
 | 
			
		||||
            fields=[
 | 
			
		||||
                (
 | 
			
		||||
                    "id",
 | 
			
		||||
                    models.BigAutoField(
 | 
			
		||||
                        auto_created=True,
 | 
			
		||||
                        primary_key=True,
 | 
			
		||||
                        serialize=False,
 | 
			
		||||
                        verbose_name="ID",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "major_status",
 | 
			
		||||
                    models.CharField(
 | 
			
		||||
                        choices=[
 | 
			
		||||
                            ("active", "active"),
 | 
			
		||||
                            ("in_review", "in review"),
 | 
			
		||||
                            ("closed", "closed"),
 | 
			
		||||
                            ("disabled", "disabled"),
 | 
			
		||||
                        ],
 | 
			
		||||
                        max_length=200,
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
                (
 | 
			
		||||
                    "minor_status",
 | 
			
		||||
                    models.CharField(
 | 
			
		||||
                        choices=[
 | 
			
		||||
                            ("searching", "searching"),
 | 
			
		||||
                            ("interested", "interested"),
 | 
			
		||||
                            ("waiting_for_review", "waiting_for_review"),
 | 
			
		||||
                            (
 | 
			
		||||
                                "successful_with_notfellchen",
 | 
			
		||||
                                "successful_with_notfellchen",
 | 
			
		||||
                            ),
 | 
			
		||||
                            (
 | 
			
		||||
                                "successful_without_notfellchen",
 | 
			
		||||
                                "successful_without_notfellchen",
 | 
			
		||||
                            ),
 | 
			
		||||
                            ("animal_died", "animal_died"),
 | 
			
		||||
                            (
 | 
			
		||||
                                "closed_for_other_adoption_notice",
 | 
			
		||||
                                "closed_for_other_adoption_notice",
 | 
			
		||||
                            ),
 | 
			
		||||
                            (
 | 
			
		||||
                                "not_open_for_adoption_anymore",
 | 
			
		||||
                                "not_open_for_adoption_anymore",
 | 
			
		||||
                            ),
 | 
			
		||||
                            ("other", "other"),
 | 
			
		||||
                            ("against_the_rules", "against_the_rules"),
 | 
			
		||||
                            ("missing_information", "missing_information"),
 | 
			
		||||
                        ],
 | 
			
		||||
                        max_length=200,
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
            ],
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
@@ -1,27 +0,0 @@
 | 
			
		||||
# Generated by Django 5.0.6 on 2024-06-06 14:51
 | 
			
		||||
 | 
			
		||||
import django.db.models.deletion
 | 
			
		||||
from django.db import migrations, models
 | 
			
		||||
 | 
			
		||||
from fellchensammlung.models import Status
 | 
			
		||||
 | 
			
		||||
default_status = Status.objects.create(major_status=Status.ACTIVE, minor_status="searching")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ("fellchensammlung", "0010_status"),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.AddField(
 | 
			
		||||
            model_name="adoptionnotice",
 | 
			
		||||
            name="status",
 | 
			
		||||
            field=models.ForeignKey(
 | 
			
		||||
                default=default_status.pk,
 | 
			
		||||
                on_delete=django.db.models.deletion.PROTECT,
 | 
			
		||||
                to="fellchensammlung.status",
 | 
			
		||||
            ),
 | 
			
		||||
            preserve_default=False,
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
@@ -35,64 +35,6 @@ class Language(models.Model):
 | 
			
		||||
        verbose_name_plural = _('Sprachen')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Status(models.Model):
 | 
			
		||||
    """
 | 
			
		||||
    The major status indicates a general state of an adoption notice
 | 
			
		||||
    whereas the minor status is used for reporting
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
    ACTIVE = "active"
 | 
			
		||||
    IN_REVIEW = "in_review"
 | 
			
		||||
    CLOSED = "closed"
 | 
			
		||||
    DISABLED = "disabled"
 | 
			
		||||
    MAJOR_STATUS_CHOICES = {
 | 
			
		||||
        ACTIVE: "active",
 | 
			
		||||
        IN_REVIEW: "in review",
 | 
			
		||||
        CLOSED: "closed",
 | 
			
		||||
        DISABLED: "disabled",
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    MINOR_STATUS_CHOICES = {
 | 
			
		||||
        ACTIVE: {
 | 
			
		||||
            "searching": "searching",
 | 
			
		||||
            "interested": "interested",
 | 
			
		||||
        },
 | 
			
		||||
        IN_REVIEW: {
 | 
			
		||||
            "waiting_for_review": "waiting_for_review",
 | 
			
		||||
        },
 | 
			
		||||
        CLOSED: {
 | 
			
		||||
            "successful_with_notfellchen": "successful_with_notfellchen",
 | 
			
		||||
            "successful_without_notfellchen": "successful_without_notfellchen",
 | 
			
		||||
            "animal_died": "animal_died",
 | 
			
		||||
            "closed_for_other_adoption_notice": "closed_for_other_adoption_notice",
 | 
			
		||||
            "not_open_for_adoption_anymore": "not_open_for_adoption_anymore",
 | 
			
		||||
            "other": "other"
 | 
			
		||||
        },
 | 
			
		||||
        DISABLED: {
 | 
			
		||||
            "against_the_rules": "against_the_rules",
 | 
			
		||||
            "missing_information": "missing_information",
 | 
			
		||||
            "other": "other"
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    major_status = models.CharField(choices=MAJOR_STATUS_CHOICES, max_length=200)
 | 
			
		||||
    minor_choices = {}
 | 
			
		||||
    for key in MINOR_STATUS_CHOICES:
 | 
			
		||||
        minor_choices.update(MINOR_STATUS_CHOICES[key])
 | 
			
		||||
    minor_status = models.CharField(choices=minor_choices, max_length=200)
 | 
			
		||||
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
        return f"{self.major_status}: {self.minor_status}"
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def is_active(self):
 | 
			
		||||
        return self.major_status == self.ACTIVE
 | 
			
		||||
 | 
			
		||||
    @staticmethod
 | 
			
		||||
    def get_minor_choices(major_status):
 | 
			
		||||
        return Status.MINOR_STATUS_CHOICES[major_status]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Image(models.Model):
 | 
			
		||||
    image = models.ImageField(upload_to='images')
 | 
			
		||||
    alt_text = models.TextField(max_length=2000)
 | 
			
		||||
@@ -182,7 +124,6 @@ class AdoptionNotice(models.Model):
 | 
			
		||||
    photos = models.ManyToManyField(Image, blank=True)
 | 
			
		||||
    location_string = models.CharField(max_length=200, verbose_name=_("Ortsangabe"))
 | 
			
		||||
    location = models.ForeignKey(Location, blank=True, null=True, on_delete=models.SET_NULL, )
 | 
			
		||||
    status = models.ForeignKey(Status, on_delete=models.PROTECT)
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def animals(self):
 | 
			
		||||
@@ -258,7 +199,69 @@ class AdoptionNotice(models.Model):
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def is_active(self):
 | 
			
		||||
        return self.status.is_active
 | 
			
		||||
        if not hasattr(self, 'adoptionnoticestatus'):
 | 
			
		||||
            return False
 | 
			
		||||
        return self.adoptionnoticestatus.is_active
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class AdoptionNoticeStatus(models.Model):
 | 
			
		||||
    """
 | 
			
		||||
    The major status indicates a general state of an adoption notice
 | 
			
		||||
    whereas the minor status is used for reporting
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
    ACTIVE = "active"
 | 
			
		||||
    IN_REVIEW = "in_review"
 | 
			
		||||
    CLOSED = "closed"
 | 
			
		||||
    DISABLED = "disabled"
 | 
			
		||||
    MAJOR_STATUS_CHOICES = {
 | 
			
		||||
        ACTIVE: "active",
 | 
			
		||||
        IN_REVIEW: "in review",
 | 
			
		||||
        CLOSED: "closed",
 | 
			
		||||
        DISABLED: "disabled",
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    MINOR_STATUS_CHOICES = {
 | 
			
		||||
        ACTIVE: {
 | 
			
		||||
            "searching": "searching",
 | 
			
		||||
            "interested": "interested",
 | 
			
		||||
        },
 | 
			
		||||
        IN_REVIEW: {
 | 
			
		||||
            "waiting_for_review": "waiting_for_review",
 | 
			
		||||
        },
 | 
			
		||||
        CLOSED: {
 | 
			
		||||
            "successful_with_notfellchen": "successful_with_notfellchen",
 | 
			
		||||
            "successful_without_notfellchen": "successful_without_notfellchen",
 | 
			
		||||
            "animal_died": "animal_died",
 | 
			
		||||
            "closed_for_other_adoption_notice": "closed_for_other_adoption_notice",
 | 
			
		||||
            "not_open_for_adoption_anymore": "not_open_for_adoption_anymore",
 | 
			
		||||
            "other": "other"
 | 
			
		||||
        },
 | 
			
		||||
        DISABLED: {
 | 
			
		||||
            "against_the_rules": "against_the_rules",
 | 
			
		||||
            "missing_information": "missing_information",
 | 
			
		||||
            "technical_error": "technical_error",
 | 
			
		||||
            "other": "other"
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    major_status = models.CharField(choices=MAJOR_STATUS_CHOICES, max_length=200)
 | 
			
		||||
    minor_choices = {}
 | 
			
		||||
    for key in MINOR_STATUS_CHOICES:
 | 
			
		||||
        minor_choices.update(MINOR_STATUS_CHOICES[key])
 | 
			
		||||
    minor_status = models.CharField(choices=minor_choices, max_length=200)
 | 
			
		||||
    adoption_notice = models.OneToOneField(AdoptionNotice, on_delete=models.CASCADE)
 | 
			
		||||
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
        return f"{self.adoption_notice}: {self.major_status}, {self.minor_status}"
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def is_active(self):
 | 
			
		||||
        return self.major_status == self.ACTIVE
 | 
			
		||||
 | 
			
		||||
    @staticmethod
 | 
			
		||||
    def get_minor_choices(major_status):
 | 
			
		||||
        return AdoptionNoticeStatus.MINOR_STATUS_CHOICES[major_status]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Animal(models.Model):
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user