diff --git a/auditlog/migrations/0001_squashed_0017.py b/auditlog/migrations/0001_squashed_0017.py new file mode 100644 index 0000000..22222da --- /dev/null +++ b/auditlog/migrations/0001_squashed_0017.py @@ -0,0 +1,154 @@ +# Generated by Django 6.0 on 2026-02-16 03:57 + +import django.db.models.deletion +import django.utils.timezone +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + replaces = [ + ("auditlog", "0001_initial"), + ("auditlog", "0002_auto_support_long_primary_keys"), + ("auditlog", "0003_logentry_remote_addr"), + ("auditlog", "0004_logentry_detailed_object_repr"), + ("auditlog", "0005_logentry_additional_data_verbose_name"), + ("auditlog", "0006_object_pk_index"), + ("auditlog", "0007_object_pk_type"), + ("auditlog", "0008_action_index"), + ("auditlog", "0009_alter_logentry_additional_data"), + ("auditlog", "0010_alter_logentry_timestamp"), + ("auditlog", "0011_logentry_serialized_data"), + ("auditlog", "0012_add_logentry_action_access"), + ("auditlog", "0013_alter_logentry_timestamp"), + ("auditlog", "0014_logentry_cid"), + ("auditlog", "0015_alter_logentry_changes"), + ("auditlog", "0016_logentry_remote_port"), + ("auditlog", "0017_add_actor_email"), + ] + + dependencies = [ + ("contenttypes", "0001_initial"), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name="LogEntry", + fields=[ + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "object_pk", + models.CharField( + db_index=True, max_length=255, verbose_name="object pk" + ), + ), + ( + "object_id", + models.BigIntegerField( + blank=True, db_index=True, null=True, verbose_name="object id" + ), + ), + ("object_repr", models.TextField(verbose_name="object representation")), + ( + "action", + models.PositiveSmallIntegerField( + choices=[ + (0, "create"), + (1, "update"), + (2, "delete"), + (3, "access"), + ], + db_index=True, + verbose_name="action", + ), + ), + ("changes", models.JSONField(null=True, verbose_name="change message")), + ( + "timestamp", + models.DateTimeField( + db_index=True, + default=django.utils.timezone.now, + verbose_name="timestamp", + ), + ), + ( + "actor", + models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="+", + to=settings.AUTH_USER_MODEL, + verbose_name="actor", + ), + ), + ( + "content_type", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="+", + to="contenttypes.contenttype", + verbose_name="content type", + ), + ), + ( + "remote_addr", + models.GenericIPAddressField( + blank=True, null=True, verbose_name="remote address" + ), + ), + ( + "additional_data", + models.JSONField( + blank=True, null=True, verbose_name="additional data" + ), + ), + ("serialized_data", models.JSONField(null=True)), + ( + "cid", + models.CharField( + blank=True, + db_index=True, + max_length=255, + null=True, + verbose_name="Correlation ID", + ), + ), + ( + "changes_text", + models.TextField(blank=True, verbose_name="change message"), + ), + ( + "remote_port", + models.PositiveIntegerField( + blank=True, null=True, verbose_name="remote port" + ), + ), + ( + "actor_email", + models.CharField( + blank=True, + max_length=254, + null=True, + verbose_name="actor email", + ), + ), + ], + options={ + "ordering": ["-timestamp"], + "get_latest_by": "timestamp", + "verbose_name": "log entry", + "verbose_name_plural": "log entries", + }, + ), + ]