Add revert function to migration

This commit is contained in:
Ludovic Stephan 2017-03-24 23:27:55 -03:00
parent 608e67fe6a
commit 5f3f044084

View file

@ -6,14 +6,24 @@ from django.db import migrations, models
def adapt_operation_types(apps, schema_editor): def adapt_operation_types(apps, schema_editor):
Operation = apps.get_model("kfet", "Operation") Operation = apps.get_model("kfet", "Operation")
edits = Operation.objects.filter(
is_checkout=False,
type__in=['withdraw', 'deposit'])
for ope in Operation.objects.all(): for ope in edits:
if (not ope.is_checkout and
ope.type in ['deposit', 'withdraw']):
ope.type = 'edit' ope.type = 'edit'
ope.save() 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): class Migration(migrations.Migration):
dependencies = [ dependencies = [
@ -26,7 +36,7 @@ class Migration(migrations.Migration):
name='type', name='type',
field=models.CharField(choices=[('purchase', 'Achat'), ('deposit', 'Charge'), ('withdraw', 'Retrait'), ('initial', 'Initial'), ('edit', 'Édition')], max_length=8), 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( migrations.RemoveField(
model_name='operation', model_name='operation',
name='is_checkout', name='is_checkout',