# Generated by Django 5.0.6 on 2024-06-08 10:13 import datetime import django.contrib.auth.models import django.contrib.auth.validators import django.db.models.deletion import django.utils.timezone import uuid from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ("auth", "0012_alter_user_first_name_max_length"), ] operations = [ 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=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("image", models.ImageField(upload_to="images")), ("alt_text", models.TextField(max_length=2000)), ], ), migrations.CreateModel( name="Language", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "name", models.CharField( help_text="Der Name einer natürliche Sprache wie Deutsch, Englisch oder Arabisch.", max_length=200, unique=True, ), ), ( "languagecode", models.CharField( help_text="Der standartisierte Sprachcode. Mehr Informationen: http://www.i18nguy.com/unicode/language-identifiers.html", max_length=10, verbose_name="Sprachcode", ), ), ], options={ "verbose_name": "Sprache", "verbose_name_plural": "Sprachen", }, ), migrations.CreateModel( name="Location", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("place_id", models.IntegerField()), ("latitude", models.FloatField()), ("longitude", models.FloatField()), ("name", models.CharField(max_length=2000)), ], ), migrations.CreateModel( name="Report", fields=[ ( "id", models.UUIDField( default=uuid.uuid4, help_text="ID dieses reports", 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, ), ), ("user_comment", models.TextField(blank=True)), ("created_at", models.DateTimeField(auto_now_add=True)), ], options={ "permissions": [], }, ), migrations.CreateModel( name="Species", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "name", models.CharField( help_text="Name der Tierart", max_length=200, verbose_name="Name", ), ), ], options={ "verbose_name": "Tierart", "verbose_name_plural": "Tierarten", }, ), migrations.CreateModel( name="User", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("password", models.CharField(max_length=128, verbose_name="password")), ( "last_login", models.DateTimeField( blank=True, null=True, verbose_name="last login" ), ), ( "is_superuser", models.BooleanField( default=False, help_text="Designates that this user has all permissions without explicitly assigning them.", verbose_name="superuser status", ), ), ( "username", models.CharField( error_messages={ "unique": "A user with that username already exists." }, help_text="Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.", max_length=150, unique=True, validators=[ django.contrib.auth.validators.UnicodeUsernameValidator() ], verbose_name="username", ), ), ( "first_name", models.CharField( blank=True, max_length=150, verbose_name="first name" ), ), ( "last_name", models.CharField( blank=True, max_length=150, verbose_name="last name" ), ), ( "email", models.EmailField( blank=True, max_length=254, verbose_name="email address" ), ), ( "is_staff", models.BooleanField( default=False, help_text="Designates whether the user can log into this admin site.", verbose_name="staff status", ), ), ( "is_active", models.BooleanField( default=True, help_text="Designates whether this user should be treated as active. Unselect this instead of deleting accounts.", verbose_name="active", ), ), ( "date_joined", models.DateTimeField( default=django.utils.timezone.now, verbose_name="date joined" ), ), ( "trust_level", models.IntegerField( choices=[ ("admin", 4), ("Moderator", 3), ("Koordinator*in", 2), ("Mitglied", 1), ], default=1, ), ), ( "groups", models.ManyToManyField( blank=True, help_text="The groups this user belongs to. A user will get all permissions granted to each of their groups.", related_name="user_set", related_query_name="user", to="auth.group", verbose_name="groups", ), ), ( "user_permissions", models.ManyToManyField( blank=True, help_text="Specific permissions for this user.", related_name="user_set", related_query_name="user", to="auth.permission", verbose_name="user permissions", ), ), ( "preferred_language", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to="fellchensammlung.language", verbose_name="Bevorzugte Sprache", ), ), ], options={ "verbose_name": "Nutzer*in", "verbose_name_plural": "Nutzer*innen", }, managers=[ ("objects", django.contrib.auth.models.UserManager()), ], ), 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"), ), ( "created_by", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name="Creator", ), ), ( "photos", models.ManyToManyField(blank=True, to="fellchensammlung.image"), ), ( "location", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to="fellchensammlung.location", ), ), ], options={ "permissions": [ ( "create_active_adoption_notice", "Can create an active adoption notice", ) ], }, ), migrations.CreateModel( name="AdoptionNoticeStatus", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "major_status", models.CharField( choices=[ ("active", "active"), ("awaiting_action", "in review"), ("closed", "closed"), ("disabled", "disabled"), ], max_length=200, ), ), ( "minor_status", models.CharField( choices=[ ("searching", "searching"), ("interested", "interested"), ("waiting_for_review", "waiting_for_review"), ("needs_additional_info", "needs_additional_info"), ( "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"), ("technical_error", "technical_error"), ], max_length=200, ), ), ( "adoption_notice", models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, to="fellchensammlung.adoptionnotice", ), ), ], ), 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.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=settings.AUTH_USER_MODEL, verbose_name="Nutzer*in", ), ), ], ), migrations.AddField( model_name="text", name="language", field=models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, to="fellchensammlung.language", verbose_name="Sprache", ), ), migrations.CreateModel( name="ModerationAction", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "action", models.CharField( choices=[ ("user_banned", "User was banned"), ("content_deleted", "Content was deleted"), ("comment", "Comment was added"), ("other_action_taken", "Other action was taken"), ("no_action_taken", "No action was taken"), ], max_length=30, ), ), ("created_at", models.DateTimeField(auto_now_add=True)), ("public_comment", models.TextField(blank=True)), ("private_comment", models.TextField(blank=True)), ( "report", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to="fellchensammlung.report", ), ), ], ), migrations.CreateModel( name="RescueOrganization", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("name", models.CharField(max_length=200)), ( "trusted", models.BooleanField(default=False, verbose_name="Vertrauenswürdig"), ), ( "location_string", models.CharField( max_length=200, verbose_name="Ort der Organisation" ), ), ( "instagram", models.URLField( blank=True, null=True, verbose_name="Instagram Profil" ), ), ( "facebook", models.URLField( blank=True, null=True, verbose_name="Facebook Profil" ), ), ( "fediverse_profile", models.URLField( blank=True, null=True, verbose_name="Fediverse Profil" ), ), ( "website", models.URLField(blank=True, null=True, verbose_name="Website"), ), ( "location", models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, to="fellchensammlung.location", ), ), ], ), migrations.AddField( model_name="adoptionnotice", name="organization", field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to="fellchensammlung.rescueorganization", verbose_name="Organisation", ), ), migrations.CreateModel( name="Rule", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("title", models.CharField(max_length=200)), ("rule_text", models.TextField()), ("rule_identifier", models.CharField(max_length=24)), ( "language", models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, to="fellchensammlung.language", ), ), ], ), migrations.AddField( model_name="report", name="reported_broken_rules", field=models.ManyToManyField(to="fellchensammlung.rule"), ), migrations.CreateModel( name="Animal", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("date_of_birth", models.DateField(verbose_name="Geburtsdatum")), ("name", models.CharField(max_length=200)), ( "description", models.TextField( blank=True, null=True, verbose_name="Beschreibung" ), ), ( "sex", models.CharField( choices=[ ("M_N", "neutered male"), ("M", "male"), ("F_N", "neutered female"), ("F", "female"), ], max_length=20, ), ), ( "adoption_notice", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to="fellchensammlung.adoptionnotice", ), ), ( "photos", models.ManyToManyField(blank=True, to="fellchensammlung.image"), ), ( "species", models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, to="fellchensammlung.species", ), ), ], ), 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",), ), 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",), ), ]