def test_verificar_anexo_aprovado_com_ressalvas(sistema_cultura):
    arquivo = SimpleUploadedFile(
        "componente.txt", b"file_content", content_type="text/plain"
    )
    sistema_cultura.conselho.arquivo = arquivo
    sistema_cultura.conselho.situacao = 3
    sistema_cultura.conselho.save()

    assert verificar_anexo(sistema_cultura, "conselho") == LISTA_SITUACAO_ARQUIVO[2][1]
Exemplo n.º 2
0
def exportar_xls(request):

    output = BytesIO()

    #workbook = xlwt.Workbook()
    workbook = xlsxwriter.Workbook(output)
    #planilha = workbook.add_sheet('SNC')
    planilha = workbook.add_worksheet('SNC')

    planilha.write(0, 0, 'UF')
    planilha.write(0, 1, 'Ente Federado')
    planilha.write(0, 2, 'Cod.IBGE')
    planilha.write(0, 3, 'Situação')
    planilha.write(0, 4, 'Endereço')
    planilha.write(0, 5, 'Bairro')
    planilha.write(0, 6, 'CEP')
    planilha.write(0, 7, 'Telefone')
    planilha.write(0, 8, 'Email Prefeito')
    planilha.write(0, 9, 'Email do Cadastrador')
    planilha.write(0, 10, 'Email do Responsável')
    planilha.write(0, 11, 'Localização do processo')
    planilha.write(0, 12, 'Possui Lei do Sistema de Cultura')
    planilha.write(0, 13, 'Possui Órgão Gestor')
    planilha.write(0, 14, 'Possui Conselho de Política Cultural')
    planilha.write(0, 15, 'Possui Fundo de Cultura')
    planilha.write(0, 16, 'Possui Plano de Cultura')
    ultima_linha = 0
    for i, municipio in enumerate(Municipio.objects.all().order_by('-cidade'),
                                  start=1):
        uf = municipio.estado.sigla
        if municipio.cidade:
            cidade = municipio.cidade.nome_municipio
            cod_ibge = municipio.cidade.codigo_ibge
        else:
            cidade = municipio.estado.nome_uf
            cod_ibge = municipio.estado.codigo_ibge
        try:
            estado_processo = municipio.usuario.get_estado_processo_display()
        except ObjectDoesNotExist:
            #Documentando: isso foi colocado aqui pois, os municipios migrados
            #fizeram adesão sem cadastrador e consequentemente estado do processo
            estado_processo = 'Publicado no DOU'
        endereco = municipio.endereco
        bairro = municipio.bairro
        cep = municipio.cep
        telefone = municipio.telefone_um
        if municipio.email_institucional_prefeito != "":
            email_prefeito = municipio.email_institucional_prefeito
        else:
            email_prefeito = "Não cadastrado"
        try:
            #email_cadastrador = Usuario.objects.get(municipio_id=municipio.id).user.email
            email_cadastrador = municipio.usuario.user.email
        except ObjectDoesNotExist:
            email_cadastrador = "Não cadastrado"
        try:
            if municipio.usuario.responsavel:
                email_responsavel = municipio.usuario.responsavel.email_institucional_responsavel
            else:
                email_responsavel = "Não cadastrado"
        except ObjectDoesNotExist:
            email_responsavel = "Não cadastrado"

        local = municipio.localizacao

        planilha.write(i, 0, uf)
        planilha.write(i, 1, cidade)
        planilha.write(i, 2, cod_ibge)
        planilha.write(i, 3, estado_processo)
        planilha.write(i, 4, endereco)
        planilha.write(i, 5, bairro)
        planilha.write(i, 6, cep)
        planilha.write(i, 7, telefone)
        planilha.write(i, 8, email_prefeito)
        planilha.write(i, 9, email_cadastrador)
        planilha.write(i, 10, email_responsavel)
        planilha.write(i, 11, local)
        planilha.write(
            i, 12,
            verificar_anexo(municipio, 'criacao_sistema',
                            'lei_sistema_cultura'))
        planilha.write(
            i, 13,
            verificar_anexo(municipio, 'orgao_gestor',
                            'relatorio_atividade_secretaria'))
        planilha.write(
            i, 14,
            verificar_anexo(municipio, 'conselho_cultural',
                            'ata_regimento_aprovado'))
        planilha.write(
            i, 15,
            verificar_anexo(municipio, 'fundo_cultura', 'lei_fundo_cultura'))
        planilha.write(
            i, 16,
            verificar_anexo(municipio, 'plano_cultura', 'lei_plano_cultura'))
        ultima_linha = i

    #workbook.save(response)
    planilha.autofilter(0, 0, ultima_linha, 16)
    workbook.close()
    output.seek(0)

    response = HttpResponse(output.read(),
                            content_type='application/vnd.ms-excel')
    response[
        'Content-Disposition'] = 'attachment; filename="dados-municipios-cadastrados-snc.xls"'

    return response
