blob: 9fcc41f6adce38fad3051e2e0f43b6f602bbf043 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
import os
from django.db import migrations
from django.core.management import call_command
def load_data(apps, __):
migration = "0141_data_migration_recommanded_treatments.json"
json_path = os.sep.join(os.path.abspath(__file__).split(os.sep)[:-1] + [migration])
call_command("loaddata", json_path)
Find = apps.get_model("archaeological_finds", "find")
if not hasattr(Find, "preservation_to_considers"):
return
q = Find.objects.filter(preservation_to_considers__isnull=False)
if not q.count():
return
TreatmentType = apps.get_model("archaeological_finds", "TreatmentType")
RecommendedTreatmentType = apps.get_model("archaeological_finds", "RecommendedTreatmentType")
parent = RecommendedTreatmentType.objects.create(
label="Anciennes recommandations",
txt_idx="anciennes-recommandations",
order=999,
)
reco = {}
for find in q.all():
for treatment_type in find.preservation_to_considers.all():
if treatment_type.txt_idx not in reco:
slug = treatment_type.txt_idx
while RecommendedTreatmentType.objects.filter(txt_idx=slug).count():
slug += "1"
reco[treatment_type.txt_idx] = RecommendedTreatmentType.objects.create(
label=treatment_type.label,
txt_idx=slug,
parent=parent
)
find.recommended_treatments.add(reco[treatment_type.txt_idx])
class Migration(migrations.Migration):
dependencies = [
('archaeological_finds', '0140_recommanded_treatments'),
]
operations = [
migrations.RunPython(load_data)
]
|