Browse Source

Restringe informações do detail de parlamentar

pull/505/head
Eduardo Calil 9 years ago
parent
commit
f9addcc964
  1. 12
      sapl/base/templatetags/common_tags.py
  2. 25
      sapl/parlamentares/views.py
  3. 84
      sapl/templates/parlamentares/parlamentar_perfil_publico.html
  4. 1
      sapl/utils.py

12
sapl/base/templatetags/common_tags.py

@ -1,6 +1,8 @@
from compressor.utils import get_class from compressor.utils import get_class
from django import template from django import template
from sapl.parlamentares.models import Filiacao
register = template.Library() register = template.Library()
@ -81,3 +83,13 @@ def ver_menu_sistema_perm(value):
return True return True
else: else:
return False return False
@register.filter
def ultima_filiacao(value):
parlamentar = value
ultima_filiacao = Filiacao.objects.filter(
parlamentar=parlamentar).order_by('-data').first()
return ultima_filiacao.partido

25
sapl/parlamentares/views.py

@ -2,6 +2,7 @@ from django.contrib import messages
from django.contrib.auth.mixins import PermissionRequiredMixin from django.contrib.auth.mixins import PermissionRequiredMixin
from django.contrib.auth.models import Permission from django.contrib.auth.models import Permission
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ImproperlyConfigured
from django.core.urlresolvers import reverse_lazy from django.core.urlresolvers import reverse_lazy
from django.shortcuts import redirect from django.shortcuts import redirect
from django.utils.datastructures import MultiValueDictKeyError from django.utils.datastructures import MultiValueDictKeyError
@ -9,7 +10,8 @@ from django.utils.translation import ugettext_lazy as _
from django.views.generic import FormView from django.views.generic import FormView
from sapl.crud.base import (Crud, CrudBaseMixin, CrudCreateView, from sapl.crud.base import (Crud, CrudBaseMixin, CrudCreateView,
CrudDeleteView, CrudListView, CrudUpdateView) CrudDeleteView, CrudDetailView,
CrudListView, CrudUpdateView)
from sapl.crud.masterdetail import MasterDetailCrud from sapl.crud.masterdetail import MasterDetailCrud
from sapl.utils import permissao_tb_aux, permissoes_parlamentares from sapl.utils import permissao_tb_aux, permissoes_parlamentares
@ -191,10 +193,31 @@ class FiliacaoCrud(MasterDetailCrud):
ordering = '-data' ordering = '-data'
def get_parlamentar_permissions():
lista_permissoes = []
cts = ContentType.objects.filter(app_label='parlamentares')
perms_parlamentares = list(Permission.objects.filter(
content_type__in=cts))
for p in perms_parlamentares:
lista_permissoes.append('parlamentares.' + p.codename)
return set(lista_permissoes)
class ParlamentarCrud(Crud): class ParlamentarCrud(Crud):
model = Parlamentar model = Parlamentar
help_path = '' help_path = ''
class DetailView(CrudDetailView):
def get_template_names(self):
usuario = self.request.user
lista_permissoes = get_parlamentar_permissions()
if usuario.has_perms(lista_permissoes):
return ['crud/detail.html']
else:
return ['parlamentares/parlamentar_perfil_publico.html']
class UpdateView(PermissionRequiredMixin, CrudUpdateView): class UpdateView(PermissionRequiredMixin, CrudUpdateView):
form_class = ParlamentarForm form_class = ParlamentarForm
permission_required = permissoes_parlamentares() permission_required = permissoes_parlamentares()

84
sapl/templates/parlamentares/parlamentar_perfil_publico.html

@ -0,0 +1,84 @@
{% extends "base.html" %}
{% load i18n %}
{% load common_tags %}
{% block base_content %}
<div class="clearfix">
{% block actions %}
{% endblock actions %}
</div>
{% block detail_content %}
<p class="legend"></p>
<div class="row-fluid">
<div class="col-sm-3">
<div id="div_fotografia" class="form-group">
<div class="controls">
<img class="img-responsive" src="{{ object.fotografia.url }}">
</div>
</div>
</div>
<div class="col-sm-8">
<div id="div_nome" class="form-group">
<p><b>Nome Completo: </b> &nbsp {{object.nome_completo}}</p>
</div>
</div>
<div class="col-sm-8">
<div id="div_data_nascimento" class="form-group">
<p><b>Partido: </b> &nbsp {{object|ultima_filiacao|default_if_none:"Não informado"}}</p>
</div>
</div>
<div class="col-sm-8">
<div id="div_data_nascimento" class="form-group">
<p><b>Data de Nascimento: </b> &nbsp {{object.data_nascimento|default_if_none:"Não informado"}}</p>
</div>
</div>
<div class="col-sm-8">
<div id="div_data_nascimento" class="form-group">
<p><b>Telefone: </b> &nbsp {{object.telefone|default_if_none:"Não informado"}}</p>
</div>
</div>
<div class="col-sm-8">
<div id="div_data_nascimento" class="form-group">
<p><b>E-mail: </b> &nbsp {{object.email|default_if_none:"Não informado"}}</p>
</div>
</div>
<div class="col-sm-8">
<div id="div_data_nascimento" class="form-group">
<p><b>Número do Gabinete: </b> &nbsp {{object.numero_gab_parlamentar|default_if_none:"Não informado"}}</p>
</div>
</div>
<div class="col-sm-8">
<div id="div_data_nascimento" class="form-group">
<p><b>Fax: </b> &nbsp {{object.numero_gab_parlamentar|default_if_none:"Não informado"}}</p>
</div>
</div>
</div>
<!--
<h2 class="legend">{{ fieldset.legend }}</h2>
<div class="row-fluid">
<div class="col-md-3-offset-3">
<img src="{{ object.fotografia.path }}">
</div>
<div class="col-md-12">
<p>SADASDADS</p>
</div>
<div> -->
{% endblock detail_content %}
{% endblock base_content %}

1
sapl/utils.py

@ -203,7 +203,6 @@ def fabrica_validador_de_tipos_de_arquivo(lista, nome):
def restringe_tipos_de_arquivo(value): def restringe_tipos_de_arquivo(value):
mime = magic.from_buffer(value.read(), mime=True) mime = magic.from_buffer(value.read(), mime=True)
mime = mime.decode()
if mime not in lista: if mime not in lista:
raise ValidationError(_('Tipo de arquivo não suportado')) raise ValidationError(_('Tipo de arquivo não suportado'))
# o nome é importante para as migrations # o nome é importante para as migrations

Loading…
Cancel
Save