Browse Source

Fix #1187

pull/1194/head
LeandroRoberto 8 years ago
parent
commit
8e3db9630b
  1. 12
      sapl/base/templatetags/common_tags.py
  2. 25
      sapl/crispy_layout_mixin.py
  3. 4
      sapl/materia/views.py
  4. 25
      sapl/templates/materia/proposicao_detail.html

12
sapl/base/templatetags/common_tags.py

@ -168,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

4
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,
@ -551,7 +551,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

25
sapl/templates/materia/proposicao_detail.html

@ -110,19 +110,30 @@
</div> </div>
</div> </div>
{% if object.materia_de_vinculo %}
<h2 class="legend">{% trans "Vínculo com a Matéria Legislativa" %}</h2>
<div class="row-fluid"> <div class="row-fluid">
<div class="col-sm-12"> {% if object.conteudo_gerado_related %}
<div id="div_id_materia_de_vinculo" class="form-group"> <div class="col-sm-6">
<h2 class="legend">{% trans "Conteúdo Gerado" %}</h2>
<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.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>
{% endif %}
{% if object.materia_de_vinculo %}
<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> </div>
</div> </div>
{% endif %} {% endif %}
</div>
{% endblock detail_content %} {% endblock detail_content %}

Loading…
Cancel
Save