forked from enviPath/enviPy
66 lines
2.3 KiB
Python
66 lines
2.3 KiB
Python
# Generated by Django 5.2.7 on 2026-03-09 10:41
|
|
|
|
import django.db.models.deletion
|
|
from django.db import migrations, models
|
|
|
|
|
|
def populate_polymorphic_ctype(apps, schema_editor):
|
|
ContentType = apps.get_model("contenttypes", "ContentType")
|
|
Compound = apps.get_model("epdb", "Compound")
|
|
CompoundStructure = apps.get_model("epdb", "CompoundStructure")
|
|
|
|
# Update Compound records
|
|
compound_ct = ContentType.objects.get_for_model(Compound)
|
|
Compound.objects.filter(polymorphic_ctype__isnull=True).update(polymorphic_ctype=compound_ct)
|
|
|
|
# Update CompoundStructure records
|
|
compound_structure_ct = ContentType.objects.get_for_model(CompoundStructure)
|
|
CompoundStructure.objects.filter(polymorphic_ctype__isnull=True).update(
|
|
polymorphic_ctype=compound_structure_ct
|
|
)
|
|
|
|
|
|
def reverse_populate_polymorphic_ctype(apps, schema_editor):
|
|
Compound = apps.get_model("epdb", "Compound")
|
|
CompoundStructure = apps.get_model("epdb", "CompoundStructure")
|
|
|
|
Compound.objects.all().update(polymorphic_ctype=None)
|
|
CompoundStructure.objects.all().update(polymorphic_ctype=None)
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
dependencies = [
|
|
("contenttypes", "0002_remove_content_type_name"),
|
|
("epdb", "0019_remove_scenario_additional_information_and_more"),
|
|
]
|
|
|
|
operations = [
|
|
migrations.AlterModelOptions(
|
|
name="compoundstructure",
|
|
options={"base_manager_name": "objects"},
|
|
),
|
|
migrations.AddField(
|
|
model_name="compound",
|
|
name="polymorphic_ctype",
|
|
field=models.ForeignKey(
|
|
editable=False,
|
|
null=True,
|
|
on_delete=django.db.models.deletion.CASCADE,
|
|
related_name="polymorphic_%(app_label)s.%(class)s_set+",
|
|
to="contenttypes.contenttype",
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="compoundstructure",
|
|
name="polymorphic_ctype",
|
|
field=models.ForeignKey(
|
|
editable=False,
|
|
null=True,
|
|
on_delete=django.db.models.deletion.CASCADE,
|
|
related_name="polymorphic_%(app_label)s.%(class)s_set+",
|
|
to="contenttypes.contenttype",
|
|
),
|
|
),
|
|
migrations.RunPython(populate_polymorphic_ctype, reverse_populate_polymorphic_ctype),
|
|
]
|