mirror of https://github.com/interlegis/sapl.git
Browse Source
Ao alterar o campo data_inicio em SessaoPlenaria, o campo data_ordem de OrdemDia e ExpedienteMateria não eram atualizados. Este commit impl a atualização em cascata no método SessaoPlenaria.save e cria um migrate para correção dos erros anteriores a esta mudança.pull/3459/head
Leandro Roberto
3 years ago
2 changed files with 56 additions and 4 deletions
@ -0,0 +1,40 @@ |
|||
# -*- coding: utf-8 -*- |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations |
|||
from django.db.models import F |
|||
|
|||
|
|||
def clear_thumbnails_cache_migrate(apps, schema_editor): |
|||
SessaoPlenaria = apps.get_model("sessao", "SessaoPlenaria") |
|||
OrdemDia = apps.get_model("sessao", "OrdemDia") |
|||
ExpedienteMateria = apps.get_model("sessao", "ExpedienteMateria") |
|||
|
|||
for m in (OrdemDia, ExpedienteMateria): |
|||
|
|||
p1 = {f'{m._meta.model_name}__isnull': False} |
|||
p2 = {f'{m._meta.model_name}__data_ordem': F('data_inicio')} |
|||
|
|||
sps = SessaoPlenaria.objects.filter( |
|||
**p1 |
|||
).exclude( |
|||
**p2 |
|||
).distinct().all().values('id', 'data_inicio') |
|||
|
|||
for sp in sps: |
|||
m.objects.filter( |
|||
sessao_plenaria_id=sp['id'] |
|||
).exclude( |
|||
data_ordem=F('sessao_plenaria__data_inicio') |
|||
).update(data_ordem=sp['data_inicio']) |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('parlamentares', '0020_fix_inicio_mandato'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.RunPython(clear_thumbnails_cache_migrate), |
|||
] |
Loading…
Reference in new issue