Browse Source

Merge branch 'interlegis:3.1.x' into 3.1.x

pull/3673/head
roberiorebeca 2 years ago
committed by GitHub
parent
commit
ec03856195
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      sapl/compilacao/views.py
  2. 38
      sapl/endpoint_restriction_middleware.py
  3. 11
      sapl/relatorios/forms.py
  4. 7
      sapl/relatorios/views.py
  5. 1
      sapl/settings.py
  6. 3
      sapl/templates/relatorios/RelatorioDataFimPrazoTramitacao_filter.html
  7. 3
      sapl/templates/relatorios/relatorio_fim_prazo_tramitacao.html

2
sapl/compilacao/views.py

@ -1392,7 +1392,7 @@ class TextEditView(CompMixin, TemplateView):
return r
def nota_alteracao(self, dispositivo, lista_ta_publicado):
if dispositivo.ta_publicado_id:
if dispositivo.ta_publicado_id and dispositivo.dispositivo_atualizador:
d = dispositivo.dispositivo_atualizador.dispositivo_pai
if d.auto_inserido:

38
sapl/endpoint_restriction_middleware.py

@ -0,0 +1,38 @@
from django.http import HttpResponseForbidden
import logging
# lista de IPs permitidos (localhost, redes locais, etc)
# https://en.wikipedia.org/wiki/Reserved_IP_addresses
ALLOWED_IPS = [
'127.0.0.1',
'::1',
'10.0.0.0/8',
'172.16.0.0/12',
'192.168.0.0/16',
'fc00::/7',
'::1',
'fe80::/10',
'192.0.2.0/24',
'2001:db8::/32',
'224.0.0.0/4',
'ff00::/8'
]
RESTRICTED_ENDPOINTS = ['/metrics']
class EndpointRestrictionMiddleware:
logging.getLogger(__name__)
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
# IP do cliente
client_ip = request.META.get('REMOTE_ADDR')
# bloqueia acesso a endpoints restritos para IPs nao permitidos
if request.path in RESTRICTED_ENDPOINTS and client_ip not in ALLOWED_IPS:
return HttpResponseForbidden('Acesso proibido')
return self.get_response(request)

11
sapl/relatorios/forms.py

@ -305,6 +305,10 @@ class RelatorioDataFimPrazoTramitacaoFilterSet(django_filters.FilterSet):
materia__ano = django_filters.ChoiceFilter(required=False,
label='Ano da Matéria',
choices=choice_anos_com_materias)
# materia__autores = django_filters.CharFilter(widget=forms.HiddenInput())
materia__autores = django_filters.ModelChoiceFilter(
label='Autor da Matéria',
queryset=Autor.objects.all(), field_name='materia__autores')
@property
def qs(self):
@ -317,7 +321,8 @@ class RelatorioDataFimPrazoTramitacaoFilterSet(django_filters.FilterSet):
'tramitacao__unidade_tramitacao_local',
'tramitacao__unidade_tramitacao_destino',
'tramitacao__status',
'tramitacao__data_fim_prazo']
'tramitacao__data_fim_prazo',
'materia__autores']
def __init__(self, *args, **kwargs):
super(RelatorioDataFimPrazoTramitacaoFilterSet, self).__init__(
@ -328,6 +333,7 @@ class RelatorioDataFimPrazoTramitacaoFilterSet(django_filters.FilterSet):
'tramitacao__unidade_tramitacao_local'].label = 'Unidade Local (Origem)'
self.filters['tramitacao__unidade_tramitacao_destino'].label = 'Unidade Destino'
self.filters['tramitacao__status'].label = 'Status de tramitação'
self.filters['materia__autores'].label = 'Autor da Matéria'
row1 = to_row([('materia__ano', 12)])
row2 = to_row([('tramitacao__data_fim_prazo', 12)])
@ -336,6 +342,7 @@ class RelatorioDataFimPrazoTramitacaoFilterSet(django_filters.FilterSet):
row4 = to_row(
[('materia__tipo', 6),
('tramitacao__status', 6)])
row5 = to_row([('materia__autores', 12)])
buttons = FormActions(
*[
@ -355,7 +362,7 @@ class RelatorioDataFimPrazoTramitacaoFilterSet(django_filters.FilterSet):
self.form.helper.form_method = 'GET'
self.form.helper.layout = Layout(
Fieldset(_('Tramitações'),
row1, row2, row3, row4,
row1, row2, row3, row4, row5,
buttons, )
)

7
sapl/relatorios/views.py

@ -2171,6 +2171,12 @@ class RelatorioDataFimPrazoTramitacaoView(RelatorioMixin, FilterView):
else:
context['tipo'] = ''
if self.request.GET['materia__autores']:
autor = int(self.request.GET['materia__autores'])
context['materia__autor'] = (str(Autor.objects.get(id=autor)))
else:
context['materia__autor'] = ''
if self.request.GET['tramitacao__status']:
tramitacao_status = self.request.GET['tramitacao__status']
context['tramitacao__status'] = (
@ -2630,6 +2636,7 @@ class RelatorioNormasVigenciaView(RelatorioMixin, FilterView):
return context
class RelatorioHistoricoTramitacaoAdmView(RelatorioMixin, FilterView):
model = DocumentoAdministrativo
filterset_class = RelatorioHistoricoTramitacaoAdmFilterSet

1
sapl/settings.py

@ -129,6 +129,7 @@ MIDDLEWARE = [
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'sapl.endpoint_restriction_middleware.EndpointRestrictionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',

3
sapl/templates/relatorios/RelatorioDataFimPrazoTramitacao_filter.html

@ -17,7 +17,8 @@
&emsp;Tipo de matéria: {{ tipo }}<br />
&emsp;Status de tramitação: {{ tramitacao__status }}<br />
&emsp;Local de origem: {{ tramitacao__unidade_tramitacao_local }}<br />
&emsp;Local de destino: {{ tramitacao__unidade_tramitacao_destino }}<br /><br /><br />
&emsp;Local de destino: {{ tramitacao__unidade_tramitacao_destino }}<br />
&emsp;Autor: {{ materia__autor }}<br /><br /><br />
{% if object_list %}
{% if object_list|length == 1 %}
<tr><td><h3 style="text-align: left;">Foi encontrada 1 matéria com esses parâmetros.</h3></td></tr><br><br>

3
sapl/templates/relatorios/relatorio_fim_prazo_tramitacao.html

@ -11,7 +11,8 @@
&emsp;Tipo de matéria: {{ tipo }}<br />
&emsp;Status atual: {{ tramitacao__status }}<br />
&emsp;Local de origem: {{ tramitacao__unidade_tramitacao_local }}<br />
&emsp;Local de destino: {{ tramitacao__unidade_tramitacao_destino }}<br /><br /><br />
&emsp;Local de destino: {{ tramitacao__unidade_tramitacao_destino }}<br />
&emsp;Autor: {{ materia__autor }}<br /><br /><br />
{% if object_list %}
{% if object_list|length == 1 %}
<tr><td><h3 style="text-align: left;">Foi encontrada 1 matéria com esses parâmetros.</h3></td></tr><br><br>

Loading…
Cancel
Save