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]
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
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