Browse Source

1714 Melhora o recebimento de proposição sem recibo (#1715)

* Fix #1714

* Fix #1714
pull/1717/head
VictorFabreF 7 years ago
committed by Edward
parent
commit
cf8017aecd
  1. 3
      sapl/base/forms.py
  2. 20
      sapl/base/migrations/0015_appconfig_receber_recibo_proposicao.py
  3. 4
      sapl/base/models.py
  4. 7
      sapl/base/templatetags/common_tags.py
  5. 10
      sapl/materia/forms.py
  6. 2
      sapl/materia/views.py
  7. 2
      sapl/templates/base/layouts.yaml
  8. 23
      sapl/templates/materia/prop_pendentes_list.html
  9. 19
      sapl/templates/materia/proposicao_detail.html

3
sapl/base/forms.py

@ -645,7 +645,8 @@ class ConfiguracoesAppForm(ModelForm):
'cronometro_discurso',
'cronometro_aparte',
'cronometro_ordem',
'mostrar_brasao_painel']
'mostrar_brasao_painel',
'receber_recibo_proposicao']
def __init__(self, *args, **kwargs):
super(ConfiguracoesAppForm, self).__init__(*args, **kwargs)

20
sapl/base/migrations/0015_appconfig_receber_recibo_proposicao.py

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.13 on 2018-02-23 16:16
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('base', '0014_auto_20180219_1402'),
]
operations = [
migrations.AddField(
model_name='appconfig',
name='receber_recibo_proposicao',
field=models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], default=True, verbose_name='Protocolar proposição somente com recibo?'),
),
]

4
sapl/base/models.py

@ -165,6 +165,10 @@ class AppConfig(models.Model):
default=False,
verbose_name=_('Mostrar brasão da Casa no painel?'))
receber_recibo_proposicao = models.BooleanField(
verbose_name=_('Protocolar proposição somente com recibo?'),
choices=YES_NO_CHOICES, default=True)
class Meta:
verbose_name = _('Configurações da Aplicação')
verbose_name_plural = _('Configurações da Aplicação')

7
sapl/base/templatetags/common_tags.py

@ -5,6 +5,7 @@ from sapl.materia.models import DocumentoAcessorio, MateriaLegislativa
from sapl.norma.models import NormaJuridica
from sapl.parlamentares.models import Filiacao
from sapl.utils import filiacao_data
from django.template.defaultfilters import stringfilter
register = template.Library()
@ -43,6 +44,12 @@ def isinst(value, class_str):
return classe == class_str
@register.filter
@stringfilter
def strip_hash(value):
return value.split('/')[0][1:]
@register.filter
def get_add_perm(value, arg):
perm = value

10
sapl/materia/forms.py

