Files
website-v2/users/migrations/0010_preferences.py
Natalia 80eae90184 Initial model for User's preferences, specifically for email notifications.
Part of #343. The news' notifications module was also changed to the user
preferences is honored when sending news emails.

Also exclude migrations from the black check.
2023-06-16 13:00:16 -03:00

51 lines
1.5 KiB
Python

# Generated by Django 4.2.1 on 2023-06-14 16:51
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import users.models
def backfill_preferences(apps, schema_editor):
User = apps.get_model('users', 'User')
Preferences = apps.get_model('users', 'Preferences')
instances = [Preferences(user=u) for u in User.objects.all()]
Preferences.objects.bulk_create(instances)
class Migration(migrations.Migration):
dependencies = [
("users", "0009_user_display_name"),
]
operations = [
migrations.CreateModel(
name="Preferences",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"notifications",
models.JSONField(default=users.models.get_empty_notifications),
),
(
"user",
models.OneToOneField(
on_delete=django.db.models.deletion.CASCADE,
related_name="preferences",
to=settings.AUTH_USER_MODEL,
),
),
],
),
migrations.RunPython(backfill_preferences, lambda *args, **kwargs: None),
]