Browse Source

Merge branch '3.1.x' into 2700-resumo-sessao-pdf-duplicado

pull/2704/head
Edward 7 years ago
committed by GitHub
parent
commit
eac94c5759
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. 37
      sapl/lexml/OAIServer.py
  5. 24
      sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py
  6. 15
      sapl/relatorios/views.py
  7. 3
      sapl/templates/base/layouts.yaml
  8. 8
      sapl/templates/relatorios/relatorio_ata.html
  9. 4
      sapl/templates/sessao/blocos_ata/assinaturas.html
  10. 2
      sapl/templates/sessao/blocos_ata/lista_presenca.html
  11. 2
      sapl/templates/sessao/blocos_ata/lista_presenca_ordem_dia.html
  12. 4
      sapl/templates/sessao/blocos_ata/mesa_diretora.html
  13. 5
      sapl/templates/sessao/blocos_ata/oradores_expediente.html
  14. 4
      sapl/templates/sessao/blocos_ata/oradores_explicacoes.html
  15. 2
      sapl/templates/sessao/blocos_resumo/lista_presenca_ordem_dia.html
  16. 4
      sapl/templates/sessao/blocos_resumo/mesa_diretora.html
  17. 4
      sapl/templates/sessao/blocos_resumo/oradores_explicacoes.html
  18. 8
      start.sh

1
Dockerfile

@ -39,6 +39,7 @@ RUN rm -rf /var/interlegis/sapl/sapl/.env && \
rm -rf /var/interlegis/sapl/sapl.db rm -rf /var/interlegis/sapl/sapl.db
RUN chmod +x /var/interlegis/sapl/start.sh && \ 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/stdout /var/log/nginx/access.log && \
ln -sf /dev/stderr /var/log/nginx/error.log && \ ln -sf /dev/stderr /var/log/nginx/error.log && \
mkdir /var/log/sapl/ && touch /var/interlegis/sapl/sapl.log && \ mkdir /var/log/sapl/ && touch /var/interlegis/sapl/sapl.log && \

13
check_solr.sh

@ -4,15 +4,22 @@
SOLR_URL=$1 SOLR_URL=$1
RETRY_COUNT=1
RETRY_LIMIT=4
echo "Waiting for solr connection at $SOLR_URL ..." 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" 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}') RESULT=$(curl -s -o /dev/null -I "$SOLR_URL/solr/admin/collections?action=LIST" -w '%{http_code}')
echo $RESULT echo $RESULT
if [ "$RESULT" -eq '200' ]; then if [ $RESULT == 200 ]; then
echo "Solr server is up!" echo "Solr server is up!"
break exit 1
else else
sleep 3 sleep 3
fi fi
done done
echo "Solr connection failed."
exit 2

17
docker-compose.yml

@ -12,6 +12,7 @@ sapldb:
- "5432:5432" - "5432:5432"
sapl: sapl:
image: interlegis/sapl:3.1.153 image: interlegis/sapl:3.1.153
# build: .
restart: always restart: always
environment: environment:
ADMIN_PASSWORD: interlegis ADMIN_PASSWORD: interlegis
@ -23,11 +24,27 @@ sapl:
EMAIL_HOST_USER: usuariosmtp EMAIL_HOST_USER: usuariosmtp
EMAIL_SEND_USER: usuariosmtp EMAIL_SEND_USER: usuariosmtp
EMAIL_HOST_PASSWORD: senhasmtp EMAIL_HOST_PASSWORD: senhasmtp
# USE_SOLR: 'True'
# SOLR_COLLECTION: sapl
# SOLR_URL: http://saplsolr:8983
TZ: America/Sao_Paulo TZ: America/Sao_Paulo
volumes: volumes:
- sapl_data:/var/interlegis/sapl/data - sapl_data:/var/interlegis/sapl/data
- sapl_media:/var/interlegis/sapl/media - sapl_media:/var/interlegis/sapl/media
links: links:
- sapldb - sapldb
# - saplsolr
ports: ports:
- "80:80" - "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"

