vbv/server/vbv_lernwelt/notify/migrations/0001_initial.py

176 lines
6.2 KiB
Python

# Generated by Django 3.2.13 on 2023-07-14 13:08
import django.db.models.deletion
import django.utils.timezone
import jsonfield.fields
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
("contenttypes", "0002_remove_content_type_name"),
]
operations = [
migrations.CreateModel(
name="Notification",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"level",
models.CharField(
choices=[
("success", "success"),
("info", "info"),
("warning", "warning"),
("error", "error"),
],
default="info",
max_length=20,
verbose_name="level",
),
),
(
"unread",
models.BooleanField(
db_index=True, default=True, verbose_name="unread"
),
),
(
"actor_object_id",
models.CharField(max_length=255, verbose_name="actor object id"),
),
("verb", models.CharField(max_length=255, verbose_name="verb")),
(
"description",
models.TextField(blank=True, null=True, verbose_name="description"),
),
(
"target_object_id",
models.CharField(
blank=True,
max_length=255,
null=True,
verbose_name="target object id",
),
),
(
"action_object_object_id",
models.CharField(
blank=True,
max_length=255,
null=True,
verbose_name="action object object id",
),
),
(
"timestamp",
models.DateTimeField(
db_index=True,
default=django.utils.timezone.now,
verbose_name="timestamp",
),
),
(
"public",
models.BooleanField(
db_index=True, default=True, verbose_name="public"
),
),
(
"deleted",
models.BooleanField(
db_index=True, default=False, verbose_name="deleted"
),
),
(
"emailed",
models.BooleanField(
db_index=True, default=False, verbose_name="emailed"
),
),
(
"data",
jsonfield.fields.JSONField(
blank=True, null=True, verbose_name="data"
),
),
(
"notification_type",
models.CharField(
choices=[
("USER_INTERACTION", "User Interaction"),
("PROGRESS", "Progress"),
("INFORMATION", "Information"),
],
default="INFORMATION",
max_length=32,
),
),
("target_url", models.URLField(blank=True, null=True)),
("actor_avatar_url", models.URLField(blank=True, null=True)),
("course", models.CharField(blank=True, max_length=32, null=True)),
(
"action_object_content_type",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="notify_action_object",
to="contenttypes.contenttype",
verbose_name="action object content type",
),
),
(
"actor_content_type",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="notify_actor",
to="contenttypes.contenttype",
verbose_name="actor content type",
),
),
(
"recipient",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="notifications",
to=settings.AUTH_USER_MODEL,
verbose_name="recipient",
),
),
(
"target_content_type",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="notify_target",
to="contenttypes.contenttype",
verbose_name="target content type",
),
),
],
options={
"verbose_name": "Notification",
"verbose_name_plural": "Notifications",
"ordering": ["-timestamp"],
"abstract": False,
"index_together": {("recipient", "unread")},
},
),
]