Browse Source

Merge branch '3.1.x' into fix-erro-tramitacao-2711

pull/2733/head
Edward 7 years ago
committed by GitHub
parent
commit
790f84f403
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      Dockerfile
  2. 13
      check_solr.sh
  3. 17
      docker-compose.yml
  4. 24
      sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py
  5. 15
      sapl/relatorios/views.py
  6. 128
      sapl/sessao/forms.py
  7. 85
      sapl/sessao/migrations/0037_auto_20190415_1635.py
  8. 16
      sapl/sessao/migrations/0038_merge_20190415_1800.py
  9. 84
      sapl/sessao/models.py
  10. 112
      sapl/sessao/views.py
  11. 3
      sapl/templates/base/layouts.yaml
  12. 8
      sapl/templates/relatorios/relatorio_ata.html
  13. 4
      sapl/templates/sessao/blocos_ata/assinaturas.html
  14. 2
      sapl/templates/sessao/blocos_ata/lista_presenca.html
  15. 2
      sapl/templates/sessao/blocos_ata/lista_presenca_ordem_dia.html
  16. 4
      sapl/templates/sessao/blocos_ata/mesa_diretora.html
  17. 5
      sapl/templates/sessao/blocos_ata/oradores_expediente.html
  18. 4
      sapl/templates/sessao/blocos_ata/oradores_explicacoes.html
  19. 4
      sapl/templates/sessao/blocos_resumo/mesa_diretora.html
  20. 4
      sapl/templates/sessao/blocos_resumo/oradores_explicacoes.html
  21. 8
      start.sh

1
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 && \

13
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

17
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"

24
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\t<para style="P1">Conteúdo Multimídia</para>\n'
tmp += '\t\t<para style="P2">\n'
tmp += '\t\t\t<font color="white"> <br/></font>\n'
tmp += '\t\t</para>\n'
tmp += '\t\t<para style="P2" spaceAfter="5"><b>Audio: </b> ' + mul_audio + '</para>\n'
tmp += '\t\t<para style="P2" spaceAfter="5"><b>Video: </b> ' + mul_video + '</para>\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)

15
sapl/relatorios/views.py

@ -520,6 +520,18 @@ def get_sessao_plenaria(sessao, casa):
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 = []
for composicao in IntegranteMesa.objects.filter(sessao_plenaria=sessao):
@ -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,

128
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=_(''),
choices=ORDENACAO_RESUMO)
segundo = forms.ChoiceField(label=_(''),
choices=ORDENACAO_RESUMO)
terceiro = forms.ChoiceField(label='',
choices=ORDENACAO_RESUMO)
quarto = forms.ChoiceField(label=_(''),
choices=ORDENACAO_RESUMO)
quinto = forms.ChoiceField(label=_(''),
choices=ORDENACAO_RESUMO)
sexto = forms.ChoiceField(label=_(''),
choices=ORDENACAO_RESUMO)
setimo = forms.ChoiceField(label=_(''),
choices=ORDENACAO_RESUMO)
oitavo = forms.ChoiceField(label=_(''),
choices=ORDENACAO_RESUMO)
nono = forms.ChoiceField(label=_(''),
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='',
choices=ORDENACAO_RESUMO
)
segundo = forms.ChoiceField(
label='',
choices=ORDENACAO_RESUMO
)
terceiro = forms.ChoiceField(
label='',
choices=ORDENACAO_RESUMO
)
quarto = forms.ChoiceField(
label='',
choices=ORDENACAO_RESUMO
)
quinto = forms.ChoiceField(
label='',
choices=ORDENACAO_RESUMO
)
sexto = forms.ChoiceField(
label='',
choices=ORDENACAO_RESUMO
)
setimo = forms.ChoiceField(
label='',
choices=ORDENACAO_RESUMO
)
oitavo = forms.ChoiceField(
label='',
choices=ORDENACAO_RESUMO
)
nono = forms.ChoiceField(
label='',
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):

85
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),
),
]

16
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 = [
]

84
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')

112
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,10 +1767,9 @@ class ResumoView(DetailView):
'ocorr_sessao': 'ocorrencias_da_sessao.html'
}
if ordenacao:
try:
context.update(
{'primeiro_ordenacao': dict_ord_template[ordenacao.primeiro],
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],
@ -1795,42 +1782,7 @@ class ResumoView(DetailView):
'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']
'decimo_quarto_ordenacao': dict_ord_template[ordenacao.decimo_quarto]
})
return context