37
sapl/lexml/OAIServer.py

@ -1,3 +1,4 @@
import unicodedata
from datetime import datetime from datetime import datetime
import oaipmh import oaipmh
@ -11,6 +12,7 @@ from lxml.builder import ElementMaker
from sapl.base.models import AppConfig, CasaLegislativa from sapl.base.models import AppConfig, CasaLegislativa
from sapl.lexml.models import LexmlPublicador, LexmlProvedor from sapl.lexml.models import LexmlPublicador, LexmlProvedor
from sapl.norma.models import NormaJuridica from sapl.norma.models import NormaJuridica
from sapl.utils import LISTA_DE_UFS
class OAILEXML: class OAILEXML:
@ -122,22 +124,33 @@ class OAIServer:
else: else:
return None return None
@staticmethod
def remove_acentos(linha):
res = unicodedata.normalize('NFKD', linha).encode('ASCII', 'ignore')
res = res.decode("UTF-8")
remove_list = ["\'", "\"", "-"]
for i in remove_list:
res = res.replace(i, "")
return res
def monta_urn(self, norma, esfera): def monta_urn(self, norma, esfera):
if norma: if norma:
urn = 'urn:lex:br;' urn = 'urn:lex:br;'
esferas = {'M': 'municipal', 'E': 'estadual'} esferas = {'M': 'municipal', 'E': 'estadual'}
municipio = casa.municipio.lower() municipio = self.remove_acentos(casa.municipio.lower())
uf = casa.uf.lower() uf_map = dict(LISTA_DE_UFS)
uf_desc = uf_map.get(casa.uf.upper(), '').lower()
uf_desc = self.remove_acentos(uf_desc)
for x in [' ', '.de.', '.da.', '.das.', '.do.', '.dos.']: for x in [' ', '.de.', '.da.', '.das.', '.do.', '.dos.']:
municipio = municipio.replace(x, '.') municipio = municipio.replace(x, '.')
uf = uf.replace(x, '.') uf_desc = uf_desc.replace(x, '.')
if esfera == 'M': if esfera == 'M':
urn += '{};{}:'.format(uf, municipio) urn += '{};{}:'.format(uf_desc, municipio)
if norma.tipo.equivalente_lexml == 'regimento.interno' or norma.tipo.equivalente_lexml == 'resolucao': if norma.tipo.equivalente_lexml == 'regimento.interno' or norma.tipo.equivalente_lexml == 'resolucao':
urn += 'camara.' urn += 'camara.'
urn += esferas[esfera] + ':' urn += esferas[esfera] + ':'
elif esfera == 'E': elif esfera == 'E':
urn += '{}:{}:'.format(uf, esferas[esfera]) urn += '{}:{}:'.format(uf_desc, esferas[esfera])
else: else:
urn += ':' urn += ':'
if norma.tipo.equivalente_lexml: if norma.tipo.equivalente_lexml:
@ -166,11 +179,14 @@ class OAIServer:
return '' return ''
def monta_xml(self, urn, norma): def monta_xml(self, urn, norma):
BASE_URL_SAPL = self.config['base_url']
BASE_URL_SAPL = BASE_URL_SAPL[:BASE_URL_SAPL.find('/', 8)]
publicador = LexmlPublicador.objects.first() publicador = LexmlPublicador.objects.first()
if norma and publicador: if norma and publicador:
LEXML = ElementMaker(namespace=self.ns['lexml'], nsmap=self.ns) LEXML = ElementMaker(namespace=self.ns['lexml'], nsmap=self.ns)
oai_lexml = LEXML.LexML() oai_lexml = LEXML.LexML()
oai_lexml.attrib['{{}}schemaLocation'.format(self.XSI_NS)] = '{} {}'.format( oai_lexml.attrib['{{{pre}}}schemaLocation'.format(pre=self.XSI_NS)] = '{} {}'.format(
'http://www.lexml.gov.br/oai_lexml', 'http://projeto.lexml.gov.br/esquemas/oai_lexml.xsd') 'http://www.lexml.gov.br/oai_lexml', 'http://projeto.lexml.gov.br/esquemas/oai_lexml.xsd')
texto_integral = norma.texto_integral texto_integral = norma.texto_integral
mime_types = {'doc': 'application/msword', mime_types = {'doc': 'application/msword',
@ -178,20 +194,21 @@ class OAIServer:
'odt': 'application/vnd.oasis.opendocument.text', 'odt': 'application/vnd.oasis.opendocument.text',
'pdf': 'application/pdf', 'pdf': 'application/pdf',
'rtf': 'application/rtf'} 'rtf': 'application/rtf'}
if texto_integral: if texto_integral:
url_conteudo = self.config['base_url'] + texto_integral.url url_conteudo = BASE_URL_SAPL + texto_integral.url
extensao = texto_integral.url.split('.')[-1] extensao = texto_integral.url.split('.')[-1]
formato = mime_types.get(extensao, 'application/octet-stream') formato = mime_types.get(extensao, 'application/octet-stream')
else: else:
formato = 'text/html' formato = 'text/html'
url_conteudo = self.config['base_url'] + reverse('sapl.norma:normajuridica_detail', url_conteudo = BASE_URL_SAPL + reverse('sapl.norma:normajuridica_detail',
kwargs={'pk': norma.numero}) kwargs={'pk': norma.pk})
element_maker = ElementMaker() element_maker = ElementMaker()
id_publicador = str(publicador.id_publicador) id_publicador = str(publicador.id_publicador)
item_conteudo = element_maker.Item(url_conteudo, formato=formato, idPublicador=id_publicador, item_conteudo = element_maker.Item(url_conteudo, formato=formato, idPublicador=id_publicador,
tipo='conteudo') tipo='conteudo')
oai_lexml.append(item_conteudo) oai_lexml.append(item_conteudo)
url = self.config['base_url'] + reverse('sapl.norma:normajuridica_detail', kwargs={'pk': norma.numero}) url = BASE_URL_SAPL + reverse('sapl.norma:normajuridica_detail', kwargs={'pk': norma.pk})
item_metadado = element_maker.Item(url, formato='text/html', idPublicador=id_publicador, tipo='metadado') item_metadado = element_maker.Item(url, formato='text/html', idPublicador=id_publicador, tipo='metadado')
oai_lexml.append(item_metadado) oai_lexml.append(item_metadado)
documento_individual = element_maker.DocumentoIndividual(urn) documento_individual = element_maker.DocumentoIndividual(urn)

