600 lines
21 KiB
Python
600 lines
21 KiB
Python
# Generated by Django 5.0.3 on 2024-04-14 13:57
|
|
|
|
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="Image",
|
|
fields=[
|
|
(
|
|
"id",
|
|
models.BigAutoField(
|
|
auto_created=True,
|
|
primary_key=True,
|
|
serialize=False,
|
|
verbose_name="ID",
|
|
),
|
|
),
|
|
("title", models.CharField(max_length=200)),
|
|
("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",
|
|
),
|
|
),
|
|
("name", models.CharField(max_length=200)),
|
|
("postcode", models.CharField(max_length=200)),
|
|
(
|
|
"country",
|
|
models.CharField(
|
|
choices=[
|
|
("DE", "Germany"),
|
|
("AT", "Austria"),
|
|
("CH", "Switzerland"),
|
|
],
|
|
max_length=20,
|
|
),
|
|
),
|
|
(
|
|
"description",
|
|
models.TextField(
|
|
blank=True, null=True, verbose_name="Beschreibung"
|
|
),
|
|
),
|
|
],
|
|
),
|
|
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"
|
|
),
|
|
),
|
|
(
|
|
"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",
|
|
),
|
|
),
|
|
],
|
|
options={
|
|
"verbose_name": "user",
|
|
"verbose_name_plural": "users",
|
|
"abstract": False,
|
|
},
|
|
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"
|
|
),
|
|
),
|
|
(
|
|
"photos",
|
|
models.ManyToManyField(blank=True, to="fellchensammlung.image"),
|
|
),
|
|
],
|
|
options={
|
|
"permissions": [
|
|
(
|
|
"create_active_adoption_notice",
|
|
"Can create an active adoption notice",
|
|
)
|
|
],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name="Member",
|
|
fields=[
|
|
(
|
|
"id",
|
|
models.BigAutoField(
|
|
auto_created=True,
|
|
primary_key=True,
|
|
serialize=False,
|
|
verbose_name="ID",
|
|
),
|
|
),
|
|
(
|
|
"trust_level",
|
|
models.CharField(
|
|
choices=[
|
|
("admin", "Administrator*in"),
|
|
("Moderator", "Moderator*in"),
|
|
("Koordinator*in", "Koordinator*in"),
|
|
("Mitglied", "Mitglied"),
|
|
],
|
|
default="Mitglied",
|
|
max_length=100,
|
|
),
|
|
),
|
|
(
|
|
"preferred_language",
|
|
models.ForeignKey(
|
|
blank=True,
|
|
null=True,
|
|
on_delete=django.db.models.deletion.PROTECT,
|
|
to="fellchensammlung.language",
|
|
verbose_name="Bevorzugte Sprache",
|
|
),
|
|
),
|
|
(
|
|
"user",
|
|
models.OneToOneField(
|
|
on_delete=django.db.models.deletion.CASCADE,
|
|
to=settings.AUTH_USER_MODEL,
|
|
verbose_name="Nutzer*in",
|
|
),
|
|
),
|
|
],
|
|
options={
|
|
"verbose_name": "Nutzer*in",
|
|
"verbose_name_plural": "Nutzer*innen",
|
|
},
|
|
),
|
|
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,
|
|
),
|
|
),
|
|
("comment", models.TextField(blank=True)),
|
|
("created_at", models.DateTimeField(auto_now_add=True)),
|
|
(
|
|
"adoption_notice",
|
|
models.ForeignKey(
|
|
on_delete=django.db.models.deletion.CASCADE,
|
|
to="fellchensammlung.adoptionnotice",
|
|
),
|
|
),
|
|
],
|
|
options={
|
|
"permissions": [],
|
|
},
|
|
),
|
|
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"),
|
|
),
|
|
(
|
|
"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(blank=True, 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="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"
|
|
),
|
|
),
|
|
(
|
|
"language",
|
|
models.ForeignKey(
|
|
on_delete=django.db.models.deletion.PROTECT,
|
|
to="fellchensammlung.language",
|
|
verbose_name="Sprache",
|
|
),
|
|
),
|
|
],
|
|
options={
|
|
"verbose_name": "Text",
|
|
"verbose_name_plural": "Texte",
|
|
},
|
|
),
|
|
]
|