예제 #1
0
def deduplica_protocolos(apps, schema_editor):
    from sapl.base.views import protocolos_duplicados

    Protocolo = apps.get_model('protocoloadm', 'Protocolo')

    protocolos = protocolos_duplicados()
    for protocolo in protocolos:
        protocolo_principal = Protocolo.objects.filter(numero=protocolo['numero'], ano=protocolo['ano']).order_by('-id')[0]
        Protocolo.objects.filter(numero=protocolo['numero'], ano=protocolo['ano']).exclude(id=protocolo_principal.id).delete()
예제 #2
0
def test_lista_protocolos_duplicados():
    mommy.make(Protocolo, numero=15, ano=2031)
    mommy.make(Protocolo, numero=15, ano=2031)
    mommy.make(Protocolo, numero=33, ano=2033)

    lista_protocolos_duplicados = protocolos_duplicados()

    assert len(lista_protocolos_duplicados) == 1
    assert lista_protocolos_duplicados[0][1] == 2
    assert lista_protocolos_duplicados[0][0].numero == 15
    assert lista_protocolos_duplicados[0][0].ano == 2031
예제 #3
0
def deduplica_protocolos(apps, schema_editor):
    from sapl.base.views import protocolos_duplicados

    Protocolo = apps.get_model('protocoloadm', 'Protocolo')
    DocumentoAdministrativo = apps.get_model('protocoloadm', 'DocumentoAdministrativo')

    protocolos = protocolos_duplicados()
    for p in protocolos:
        principal = Protocolo.objects.filter(numero=p['numero'], ano=p['ano']).order_by('-id').first()
        replicas = Protocolo.objects.filter(numero=p['numero'], ano=p['ano']).exclude(id=principal.id)

        for r in replicas:
            documentos = DocumentoAdministrativo.objects.filter(protocolo_id=r.id)
            for d in documentos:
                d.protocolo = principal
                d.save()
        replicas.delete()