diff --git a/Dockerfile b/Dockerfile
index 015357a40..9c33fcd0f 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -39,6 +39,7 @@ RUN rm -rf /var/interlegis/sapl/sapl/.env && \
rm -rf /var/interlegis/sapl/sapl.db
RUN chmod +x /var/interlegis/sapl/start.sh && \
+ chmod +x /var/interlegis/sapl/check_solr.sh && \
ln -sf /dev/stdout /var/log/nginx/access.log && \
ln -sf /dev/stderr /var/log/nginx/error.log && \
mkdir /var/log/sapl/ && touch /var/interlegis/sapl/sapl.log && \
diff --git a/check_solr.sh b/check_solr.sh
index b3c4760c4..c600466bb 100644
--- a/check_solr.sh
+++ b/check_solr.sh
@@ -4,15 +4,22 @@
SOLR_URL=$1
+RETRY_COUNT=1
+RETRY_LIMIT=4
+
echo "Waiting for solr connection at $SOLR_URL ..."
-while true; do
+while [[ $RETRY_COUNT < $RETRY_LIMIT ]]; do
+ echo "Attempt to connect to solr: $RETRY_COUNT of $RETRY_LIMIT"
+ let RETRY_COUNT=RETRY_COUNT+1;
echo "$SOLR_URL/solr/admin/collections?action=LIST"
RESULT=$(curl -s -o /dev/null -I "$SOLR_URL/solr/admin/collections?action=LIST" -w '%{http_code}')
echo $RESULT
- if [ "$RESULT" -eq '200' ]; then
+ if [ $RESULT == 200 ]; then
echo "Solr server is up!"
- break
+ exit 1
else
sleep 3
fi
done
+echo "Solr connection failed."
+exit 2
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index e2dfb6824..5fe0b554b 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -12,6 +12,7 @@ sapldb:
- "5432:5432"
sapl:
image: interlegis/sapl:3.1.153
+# build: .
restart: always
environment:
ADMIN_PASSWORD: interlegis
@@ -23,11 +24,27 @@ sapl:
EMAIL_HOST_USER: usuariosmtp
EMAIL_SEND_USER: usuariosmtp
EMAIL_HOST_PASSWORD: senhasmtp
+# USE_SOLR: 'True'
+# SOLR_COLLECTION: sapl
+# SOLR_URL: http://saplsolr:8983
TZ: America/Sao_Paulo
volumes:
- sapl_data:/var/interlegis/sapl/data
- sapl_media:/var/interlegis/sapl/media
links:
- sapldb
+# - saplsolr
ports:
- "80:80"
+
+#saplsolr:
+# image: solr:7.4-alpine
+# restart: always
+# command: bin/solr start -c -f
+# volumes:
+# - solr_data:/opt/solr/server/solr
+# - solr_configsets:/opt/solr/server/solr/configsets
+# ports:
+# - "8983:8983"
+
+
diff --git a/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py b/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py
index 4c388e59a..4bbe31bed 100644
--- a/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py
+++ b/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py
@@ -128,6 +128,24 @@ def inf_basicas(inf_basicas_dic):
return tmp
+def multimidia(cont_mult_dic):
+ """
+ """
+ tmp = ""
+
+ mul_audio = cont_mult_dic['multimidia_audio']
+ mul_video = cont_mult_dic['multimidia_video']
+
+ tmp += '\t\tConteúdo Multimídia\n'
+ tmp += '\t\t\n'
+ tmp += '\t\t\t
\n'
+ tmp += '\t\t\n'
+ tmp += '\t\tAudio: ' + mul_audio + '\n'
+ tmp += '\t\tVideo: ' + mul_video + '\n'
+
+ return tmp
+
+
def mesa(lst_mesa):
"""
@@ -392,7 +410,7 @@ def ocorrencias(lst_ocorrencias):
return tmp
-def principal(rodape_dic, imagem, inf_basicas_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 principal(rodape_dic, imagem, 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):
"""
"""
arquivoPdf = str(int(time.time() * 100)) + ".pdf"
@@ -416,7 +434,7 @@ def principal(rodape_dic, imagem, inf_basicas_dic, lst_mesa, lst_presenca_sessao
ordenacao = ResumoOrdenacao.objects.first()
dict_ord_template = {
- 'cont_mult': '',
+ 'cont_mult': multimidia(cont_mult_dic),
'exp': expedientes(lst_expedientes),
'id_basica': inf_basicas(inf_basicas_dic),
'lista_p': presenca(lst_presenca_sessao, lst_ausencia_sessao),
@@ -452,6 +470,7 @@ def principal(rodape_dic, imagem, inf_basicas_dic, lst_mesa, lst_presenca_sessao
logger.error("KeyError: " + str(e) + ". Erro ao tentar utilizar "
"configuração de ordenação. Utilizando ordenação padrão.")
tmp += inf_basicas(inf_basicas_dic)
+ tmp += multimidia(cont_mult_dic)
tmp += mesa(lst_mesa)
tmp += presenca(lst_presenca_sessao, lst_ausencia_sessao)
tmp += expedientes(lst_expedientes)
@@ -467,6 +486,7 @@ def principal(rodape_dic, imagem, inf_basicas_dic, lst_mesa, lst_presenca_sessao
else:
tmp += inf_basicas(inf_basicas_dic)
+ tmp += multimidia(cont_mult_dic)
tmp += mesa(lst_mesa)
tmp += presenca(lst_presenca_sessao, lst_ausencia_sessao)
tmp += expedientes(lst_expedientes)
diff --git a/sapl/relatorios/views.py b/sapl/relatorios/views.py
index 5bd3fe6f7..72595b239 100755
--- a/sapl/relatorios/views.py
+++ b/sapl/relatorios/views.py
@@ -519,6 +519,18 @@ def get_sessao_plenaria(sessao, casa):
inf_basicas_dic["dat_fim_sessao"] = ''
inf_basicas_dic["hr_fim_sessao"] = sessao.hora_fim
inf_basicas_dic["nom_camara"] = casa.nome
+
+ # 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 = []
@@ -852,6 +864,7 @@ def get_sessao_plenaria(sessao, casa):
lst_ocorrencias.append(o)
return (inf_basicas_dic,
+ cont_mult_dic,
lst_mesa,
lst_presenca_sessao,
lst_ausencia_sessao,
@@ -910,6 +923,7 @@ def relatorio_sessao_plenaria(request, pk):
raise Http404('Essa página não existe')
(inf_basicas_dic,
+ cont_mult_dic,
lst_mesa,
lst_presenca_sessao,
lst_ausencia_sessao,
@@ -934,6 +948,7 @@ def relatorio_sessao_plenaria(request, pk):
rodape,
imagem,
inf_basicas_dic,
+ cont_mult_dic,
lst_mesa,
lst_presenca_sessao,
lst_ausencia_sessao,
diff --git a/sapl/sessao/forms.py b/sapl/sessao/forms.py
index 373b1e951..451f2b990 100644
--- a/sapl/sessao/forms.py
+++ b/sapl/sessao/forms.py
@@ -26,29 +26,14 @@ from sapl.utils import (RANGE_DIAS_MES, RANGE_MESES,
from .models import (Bancada, Bloco, ExpedienteMateria, JustificativaAusencia,
Orador, OradorExpediente, OrdemDia, PresencaOrdemDia, SessaoPlenaria,
SessaoPlenariaPresenca, TipoResultadoVotacao,
- OcorrenciaSessao, RetiradaPauta, TipoRetiradaPauta, OradorOrdemDia)
+ OcorrenciaSessao, RetiradaPauta, TipoRetiradaPauta, OradorOrdemDia, ORDENACAO_RESUMO,
+ ResumoOrdenacao)
MES_CHOICES = RANGE_MESES
DIA_CHOICES = RANGE_DIAS_MES
-ORDENACAO_RESUMO = [('cont_mult', 'Conteúdo Multimídia'),
- ('exp', 'Expedientes'),
- ('id_basica', 'Identificação Básica'),
- ('lista_p', 'Lista de Presença'),
- ('lista_p_o_d', 'Lista de Presença Ordem do Dia'),
- ('mat_exp', 'Matérias do Expediente'),
- ('mat_o_d', 'Matérias da Ordem do Dia'),
- ('mesa_d', 'Mesa Diretora'),
- ('oradores_exped', 'Oradores do Expediente'),
- ('oradores_expli', 'Oradores das Explicações Pessoais'),
- ('ocorr_sessao', 'Ocorrências da Sessão'),
- ('v_n_mat_exp', 'Votações Nominais - Matérias do Expediente'),
- ('v_n_mat_o_d', 'Votações Nominais - Matérias da Ordem do Dia'),
- ('oradores_o_d', 'Oradores da Ordem do Dia')]
-
-
class SessaoPlenariaForm(FileFieldCheckMixin, ModelForm):
class Meta:
@@ -807,38 +792,64 @@ class PautaSessaoFilterSet(SessaoPlenariaFilterSet):
class ResumoOrdenacaoForm(forms.Form):
- primeiro = forms.ChoiceField(label=_('1°'),
- choices=ORDENACAO_RESUMO)
- segundo = forms.ChoiceField(label=_('2°'),
- choices=ORDENACAO_RESUMO)
- terceiro = forms.ChoiceField(label='3°',
- choices=ORDENACAO_RESUMO)
- quarto = forms.ChoiceField(label=_('4°'),
- choices=ORDENACAO_RESUMO)
- quinto = forms.ChoiceField(label=_('5°'),
- choices=ORDENACAO_RESUMO)
- sexto = forms.ChoiceField(label=_('6°'),
- choices=ORDENACAO_RESUMO)
- setimo = forms.ChoiceField(label=_('7°'),
- choices=ORDENACAO_RESUMO)
- oitavo = forms.ChoiceField(label=_('8°'),
- choices=ORDENACAO_RESUMO)
- nono = forms.ChoiceField(label=_('9°'),
- choices=ORDENACAO_RESUMO)
- decimo = forms.ChoiceField(label='10°',
- choices=ORDENACAO_RESUMO)
- decimo_primeiro = forms.ChoiceField(label='11°',
- choices=ORDENACAO_RESUMO)
- decimo_segundo = forms.ChoiceField(label='12°',
- choices=ORDENACAO_RESUMO)
- decimo_terceiro = forms.ChoiceField(label='13°',
- choices=ORDENACAO_RESUMO)
- decimo_quarto = forms.ChoiceField(label='14°',
- choices=ORDENACAO_RESUMO)
+ primeiro = forms.ChoiceField(
+ label='1°',
+ choices=ORDENACAO_RESUMO
+ )
+ segundo = forms.ChoiceField(
+ label='2°',
+ choices=ORDENACAO_RESUMO
+ )
+ terceiro = forms.ChoiceField(
+ label='3°',
+ choices=ORDENACAO_RESUMO
+ )
+ quarto = forms.ChoiceField(
+ label='4°',
+ choices=ORDENACAO_RESUMO
+ )
+ quinto = forms.ChoiceField(
+ label='5°',
+ choices=ORDENACAO_RESUMO
+ )
+ sexto = forms.ChoiceField(
+ label='6°',
+ choices=ORDENACAO_RESUMO
+ )
+ setimo = forms.ChoiceField(
+ label='7°',
+ choices=ORDENACAO_RESUMO
+ )
+ oitavo = forms.ChoiceField(
+ label='8°',
+ choices=ORDENACAO_RESUMO
+ )
+ nono = forms.ChoiceField(
+ label='9°',
+ choices=ORDENACAO_RESUMO
+ )
+ decimo = forms.ChoiceField(
+ label='10°',
+ choices=ORDENACAO_RESUMO
+ )
+ decimo_primeiro = forms.ChoiceField(
+ label='11°',
+ choices=ORDENACAO_RESUMO
+ )
+ decimo_segundo = forms.ChoiceField(
+ label='12°',
+ choices=ORDENACAO_RESUMO
+ )
+ decimo_terceiro = forms.ChoiceField(
+ label='13°',
+ choices=ORDENACAO_RESUMO
+ )
+ decimo_quarto = forms.ChoiceField(
+ label='14°',
+ choices=ORDENACAO_RESUMO
+ )
def __init__(self, *args, **kwargs):
- super(ResumoOrdenacaoForm, self).__init__(*args, **kwargs)
-
row1 = to_row(
[('primeiro', 12)])
row2 = to_row(
@@ -878,6 +889,8 @@ class ResumoOrdenacaoForm(forms.Form):
form_actions(label='Atualizar'))
)
+ super().__init__(*args, **kwargs)
+
def clean(self):
super(ResumoOrdenacaoForm, self).clean()
@@ -896,6 +909,27 @@ class ResumoOrdenacaoForm(forms.Form):
'Não é possível ter campos repetidos'))
return self.cleaned_data
+ def save(self):
+ ordenacao = ResumoOrdenacao.objects.get()
+ cleaned_data = self.cleaned_data
+
+ ordenacao.primeiro = cleaned_data['primeiro']
+ ordenacao.segundo = cleaned_data['segundo']
+ ordenacao.terceiro = cleaned_data['terceiro']
+ ordenacao.quarto = cleaned_data['quarto']
+ ordenacao.quinto = cleaned_data['quinto']
+ ordenacao.sexto = cleaned_data['sexto']
+ ordenacao.setimo = cleaned_data['setimo']
+ ordenacao.oitavo = cleaned_data['oitavo']
+ ordenacao.nono = cleaned_data['nono']
+ ordenacao.decimo = cleaned_data['decimo']
+ ordenacao.decimo_primeiro = cleaned_data['decimo_primeiro']
+ ordenacao.decimo_segundo = cleaned_data['decimo_segundo']
+ ordenacao.decimo_terceiro = cleaned_data['decimo_terceiro']
+ ordenacao.decimo_quarto = cleaned_data['decimo_quarto']
+
+ ordenacao.save()
+
class JustificativaAusenciaForm(ModelForm):
diff --git a/sapl/sessao/migrations/0037_auto_20190415_1635.py b/sapl/sessao/migrations/0037_auto_20190415_1635.py
new file mode 100644
index 000000000..701d9eee9
--- /dev/null
+++ b/sapl/sessao/migrations/0037_auto_20190415_1635.py
@@ -0,0 +1,85 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-04-15 19:35
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('sessao', '0036_auto_20190412_1106'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='resumoordenacao',
+ name='decimo',
+ field=models.CharField(default='mat_o_d', max_length=50),
+ ),
+ migrations.AlterField(
+ model_name='resumoordenacao',
+ name='decimo_primeiro',
+ field=models.CharField(default='v_n_mat_o_d', max_length=50),
+ ),
+ migrations.AlterField(
+ model_name='resumoordenacao',
+ name='decimo_quarto',
+ field=models.CharField(default='ocorr_sessao', max_length=50),
+ ),
+ migrations.AlterField(
+ model_name='resumoordenacao',
+ name='decimo_segundo',
+ field=models.CharField(default='oradores_o_d', max_length=50),
+ ),
+ migrations.AlterField(
+ model_name='resumoordenacao',
+ name='decimo_terceiro',
+ field=models.CharField(default='oradores_expli', max_length=50),
+ ),
+ migrations.AlterField(
+ model_name='resumoordenacao',
+ name='nono',
+ field=models.CharField(default='lista_p_o_d', max_length=50),
+ ),
+ migrations.AlterField(
+ model_name='resumoordenacao',
+ name='oitavo',
+ field=models.CharField(default='oradores_exped', max_length=50),
+ ),
+ migrations.AlterField(
+ model_name='resumoordenacao',
+ name='primeiro',
+ field=models.CharField(default='id_basica', max_length=50),
+ ),
+ migrations.AlterField(
+ model_name='resumoordenacao',
+ name='quarto',
+ field=models.CharField(default='lista_p', max_length=50),
+ ),
+ migrations.AlterField(
+ model_name='resumoordenacao',
+ name='quinto',
+ field=models.CharField(default='exp', max_length=50),
+ ),
+ migrations.AlterField(
+ model_name='resumoordenacao',
+ name='segundo',
+ field=models.CharField(default='cont_mult', max_length=50),
+ ),
+ migrations.AlterField(
+ model_name='resumoordenacao',
+ name='setimo',
+ field=models.CharField(default='v_n_mat_exp', max_length=50),
+ ),
+ migrations.AlterField(
+ model_name='resumoordenacao',
+ name='sexto',
+ field=models.CharField(default='mat_exp', max_length=50),
+ ),
+ migrations.AlterField(
+ model_name='resumoordenacao',
+ name='terceiro',
+ field=models.CharField(default='mesa_d', max_length=50),
+ ),
+ ]
diff --git a/sapl/sessao/migrations/0038_merge_20190415_1800.py b/sapl/sessao/migrations/0038_merge_20190415_1800.py
new file mode 100644
index 000000000..0bf3ab4ea
--- /dev/null
+++ b/sapl/sessao/migrations/0038_merge_20190415_1800.py
@@ -0,0 +1,16 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-04-15 21:00
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('sessao', '0037_auto_20190415_1635'),
+ ('sessao', '0037_auto_20190415_1324'),
+ ]
+
+ operations = [
+ ]
diff --git a/sapl/sessao/models.py b/sapl/sessao/models.py
index 5d2d1c7cc..3d7c98186 100644
--- a/sapl/sessao/models.py
+++ b/sapl/sessao/models.py
@@ -584,30 +584,86 @@ class Bloco(models.Model):
return self.nome
+ORDENACAO_RESUMO = [
+ ('id_basica', 'Identificação Básica'),
+ ('cont_mult', 'Conteúdo Multimídia'),
+ ('mesa_d', 'Mesa Diretora'),
+ ('lista_p', 'Lista de Presença'),
+ ('exp', 'Expedientes'),
+ ('mat_exp', 'Matérias do Expediente'),
+ ('v_n_mat_exp', 'Votações Nominais - Matérias do Expediente'),
+ ('oradores_exped', 'Oradores do Expediente'),
+ ('lista_p_o_d', 'Lista de Presença Ordem do Dia'),
+ ('mat_o_d', 'Matérias da Ordem do Dia'),
+ ('v_n_mat_o_d', 'Votações Nominais - Matérias da Ordem do Dia'),
+ ('oradores_o_d', 'Oradores da Ordem do Dia'),
+ ('oradores_expli', 'Oradores das Explicações Pessoais'),
+ ('ocorr_sessao', 'Ocorrências da Sessão')
+]
+
+
@reversion.register()
class ResumoOrdenacao(models.Model):
'''
Tabela para registrar em qual ordem serão renderizados os componentes
da tela de resumo de uma sessão
'''
- primeiro = models.CharField(max_length=30)
- segundo = models.CharField(max_length=30)
- terceiro = models.CharField(max_length=30)
- quarto = models.CharField(max_length=30)
- quinto = models.CharField(max_length=30)
- sexto = models.CharField(max_length=30)
- setimo = models.CharField(max_length=30)
- oitavo = models.CharField(max_length=30)
- nono = models.CharField(max_length=30)
- decimo = models.CharField(max_length=30)
+ primeiro = models.CharField(
+ max_length=50,
+ default=ORDENACAO_RESUMO[0][0]
+ )
+ segundo = models.CharField(
+ max_length=50,
+ default=ORDENACAO_RESUMO[1][0]
+ )
+ terceiro = models.CharField(
+ max_length=50,
+ default=ORDENACAO_RESUMO[2][0]
+ )
+ quarto = models.CharField(
+ max_length=50,
+ default=ORDENACAO_RESUMO[3][0]
+ )
+ quinto = models.CharField(
+ max_length=50,
+ default=ORDENACAO_RESUMO[4][0]
+ )
+ sexto = models.CharField(
+ max_length=50,
+ default=ORDENACAO_RESUMO[5][0]
+ )
+ setimo = models.CharField(
+ max_length=50,
+ default=ORDENACAO_RESUMO[6][0]
+ )
+ oitavo = models.CharField(
+ max_length=50,
+ default=ORDENACAO_RESUMO[7][0]
+ )
+ nono = models.CharField(
+ max_length=50,
+ default=ORDENACAO_RESUMO[8][0]
+ )
+ decimo = models.CharField(
+ max_length=50,
+ default=ORDENACAO_RESUMO[9][0]
+ )
decimo_primeiro = models.CharField(
- max_length=30, default="Ocorrências da Sessão")
+ max_length=50,
+ default=ORDENACAO_RESUMO[10][0]
+ )
decimo_segundo = models.CharField(
- max_length=30, default="Votos Nominais Mat Expediente")
+ max_length=50,
+ default=ORDENACAO_RESUMO[11][0]
+ )
decimo_terceiro = models.CharField(
- max_length=30, default="Votos Nominais Mat Ordem Dia")
+ max_length=50,
+ default=ORDENACAO_RESUMO[12][0]
+ )
decimo_quarto = models.CharField(
- max_length=30, default="Oradores da Ordem do Dia")
+ max_length=50,
+ default=ORDENACAO_RESUMO[13][0]
+ )
class Meta:
verbose_name = _('Ordenação do Resumo de uma Sessão')
diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py
index 602e70ca6..afc349221 100755
--- a/sapl/sessao/views.py
+++ b/sapl/sessao/views.py
@@ -49,7 +49,7 @@ from .models import (Bancada, Bloco, CargoBancada, CargoMesa,
PresencaOrdemDia, RegistroVotacao, ResumoOrdenacao,
SessaoPlenaria, SessaoPlenariaPresenca, TipoExpediente,
TipoResultadoVotacao, TipoSessaoPlenaria, VotoParlamentar, TipoRetiradaPauta,
- RetiradaPauta, TipoJustificativa, JustificativaAusencia, OradorOrdemDia)
+ RetiradaPauta, TipoJustificativa, JustificativaAusencia, OradorOrdemDia, ORDENACAO_RESUMO)
TipoSessaoCrud = CrudAux.build(TipoSessaoPlenaria, 'tipo_sessao_plenaria')
@@ -1296,49 +1296,38 @@ class ResumoOrdenacaoView(PermissionRequiredMixin, FormView):
form_class = ResumoOrdenacaoForm
permission_required = {'sessao.change_resumoordenacao'}
- def get_success_url(self):
- return reverse('sapl.base:sistema')
+ def get_tupla(self, tupla_key):
+ for tupla in ORDENACAO_RESUMO:
+ if tupla[0] == tupla_key:
+ return tupla
def get_initial(self):
- initial = super(ResumoOrdenacaoView, self).get_initial()
- ordenacao = ResumoOrdenacao.objects.first()
- if ordenacao:
- initial.update({'primeiro': ordenacao.primeiro,
- 'segundo': ordenacao.segundo,
- 'terceiro': ordenacao.terceiro,
- 'quarto': ordenacao.quarto,
- 'quinto': ordenacao.quinto,
- 'sexto': ordenacao.sexto,
- 'setimo': ordenacao.setimo,
- 'oitavo': ordenacao.oitavo,
- 'nono': ordenacao.nono,
- 'decimo': ordenacao.decimo,
- 'decimo_primeiro': ordenacao.decimo_primeiro,
- 'decimo_segundo': ordenacao.decimo_segundo,
- 'decimo_terceiro': ordenacao.decimo_terceiro,
- 'decimo_quarto': ordenacao.decimo_quarto})
- return initial
-
- def form_valid(self, form):
ordenacao = ResumoOrdenacao.objects.get_or_create()[0]
- ordenacao.primeiro = form.cleaned_data['primeiro']
- ordenacao.segundo = form.cleaned_data['segundo']
- ordenacao.terceiro = form.cleaned_data['terceiro']
- ordenacao.quarto = form.cleaned_data['quarto']
- ordenacao.quinto = form.cleaned_data['quinto']
- ordenacao.sexto = form.cleaned_data['sexto']
- ordenacao.setimo = form.cleaned_data['setimo']
- ordenacao.oitavo = form.cleaned_data['oitavo']
- ordenacao.nono = form.cleaned_data['nono']
- ordenacao.decimo = form.cleaned_data['decimo']
- ordenacao.decimo_primeiro = form.cleaned_data['decimo_primeiro']
- ordenacao.decimo_segundo = form.cleaned_data['decimo_segundo']
- ordenacao.decimo_terceiro = form.cleaned_data['decimo_terceiro']
- ordenacao.decimo_quarto = form.cleaned_data['decimo_quarto']
-
- ordenacao.save()
+ initial = {
+ 'primeiro': self.get_tupla(ordenacao.primeiro),
+ 'segundo': self.get_tupla(ordenacao.segundo),
+ 'terceiro': self.get_tupla(ordenacao.terceiro),
+ 'quarto': self.get_tupla(ordenacao.quarto),
+ 'quinto': self.get_tupla(ordenacao.quinto),
+ 'sexto': self.get_tupla(ordenacao.sexto),
+ 'setimo': self.get_tupla(ordenacao.setimo),
+ 'oitavo': self.get_tupla(ordenacao.oitavo),
+ 'nono': self.get_tupla(ordenacao.nono),
+ 'decimo': self.get_tupla(ordenacao.decimo),
+ 'decimo_primeiro': self.get_tupla(ordenacao.decimo_primeiro),
+ 'decimo_segundo': self.get_tupla(ordenacao.decimo_segundo),
+ 'decimo_terceiro': self.get_tupla(ordenacao.decimo_terceiro),
+ 'decimo_quarto': self.get_tupla(ordenacao.decimo_quarto)
+ }
+
+ return initial
+ def get_success_url(self):
+ return reverse('sapl.base:sistema')
+
+ def form_valid(self, form):
+ form.save()
return HttpResponseRedirect(self.get_success_url())
@@ -1761,7 +1750,6 @@ class ResumoView(DetailView):
context.update(get_ocorrencias_da_sessão(self.object))
# =====================================================================
# Indica a ordem com a qual o template será renderizado
- ordenacao = ResumoOrdenacao.objects.first()
dict_ord_template = {
'cont_mult': 'conteudo_multimidia.html',
'exp': 'expedientes.html',
@@ -1779,59 +1767,23 @@ class ResumoView(DetailView):
'ocorr_sessao': 'ocorrencias_da_sessao.html'
}
- if ordenacao:
- try:
- context.update(
- {'primeiro_ordenacao': dict_ord_template[ordenacao.primeiro],
- 'segundo_ordenacao': dict_ord_template[ordenacao.segundo],
- 'terceiro_ordenacao': dict_ord_template[ordenacao.terceiro],
- 'quarto_ordenacao': dict_ord_template[ordenacao.quarto],
- 'quinto_ordenacao': dict_ord_template[ordenacao.quinto],
- 'sexto_ordenacao': dict_ord_template[ordenacao.sexto],
- 'setimo_ordenacao': dict_ord_template[ordenacao.setimo],
- 'oitavo_ordenacao': dict_ord_template[ordenacao.oitavo],
- 'nono_ordenacao': dict_ord_template[ordenacao.nono],
- 'decimo_ordenacao': dict_ord_template[ordenacao.decimo],
- 'decimo_primeiro_ordenacao': dict_ord_template[ordenacao.decimo_primeiro],
- 'decimo_segundo_ordenacao': dict_ord_template[ordenacao.decimo_segundo],
- 'decimo_terceiro_ordenacao': dict_ord_template[ordenacao.decimo_terceiro],
- 'decimo_quarto_ordenacao': dict_ord_template[ordenacao.decimo_quarto]})
- except KeyError as e:
- self.logger.error('user=' + self.request.user.username + '. ' + "KeyError: " + str(e) + ". Erro "
- "ao tentar utilizar configuração de ordenação. Utilizando ordenação padrão.")
- context.update(
- {'primeiro_ordenacao': dict_ord_template['id_basica'],
- 'segundo_ordenacao': dict_ord_template['cont_mult'],
- 'terceiro_ordenacao': dict_ord_template['mesa_d'],
- 'quarto_ordenacao': dict_ord_template['lista_p'],
- 'quinto_ordenacao': dict_ord_template['exp'],
- 'sexto_ordenacao': dict_ord_template['mat_exp'],
- 'setimo_ordenacao': dict_ord_template['v_n_mat_exp'],
- 'oitavo_ordenacao': dict_ord_template['oradores_exped'],
- 'nono_ordenacao': dict_ord_template['lista_p_o_d'],
- 'decimo_ordenacao': dict_ord_template['mat_o_d'],
- 'decimo_primeiro_ordenacao': dict_ord_template['v_n_mat_o_d'],
- 'decimo_segundo_ordenacao': dict_ord_template['oradores_o_d'],
- 'decimo_terceiro_ordenacao': dict_ord_template['oradores_expli'],
- 'decimo_quarto_ordenacao': dict_ord_template['ocorr_sessao']
- })
- else:
- context.update(
- {'primeiro_ordenacao': dict_ord_template['id_basica'],
- 'segundo_ordenacao': dict_ord_template['cont_mult'],
- 'terceiro_ordenacao': dict_ord_template['mesa_d'],
- 'quarto_ordenacao': dict_ord_template['lista_p'],
- 'quinto_ordenacao': dict_ord_template['exp'],
- 'sexto_ordenacao': dict_ord_template['mat_exp'],
- 'setimo_ordenacao': dict_ord_template['v_n_mat_exp'],
- 'oitavo_ordenacao': dict_ord_template['oradores_exped'],
- 'nono_ordenacao': dict_ord_template['lista_p_o_d'],
- 'decimo_ordenacao': dict_ord_template['mat_o_d'],
- 'decimo_primeiro_ordenacao': dict_ord_template['v_n_mat_o_d'],
- 'decimo_segundo_ordenacao': dict_ord_template['oradores_o_d'],
- 'decimo_terceiro_ordenacao': dict_ord_template['oradores_expli'],
- 'decimo_quarto_ordenacao': dict_ord_template['ocorr_sessao']
- })
+ ordenacao = ResumoOrdenacao.objects.get_or_create()[0]
+ context.update({
+ 'primeiro_ordenacao': dict_ord_template[ordenacao.primeiro],
+ 'segundo_ordenacao': dict_ord_template[ordenacao.segundo],
+ 'terceiro_ordenacao': dict_ord_template[ordenacao.terceiro],
+ 'quarto_ordenacao': dict_ord_template[ordenacao.quarto],
+ 'quinto_ordenacao': dict_ord_template[ordenacao.quinto],
+ 'sexto_ordenacao': dict_ord_template[ordenacao.sexto],
+ 'setimo_ordenacao': dict_ord_template[ordenacao.setimo],
+ 'oitavo_ordenacao': dict_ord_template[ordenacao.oitavo],
+ 'nono_ordenacao': dict_ord_template[ordenacao.nono],
+ 'decimo_ordenacao': dict_ord_template[ordenacao.decimo],
+ 'decimo_primeiro_ordenacao': dict_ord_template[ordenacao.decimo_primeiro],
+ 'decimo_segundo_ordenacao': dict_ord_template[ordenacao.decimo_segundo],
+ 'decimo_terceiro_ordenacao': dict_ord_template[ordenacao.decimo_terceiro],
+ 'decimo_quarto_ordenacao': dict_ord_template[ordenacao.decimo_quarto]
+ })
return context
diff --git a/sapl/templates/base/layouts.yaml b/sapl/templates/base/layouts.yaml
index 0e6c8b886..4768577b8 100644
--- a/sapl/templates/base/layouts.yaml
+++ b/sapl/templates/base/layouts.yaml
@@ -32,7 +32,8 @@ AppConfig:
- assinatura_ata
{% trans 'Cronômetros do Painel' %}:
- - cronometro_discurso cronometro_aparte cronometro_ordem cronometro_consideracoes
+ - cronometro_discurso cronometro_aparte
+ - cronometro_ordem cronometro_consideracoes
{% trans 'Configurações do Painel' %}:
- mostrar_brasao_painel
diff --git a/sapl/templates/relatorios/relatorio_ata.html b/sapl/templates/relatorios/relatorio_ata.html
index 05c5355c4..11e3ce428 100644
--- a/sapl/templates/relatorios/relatorio_ata.html
+++ b/sapl/templates/relatorios/relatorio_ata.html
@@ -65,12 +65,12 @@
____________________
- {{p.cargo}}: {{p.parlamentar.nome_completo}} / {{ p.parlamentar|filiacao_data_filter:object.data_inicio }}
+ {{p.cargo}}: {{p.parlamentar.nome_completo}} / {% if p.parlamentar|filiacao_data_filter:object.data_inicio %} {{ p.parlamentar|filiacao_data_filter:object.data_inicio }} {% else %} Sem partido {% endif %}
{% else %}
____________________
- {{p.cargo}}: {{p.parlamentar.nome_completo}} / {{ p.parlamentar|filiacao_data_filter:object.data_inicio }}
+ {{p.cargo}}: {{p.parlamentar.nome_completo}} / {% if p.parlamentar|filiacao_data_filter:object.data_inicio %} {{ p.parlamentar|filiacao_data_filter:object.data_inicio }} {% else %} Sem partido {% endif %}
|
@@ -84,12 +84,12 @@
_____________________
- {{p.nome_completo}} / {{ p|filiacao_data_filter:object.data_inicio }}
+ {{p.nome_completo}} / {% if p|filiacao_data_filter:object.data_inicio %} {{ p|filiacao_data_filter:object.data_inicio }} {% else %} Sem partido {% endif %}
{% else %}
_____________________
- {{p.nome_completo}} / {{ p|filiacao_data_filter:object.data_inicio }}
+ {{p.nome_completo}} / {% if p|filiacao_data_filter:object.data_inicio %} {{ p|filiacao_data_filter:object.data_inicio }} {% else %} Sem partido {% endif %}
|
diff --git a/sapl/templates/sessao/blocos_ata/assinaturas.html b/sapl/templates/sessao/blocos_ata/assinaturas.html
index 9eba4ce9b..520215fe1 100644
--- a/sapl/templates/sessao/blocos_ata/assinaturas.html
+++ b/sapl/templates/sessao/blocos_ata/assinaturas.html
@@ -5,13 +5,13 @@
{% for p in assinatura_mesa %}
___________________________________________
- {{p.cargo}}: {{p.parlamentar.nome_completo}} / {{ p.parlamentar|filiacao_data_filter:object.data_inicio }}
+ {{p.cargo}}: {{p.parlamentar.nome_completo}} / {% if p.parlamentar|filiacao_data_filter:object.data_inicio %} {{ p.parlamentar|filiacao_data_filter:object.data_inicio }} {% else %} Sem partido {% endif %}
{% endfor %}
{% for p in assinatura_presentes %}
___________________________________________
- {{p.nome_completo}} / {{ p|filiacao_data_filter:object.data_inicio }}
+ {{p.nome_completo}} / {% if p|filiacao_data_filter:object.data_inicio %} {{ p|filiacao_data_filter:object.data_inicio }} {% else %} Sem partido {% endif %}
{% endfor %}
diff --git a/sapl/templates/sessao/blocos_ata/lista_presenca.html b/sapl/templates/sessao/blocos_ata/lista_presenca.html
index 1efc2c8ea..f2a4df4c5 100644
--- a/sapl/templates/sessao/blocos_ata/lista_presenca.html
+++ b/sapl/templates/sessao/blocos_ata/lista_presenca.html
@@ -5,7 +5,7 @@
{% if presenca_sessao %}
Lista de Presença na Sessão:
{% for p in presenca_sessao %}
- {{p.nome_completo}} / {{ p|filiacao_data_filter:object.data_inicio }}
+ {{p.nome_completo}} / {% if p|filiacao_data_filter:object.data_inicio %} {{ p|filiacao_data_filter:object.data_inicio }} {% else %} Sem partido {% endif %}
{% if not forloop.last %} ; {% endif %}
{% endfor %}
{% endif %}
diff --git a/sapl/templates/sessao/blocos_ata/lista_presenca_ordem_dia.html b/sapl/templates/sessao/blocos_ata/lista_presenca_ordem_dia.html
index 855d1be6f..58729609c 100644
--- a/sapl/templates/sessao/blocos_ata/lista_presenca_ordem_dia.html
+++ b/sapl/templates/sessao/blocos_ata/lista_presenca_ordem_dia.html
@@ -5,7 +5,7 @@
{% if presenca_ordem %}
Lista de Presença na Ordem do Dia:
{% for p in presenca_ordem %}
- {{p.nome_completo}} / {{ p|filiacao_data_filter:object.data_inicio }}
+ {{p.nome_completo}} / {% if p|filiacao_data_filter:object.data_inicio %} {{ p|filiacao_data_filter:object.data_inicio }} {% else %} Sem partido {% endif %}
{% if not forloop.last %} ; {% endif %}
{% endfor %}
{% endif %}
diff --git a/sapl/templates/sessao/blocos_ata/mesa_diretora.html b/sapl/templates/sessao/blocos_ata/mesa_diretora.html
index 2d2de86d7..e0f0d4b8b 100644
--- a/sapl/templates/sessao/blocos_ata/mesa_diretora.html
+++ b/sapl/templates/sessao/blocos_ata/mesa_diretora.html
@@ -1,13 +1,15 @@
+{% load common_tags %}
+
\ No newline at end of file
+
diff --git a/sapl/templates/sessao/blocos_ata/oradores_expediente.html b/sapl/templates/sessao/blocos_ata/oradores_expediente.html
index f85b27895..1b355c128 100644
--- a/sapl/templates/sessao/blocos_ata/oradores_expediente.html
+++ b/sapl/templates/sessao/blocos_ata/oradores_expediente.html
@@ -1,9 +1,12 @@
+{% load common_tags %}
+
+