Notfellchen/src/fellchensammlung/migrations/0001_initial.py

772 lines
27 KiB
Python

# 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",),
),
]