def exportar_csv(request):
    response = HttpResponse(content_type="text/csv")
    response[
        "Content-Disposition"] = 'attachment; filename="dados-municipios-cadastrados-snc.csv"'
    response.write("\uFEFF")

    writer = csv.writer(response)
    writer.writerow([
        "Nome",
        "UF",
        "Região",
        "Cod.IBGE",
        "PIB [2016]",
        "IDH [2010]",
        "População [2018]",
        "Faixa Populacional",
        "Situação",
        "Situação da Lei do Sistema de Cultura",
        "Situação do Órgão Gestor",
        "Situação da Ata do Conselho de Política Cultural",
        "Situação da Lei do Conselho de Política Cultural",
        "Situação do Comprovante do CNPJ do Fundo de Cultura",
        "Situação da Lei do Fundo de Cultura",
        "Situação do Plano de Cultura",
        "Participou da Conferência Nacional",
        "Endereço",
        "Bairro",
        "CEP",
        "Telefone",
        "Email",
        "Última atualização",
    ])

    for sistema in SistemaCultura.objects.distinct(
            'ente_federado__cod_ibge').order_by('ente_federado__cod_ibge',
                                                'ente_federado__nome',
                                                '-alterado_em'):
        if sistema.ente_federado:
            if sistema.ente_federado.cod_ibge > 100 or sistema.ente_federado.cod_ibge == 53:
                nome = sistema.ente_federado.nome
            else:
                nome = "Estado de " + sistema.ente_federado.nome
            cod_ibge = sistema.ente_federado.cod_ibge
            sigla = sistema.ente_federado.sigla
            regiao = sistema.ente_federado.get_regiao()
            pib = sistema.ente_federado.pib
            idh = sistema.ente_federado.idh
            populacao = sistema.ente_federado.populacao
            faixa_populacional = sistema.ente_federado.faixa_populacional()
        else:
            nome = "Nome não cadastrado"
            cod_ibge = "Código não cadastrado"
            regiao = "Não encontrada"
            sigla = "Não encontrada"
            pib = "Não encontrado"
            idh = "Não encontrado"
            populacao = "Não encontrada"
            faixa_populacional = "Não encontrada"

        estado_processo = sistema.get_estado_processo_display()

        if sistema.sede:
            endereco = sistema.sede.endereco
            bairro = sistema.sede.bairro
            cep = sistema.sede.cep
            telefone = sistema.sede.telefone_um
        else:
            endereco = "Não cadastrado"
            bairro = "Não cadastrado"
            cep = "Não cadastrado"
            telefone = "Não cadastrado"

        if sistema.gestor:
            email = sistema.gestor.email_institucional
        else:
            email = "Não cadastrado"

        writer.writerow([
            nome,
            sigla,
            regiao,
            cod_ibge,
            pib,
            idh,
            populacao,
            faixa_populacional,
            estado_processo,
            verificar_anexo(sistema, "legislacao"),
            verificar_anexo(sistema, "orgao_gestor"),
            verificar_anexo(sistema, "conselho"),
            verificar_anexo(sistema.conselho, "lei"),
            verificar_anexo(sistema.fundo_cultura, "comprovante_cnpj"),
            verificar_anexo(sistema, "fundo_cultura"),
            verificar_anexo(sistema, "plano"),
            "Sim" if sistema.conferencia_nacional else "Não",
            endereco,
            bairro,
            cep,
            telefone,
            email,
            sistema.alterado_em,
        ])

    return response
