12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- # -*- coding: utf-8 -*-
- # Generated by Django 1.10.4 on 2017-01-01 03:55
- from __future__ import unicode_literals
- import django.core.validators
- from django.db import migrations, models
- import django.db.models.deletion
- def set_payment_reason(apps, schema_editor):
- db_alias = schema_editor.connection.alias
- Payment = apps.get_model('banking', 'Payment')
- Adherent = apps.get_model('adhesions', 'Adherent')
- Service = apps.get_model('services', 'Service')
- ContentType = apps.get_model('contenttypes', 'ContentType')
- adherent_ctype = ContentType.objects.get_for_model(Adherent)
- service_ctype = ContentType.objects.get_for_model(Service)
- for payment in Payment.objects.using(db_alias).all():
- try:
- adherent = Adherent.objects.get(contribution__pk=payment.pk)
- except Adherent.DoesNotExist:
- pass
- else:
- payment.reason_type = adherent_ctype
- payment.reason_id = adherent.pk
- payment.save()
- continue
- # If the payment is not for an adherent, it must be for a service.
- service = Service.objects.get(contribution__pk=payment.pk)
- payment.reason_type = service_ctype
- payment.reason_id = service.pk
- payment.save()
- class Migration(migrations.Migration):
- dependencies = [
- ('contenttypes', '0002_remove_content_type_name'),
- ('banking', '0002_payment_date'),
- ('adhesions', '0002_auto_20161230_1814'),
- ('services', '0003_auto_20161231_0020'),
- ]
- operations = [
- migrations.AddField(
- model_name='payment',
- name='reason_type',
- field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType'),
- preserve_default=False,
- ),
- migrations.AddField(
- model_name='payment',
- name='reason_id',
- field=models.PositiveIntegerField(default=0),
- preserve_default=False,
- ),
- migrations.RunPython(
- set_payment_reason,
- ),
- migrations.AlterField(
- model_name='payment',
- name='reason_type',
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType'),
- ),
- migrations.AlterField(
- model_name='payment',
- name='period',
- field=models.PositiveIntegerField(validators=[django.core.validators.MaxValueValidator(12)], verbose_name='Période (mois)'),
- ),
- ]
|