def check_partido(self, obj): legislatura_id = self.context.get('legislatura') if not legislatura_id: legislatura = Legislatura.objects.first() else: legislatura = Legislatura.objects.get(id=legislatura_id) filiacao = filiacao_data(obj, legislatura.data_inicio, legislatura.data_fim) return filiacao
def get_presentes(pk, response, materia): if type(materia) == OrdemDia: presentes = PresencaOrdemDia.objects.filter(sessao_plenaria_id=pk) else: presentes = SessaoPlenariaPresenca.objects.filter( sessao_plenaria_id=pk) sessao = SessaoPlenaria.objects.get(id=pk) num_presentes = len(presentes) data_sessao = sessao.data_inicio oradores = OradorExpediente.objects.filter( sessao_plenaria_id=pk).order_by('numero_ordem') oradores_list = [] for o in oradores: oradores_list.append({ 'nome': o.parlamentar.nome_parlamentar, 'numero': o.numero_ordem }) presentes_list = [] for p in presentes: legislatura = sessao.legislatura # Recupera os mandatos daquele parlamentar mandatos = p.parlamentar.mandato_set.filter(legislatura=legislatura) if p.parlamentar.ativo and mandatos: filiacao = filiacao_data(p.parlamentar, data_sessao, data_sessao) if not filiacao: partido = 'Sem Registro' else: partido = filiacao presentes_list.append({ 'id': p.id, 'parlamentar_id': p.parlamentar.id, 'nome': p.parlamentar.nome_parlamentar, 'partido': partido, 'voto': '' }) elif not p.parlamentar.ativo or not mandatos: num_presentes += -1 if materia: if materia.tipo_votacao == 1: tipo_votacao = 'Simbólica' elif materia.tipo_votacao == 2: tipo_votacao = 'Nominal' elif materia.tipo_votacao == 3: tipo_votacao = 'Secreta' response.update({ 'tipo_resultado': materia.resultado, 'observacao_materia': html.unescape(materia.observacao), 'tipo_votacao': tipo_votacao, 'materia_legislativa_texto': str(materia.materia) }) presentes_list = sort_lista_chave(presentes_list, 'nome') response.update({ 'presentes': presentes_list, 'num_presentes': num_presentes, 'oradores': oradores_list, 'msg_painel': str(_('Votação aberta!')), }) return response
def filiacao_intervalo_filter(parlamentar, date_range): return filiacao_data(parlamentar, date_range[0], date_range[1])
def filiacao_data_filter(parlamentar, data_inicio): return filiacao_data(parlamentar, data_inicio)
def filiacao_intervalo_filter(parlamentar, date_range): try: filiacao = filiacao_data(parlamentar, date_range[0], date_range[1]) except Exception: filiacao = '' return filiacao
def filiacao_data_filter(parlamentar, data_inicio): try: filiacao = filiacao_data(parlamentar, data_inicio) except Exception: filiacao = '' return filiacao
def get_sessao_plenaria(sessao, casa): inf_basicas_dic = {} inf_basicas_dic["num_sessao_plen"] = str(sessao.numero) inf_basicas_dic["nom_sessao"] = sessao.tipo.nome inf_basicas_dic["num_legislatura"] = str(sessao.legislatura) inf_basicas_dic["num_sessao_leg"] = sessao.sessao_legislativa.numero inf_basicas_dic["dat_inicio_sessao"] = sessao.data_inicio.strftime( "%d/%m/%Y") inf_basicas_dic["hr_inicio_sessao"] = sessao.hora_inicio if sessao.data_fim: inf_basicas_dic["dat_fim_sessao"] = \ sessao.data_fim.strftime("%d/%m/%Y") else: inf_basicas_dic["dat_fim_sessao"] = '' inf_basicas_dic["hr_fim_sessao"] = sessao.hora_fim inf_basicas_dic["nom_camara"] = casa.nome # Lista da composicao da mesa diretora lst_mesa = [] for composicao in IntegranteMesa.objects.filter(sessao_plenaria=sessao): for parlamentar in Parlamentar.objects.filter( id=composicao.parlamentar.id): for cargo in CargoMesa.objects.filter(id=composicao.cargo.id): dic_mesa = {} dic_mesa['nom_parlamentar'] = parlamentar.nome_parlamentar partido_sigla = Filiacao.objects.filter( parlamentar=parlamentar).first() if not partido_sigla: sigla = '' else: sigla = partido_sigla.partido.sigla dic_mesa['sgl_partido'] = sigla dic_mesa['des_cargo'] = cargo.descricao lst_mesa.append(dic_mesa) # Lista de presença na sessão lst_presenca_sessao = [] presenca = SessaoPlenariaPresenca.objects.filter( sessao_plenaria=sessao).order_by('parlamentar__nome_parlamentar') for parlamentar in [p.parlamentar for p in presenca]: dic_presenca = {} dic_presenca["nom_parlamentar"] = parlamentar.nome_parlamentar partido_sigla = filiacao_data(parlamentar, sessao.data_inicio) dic_presenca['sgl_partido'] = partido_sigla lst_presenca_sessao.append(dic_presenca) # Exibe os Expedientes lst_expedientes = [] expedientes = ExpedienteSessao.objects.filter( sessao_plenaria=sessao).order_by('tipo__nome') for e in expedientes: dic_expedientes = {} dic_expedientes["nom_expediente"] = e.tipo.nome conteudo = e.conteudo # unescape HTML codes # https://github.com/interlegis/sapl/issues/1046 conteudo = re.sub('style=".*?"', '', conteudo) conteudo = html.unescape(conteudo) # escape special character '&' # https://github.com/interlegis/sapl/issues/1009 conteudo = conteudo.replace('&', '&') dic_expedientes["txt_expediente"] = conteudo if dic_expedientes: lst_expedientes.append(dic_expedientes) # Lista das matérias do Expediente, incluindo o resultado das votacoes lst_expediente_materia = [] for expediente_materia in ExpedienteMateria.objects.filter( sessao_plenaria=sessao): # seleciona os detalhes de uma matéria materia = MateriaLegislativa.objects.filter( id=expediente_materia.materia.id).first() dic_expediente_materia = {} dic_expediente_materia["num_ordem"] = expediente_materia.numero_ordem dic_expediente_materia["id_materia"] = (materia.tipo.sigla + ' ' + materia.tipo.descricao + ' ' + str(materia.numero) + '/' + str(materia.ano)) dic_expediente_materia["des_numeracao"] = ' ' numeracao = Numeracao.objects.filter( materia=expediente_materia.materia).first() if numeracao is not None: dic_expediente_materia["des_numeracao"] = ( str(numeracao.numero_materia) + '/' + str(numeracao.ano_materia)) turno, _ = get_turno(dic_expediente_materia, materia, sessao.data_inicio) dic_expediente_materia["des_turno"] = turno dic_expediente_materia["txt_ementa"] = str(materia.ementa) dic_expediente_materia["ordem_observacao"] = ' ' # TODO dic_expediente_materia["nom_autor"] = ' ' dic_expediente_materia["nom_resultado"] = '' autoria = Autoria.objects.filter(materia=materia, primeiro_autor=True).first() if autoria is not None: autor = Autor.objects.filter(id=autoria.autor.id) if autor is not None: autor = autor.first() if autor.tipo == 'Parlamentar': parlamentar = Parlamentar.objects.filter( id=autor.parlamentar.id) dic_expediente_materia["nom_autor"] = str( parlamentar.nome_completo) elif autor.tipo == 'Comissao': comissao = Comissao.objects.filter(id=autor.comissao.id) dic_expediente_materia["nom_autor"] = str(comissao) else: dic_expediente_materia["nom_autor"] = str(autor.nome) elif autoria is None: dic_expediente_materia["nom_autor"] = 'Desconhecido' dic_expediente_materia["votacao_observacao"] = ' ' resultados = expediente_materia.registrovotacao_set.all() if resultados: for i in resultados: dic_expediente_materia["nom_resultado"] = ( i.tipo_resultado_votacao.nome) dic_expediente_materia["votacao_observacao"] = (i.observacao) else: dic_expediente_materia["nom_resultado"] = 'Matéria não votada' dic_expediente_materia["votacao_observacao"] = ' ' lst_expediente_materia.append(dic_expediente_materia) # Lista dos oradores do Expediente lst_oradores_expediente = [] for orador_expediente in OradorExpediente.objects.filter( sessao_plenaria=sessao): parlamentar = Parlamentar.objects.get( id=orador_expediente.parlamentar.id) dic_oradores_expediente = {} dic_oradores_expediente["num_ordem"] = (orador_expediente.numero_ordem) dic_oradores_expediente["nom_parlamentar"] = ( parlamentar.nome_parlamentar) partido_sigla = Filiacao.objects.filter( parlamentar=parlamentar).first() if not partido_sigla: sigla = '' else: sigla = partido_sigla.partido.sigla dic_oradores_expediente['sgl_partido'] = sigla lst_oradores_expediente.append(dic_oradores_expediente) # Lista presença na ordem do dia lst_presenca_ordem_dia = [] presenca_ordem_dia = PresencaOrdemDia.objects.filter( sessao_plenaria=sessao).order_by('parlamentar__nome_parlamentar') for parlamentar in [p.parlamentar for p in presenca_ordem_dia]: dic_presenca_ordem_dia = {} dic_presenca_ordem_dia['nom_parlamentar'] = ( parlamentar.nome_parlamentar) sigla = filiacao_data(parlamentar, sessao.data_inicio) dic_presenca_ordem_dia['sgl_partido'] = sigla lst_presenca_ordem_dia.append(dic_presenca_ordem_dia) # Lista das matérias da Ordem do Dia, incluindo o resultado das votacoes lst_votacao = [] for votacao in OrdemDia.objects.filter(sessao_plenaria=sessao): # seleciona os detalhes de uma matéria materia = MateriaLegislativa.objects.filter( id=votacao.materia.id).first() dic_votacao = {} dic_votacao["nom_resultado"] = '' dic_votacao["num_ordem"] = votacao.numero_ordem dic_votacao["id_materia"] = (materia.tipo.sigla + ' ' + materia.tipo.descricao + ' ' + str(materia.numero) + '/' + str(materia.ano)) dic_votacao["des_numeracao"] = ' ' numeracao = Numeracao.objects.filter(materia=votacao.materia).first() if numeracao is not None: dic_votacao["des_numeracao"] = (str(numeracao.numero_materia) + '/' + str(numeracao.ano_materia)) turno, _ = get_turno(dic_votacao, materia, sessao.data_inicio) dic_votacao["des_turno"] = turno # https://github.com/interlegis/sapl/issues/1009 dic_votacao["txt_ementa"] = html.unescape(materia.ementa) dic_votacao["ordem_observacao"] = html.unescape(votacao.observacao) dic_votacao["nom_autor"] = ' ' autoria = Autoria.objects.filter(materia=materia, primeiro_autor=True).first() if autoria is not None: autor = Autor.objects.filter(id=autoria.autor.id) if autor is not None: autor = autor.first() if autor.tipo == 'Parlamentar': parlamentar = Parlamentar.objects.filter( id=autor.parlamentar.id) dic_votacao["nom_autor"] = str(parlamentar.nome_completo) elif autor.tipo == 'Comissao': comissao = Comissao.objects.filter(id=autor.comissao.id) dic_votacao["nom_autor"] = str(comissao) else: dic_votacao["nom_autor"] = str(autor.nome) elif autoria is None: dic_votacao["nom_autor"] = 'Desconhecido' dic_votacao["votacao_observacao"] = ' ' resultados = votacao.registrovotacao_set.all() if resultados: for i in resultados: dic_votacao["nom_resultado"] = i.tipo_resultado_votacao.nome if votacao.observacao: dic_votacao["votacao_observacao"] = i.observacao else: dic_votacao["nom_resultado"] = "Matéria não votada" dic_votacao["votacao_observacao"] = " " lst_votacao.append(dic_votacao) # Lista dos oradores nas Explicações Pessoais lst_oradores = [] for orador in Orador.objects.filter(sessao_plenaria=sessao): for parlamentar in Parlamentar.objects.filter( id=orador.parlamentar.id): dic_oradores = {} dic_oradores["num_ordem"] = orador.numero_ordem dic_oradores["nom_parlamentar"] = parlamentar.nome_parlamentar partido_sigla = Filiacao.objects.filter( parlamentar=parlamentar).first() if not partido_sigla: sigla = '' else: sigla = partido_sigla.partido.sigla dic_oradores['sgl_partido'] = sigla lst_oradores.append(dic_oradores) return (inf_basicas_dic, lst_mesa, lst_presenca_sessao, lst_expedientes, lst_expediente_materia, lst_oradores_expediente, lst_presenca_ordem_dia, lst_votacao, lst_oradores)
def get_sessao_plenaria(sessao, casa): inf_basicas_dic = {} inf_basicas_dic["num_sessao_plen"] = str(sessao.numero) inf_basicas_dic["nom_sessao"] = sessao.tipo.nome inf_basicas_dic["num_legislatura"] = str(sessao.legislatura) inf_basicas_dic["num_sessao_leg"] = sessao.sessao_legislativa.numero inf_basicas_dic["dat_inicio_sessao"] = sessao.data_inicio.strftime( "%d/%m/%Y") inf_basicas_dic["hr_inicio_sessao"] = sessao.hora_inicio if sessao.data_fim: inf_basicas_dic["dat_fim_sessao"] = \ sessao.data_fim.strftime("%d/%m/%Y") else: inf_basicas_dic["dat_fim_sessao"] = '' inf_basicas_dic["hr_fim_sessao"] = sessao.hora_fim inf_basicas_dic["nom_camara"] = casa.nome if sessao.tipo.nome == 'Solene': inf_basicas_dic["tema_solene"] = sessao.tema_solene # Conteudo multimidia cont_mult_dic = {} if sessao.url_audio: cont_mult_dic['multimidia_audio'] = str(sessao.url_audio) else: cont_mult_dic['multimidia_audio'] = 'Indisponível' if sessao.url_video: cont_mult_dic['multimidia_video'] = str(sessao.url_video) else: cont_mult_dic['multimidia_video'] = 'Indisponível' # Lista da composicao da mesa diretora lst_mesa = [] for composicao in IntegranteMesa.objects.filter(sessao_plenaria=sessao): for parlamentar in Parlamentar.objects.filter( id=composicao.parlamentar.id): for cargo in CargoMesa.objects.filter(id=composicao.cargo.id): dic_mesa = {} dic_mesa['nom_parlamentar'] = parlamentar.nome_parlamentar partido_sigla = Filiacao.objects.filter( parlamentar=parlamentar).first() if not partido_sigla: sigla = '' else: sigla = partido_sigla.partido.sigla dic_mesa['sgl_partido'] = sigla dic_mesa['des_cargo'] = cargo.descricao lst_mesa.append(dic_mesa) # Lista de presença na sessão lst_presenca_sessao = [] presenca = SessaoPlenariaPresenca.objects.filter( sessao_plenaria=sessao).order_by('parlamentar__nome_parlamentar') for parlamentar in [p.parlamentar for p in presenca]: dic_presenca = {} dic_presenca["nom_parlamentar"] = parlamentar.nome_parlamentar partido_sigla = filiacao_data(parlamentar, sessao.data_inicio) dic_presenca['sgl_partido'] = partido_sigla lst_presenca_sessao.append(dic_presenca) # Lista de ausencias na sessão lst_ausencia_sessao = [] ausencia = JustificativaAusencia.objects.filter( sessao_plenaria=sessao).order_by('parlamentar__nome_parlamentar') for ausente in ausencia: dic_ausencia = {} dic_ausencia['parlamentar'] = ausente.parlamentar dic_ausencia['justificativa'] = ausente.tipo_ausencia if ausente.ausencia == 1: dic_ausencia['tipo'] = 'Matéria' else: dic_ausencia['tipo'] = 'Sessão' lst_ausencia_sessao.append(dic_ausencia) # Exibe os Expedientes lst_expedientes = [] expedientes = ExpedienteSessao.objects.filter( sessao_plenaria=sessao).order_by('tipo__nome') for e in expedientes: dic_expedientes = {} dic_expedientes["nom_expediente"] = e.tipo.nome conteudo = e.conteudo # unescape HTML codes # https://github.com/interlegis/sapl/issues/1046 conteudo = re.sub('style=".*?"', '', conteudo) conteudo = re.sub('class=".*?"', '', conteudo) conteudo = re.sub('align=".*?"', '', conteudo) # OSTicket Ticket #796450 conteudo = re.sub('<p\s+>', '<p>', conteudo) conteudo = re.sub('<br\s+/>', '<br/>', conteudo) # OSTicket Ticket #796450 conteudo = html.unescape(conteudo) # escape special character '&' # https://github.com/interlegis/sapl/issues/1009 conteudo = conteudo.replace('&', '&') # https://github.com/interlegis/sapl/issues/2386 conteudo = remove_html_comments(conteudo) dic_expedientes["txt_expediente"] = conteudo if dic_expedientes: lst_expedientes.append(dic_expedientes) # Lista das matérias do Expediente, incluindo o resultado das votacoes lst_expediente_materia = [] for expediente_materia in ExpedienteMateria.objects.filter( sessao_plenaria=sessao): # seleciona os detalhes de uma matéria materia = expediente_materia.materia dic_expediente_materia = {} dic_expediente_materia["num_ordem"] = expediente_materia.numero_ordem dic_expediente_materia["id_materia"] = (materia.tipo.sigla + ' ' + materia.tipo.descricao + ' ' + str(materia.numero) + '/' + str(materia.ano)) dic_expediente_materia["des_numeracao"] = ' ' numeracao = Numeracao.objects.filter( materia=expediente_materia.materia).first() if numeracao: dic_expediente_materia["des_numeracao"] = ( str(numeracao.numero_materia) + '/' + str(numeracao.ano_materia)) turno, _ = get_turno(materia) dic_expediente_materia["des_turno"] = turno dic_expediente_materia["txt_ementa"] = str(materia.ementa) dic_expediente_materia[ "ordem_observacao"] = expediente_materia.observacao dic_expediente_materia["nom_resultado"] = '' dic_expediente_materia["nom_autor"] = '' autoria = materia.autoria_set.all() dic_expediente_materia['num_autores'] = 'Autores' if len( autoria) > 1 else 'Autor' if autoria: for a in autoria: if a.autor.nome: dic_expediente_materia['nom_autor'] += a.autor.nome + ', ' dic_expediente_materia['nom_autor'] = dic_expediente_materia[ 'nom_autor'][:-2] else: dic_expediente_materia["nom_autor"] = 'Desconhecido' dic_expediente_materia["votacao_observacao"] = ' ' resultados = expediente_materia.registrovotacao_set.all() if resultados: for i in resultados: dic_expediente_materia["nom_resultado"] = ( i.tipo_resultado_votacao.nome) dic_expediente_materia["votacao_observacao"] = (i.observacao) else: dic_expediente_materia["nom_resultado"] = 'Matéria não votada' dic_expediente_materia["votacao_observacao"] = ' ' lst_expediente_materia.append(dic_expediente_materia) # Lista dos votos nominais das matérias do Expediente lst_expediente_materia_vot_nom = [] materias_expediente_votacao_nominal = ExpedienteMateria.objects.filter( sessao_plenaria=sessao, tipo_votacao=2).order_by('-materia') for mevn in materias_expediente_votacao_nominal: votos_materia = [] titulo_materia = mevn.materia registro = RegistroVotacao.objects.filter(expediente=mevn) if registro: for vp in VotoParlamentar.objects.filter( votacao=registro).order_by('parlamentar'): votos_materia.append(vp) dic_expediente_materia_vot_nom = { 'titulo': titulo_materia, 'votos': votos_materia } lst_expediente_materia_vot_nom.append(dic_expediente_materia_vot_nom) # Lista dos oradores do Expediente lst_oradores_expediente = [] for orador_expediente in OradorExpediente.objects.filter( sessao_plenaria=sessao).order_by('numero_ordem'): parlamentar = Parlamentar.objects.get( id=orador_expediente.parlamentar.id) dic_oradores_expediente = {} dic_oradores_expediente["num_ordem"] = (orador_expediente.numero_ordem) dic_oradores_expediente["nom_parlamentar"] = ( parlamentar.nome_parlamentar) dic_oradores_expediente["observacao"] = (orador_expediente.observacao) partido_sigla = Filiacao.objects.filter( parlamentar=parlamentar).first() if not partido_sigla: sigla = '' else: sigla = partido_sigla.partido.sigla dic_oradores_expediente['sgl_partido'] = sigla lst_oradores_expediente.append(dic_oradores_expediente) # Lista presença na ordem do dia lst_presenca_ordem_dia = [] presenca_ordem_dia = PresencaOrdemDia.objects.filter( sessao_plenaria=sessao).order_by('parlamentar__nome_parlamentar') for parlamentar in [p.parlamentar for p in presenca_ordem_dia]: dic_presenca_ordem_dia = {} dic_presenca_ordem_dia['nom_parlamentar'] = ( parlamentar.nome_parlamentar) sigla = filiacao_data(parlamentar, sessao.data_inicio) dic_presenca_ordem_dia['sgl_partido'] = sigla lst_presenca_ordem_dia.append(dic_presenca_ordem_dia) # Lista das matérias da Ordem do Dia, incluindo o resultado das votacoes lst_votacao = [] for votacao in OrdemDia.objects.filter(sessao_plenaria=sessao): # seleciona os detalhes de uma matéria materia = votacao.materia dic_votacao = {} dic_votacao["nom_resultado"] = '' dic_votacao["num_ordem"] = votacao.numero_ordem dic_votacao["id_materia"] = (materia.tipo.sigla + ' ' + materia.tipo.descricao + ' ' + str(materia.numero) + '/' + str(materia.ano)) dic_votacao["des_numeracao"] = ' ' numeracao = materia.numeracao_set.first() if numeracao: dic_votacao["des_numeracao"] = (str(numeracao.numero_materia) + '/' + str(numeracao.ano_materia)) turno, _ = get_turno(materia) dic_votacao["des_turno"] = turno # https://github.com/interlegis/sapl/issues/1009 dic_votacao["txt_ementa"] = html.unescape(materia.ementa) dic_votacao["ordem_observacao"] = html.unescape(votacao.observacao) dic_votacao["nom_autor"] = '' autoria = materia.autoria_set.all() dic_votacao['num_autores'] = 'Autores' if len(autoria) > 1 else 'Autor' if autoria: for a in autoria: if a.autor.nome: dic_votacao['nom_autor'] += a.autor.nome + ', ' dic_votacao['nom_autor'] = dic_votacao['nom_autor'][:-2] else: dic_votacao["nom_autor"] = 'Desconhecido' dic_votacao["votacao_observacao"] = ' ' resultados = votacao.registrovotacao_set.all() if resultados: for i in resultados: dic_votacao["nom_resultado"] = i.tipo_resultado_votacao.nome if i.observacao: dic_votacao["votacao_observacao"] = i.observacao else: dic_votacao["nom_resultado"] = "Matéria não votada" lst_votacao.append(dic_votacao) # Lista dos votos nominais das matérias da Ordem do Dia lst_votacao_vot_nom = [] materias_ordem_dia_votacao_nominal = OrdemDia.objects.filter( sessao_plenaria=sessao, tipo_votacao=2).order_by('-materia') for modvn in materias_ordem_dia_votacao_nominal: votos_materia_od = [] t_materia = modvn.materia registro_od = RegistroVotacao.objects.filter(ordem=modvn) if registro_od: for vp_od in VotoParlamentar.objects.filter( votacao=registro_od).order_by('parlamentar'): votos_materia_od.append(vp_od) dic_votacao_vot_nom = {'titulo': t_materia, 'votos': votos_materia_od} lst_votacao_vot_nom.append(dic_votacao_vot_nom) # Lista dos oradores da Ordem do Dia lst_oradores_ordemdia = [] oradores_ordem_dia = OradorOrdemDia.objects.filter( sessao_plenaria=sessao).order_by('numero_ordem') for orador_ordemdia in oradores_ordem_dia: parlamentar_orador = Parlamentar.objects.get( id=orador_ordemdia.parlamentar.id) sigla_partido = Filiacao.objects.filter( parlamentar=parlamentar_orador).first() if not sigla_partido: sigla_p = "" else: sigla_p = sigla_partido.partido.sigla dic_oradores_ordemdia = { 'num_ordem': orador_ordemdia.numero_ordem, 'nome_parlamentar': parlamentar_orador.nome_parlamentar, 'observacao': orador_ordemdia.observacao, 'sigla': sigla_p } lst_oradores_ordemdia.append(dic_oradores_ordemdia) # Lista dos oradores nas Explicações Pessoais lst_oradores = [] for orador in Orador.objects.filter( sessao_plenaria=sessao).order_by('numero_ordem'): for parlamentar in Parlamentar.objects.filter( id=orador.parlamentar.id): dic_oradores = {} dic_oradores["num_ordem"] = orador.numero_ordem dic_oradores["nom_parlamentar"] = parlamentar.nome_parlamentar partido_sigla = Filiacao.objects.filter( parlamentar=parlamentar).first() if not partido_sigla: sigla = '' else: sigla = partido_sigla.partido.sigla dic_oradores['sgl_partido'] = sigla lst_oradores.append(dic_oradores) # Ocorrências da Sessão lst_ocorrencias = [] ocorrencias = OcorrenciaSessao.objects.filter(sessao_plenaria=sessao) for o in ocorrencias: conteudo = o.conteudo # unescape HTML codes # https://github.com/interlegis/sapl/issues/1046 conteudo = re.sub('style=".*?"', '', conteudo) conteudo = html.unescape(conteudo) # escape special character '&' # https://github.com/interlegis/sapl/issues/1009 conteudo = conteudo.replace('&', '&') o.conteudo = conteudo lst_ocorrencias.append(o) return (inf_basicas_dic, cont_mult_dic, lst_mesa, lst_presenca_sessao, lst_ausencia_sessao, lst_expedientes, lst_expediente_materia, lst_expediente_materia_vot_nom, lst_oradores_expediente, lst_presenca_ordem_dia, lst_votacao, lst_votacao_vot_nom, lst_oradores_ordemdia, lst_oradores, lst_ocorrencias)
def get_presentes(pk, response, materia): if type(materia) == OrdemDia: presentes = PresencaOrdemDia.objects.filter(sessao_plenaria_id=pk) else: presentes = SessaoPlenariaPresenca.objects.filter( sessao_plenaria_id=pk) sessao = SessaoPlenaria.objects.get(id=pk) num_presentes = len(presentes) data_sessao = sessao.data_inicio presentes_list = [] for p in presentes: now_year = timezone.now().year # Recupera a legislatura vigente legislatura = Legislatura.objects.get(data_inicio__year__lte=now_year, data_fim__year__gte=now_year) # Recupera os mandatos daquele parlamentar mandatos = p.parlamentar.mandato_set.filter(legislatura=legislatura) if p.parlamentar.ativo and mandatos: filiacao = filiacao_data(p.parlamentar, data_sessao, data_sessao) if not filiacao: partido = 'Sem Registro' else: partido = filiacao presentes_list.append({ 'id': p.id, 'parlamentar_id': p.parlamentar.id, 'nome': p.parlamentar.nome_parlamentar, 'partido': partido, 'voto': '' }) elif not p.parlamentar.ativo or not mandatos: num_presentes += -1 if materia: if materia.tipo_votacao == 1: tipo_votacao = 'Simbólica' elif materia.tipo_votacao == 2: tipo_votacao = 'Nominal' elif materia.tipo_votacao == 3: tipo_votacao = 'Secreta' response.update({ 'tipo_resultado': materia.resultado, 'observacao_materia': materia.observacao, 'tipo_votacao': tipo_votacao, 'materia_legislativa_texto': str(materia.materia) }) presentes_list = sort_lista_chave(presentes_list, 'nome') response.update({ 'presentes': presentes_list, 'num_presentes': num_presentes, 'msg_painel': str(_('Votação aberta!')), }) return response