Files
zulip/zerver/migrations/0057_realmauditlog.py
Anders Kaseorg df001db1a9 black: Reformat with Black 23.
Black 23 enforces some slightly more specific rules about empty line
counts and redundant parenthesis removal, but the result is still
compatible with Black 22.

(This does not actually upgrade our Python environment to Black 23
yet.)

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2023-02-02 10:40:13 -08:00

96 lines
3.3 KiB
Python

# Generated by Django 1.10.5 on 2017-03-04 07:33
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
from django.db.backends.postgresql.schema import BaseDatabaseSchemaEditor
from django.db.migrations.state import StateApps
from django.utils.timezone import now as timezone_now
def backfill_user_activations_and_deactivations(
apps: StateApps, schema_editor: BaseDatabaseSchemaEditor
) -> None:
migration_time = timezone_now()
RealmAuditLog = apps.get_model("zerver", "RealmAuditLog")
UserProfile = apps.get_model("zerver", "UserProfile")
for user in UserProfile.objects.all():
RealmAuditLog.objects.create(
realm=user.realm,
modified_user=user,
event_type="user_created",
event_time=user.date_joined,
backfilled=False,
)
for user in UserProfile.objects.filter(is_active=False):
RealmAuditLog.objects.create(
realm=user.realm,
modified_user=user,
event_type="user_deactivated",
event_time=migration_time,
backfilled=True,
)
def reverse_code(apps: StateApps, schema_editor: BaseDatabaseSchemaEditor) -> None:
RealmAuditLog = apps.get_model("zerver", "RealmAuditLog")
RealmAuditLog.objects.filter(event_type="user_created").delete()
RealmAuditLog.objects.filter(event_type="user_deactivated").delete()
class Migration(migrations.Migration):
dependencies = [
("zerver", "0056_userprofile_emoji_alt_code"),
]
operations = [
migrations.CreateModel(
name="RealmAuditLog",
fields=[
(
"id",
models.AutoField(
auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
),
),
("event_type", models.CharField(max_length=40)),
("backfilled", models.BooleanField(default=False)),
("event_time", models.DateTimeField()),
(
"acting_user",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="+",
to=settings.AUTH_USER_MODEL,
),
),
(
"modified_stream",
models.ForeignKey(
null=True, on_delete=django.db.models.deletion.CASCADE, to="zerver.Stream"
),
),
(
"modified_user",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="+",
to=settings.AUTH_USER_MODEL,
),
),
(
"realm",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE, to="zerver.Realm"
),
),
],
),
migrations.RunPython(
backfill_user_activations_and_deactivations, reverse_code=reverse_code, elidable=True
),
]