Browse Source

Merge master

pull/1193/head
Eduardo Calil 9 years ago
parent
commit
9c0caea4f9
  1. 29
      sapl/base/templatetags/common_tags.py
  2. 25
      sapl/crispy_layout_mixin.py
  3. 6
      sapl/materia/views.py
  4. 6
      sapl/templates/base.html
  5. 37
      sapl/templates/materia/proposicao_detail.html

29
sapl/base/templatetags/common_tags.py

@ -117,6 +117,23 @@ def str2intabs(value):
except: except:
return '' return ''
@register.filter
def has_iframe(request):
iframe = request.session.get('iframe', False)
if not iframe and 'iframe' in request.GET:
ival = request.GET['iframe']
if ival and int(ival) == 1:
request.session['iframe'] = True
return True
elif 'iframe' in request.GET:
ival = request.GET['iframe']
if ival and int(ival) == 0:
del request.session['iframe']
return False
return iframe
@register.filter @register.filter
def url(value): def url(value):
@ -151,3 +168,15 @@ def search_get_model(object):
return 'n' return 'n'
return None return None
@register.filter
def urldetail_content_type(obj, value):
return '%s:%s_detail' % (
value._meta.app_config.name, obj.content_type.model)
@register.filter
def urldetail(obj):
return '%s:%s_detail' % (
obj._meta.app_config.name, obj._meta.model_name)

25
sapl/crispy_layout_mixin.py

@ -1,12 +1,13 @@
from math import ceil from math import ceil
import rtyaml
from crispy_forms.bootstrap import FormActions from crispy_forms.bootstrap import FormActions
from crispy_forms.helper import FormHelper from crispy_forms.helper import FormHelper
from crispy_forms.layout import HTML, Div, Fieldset, Layout, Submit from crispy_forms.layout import HTML, Div, Fieldset, Layout, Submit
from django import template from django import template
from django.core.urlresolvers import reverse
from django.utils import formats from django.utils import formats
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
import rtyaml
def heads_and_tails(list_of_lists): def heads_and_tails(list_of_lists):
@ -77,29 +78,30 @@ def get_field_display(obj, fieldname):
else: else:
value = getattr(obj, fieldname) value = getattr(obj, fieldname)
str_type = str(type(value)) str_type_from_value = str(type(value))
str_type_from_field = str(type(field))
if value is None: if value is None:
display = '' display = ''
elif 'date' in str_type: elif 'date' in str_type_from_value:
display = formats.date_format(value, "SHORT_DATE_FORMAT") display = formats.date_format(value, "SHORT_DATE_FORMAT")
elif 'bool' in str(type(value)): elif 'bool' in str_type_from_value:
display = _('Sim') if value else _('Não') display = _('Sim') if value else _('Não')
elif 'ImageFieldFile' in str(type(value)): elif 'ImageFieldFile' in str(type(value)):
if value: if value:
display = '<img src="{}" />'.format(value.url) display = '<img src="{}" />'.format(value.url)
else: else:
display = '' display = ''
elif 'FieldFile' in str(type(value)): elif 'FieldFile' in str_type_from_value:
if value: if value:
display = '<a href="{}">{}</a>'.format( display = '<a href="{}">{}</a>'.format(
value.url, value.url,
value.name.split('/')[-1:][0]) value.name.split('/')[-1:][0])
else: else:
display = '' display = ''
elif 'ManyRelatedManager' in str(type(value))\ elif 'ManyRelatedManager' in str_type_from_value\
or 'RelatedManager' in str(type(value))\ or 'RelatedManager' in str_type_from_value\
or 'GenericRelatedObjectManager' in str(type(value)): or 'GenericRelatedObjectManager' in str_type_from_value:
display = '<ul>' display = '<ul>'
for v in value.all(): for v in value.all():
display += '<li>%s</li>' % str(v) display += '<li>%s</li>' % str(v)
@ -110,6 +112,13 @@ def get_field_display(obj, fieldname):
field.related_model._meta.verbose_name_plural) field.related_model._meta.verbose_name_plural)
elif hasattr(field, 'model'): elif hasattr(field, 'model'):
verbose_name = str(field.model._meta.verbose_name_plural) verbose_name = str(field.model._meta.verbose_name_plural)
elif 'GenericForeignKey' in str_type_from_field:
display = '<a href="{}">{}</a>'.format(
reverse(
'%s:%s_detail' % (
value._meta.app_config.name, obj.content_type.model),
args=(value.id,)),
value)
else: else:
display = str(value) display = str(value)
return verbose_name, display return verbose_name, display

6
sapl/materia/views.py