24
sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py

@ -128,6 +128,24 @@ def inf_basicas(inf_basicas_dic):
return tmp 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): def mesa(lst_mesa):
""" """
@ -392,7 +410,7 @@ def ocorrencias(lst_ocorrencias):
return tmp 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" 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() ordenacao = ResumoOrdenacao.objects.first()
dict_ord_template = { dict_ord_template = {
'cont_mult': '', 'cont_mult': multimidia(cont_mult_dic),
'exp': expedientes(lst_expedientes), 'exp': expedientes(lst_expedientes),
'id_basica': inf_basicas(inf_basicas_dic), 'id_basica': inf_basicas(inf_basicas_dic),
'lista_p': presenca(lst_presenca_sessao, lst_ausencia_sessao), '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 " logger.error("KeyError: " + str(e) + ". Erro ao tentar utilizar "
"configuração de ordenação. Utilizando ordenação padrão.") "configuração de ordenação. Utilizando ordenação padrão.")
tmp += inf_basicas(inf_basicas_dic) tmp += inf_basicas(inf_basicas_dic)
tmp += multimidia(cont_mult_dic)
tmp += mesa(lst_mesa) tmp += mesa(lst_mesa)
tmp += presenca(lst_presenca_sessao, lst_ausencia_sessao) tmp += presenca(lst_presenca_sessao, lst_ausencia_sessao)
tmp += expedientes(lst_expedientes) tmp += expedientes(lst_expedientes)
@ -467,6 +486,7 @@ def principal(rodape_dic, imagem, inf_basicas_dic, lst_mesa, lst_presenca_sessao
else: else:
tmp += inf_basicas(inf_basicas_dic) tmp += inf_basicas(inf_basicas_dic)
tmp += multimidia(cont_mult_dic)
tmp += mesa(lst_mesa) tmp += mesa(lst_mesa)
tmp += presenca(lst_presenca_sessao, lst_ausencia_sessao) tmp += presenca(lst_presenca_sessao, lst_ausencia_sessao)
tmp += expedientes(lst_expedientes) 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["hr_fim_sessao"] = sessao.hora_fim
inf_basicas_dic["nom_camara"] = casa.nome 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 # Lista da composicao da mesa diretora
lst_mesa = [] lst_mesa = []
for composicao in IntegranteMesa.objects.filter(sessao_plenaria=sessao): for composicao in IntegranteMesa.objects.filter(sessao_plenaria=sessao):
@ -852,6 +864,7 @@ def get_sessao_plenaria(sessao, casa):
lst_ocorrencias.append(o) lst_ocorrencias.append(o)
return (inf_basicas_dic, return (inf_basicas_dic,
cont_mult_dic,
lst_mesa, lst_mesa,
lst_presenca_sessao, lst_presenca_sessao,
lst_ausencia_sessao, lst_ausencia_sessao,
@ -910,6 +923,7 @@ def relatorio_sessao_plenaria(request, pk):
raise Http404('Essa página não existe') raise Http404('Essa página não existe')
(inf_basicas_dic, (inf_basicas_dic,
cont_mult_dic,
lst_mesa, lst_mesa,
lst_presenca_sessao, lst_presenca_sessao,
lst_ausencia_sessao, lst_ausencia_sessao,
@ -934,6 +948,7 @@ def relatorio_sessao_plenaria(request, pk):
rodape, rodape,
imagem, imagem,
inf_basicas_dic, inf_basicas_dic,
cont_mult_dic,
lst_mesa, lst_mesa,
lst_presenca_sessao, lst_presenca_sessao,
lst_ausencia_sessao, lst_ausencia_sessao,

3
sapl/templates/base/layouts.yaml

@ -31,7 +31,8 @@ AppConfig:
- assinatura_ata - assinatura_ata
{% trans 'Cronômetros do Painel' %}: {% 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' %}: {% trans 'Configurações do Painel' %}:
- mostrar_brasao_painel - mostrar_brasao_painel

8
sapl/templates/relatorios/relatorio_ata.html

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

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

@ -5,13 +5,13 @@
</br></br> </br></br>
{% for p in assinatura_mesa %} {% for p in assinatura_mesa %}
<div class="col-md-6">___________________________________________ </br> <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> </br></br></br>
</div> </div>
{% endfor %} {% endfor %}
{% for p in assinatura_presentes %} {% for p in assinatura_presentes %}
<div class="col-md-6">___________________________________________ </br> <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> </br></br></br>
</div> </div>
{% endfor %} {% endfor %}

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

@ -5,7 +5,7 @@
{% if presenca_sessao %} {% if presenca_sessao %}
<strong>Lista de Presença na Sessão: </strong> <strong>Lista de Presença na Sessão: </strong>
{% for p in presenca_sessao %} {% 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 %} {% if not forloop.last %} ; {% endif %}
{% endfor %} {% endfor %}
{% endif %} {% endif %}

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

@ -5,7 +5,7 @@
{% if presenca_ordem %} {% if presenca_ordem %}
<strong>Lista de Presença na Ordem do Dia: </strong> <strong>Lista de Presença na Ordem do Dia: </strong>
{% for p in presenca_ordem %} {% 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 %} {% if not forloop.last %} ; {% endif %}
{% endfor %} {% endfor %}
{% endif %} {% endif %}

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

@ -1,10 +1,12 @@
{% load common_tags %}
<fieldset> <fieldset>
<p align="justify"> <p align="justify">
{% if mesa %} {% if mesa %}
<strong>Mesa Diretora: </strong> <strong>Mesa Diretora: </strong>
{% for m in mesa %} {% for m in mesa %}
{{m.cargo}}: {{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 %} {% if not forloop.last %} ; {% endif %}
{% endfor %} {% endfor %}
{% endif %} {% endif %}

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

@ -1,9 +1,12 @@
{% load common_tags %}
<fieldset> <fieldset>
<p align="justify"> <p align="justify">
{% if oradores %} {% if oradores %}
<strong>Oradores do Expediente: </strong> <strong>Oradores do Expediente: </strong>
{% for o in oradores %} {% 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 o.observacao %} - {{o.observacao}} {% endif %}
{% if not forloop.last %} ; {% endif %} {% if not forloop.last %} ; {% endif %}
{% endfor %} {% endfor %}

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

@ -1,9 +1,11 @@
{% load common_tags %}
<fieldset> <fieldset>
<p align="justify"> <p align="justify">
{% if oradores_explicacoes %} {% if oradores_explicacoes %}
<strong>Oradores das Explicações Pessoais: </strong> <strong>Oradores das Explicações Pessoais: </strong>
{% for o in oradores_explicacoes %} {% 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 o.observacao %} - {{o.observacao}} {% endif %}
{% if not forloop.last %} ; {% endif %} {% if not forloop.last %} ; {% endif %}
{% endfor %} {% endfor %}

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

@ -4,7 +4,7 @@
<legend>Lista de Presença na Ordem do Dia</legend> <legend>Lista de Presença na Ordem do Dia</legend>
<div class="row"> <div class="row">
{% for p in presenca_ordem %} {% for p in presenca_ordem %}
<div class="col-md-12">{{p.nome_parlamentar}} / {% if p|filiacao_data_filter:object.data_inicio %} {{ p|filiacao_data_filter:object.data_inicio }} {% else %} Sem partido {% endif %}</div> <div class="col-md-12">{{p.nome_parlamentar}} / {% if p|filiacao_data_filter:object.data_inicio %} {{ p|filiacao_data_filter:object.data_inicio }} {% else %} Sem partido {% endif %} </div>
{% endfor %} {% endfor %}
</div> </div>
</fieldset> </fieldset>

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

@ -1,9 +1,11 @@
{% load common_tags %}
<fieldset> <fieldset>
<legend>Mesa Diretora</legend> <legend>Mesa Diretora</legend>
<div class="row"> <div class="row">
{% for m in mesa %} {% for m in mesa %}
<div class="col-md-12"><b>{{m.cargo}}: <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> </div>
{% endfor %} {% endfor %}
</div> </div>

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

@ -1,3 +1,5 @@
{% load common_tags %}
<fieldset> <fieldset>
<legend>Oradores das Explicações Pessoais</legend> <legend>Oradores das Explicações Pessoais</legend>
<div class="row"> <div class="row">
@ -6,7 +8,7 @@
</div> </div>
<div class="row"> <div class="row">
{% for o in oradores_explicacoes %} {% 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> <div class="col-md-6">{{o.url_discurso}}</div>
</br> </br>
{% endfor %} {% 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 "MAX SHARDS PER NODE: $MAX_SHARDS_PER_NODE"
echo "=========================================" echo "========================================="
echo "running solr script"
/bin/bash check_solr.sh $SOLR_URL /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 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 & # python3 manage.py rebuild_index --noinput &
else
echo "Solr is offline, not possible to connect."
fi
else else
echo "Suporte a SOLR não inicializado." echo "Suporte a SOLR não inicializado."
fi fi

Loading…
Cancel
Save