diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 4a080d155..236c9320d 100755 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -1033,9 +1033,6 @@ class ListMateriaOrdemDiaView(FormMixin, DetailView): return self.get(self, request, args, kwargs) -def ordenar_integrantes_por_cargo(integrantes): - return sorted(integrantes, key=lambda k: k['cargo'].id) - class MesaView(FormMixin, DetailView): template_name = 'sessao/mesa.html' @@ -1338,24 +1335,17 @@ def get_conteudo_multimidia(sessao_plenaria): def get_mesa_diretora(sessao_plenaria): - mesa = IntegranteMesa.objects.filter(sessao_plenaria=sessao_plenaria) - integrantes = [] - for m in mesa: - parlamentar = Parlamentar.objects.get( - id=m.parlamentar_id) - cargo = CargoMesa.objects.get( - id=m.cargo_id) - integrante = {'parlamentar': parlamentar, 'cargo': cargo} - integrantes.append(integrante) - return ({'mesa': ordenar_integrantes_por_cargo(integrantes)}) + mesa = IntegranteMesa.objects.filter(sessao_plenaria=sessao_plenaria).order_by('cargo_id') + integrantes = [{'parlamentar': m.parlamentar, + 'cargo': m.cargo} for m in mesa] + return {'mesa': integrantes} def get_presenca_sessao(sessao_plenaria): - presencas = SessaoPlenariaPresenca.objects.filter( - sessao_plenaria_id=sessao_plenaria.id - ).order_by('parlamentar__nome_parlamentar') - parlamentares_sessao = [p.parlamentar for p in presencas] + parlamentares_sessao = [p.parlamentar for p in SessaoPlenariaPresenca.objects.filter( + sessao_plenaria_id=sessao_plenaria.id + ).order_by('parlamentar__nome_parlamentar')] ausentes_sessao = JustificativaAusencia.objects.filter( sessao_plenaria_id=sessao_plenaria.id @@ -1440,48 +1430,45 @@ def get_oradores_expediente(sessao_plenaria): 'observacao': observacao } oradores.append(ora) - context = {'oradores': oradores} - return context + return {'oradores': oradores} def get_presenca_ordem_do_dia(sessao_plenaria): - mesa_aux = get_mesa_diretora(sessao_plenaria) - presencas = PresencaOrdemDia.objects.filter( - sessao_plenaria_id=sessao_plenaria.id - ).order_by('parlamentar__nome_parlamentar') + parlamentares_ordem = [p.parlamentar for p in PresencaOrdemDia.objects.filter( + sessao_plenaria_id=sessao_plenaria.id + ).order_by('parlamentar__nome_parlamentar')] - parlamentares_mesa_dia = [m for m in mesa_aux['mesa']] + return {'presenca_ordem': parlamentares_ordem} - presidente_dia = '' - for m in mesa_aux['mesa']: - if m['cargo'].descricao == 'Presidente': - presidente_dia = [m['parlamentar']] - break - parlamentares_ordem = [p.parlamentar for p in presencas] +def get_assinaturas(sessao_plenaria): + mesa_dia = get_mesa_diretora(sessao_plenaria)['mesa'] - cont = 0 - for index, parlamentar in enumerate(parlamentares_ordem): - try: - if parlamentar == parlamentares_mesa_dia[cont]["parlamentar"]: - del(parlamentares_ordem[index]) - cont += 1 - except IndexError: - pass + presidente_dia = next(iter( + [m['parlamentar'] for m in mesa_dia if m['cargo'].descricao == 'Presidente']), + '') + + parlamentares_ordem = [p.parlamentar for p in PresencaOrdemDia.objects.filter( + sessao_plenaria_id=sessao_plenaria.id + ).order_by('parlamentar__nome_parlamentar')] + + parlamentares_mesa = [m['parlamentar'] for m in mesa_dia] + + # filtra parlamentares retirando os que sao da mesa + parlamentares_ordem = [p for p in parlamentares_ordem if p not in parlamentares_mesa] context = {} - context.update({'presenca_ordem': parlamentares_ordem}) config_assinatura_ata = AppsAppConfig.objects.first().assinatura_ata if config_assinatura_ata == 'T' and parlamentares_ordem: context.update( {'texto_assinatura': 'Assinatura de Todos os Parlamentares Presentes na Sessão'}) - context.update({'assinatura_mesa': parlamentares_mesa_dia, + context.update({'assinatura_mesa': mesa_dia, 'assinatura_presentes': parlamentares_ordem}) - elif config_assinatura_ata == 'M' and parlamentares_mesa_dia: + elif config_assinatura_ata == 'M' and mesa_dia: context.update( {'texto_assinatura': 'Assinatura da Mesa Diretora da Sessão'}) - context.update({'assinatura_presentes': parlamentares_mesa_dia}) + context.update({'assinatura_presentes': mesa_dia}) elif config_assinatura_ata == 'P' and presidente_dia: context.update( {'texto_assinatura': 'Assinatura do Presidente da Sessão'}) @@ -1649,6 +1636,9 @@ class ResumoView(DetailView): # Presença Ordem do Dia context.update(get_presenca_ordem_do_dia(self.object)) # ===================================================================== + # Assinaturas + context.update(get_assinaturas(self.object)) + # ===================================================================== # Matérias Ordem do Dia # Votos de Votação Nominal de Matérias Ordem do Dia materias_ordem_dia_votacao_nominal = OrdemDia.objects.filter( diff --git a/sapl/templates/sessao/blocos_ata/materias_ordem_dia.html b/sapl/templates/sessao/blocos_ata/materias_ordem_dia.html index 40c4e718a..ae1d494e2 100644 --- a/sapl/templates/sessao/blocos_ata/materias_ordem_dia.html +++ b/sapl/templates/sessao/blocos_ata/materias_ordem_dia.html @@ -4,9 +4,9 @@

{% for m in materias_ordem %}

- Materia do Expediente: {{m.numero}} - {{m.titulo}} + {{m.numero}} - {{m.titulo}} Descrição: {{m.ementa|safe}} - Autor: {{ m.autor|length|pluralize:"es" }}: {{ m.autor|join:', ' }} + Autor {{ m.autor|length|pluralize:"es" }}: {{ m.autor|join:', ' }} {% if m.numero_protocolo %} Número de Protocolo: {{ m.numero_protocolo }} {% endif %}