# 110 Biotope codes
* removes list 974 from update_codelist.py command * adds migration for existing biotope states to be changed into proper list
This commit is contained in:
40
konova/migrations/0005_auto_20220216_0856.py
Normal file
40
konova/migrations/0005_auto_20220216_0856.py
Normal file
@@ -0,0 +1,40 @@
|
||||
# Generated by Django 3.1.3 on 2022-02-16 07:56
|
||||
|
||||
from django.db import migrations, transaction
|
||||
|
||||
from codelist.settings import CODELIST_BIOTOPES_ID, CODELIST_AFTER_STATE_BIOTOPES__ID
|
||||
|
||||
|
||||
def migrate_biotopes_from_974_to_654(apps, schema_editor):
|
||||
KonovaCode = apps.get_model("codelist", "KonovaCode")
|
||||
CompensationState = apps.get_model("compensation", "CompensationState")
|
||||
all_states = CompensationState.objects.all()
|
||||
|
||||
with transaction.atomic():
|
||||
for state in all_states:
|
||||
new_biotope_code = KonovaCode.objects.get(
|
||||
code_lists__in=[CODELIST_BIOTOPES_ID],
|
||||
is_selectable=True,
|
||||
is_archived=False,
|
||||
short_name=state.biotope_type.short_name,
|
||||
)
|
||||
state.biotope_type = new_biotope_code
|
||||
state.save()
|
||||
|
||||
all_states = CompensationState.objects.all()
|
||||
after_state_list_elements = all_states.filter(
|
||||
biotope_type__code_lists__in=[CODELIST_AFTER_STATE_BIOTOPES__ID]
|
||||
)
|
||||
if after_state_list_elements.count() > 0:
|
||||
raise Exception("Still states with wrong codelist entries!")
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('konova', '0004_auto_20220209_0839'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(migrate_biotopes_from_974_to_654),
|
||||
]
|
||||
Reference in New Issue
Block a user