@ -1009,10 +1009,10 @@ class TipoProposicaoForm(ModelForm):
"""
A unicidade de tipo proposição para tipo de conteudo
foi desabilitada pois existem casos em quem é o procedimento da
foi desabilitada pois existem casos em quem é o procedimento da
instituição convergir vários tipos de proposição
para um tipo de matéria.
unique_value = self._meta.model.objects.filter(
content_type=content_type, object_id=cd['tipo_conteudo_related'])
@ -1116,7 +1116,7 @@ class ProposicaoForm(forms.ModelForm):
receber_recibo = forms.TypedChoiceField(
choices=YES_NO_CHOICES,
label='Deseja protocolar com recibo?',
widget=widgets.HiddenInput(),
required=False)
class Meta:
@ -1142,6 +1142,9 @@ class ProposicaoForm(forms.ModelForm):
self.texto_articulado_proposicao = sapl.base.models.AppConfig.attr(
'texto_articulado_proposicao')
self.receber_recibo = sapl.base.models.AppConfig.attr(
'receber_recibo_proposicao')
if not self.texto_articulado_proposicao:
if 'tipo_texto' in self._meta.fields:
self._meta.fields.remove('tipo_texto')
@ -1158,7 +1161,6 @@ class ProposicaoForm(forms.ModelForm):
to_column(('ano_materia', 4))
),
to_column(('receber_recibo', 3)),
to_column(
(Alert('teste',
css_class="ementa_materia hidden alert-info",

2
sapl/materia/views.py

@ -422,6 +422,7 @@ class ProposicaoPendente(PermissionRequiredMixin, ListView):
context = super(ProposicaoPendente, self).get_context_data(**kwargs)
paginator = context['paginator']
page_obj = context['page_obj']
context['AppConfig'] = sapl.base.models.AppConfig.objects.all().last()
context['page_range'] = make_pagination(
page_obj.number, paginator.num_pages)
context['NO_ENTRIES_MSG'] = 'Nenhuma proposição pendente.'
@ -650,6 +651,7 @@ class ProposicaoCrud(Crud):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['subnav_template_name'] = ''
context['AppConfig'] = sapl.base.models.AppConfig.objects.all().last()
context['title'] = '%s <small>(%s)</small>' % (
self.object, self.object.autor)

2
sapl/templates/base/layouts.yaml

@ -15,7 +15,7 @@ AppConfig:
- documentos_administrativos
{% trans 'Proposições e Protocolo' %}:
- sequencia_numeracao proposicao_incorporacao_obrigatoria
- sequencia_numeracao proposicao_incorporacao_obrigatoria receber_recibo_proposicao
{% trans 'Textos Articulados' %}:
- texto_articulado_proposicao texto_articulado_materia texto_articulado_norma

23
sapl/templates/materia/prop_pendentes_list.html

@ -1,6 +1,7 @@
{% extends "base.html" %}
{% load i18n %}
{% load tz %}
{% load common_tags %}
{% block base_content %}
<fieldset>
<legend>Proposições Não Recebidas</legend>
@ -14,18 +15,30 @@
<th>Tipo</th>
<th>Descrição</th>
<th>Autor</th>
<th>Código do Documento</th>
{% if not AppConfig.receber_recibo_proposicao %}
<th>Código do Documento</th>
{% endif %}
</tr>
</thead>
<tbody>
{% for prop in object_list %}
<tr>
<td><a href="{% url 'sapl.materia:proposicao_detail' prop.pk %}">{{ prop.data_envio|localtime|date:"d/m/Y H:i:s" }}</a></td>
<td>
<a href="{% url 'sapl.materia:proposicao_detail' prop.pk %}">{{ prop.data_envio|localtime|date:"d/m/Y H:i:s" }}</a>
</td>
<td>{{ prop.tipo.descricao }}</td>
<td>{{ prop.descricao }}</td>
<td>{{ prop.autor }}</td>
<td>{{ prop.hash_code }}</td>
</tr>
<td>{{prop.autor}}</td>
<td>
{% if not AppConfig.receber_recibo_proposicao %}
{%if prop.hash_code %}
<a href="{% url 'sapl.materia:proposicao-confirmar' prop.hash_code|strip_hash prop.pk %}">{{ prop.hash_code }}</a>
{% else %}
{{ prop.hash_code }}
{% endif %}
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>

19
sapl/templates/materia/proposicao_detail.html

@ -136,16 +136,19 @@
</div>
</div>
{% endif %}
{% if object.hash_code %}
<div class="col-sm-12">
<div id="div_id_hash_code" class="form-group">
<p class="control-label">{%field_verbose_name object 'hash_code'%}</p>
<div class="controls">
<div class="form-control-static">{{object.hash_code}}</div>
{% if not AppConfig.receber_recibo_proposicao %}
{% if object.hash_code %}
<div class="col-sm-12">
<div id="div_id_hash_code" class="form-group">
<p class="control-label">{%field_verbose_name object 'hash_code'%}</p>
<div class="controls">
<div class="form-control-static">{{object.hash_code}}</div>
</div>
</div>
</div>
</div>
</div>
{% endif %}
{% endif %}
</div>
{% endblock detail_content %}

Loading…
Cancel
Save