From f32789324cb6ebb95ba121ecaf68956480b11cb0 Mon Sep 17 00:00:00 2001 From: rangelbruno Date: Mon, 9 Feb 2026 16:15:40 -0300 Subject: [PATCH] =?UTF-8?q?Feat(Assinatura):=20Configura=C3=A7=C3=A3o=20de?= =?UTF-8?q?=20nome=20na=20assinatura=20digital=20(pol=C3=ADtico=20vs=20civ?= =?UTF-8?q?il)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adiciona parâmetro em Sistema > Configurações da Aplicação para escolher entre nome político (parlamentar) e nome civil na assinatura digital de Matérias Legislativas. Inclui atalho no menu /sistema/. --- sapl/base/forms.py | 1 + .../0062_appconfig_assinatura_nome.py | 21 +++++++++++++++++++ sapl/base/models.py | 12 +++++++++++ sapl/materia/views_assinatura.py | 7 ++++++- sapl/templates/base/layouts.yaml | 3 +++ sapl/templates/menu_tabelas_auxiliares.yaml | 3 +++ 6 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 sapl/base/migrations/0062_appconfig_assinatura_nome.py diff --git a/sapl/base/forms.py b/sapl/base/forms.py index dc89bf996..bde2f51ca 100644 --- a/sapl/base/forms.py +++ b/sapl/base/forms.py @@ -1081,6 +1081,7 @@ class ConfiguracoesAppForm(ModelForm): 'google_recaptcha_secret_key', 'google_analytics_id_metrica', 'identificacao_de_documentos', + 'assinatura_nome', ] def __init__(self, *args, **kwargs): diff --git a/sapl/base/migrations/0062_appconfig_assinatura_nome.py b/sapl/base/migrations/0062_appconfig_assinatura_nome.py new file mode 100644 index 000000000..39644b23b --- /dev/null +++ b/sapl/base/migrations/0062_appconfig_assinatura_nome.py @@ -0,0 +1,21 @@ +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('base', '0061_documenttemplate'), + ] + + operations = [ + migrations.AddField( + model_name='appconfig', + name='assinatura_nome', + field=models.CharField( + choices=[('P', 'Nome Político (Parlamentar)'), ('C', 'Nome Civil (Real)')], + default='P', + max_length=1, + verbose_name='Nome utilizado na assinatura digital', + ), + ), + ] diff --git a/sapl/base/models.py b/sapl/base/models.py index 84079b8f7..93b118bf1 100644 --- a/sapl/base/models.py +++ b/sapl/base/models.py @@ -48,6 +48,11 @@ ASSINATURA_ATA_CHOICES = ( ('T', _('Todos os Parlamentares Presentes na Sessão')), ) +TIPO_NOME_ASSINATURA = ( + ('P', _('Nome Político (Parlamentar)')), + ('C', _('Nome Civil (Real)')), +) + ORDENACAO_PESQUISA_MATERIA = ( ('S', _('Alfabética por Sigla')), ('R', _('Sequência Regimental')), @@ -222,6 +227,13 @@ class AppConfig(models.Model): assinatura_ata = models.CharField( verbose_name=_('Quem deve assinar a ata'), max_length=1, choices=ASSINATURA_ATA_CHOICES, default='T') + + # MÓDULO ASSINATURA DIGITAL + assinatura_nome = models.CharField( + max_length=1, + verbose_name=_('Nome utilizado na assinatura digital'), + choices=TIPO_NOME_ASSINATURA, + default='P') # MÓDULO PAINEL cronometro_discurso = models.DurationField( verbose_name=_('Cronômetro do Discurso'), diff --git a/sapl/materia/views_assinatura.py b/sapl/materia/views_assinatura.py index 6467045e7..3eae0a8a8 100644 --- a/sapl/materia/views_assinatura.py +++ b/sapl/materia/views_assinatura.py @@ -19,6 +19,7 @@ from django.utils import timezone from django.views.decorators.csrf import csrf_exempt from django.views.decorators.http import require_http_methods +from sapl.base.models import AppConfig from sapl.materia.models import MateriaLegislativa logger = logging.getLogger(__name__) @@ -250,7 +251,11 @@ def materia_assinar_a1(request, pk): ).first() if parlamentar: cargo = "Vereador(a)" - nome_assinante = parlamentar.nome_parlamentar + tipo_nome = AppConfig.attr('assinatura_nome') + if tipo_nome == 'C': + nome_assinante = parlamentar.nome_completo + else: + nome_assinante = parlamentar.nome_parlamentar except: pass diff --git a/sapl/templates/base/layouts.yaml b/sapl/templates/base/layouts.yaml index 395ef2698..d3c2ca791 100644 --- a/sapl/templates/base/layouts.yaml +++ b/sapl/templates/base/layouts.yaml @@ -45,6 +45,9 @@ AppConfig: {% trans 'Módulo Sessão Plenária' %}: - assinatura_ata + {% trans 'Módulo Assinatura Digital' %}: + - assinatura_nome + {% trans 'Módulo Painel' %}: - cronometro_discurso cronometro_aparte - cronometro_ordem cronometro_consideracoes diff --git a/sapl/templates/menu_tabelas_auxiliares.yaml b/sapl/templates/menu_tabelas_auxiliares.yaml index 2d4a988a2..66036791e 100644 --- a/sapl/templates/menu_tabelas_auxiliares.yaml +++ b/sapl/templates/menu_tabelas_auxiliares.yaml @@ -17,6 +17,9 @@ - title: {% trans 'Templates de Documentos' %} url: sapl.base:documenttemplate_list css_class: btn btn-link + - title: {% trans 'Assinatura Digital' %} + url: sapl.base:appconfig_list + css_class: btn btn-link {% if not sapl_as_sapn%} - title: {% trans 'Módulo Parlamentares' %} css_class: head_title