3
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

8
sapl/templates/relatorios/relatorio_ata.html

@ -65,12 +65,12 @@
<tr style="margin-top:20px">
<td>
<div style="float: left; position: relative; top: -50px; left: 8px; width: 120px">____________________ </br>
<p style="font-size:8pt"><b>{{p.cargo}}: </b> {{p.parlamentar.nome_completo}} / {{ p.parlamentar|filiacao_data_filter:object.data_inicio }}</p>
<p style="font-size:8pt"><b>{{p.cargo}}: </b> {{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 %}</p>
</br></br></br>
</div>
{% else %}
<div style="float: left; position: relative; top: -50px; left: 142px; width: 120px; margin-right:-220px;">____________________ </br>
<p style="font-size:8pt"><b>{{p.cargo}}: </b> {{p.parlamentar.nome_completo}} / {{ p.parlamentar|filiacao_data_filter:object.data_inicio }}</p>
<p style="font-size:8pt"><b>{{p.cargo}}: </b> {{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 %}</p>
</br></br></br>
</div>
</td>
@ -84,12 +84,12 @@
<td>
<div style="float: left; position: relative;top: -50px; left: 8px; width: 120px;">_____________________</br>
<p style="font-size:8pt">
{{p.nome_completo}} / {{ p|filiacao_data_filter:object.data_inicio }}</p>
{{p.nome_completo}} / {% if p|filiacao_data_filter:object.data_inicio %} {{ p|filiacao_data_filter:object.data_inicio }} {% else %} Sem partido {% endif %}</p>
</br></br></br>
</div>
{% else %}
<div style="float: left; position: relative; top: -50px;left: 142px; width: 120px; margin-right:-220px;">_____________________ </br>
<p style="font-size:8pt">{{p.nome_completo}} / {{ p|filiacao_data_filter:object.data_inicio }}</p>
<p style="font-size:8pt">{{p.nome_completo}} / {% if p|filiacao_data_filter:object.data_inicio %} {{ p|filiacao_data_filter:object.data_inicio }} {% else %} Sem partido {% endif %}</p>
</br></br></br>
</div>
</td>

4
sapl/templates/sessao/blocos_ata/assinaturas.html

@ -5,13 +5,13 @@
</br></br>
{% for p in assinatura_mesa %}
<div class="col-md-6">___________________________________________ </br>
<b>{{p.cargo}}: </b> {{p.parlamentar.nome_completo}} / {{ p.parlamentar|filiacao_data_filter:object.data_inicio }}
<b>{{p.cargo}}: </b> {{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 %}
</br></br></br>
</div>
{% endfor %}
{% for p in assinatura_presentes %}
<div class="col-md-6">___________________________________________ </br>
{{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 %}
</br></br></br>
</div>
{% endfor %}

2
sapl/templates/sessao/blocos_ata/lista_presenca.html

@ -5,7 +5,7 @@
{% if presenca_sessao %}
<strong>Lista de Presença na Sessão: </strong>
{% 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 %}

2
sapl/templates/sessao/blocos_ata/lista_presenca_ordem_dia.html

@ -5,7 +5,7 @@
{% if presenca_ordem %}
<strong>Lista de Presença na Ordem do Dia: </strong>
{% 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 %}

4
sapl/templates/sessao/blocos_ata/mesa_diretora.html

@ -1,10 +1,12 @@
{% load common_tags %}
<fieldset>
<p align="justify">
{% if mesa %}
<strong>Mesa Diretora: </strong>
{% for m in mesa %}
{{m.cargo}}:
{{m.parlamentar.nome_completo}} / {{ m.parlamentar.filiacao_atual }}
{{m.parlamentar.nome_completo}} / {% if m.parlamentar|filiacao_data_filter:object.data_inicio %} {{ m.parlamentar|filiacao_data_filter:object.data_inicio }} {% else %} Sem partido {% endif %}
{% if not forloop.last %} ; {% endif %}
{% endfor %}
{% endif %}

5
sapl/templates/sessao/blocos_ata/oradores_expediente.html

@ -1,9 +1,12 @@
{% load common_tags %}
<fieldset>
<p align="justify">
{% if oradores %}
<strong>Oradores do Expediente: </strong>
{% for o in oradores %}
<b>{{o.numero_ordem}}</b> - {{o.parlamentar.nome_completo}} / {{ o.parlamentar.filiacao_atual }}
<b>{{o.numero_ordem}}</b> - {{o.parlamentar.nome_completo}} / {% if o.parlamentar|filiacao_data_filter:object.data_inicio %} {{ o.parlamentar|filiacao_data_filter:object.data_inicio }} {% else %} Sem partido {% endif %}
{% if o.observacao %} - {{o.observacao}} {% endif %}
{% if not forloop.last %} ; {% endif %}
{% endfor %}

4
sapl/templates/sessao/blocos_ata/oradores_explicacoes.html

@ -1,9 +1,11 @@
{% load common_tags %}
<fieldset>
<p align="justify">
{% if oradores_explicacoes %}
<strong>Oradores das Explicações Pessoais: </strong>
{% for o in oradores_explicacoes %}
<b>{{o.numero_ordem}}</b> - {{o.parlamentar.nome_completo}} / {{ o.parlamentar.filiacao_atual }}
<b>{{o.numero_ordem}}</b> - {{o.parlamentar.nome_completo}} / {% if o.parlamentar|filiacao_data_filter:object.data_inicio %} {{ o.parlamentar|filiacao_data_filter:object.data_inicio }} {% else %} Sem partido {% endif %}
{% if o.observacao %} - {{o.observacao}} {% endif %}
{% if not forloop.last %} ; {% endif %}
{% endfor %}

4
sapl/templates/sessao/blocos_resumo/mesa_diretora.html

@ -1,9 +1,11 @@
{% load common_tags %}
<fieldset>
<legend>Mesa Diretora</legend>
<div class="row">
{% for m in mesa %}
<div class="col-md-12"><b>{{m.cargo}}:
</b>{{m.parlamentar.nome_parlamentar}} / {% if m.parlamentar.filiacao_atual %} {{ m.parlamentar.filiacao_atual }} {% else %} Sem partido {% endif %}
</b>{{m.parlamentar.nome_parlamentar}} / {% if p.parlamentar|filiacao_data_filter:object.data_inicio %} {{ m.parlamentar|filiacao_data_filter:object.data_inicio }} {% else %} Sem partido {% endif %}
</div>
{% endfor %}
</div>

4
sapl/templates/sessao/blocos_resumo/oradores_explicacoes.html

@ -1,3 +1,5 @@
{% load common_tags %}
<fieldset>
<legend>Oradores das Explicações Pessoais</legend>
<div class="row">
@ -6,7 +8,7 @@
</div>
<div class="row">
{% for o in oradores_explicacoes %}
<div class="col-md-6"><b>{{o.numero_ordem}}</b> - {{o.parlamentar.nome_parlamentar}} / {{ o.parlamentar.filiacao_atual }}</div>
<div class="col-md-6"><b>{{o.numero_ordem}}</b> - {{o.parlamentar.nome_parlamentar}} / {% if o.parlamentar|filiacao_data_filter:object.data_inicio %} {{ o.parlamentar|filiacao_data_filter:object.data_inicio }} {% else %} Sem partido {% endif %}</div>
<div class="col-md-6">{{o.url_discurso}}</div>
</br>
{% endfor %}

8
start.sh

@ -71,10 +71,18 @@ if [ "${USE_SOLR-False}" == "True" ] || [ "${USE_SOLR-False}" == "true" ]; then
echo "MAX SHARDS PER NODE: $MAX_SHARDS_PER_NODE"
echo "========================================="
echo "running solr script"
/bin/bash check_solr.sh $SOLR_URL
CHECK_SOLR_RETURN=$?
if [ $CHECK_SOLR_RETURN == 1 ]; then
echo "Connecting to solr..."
python3 solr_api.py -u $SOLR_URL -c $SOLR_COLLECTION -s $NUM_SHARDS -rf $RF -ms $MAX_SHARDS_PER_NODE &
# python3 manage.py rebuild_index --noinput &
else
echo "Solr is offline, not possible to connect."
fi
else
echo "Suporte a SOLR não inicializado."
fi

Loading…
Cancel
Save