From f880cfb5c71fdec8ef2d755eb8c788889c704bb3 Mon Sep 17 00:00:00 2001 From: Emiliano Alves Date: Wed, 29 Sep 2021 14:37:51 -0300 Subject: [PATCH] Ocultar campos vazios do vereador para visitantes --- sapl/base/forms.py | 7 ++-- ...ostrar_campos_vazios_perfil_parlamentar.py | 18 ++++++++ sapl/base/models.py | 5 +++ sapl/crud/base.py | 4 +- sapl/templates/base/layouts.yaml | 3 ++ .../parlamentar_perfil_publico.html | 41 ++++++++++++++----- 6 files changed, 64 insertions(+), 14 deletions(-) create mode 100644 sapl/base/migrations/0048_appconfig_mostrar_campos_vazios_perfil_parlamentar.py diff --git a/sapl/base/forms.py b/sapl/base/forms.py index 1dd54e3a7..2658e0195 100644 --- a/sapl/base/forms.py +++ b/sapl/base/forms.py @@ -1565,7 +1565,8 @@ class ConfiguracoesAppForm(ModelForm): 'tramitacao_documento', 'google_recaptcha_site_key', 'google_recaptcha_secret_key', - 'sapl_as_sapn'] + 'sapl_as_sapn', + 'mostrar_campos_vazios_perfil_parlamentar'] def __init__(self, *args, **kwargs): super(ConfiguracoesAppForm, self).__init__(*args, **kwargs) @@ -1590,10 +1591,10 @@ class ConfiguracoesAppForm(ModelForm): if not casa.logotipo and mostrar_brasao_painel: self.logger.warning( - 'Não há logitipo configurado para esta ' + 'Não há logotipo configurado para esta ' 'CasaLegislativa ({}).'.format(casa) ) - raise ValidationError("Não há logitipo configurado para esta " + raise ValidationError("Não há logotipo configurado para esta " "Casa legislativa.") return cleaned_data diff --git a/sapl/base/migrations/0048_appconfig_mostrar_campos_vazios_perfil_parlamentar.py b/sapl/base/migrations/0048_appconfig_mostrar_campos_vazios_perfil_parlamentar.py new file mode 100644 index 000000000..0bbb9722d --- /dev/null +++ b/sapl/base/migrations/0048_appconfig_mostrar_campos_vazios_perfil_parlamentar.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.24 on 2021-09-28 22:02 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('base', '0047_auto_20210315_1522'), + ] + + operations = [ + migrations.AddField( + model_name='appconfig', + name='mostrar_campos_vazios_perfil_parlamentar', + field=models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], default=True, verbose_name='Mostrar Campos sem Informação no Perfil do Parlamentar para Usuário não Logados?'), + ), + ] diff --git a/sapl/base/models.py b/sapl/base/models.py index fb2a3bd66..2cdf6f7ef 100644 --- a/sapl/base/models.py +++ b/sapl/base/models.py @@ -207,6 +207,11 @@ class AppConfig(models.Model): 'Utilizar SAPL como SAPN?'), choices=YES_NO_CHOICES, default=False) + mostrar_campos_vazios_perfil_parlamentar = models.BooleanField( + verbose_name=_( + 'Mostrar Campos sem Informação no Perfil do Parlamentar para Usuários não Logados?'), + choices=YES_NO_CHOICES, default=True) + class Meta: verbose_name = _('Configurações da Aplicação') verbose_name_plural = _('Configurações da Aplicação') diff --git a/sapl/crud/base.py b/sapl/crud/base.py index 389161f12..111735f95 100644 --- a/sapl/crud/base.py +++ b/sapl/crud/base.py @@ -21,7 +21,7 @@ from django.views.generic import (CreateView, DeleteView, DetailView, ListView, UpdateView) from django.views.generic.base import ContextMixin from django.views.generic.list import MultipleObjectMixin - +from sapl.base.models import AppConfig as ConfiguracoesAplicacao from sapl.crispy_layout_mixin import CrispyLayoutFormMixin, get_field_display from sapl.crispy_layout_mixin import SaplFormHelper from sapl.rules.map_rules import (RP_ADD, RP_CHANGE, RP_DELETE, RP_DETAIL, @@ -782,6 +782,8 @@ class CrudDetailView(PermissionRequiredContainerCrudMixin, if hasattr(obj, 'model_set') and obj.model_set: self.object_list = self.get_queryset() context = self.get_context_data(object=self.object) + app_config = ConfiguracoesAplicacao.objects.first() + context['app_config'] = app_config return self.render_to_response(context) def get_queryset(self): diff --git a/sapl/templates/base/layouts.yaml b/sapl/templates/base/layouts.yaml index 658eb8e17..f8de21092 100644 --- a/sapl/templates/base/layouts.yaml +++ b/sapl/templates/base/layouts.yaml @@ -61,6 +61,9 @@ AppConfig: - cronometro_ordem cronometro_consideracoes - mostrar_brasao_painel + {% trans 'Módulo Parlamentares' %}: + - mostrar_campos_vazios_perfil_parlamentar + {% trans 'Segurança' %}: - google_recaptcha_site_key google_recaptcha_secret_key diff --git a/sapl/templates/parlamentares/parlamentar_perfil_publico.html b/sapl/templates/parlamentares/parlamentar_perfil_publico.html index ce2dad1d1..046878384 100644 --- a/sapl/templates/parlamentares/parlamentar_perfil_publico.html +++ b/sapl/templates/parlamentares/parlamentar_perfil_publico.html @@ -30,38 +30,59 @@
-
+

Partido:   {{object.filiacao_atual|default_if_none:"Não informado"}}

-

Data de Nascimento:   {{object.data_nascimento|default_if_none:"Não informado"}}

+ {% if not app_config.mostrar_campos_vazios_perfil_parlamentar and not object.data_nascimento %} + {{ pass }} + {% else %} +

Data de Nascimento:   {{object.data_nascimento|default_if_none:"Não informado"}}

+ {% endif %}
-
-

Telefone:   {{object.telefone|default_if_none:"Não informado"}}

+
+ {% if not app_config.mostrar_campos_vazios_perfil_parlamentar and not object.telefone %} + {{ pass }} + {% else %} +

Telefone:   {{object.telefone|default:"Não informado"}}

+ {% endif %}
-
-

E-mail:   {{object.email|default_if_none:"Não informado"}}

+
+ {% if not app_config.mostrar_campos_vazios_perfil_parlamentar and not object.email %} + {{ pass }} + {% else %} +

E-mail:   {{object.email|default:"Não informado"}}

+ {% endif %}
+
-
-

Número do Gabinete:   {{object.numero_gab_parlamentar|default_if_none:"Não informado"}}

+
+ {% if not app_config.mostrar_campos_vazios_perfil_parlamentar and not object.numero_gab_parlamentar %} + {{ pass }} + {% else %} +

Número do Gabinete:   {{object.numero_gab_parlamentar|default:"Não informado"}}

+ {% endif %}
- +
-

Biografia:   {{object.biografia|safe}}

+ {% if not app_config.mostrar_campos_vazios_perfil_parlamentar and not object.biografia %} + {{ pass }} + {% else %} +

Biografia:   {{object.biografia|safe}}

+ {% endif %}