summaryrefslogtreecommitdiff
path: root/archaeological_finds/migrations/0050_auto_20181211_1509.py
blob: b85383c94a563ca6cbb4f2ab2def1682fa50be2c (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
48
49
50
51
52
53
54
55
56
57
58
59
# -*- coding: utf-8 -*-
# Generated by Django 1.11.10 on 2018-12-11 15:09
from __future__ import unicode_literals

from django.db import migrations, models


def migrate_treatment_states(apps, schema):
    TreatmentState = apps.get_model('archaeological_finds', 'TreatmentState')
    Treatment = apps.get_model('archaeological_finds', 'Treatment')
    for finished in ['completed', 'finished']:
        q = TreatmentState.objects.filter(txt_idx=finished)
        if q.count():
            t = q.all()[0]
            t.executed = True
            t.save()
            break
    for t in TreatmentState.objects.all():
        t.txt_idx = t.txt_idx.replace("_", "-")
        t.save()
    orders = [(10, "planned"), (20, "to-be-confirmed"), (30, "in-progress"),
              (40, finished), (50, "cancelled"), (60, "unknown"),]
    for order, txt_idx in orders:
        q = TreatmentState.objects.filter(txt_idx=txt_idx)
        if not q.count():
            continue
        t = q.all()[0]
        t.order = order
        t.save()
    if TreatmentState.objects.filter(txt_idx=finished).count():
        f = TreatmentState.objects.get(txt_idx=finished)
        for t in Treatment.objects.filter(treatment_state__isnull=True):
            t.treatment_state = f
            t.save()


class Migration(migrations.Migration):

    dependencies = [
        ('archaeological_finds', '0049_auto_20181210_1518'),
    ]

    operations = [
        migrations.AlterModelOptions(
            name='treatmentstate',
            options={'ordering': ('order', 'label'), 'verbose_name': "Type d'\xe9tat de traitement", 'verbose_name_plural': "Types d'\xe9tat de traitement"},
        ),
        migrations.AddField(
            model_name='treatmentstate',
            name='executed',
            field=models.BooleanField(default=False, verbose_name='Treatment is executed'),
        ),
        migrations.AddField(
            model_name='treatmentstate',
            name='order',
            field=models.IntegerField(default=10, verbose_name='Ordre'),
        ),
        migrations.RunPython(migrate_treatment_states)
    ]