Files
website-v2/versions/migrations/0020_decouple_report_configuration_migration.py
2025-07-08 16:09:01 -07:00

35 lines
1.4 KiB
Python

# Generated by Django 4.2.16 on 2025-07-03 21:12
from django.db import migrations
def copy_report_configuration(apps, schema_editor):
ReportConfiguration = apps.get_model("versions", "ReportConfiguration")
Version = apps.get_model("versions", "Version")
version_data = [ {
"name": vd.name,
"release_report_cover_image": vd.release_report_cover_image,
"sponsor_message": vd.sponsor_message,
"financial_committee_members": list(vd.financial_committee_members.values_list("id", flat=True)),
} for vd in Version.objects.all().prefetch_related("financial_committee_members")]
for vd in version_data:
configuration = ReportConfiguration.objects.create(
version=vd["name"],
release_report_cover_image=vd["release_report_cover_image"],
sponsor_message=vd["sponsor_message"],
)
configuration.financial_committee_members.set(vd["financial_committee_members"])
def drop_report_configuration(apps, schema_editor):
ReportConfiguration = apps.get_model("versions", "ReportConfiguration")
output = ReportConfiguration.objects.all().delete()
print(f"\nDeleted {output}...")
class Migration(migrations.Migration):
dependencies = [
("versions", "0019_reportconfiguration"),
]
operations = [migrations.RunPython(copy_report_configuration, drop_report_configuration)]