0015_auto_20170614_2312.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # -*- coding: utf-8 -*-
  2. # Generated by Django 1.11.2 on 2017-06-14 21:12
  3. from __future__ import unicode_literals
  4. from django.db import migrations
  5. def create_missing_adhesions(apps, schema_editor):
  6. User = apps.get_model("adhesions", "User")
  7. Corporation = apps.get_model("adhesions", "Corporation")
  8. Adhesion = apps.get_model("adhesions", "Adhesion")
  9. ContentType = apps.get_model("contenttypes", "ContentType")
  10. user_type = ContentType.objects.get_for_model(User)
  11. corp_type = ContentType.objects.get_for_model(Corporation)
  12. db_alias = schema_editor.connection.alias
  13. for user in User.objects.using(db_alias).filter(adhesion__isnull=True).all():
  14. if not Adhesion.objects.using(db_alias).filter(user__pk=user.pk).exists():
  15. Adhesion.objects.using(db_alias).create(user=user)
  16. for corp in Corporation.objects.using(db_alias).filter(adhesion__isnull=True).all():
  17. if not Adhesion.objects.using(db_alias).filter(corporation__pk=corp.pk).exists():
  18. Adhesion.objects.using(db_alias).create(corporation=corp)
  19. class Migration(migrations.Migration):
  20. dependencies = [
  21. ('adhesions', '0014_auto_20170614_2242'),
  22. ]
  23. operations = [
  24. migrations.AlterUniqueTogether(
  25. name='adhesion',
  26. unique_together=set([]),
  27. ),
  28. migrations.RemoveField(
  29. model_name='adhesion',
  30. name='adherent_id',
  31. ),
  32. migrations.RemoveField(
  33. model_name='adhesion',
  34. name='adherent_type',
  35. ),
  36. migrations.RunPython(create_missing_adhesions),
  37. ]