427_Integration_of_codelist_288
#428
Merged
mpeltriaux
merged 3 commits from 427_Integration_of_codelist_288
into master
2 months ago
@ -0,0 +1,49 @@
|
||||
# Generated by Django 5.0.7 on 2024-08-06 13:40
|
||||
|
||||
from django.db import migrations
|
||||
from django.db.models import Q
|
||||
|
||||
from codelist.settings import CODELIST_BIOTOPES_EXTRA_CODES_FULL_ID, CODELIST_BIOTOPES_EXTRA_CODES_ID
|
||||
|
||||
|
||||
def migrate_975_to_288(apps, schema_editor):
|
||||
KonovaCodeList = apps.get_model('codelist', 'KonovaCodeList')
|
||||
CompensationState = apps.get_model('compensation', 'CompensationState')
|
||||
|
||||
list_288 = KonovaCodeList.objects.get(
|
||||
id=CODELIST_BIOTOPES_EXTRA_CODES_FULL_ID
|
||||
).codes.all()
|
||||
|
||||
states_with_extra_code = CompensationState.objects.filter(
|
||||
~Q(biotope_type_details=None)
|
||||
)
|
||||
|
||||
print(f"... Found {states_with_extra_code.count()} biotope state entries")
|
||||
for state in states_with_extra_code:
|
||||
extra_codes_975 = state.biotope_type_details.filter(
|
||||
code_lists__in=[CODELIST_BIOTOPES_EXTRA_CODES_ID]
|
||||
)
|
||||
count_extra_codes_975 = extra_codes_975.count()
|
||||
if count_extra_codes_975 > 0:
|
||||
print(f" --> Found {count_extra_codes_975} codes from list 975 in biotope entry {state.id}")
|
||||
extra_codes_288 = []
|
||||
for extra_code_975 in extra_codes_975:
|
||||
atom_id = extra_code_975.atom_id
|
||||
codes_from_288 = list_288.filter(
|
||||
atom_id=atom_id,
|
||||
)
|
||||
extra_codes_288 += codes_from_288
|
||||
|
||||
state.biotope_type_details.set(extra_codes_288)
|
||||
print(" --> Migrated to list 288 for all biotope entries")
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('codelist', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(migrate_975_to_288)
|
||||
]
|
Loading…
Reference in New Issue