@ -21,7 +21,6 @@ from django.views.generic.base import RedirectView
from django.views.generic.edit import FormView from django.views.generic.edit import FormView
from django_filters.views import FilterView from django_filters.views import FilterView
import sapl
from sapl.base.models import Autor, CasaLegislativa from sapl.base.models import Autor, CasaLegislativa
from sapl.comissoes.models import Comissao, Participacao from sapl.comissoes.models import Comissao, Participacao
from sapl.compilacao.models import (STATUS_TA_IMMUTABLE_RESTRICT, from sapl.compilacao.models import (STATUS_TA_IMMUTABLE_RESTRICT,
@ -42,6 +41,7 @@ from sapl.settings import EMAIL_SEND_USER
from sapl.utils import (TURNO_TRAMITACAO_CHOICES, YES_NO_CHOICES, autor_label, from sapl.utils import (TURNO_TRAMITACAO_CHOICES, YES_NO_CHOICES, autor_label,
autor_modal, gerar_hash_arquivo, get_base_url, autor_modal, gerar_hash_arquivo, get_base_url,
montar_row_autor) montar_row_autor)
import sapl
from .forms import (AcessorioEmLoteFilterSet, AcompanhamentoMateriaForm, from .forms import (AcessorioEmLoteFilterSet, AcompanhamentoMateriaForm,
AdicionarVariasAutoriasFilterSet, DespachoInicialForm, AdicionarVariasAutoriasFilterSet, DespachoInicialForm,
@ -448,7 +448,7 @@ class ReceberProposicao(PermissionRequiredForAppCrudMixin, FormView):
hasher = gerar_hash_arquivo( hasher = gerar_hash_arquivo(
proposicao.texto_original.path, proposicao.texto_original.path,
str(proposicao.pk)) \ str(proposicao.pk)) \
if proposicao.texto_original else None if proposicao.texto_original else None
if hasher == form.cleaned_data['cod_hash']: if hasher == form.cleaned_data['cod_hash']:
return HttpResponseRedirect( return HttpResponseRedirect(
reverse('sapl.materia:proposicao-confirmar', reverse('sapl.materia:proposicao-confirmar',
@ -553,7 +553,7 @@ class ProposicaoCrud(Crud):
class BaseMixin(Crud.BaseMixin): class BaseMixin(Crud.BaseMixin):
list_field_names = ['data_envio', 'data_recebimento', 'descricao', list_field_names = ['data_envio', 'data_recebimento', 'descricao',
'tipo'] 'tipo', 'conteudo_gerado_related']
class BaseLocalMixin: class BaseLocalMixin:
form_class = ProposicaoForm form_class = ProposicaoForm

6
sapl/templates/base.html

@ -28,6 +28,7 @@
<body> <body>
<div class="page fadein"> <div class="page fadein">
{% if not request|has_iframe %}
{% block navigation %} {% block navigation %}
<nav class="navbar navbar-inverse navbar-static-top"> <nav class="navbar navbar-inverse navbar-static-top">
<div class="container"> <div class="container">
@ -78,6 +79,7 @@
</div> </div>
</nav> </nav>
{% endblock navigation %} {% endblock navigation %}
{% endif %}
{# Header #} {# Header #}
{% block main_header %} {% block main_header %}
@ -108,7 +110,6 @@
{# Main content #} {# Main content #}
{% block content_container %} {% block content_container %}
<main id="content" class="content page__row"> <main id="content" class="content page__row">
<div class="container"> <div class="container">
{# Feedback messages #} {# Feedback messages #}
@ -152,7 +153,7 @@
{% endblock content_container %} {% endblock content_container %}
{% if not request|has_iframe %}
{% block footer_container %} {% block footer_container %}
<footer id="footer" class="footer page__row hidden-print"> <footer id="footer" class="footer page__row hidden-print">
<div class="container"> <div class="container">
@ -209,6 +210,7 @@
</footer> </footer>
</div> </div>
{% endblock footer_container %} {% endblock footer_container %}
{% endif %}
{% block foot_js %} {% block foot_js %}
<!-- Bootstrap core JavaScript ================================================== --> <!-- Bootstrap core JavaScript ================================================== -->

37
sapl/templates/materia/proposicao_detail.html

@ -110,19 +110,30 @@
</div> </div>
</div> </div>
{% if object.materia_de_vinculo %} <div class="row-fluid">
<h2 class="legend">{% trans "Vínculo com a Matéria Legislativa" %}</h2> {% if object.conteudo_gerado_related %}
<div class="row-fluid"> <div class="col-sm-6">
<div class="col-sm-12"> <h2 class="legend">{% trans "Conteúdo Gerado" %}</h2>
<div id="div_id_materia_de_vinculo" class="form-group"> <div id="div_id_conteudo_gerado_related" class="form-group">
<div class="controls"> <div class="controls">
<div class="form-control-static">{{object.materia_de_vinculo}}</div> <a href="{% url object|urldetail_content_type:object.conteudo_gerado_related object.conteudo_gerado_related.id%}">
<div class="alert alert-info alert-dismissible fade in" role="alert"> {{object.conteudo_gerado_related}}
<div >{{object.materia_de_vinculo.ementa}}</div> </a>
</div> </div>
</div> </div>
</div> </div>
</div> {% endif %}
</div> {% if object.materia_de_vinculo %}
{% endif %} <div class="col-sm-6">
<h2 class="legend">{% trans "Vínculo com a Matéria Legislativa" %}</h2>
<div id="div_id_materia_de_vinculo" class="form-group">
<div class="controls">
<a href="{% url object.materia_de_vinculo|urldetail object.materia_de_vinculo.id%}">
{{object.materia_de_vinculo}}
</a>
</div>
</div>
</div>
{% endif %}
</div>
{% endblock detail_content %} {% endblock detail_content %}

Loading…
Cancel
Save