|
|
@ -30,7 +30,7 @@ from sapl.materia.models import (Autoria, DocumentoAcessorio, |
|
|
|
from sapl.materia.views import MateriaLegislativaPesquisaView |
|
|
|
from sapl.norma.models import NormaJuridica |
|
|
|
from sapl.parlamentares.models import (Filiacao, Legislatura, Parlamentar, |
|
|
|
SessaoLegislativa) |
|
|
|
SessaoLegislativa, Mandato) |
|
|
|
from sapl.sessao.apps import AppConfig |
|
|
|
from sapl.sessao.forms import ExpedienteMateriaForm, OrdemDiaForm |
|
|
|
|
|
|
@ -123,6 +123,7 @@ def abrir_votacao_ordem_view(request, pk, spk): |
|
|
|
reverse('sapl.sessao:ordemdia_list', kwargs={'pk': spk})) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def put_link_materia(context): |
|
|
|
for i, row in enumerate(context['rows']): |
|
|
|
materia = context['object_list'][i].materia |
|
|
@ -132,6 +133,21 @@ def put_link_materia(context): |
|
|
|
context['rows'][i][1] = (row[1][0], url_materia) |
|
|
|
return context |
|
|
|
|
|
|
|
def get_presencas_generic(model, sessao, legislatura): |
|
|
|
presencas = model.objects.filter( |
|
|
|
sessao_plenaria=sessao) |
|
|
|
|
|
|
|
presentes = [p.parlamentar for p in presencas] |
|
|
|
|
|
|
|
mandato = Mandato.objects.filter( |
|
|
|
legislatura=legislatura) |
|
|
|
|
|
|
|
for m in mandato: |
|
|
|
if m.parlamentar in presentes: |
|
|
|
yield (m.parlamentar, True) |
|
|
|
else: |
|
|
|
yield (m.parlamentar, False) |
|
|
|
|
|
|
|
|
|
|
|
class MateriaOrdemDiaCrud(MasterDetailCrud): |
|
|
|
model = OrdemDia |
|
|
@ -554,32 +570,16 @@ class SessaoPermissionMixin(PermissionRequiredForAppCrudMixin, |
|
|
|
class PresencaMixin: |
|
|
|
|
|
|
|
def get_presencas(self): |
|
|
|
self.object = self.get_object() |
|
|
|
|
|
|
|
presencas = SessaoPlenariaPresenca.objects.filter( |
|
|
|
sessao_plenaria_id=self.object.id |
|
|
|
) |
|
|
|
presentes = [p.parlamentar for p in presencas] |
|
|
|
|
|
|
|
for parlamentar in Parlamentar.objects.filter(ativo=True): |
|
|
|
if parlamentar in presentes: |
|
|
|
yield (parlamentar, True) |
|
|
|
else: |
|
|
|
yield (parlamentar, False) |
|
|
|
return get_presencas_generic( |
|
|
|
SessaoPlenariaPresenca, |
|
|
|
self.object, |
|
|
|
self.object.legislatura) |
|
|
|
|
|
|
|
def get_presencas_ordem(self): |
|
|
|
self.object = self.get_object() |
|
|
|
|
|
|
|
presencas = PresencaOrdemDia.objects.filter( |
|
|
|
sessao_plenaria_id=self.object.id |
|
|
|
) |
|
|
|
presentes = [p.parlamentar for p in presencas] |
|
|
|
|
|
|
|
for parlamentar in Parlamentar.objects.filter(ativo=True): |
|
|
|
if parlamentar in presentes: |
|
|
|
yield (parlamentar, True) |
|
|
|
else: |
|
|
|
yield (parlamentar, False) |
|
|
|
return get_presencas_generic( |
|
|
|
PresencaOrdemDia, |
|
|
|
self.object, |
|
|
|
self.object.legislatura) |
|
|
|
|
|
|
|
|
|
|
|
class PresencaView(FormMixin, PresencaMixin, DetailView): |
|
|
@ -605,13 +605,13 @@ class PresencaView(FormMixin, PresencaMixin, DetailView): |
|
|
|
sessao_plenaria_id=self.object.id) |
|
|
|
|
|
|
|
# Id dos parlamentares presentes |
|
|
|
marcados = request.POST.getlist('presenca') |
|
|
|
marcados = request.POST.getlist('presenca_ativos') + request.POST.getlist('presenca_inativos') |
|
|
|
|
|
|
|
# Deletar os que foram desmarcadors |
|
|
|
deletar = set(set(presentes_banco) - set(marcados)) |
|
|
|
for d in deletar: |
|
|
|
SessaoPlenariaPresenca.objects.filter( |
|
|
|
parlamentar_id=d.parlamentar_id).delete() |
|
|
|
parlamentar_id=d.parlamentar_id, sessao_plenaria_id=self.object.id).delete() |
|
|
|
|
|
|
|
for p in marcados: |
|
|
|
sessao = SessaoPlenariaPresenca() |
|
|
@ -713,13 +713,13 @@ class PresencaOrdemDiaView(FormMixin, PresencaMixin, DetailView): |
|
|
|
sessao_plenaria_id=pk) |
|
|
|
|
|
|
|
# Id dos parlamentares presentes |
|
|
|
marcados = request.POST.getlist('presenca') |
|
|
|
marcados = request.POST.getlist('presenca_ativos') + request.POST.getlist('presenca_inativos') |
|
|
|
|
|
|
|
# Deletar os que foram desmarcadors |
|
|
|
deletar = set(set(presentes_banco) - set(marcados)) |
|
|
|
for d in deletar: |
|
|
|
PresencaOrdemDia.objects.filter( |
|
|
|
parlamentar_id=d.parlamentar_id).delete() |
|
|
|
parlamentar_id=d.parlamentar_id, sessao_plenaria_id=self.object.id).delete() |
|
|
|
|
|
|
|
for p in marcados: |
|
|
|
ordem = PresencaOrdemDia() |
|
|
|