Add revert function to migration
This commit is contained in:
parent
608e67fe6a
commit
5f3f044084
1 changed files with 16 additions and 6 deletions
|
@ -6,12 +6,22 @@ from django.db import migrations, models
|
|||
|
||||
def adapt_operation_types(apps, schema_editor):
|
||||
Operation = apps.get_model("kfet", "Operation")
|
||||
edits = Operation.objects.filter(
|
||||
is_checkout=False,
|
||||
type__in=['withdraw', 'deposit'])
|
||||
|
||||
for ope in Operation.objects.all():
|
||||
if (not ope.is_checkout and
|
||||
ope.type in ['deposit', 'withdraw']):
|
||||
ope.type = 'edit'
|
||||
ope.save()
|
||||
for ope in edits:
|
||||
ope.type = 'edit'
|
||||
ope.save()
|
||||
|
||||
|
||||
def revert_operation_types(apps, schema_editor):
|
||||
Operation = apps.get_model("kfet", "Operation")
|
||||
|
||||
for ope in Operation.objects.filter(type='edit'):
|
||||
ope.type = 'deposit' if ope.amount > 0 else 'withdraw'
|
||||
ope.is_checkout = False
|
||||
ope.save()
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
@ -26,7 +36,7 @@ class Migration(migrations.Migration):
|
|||
name='type',
|
||||
field=models.CharField(choices=[('purchase', 'Achat'), ('deposit', 'Charge'), ('withdraw', 'Retrait'), ('initial', 'Initial'), ('edit', 'Édition')], max_length=8),
|
||||
),
|
||||
migrations.RunPython(adapt_operation_types),
|
||||
migrations.RunPython(adapt_operation_types, revert_operation_types),
|
||||
migrations.RemoveField(
|
||||
model_name='operation',
|
||||
name='is_checkout',
|
||||
|
|
Loading…
Reference in a new issue