def test_verificar_anexo_sem_componente():
    sistema = mommy.make("SistemaCultura")

    assert verificar_anexo(sistema, "conselho") == "Não Possui"
def exportar_csv(request):
    response = HttpResponse(content_type="text/csv")
    response[
        "Content-Disposition"
    ] = 'attachment; filename="dados-municipios-cadastrados-snc.csv"'
    response.write("\uFEFF")

    writer = csv.writer(response)
    writer.writerow(
        [
            "Nome",
            "UF",
            "Região",
            "Cod.IBGE",
            "PIB [2016]",
            "IDH [2010]",
            "População [2018]",
            "Faixa Populacional",
            "Situação",
            "Situação da Lei do Sistema de Cultura",
            "Situação do Órgão Gestor",
            "Situação do Conselho de Política Cultural",
            "Situação do Fundo de Cultura",
            "Situação do Plano de Cultura",
            "Participou da Conferência Nacional",
            "Endereço",
            "Bairro",
            "CEP",
            "Telefone",
            "Email",
            "Última atualização",
        ]
    )

    for sistema in SistemaCultura.objects.distinct('ente_federado__cod_ibge').order_by(
        'ente_federado__cod_ibge', 'ente_federado__nome', '-alterado_em'):
        if sistema.ente_federado:
            if sistema.ente_federado.cod_ibge > 100 or sistema.ente_federado.cod_ibge == 53:
                nome = sistema.ente_federado.nome
            else:
                nome = "Estado de " + sistema.ente_federado.nome
            cod_ibge = sistema.ente_federado.cod_ibge
            sigla = sistema.ente_federado.sigla
            regiao = sistema.ente_federado.get_regiao()
            pib = sistema.ente_federado.pib
            idh = sistema.ente_federado.idh
            populacao = sistema.ente_federado.populacao
            faixa_populacional = sistema.ente_federado.faixa_populacional()
        else:
            nome = "Nome não cadastrado"
            cod_ibge = "Código não cadastrado"
            regiao = "Não encontrada"
            sigla = "Não encontrada"
            pib = "Não encontrado"
            idh = "Não encontrado"
            populacao = "Não encontrada"
            faixa_populacional = "Não encontrada"

        estado_processo = sistema.get_estado_processo_display()

        if sistema.sede:
            endereco = sistema.sede.endereco
            bairro = sistema.sede.bairro
            cep = sistema.sede.cep
            telefone = sistema.sede.telefone_um
        else:
            endereco = "Não cadastrado"
            bairro = "Não cadastrado"
            cep = "Não cadastrado"
            telefone = "Não cadastrado"

        if sistema.gestor:
            email = sistema.gestor.email_institucional
        else:
            email = "Não cadastrado"

        writer.writerow(
            [
                nome,
                sigla,
                regiao,
                cod_ibge,
                pib,
                idh,
                populacao,
                faixa_populacional,
                estado_processo,
                verificar_anexo(sistema, "legislacao"),
                verificar_anexo(sistema, "orgao_gestor"),
                verificar_anexo(sistema, "conselho"),
                verificar_anexo(sistema, "fundo_cultura"),
                verificar_anexo(sistema, "plano"),
                "Sim" if sistema.conferencia_nacional else "Não",
                endereco,
                bairro,
                cep,
                telefone,
                email,
                sistema.alterado_em,
            ]
        )

    return response
Exemplo n.º 6
0
def exportar_ods(request):
    response = HttpResponse(
        content_type="application/vnd.oasis.opendocument.spreadsheet .ods")
    response[
        "Content-Disposition"] = 'attachment; filename="dados-municipios-cadastrados-snc.ods"'

    workbook = xlwt.Workbook()
    planilha = workbook.add_sheet("SNC")
    planilha.write(0, 0, "UF")
    planilha.write(0, 1, "Ente Federado")
    planilha.write(0, 2, "Cod.IBGE")
    planilha.write(0, 3, "Situação")
    planilha.write(0, 4, "Endereço")
    planilha.write(0, 5, "Bairro")
    planilha.write(0, 6, "CEP")
    planilha.write(0, 7, "Telefone")
    planilha.write(0, 8, "Email Prefeito")
    planilha.write(0, 9, "Email do Cadastrador")
    planilha.write(0, 10, "Email do Responsável")
    planilha.write(0, 11, "Localização do processo")
    planilha.write(0, 12, "Possui Lei do Sistema de Cultura")
    planilha.write(0, 13, "Possui Órgão Gestor")
    planilha.write(0, 14, "Possui Conselho de Política Cultural")
    planilha.write(0, 15, "Possui Fundo de Cultura")
    planilha.write(0, 16, "Possui Plano de Cultura")

    for i, municipio in enumerate(Municipio.objects.all().order_by("-cidade"),
                                  start=1):
        uf = municipio.estado.sigla
        if municipio.cidade:
            cidade = municipio.cidade.nome_municipio
            cod_ibge = municipio.cidade.codigo_ibge
        else:
            cidade = municipio.estado.nome_uf
            cod_ibge = municipio.estado.codigo_ibge
        try:
            estado_processo = municipio.usuario.get_estado_processo_display()
        except ObjectDoesNotExist:
            # Documentando: isso foi colocado aqui pois, os municipios migrados
            # fizeram adesão sem cadastrador e consequentemente estado do processo
            estado_processo = "Publicado no DOU"
        endereco = municipio.endereco
        bairro = municipio.bairro
        cep = municipio.cep
        telefone = municipio.telefone_um
        if municipio.email_institucional_prefeito != "":
            email_prefeito = municipio.email_institucional_prefeito
        else:
            email_prefeito = "Não cadastrado"
        try:
            # email_cadastrador = Usuario.objects.get(municipio_id=municipio.id).user.email
            email_cadastrador = municipio.usuario.user.email
        except ObjectDoesNotExist:
            email_cadastrador = "Não cadastrado"
        try:
            if municipio.usuario.responsavel:
                email_responsavel = (municipio.usuario.responsavel.
                                     email_institucional_responsavel)
            else:
                email_responsavel = "Não cadastrado"
        except ObjectDoesNotExist:
            email_responsavel = "Não cadastrado"

        local = municipio.localizacao

        planilha.write(i, 0, uf)
        planilha.write(i, 1, cidade)
        planilha.write(i, 2, cod_ibge)
        planilha.write(i, 3, estado_processo)
        planilha.write(i, 4, endereco)
        planilha.write(i, 5, bairro)
        planilha.write(i, 6, cep)
        planilha.write(i, 7, telefone)
        planilha.write(i, 8, email_prefeito)
        planilha.write(i, 9, email_cadastrador)
        planilha.write(i, 10, email_responsavel)
        planilha.write(i, 11, local)
        planilha.write(
            i, 12,
            verificar_anexo(municipio, "criacao_sistema",
                            "lei_sistema_cultura"))
        planilha.write(
            i,
            13,
            verificar_anexo(municipio, "orgao_gestor",
                            "relatorio_atividade_secretaria"),
        )
        planilha.write(
            i,
            14,
            verificar_anexo(municipio, "conselho_cultural",
                            "ata_regimento_aprovado"),
        )
        planilha.write(
            i, 15,
            verificar_anexo(municipio, "fundo_cultura", "lei_fundo_cultura"))
        planilha.write(
            i, 16,
            verificar_anexo(municipio, "plano_cultura", "lei_plano_cultura"))

    workbook.save(response)

    return response