diff --git a/docker-compose.yml b/docker-compose.yml index 2c4cba002..3afd6dc62 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,7 +11,7 @@ sapldb: ports: - "5432:5432" sapl: - image: interlegis/sapl:3.1.51 + image: interlegis/sapl:3.1.52 restart: always environment: ADMIN_PASSWORD: interlegis diff --git a/sapl/base/forms.py b/sapl/base/forms.py index d7982352f..1181650ee 100644 --- a/sapl/base/forms.py +++ b/sapl/base/forms.py @@ -645,7 +645,8 @@ class ConfiguracoesAppForm(ModelForm): 'cronometro_discurso', 'cronometro_aparte', 'cronometro_ordem', - 'mostrar_brasao_painel'] + 'mostrar_brasao_painel', + 'receber_recibo_proposicao'] def __init__(self, *args, **kwargs): super(ConfiguracoesAppForm, self).__init__(*args, **kwargs) diff --git a/sapl/base/migrations/0015_appconfig_receber_recibo_proposicao.py b/sapl/base/migrations/0015_appconfig_receber_recibo_proposicao.py new file mode 100644 index 000000000..e60a7a0c1 --- /dev/null +++ b/sapl/base/migrations/0015_appconfig_receber_recibo_proposicao.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.13 on 2018-02-23 16:16 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('base', '0014_auto_20180219_1402'), + ] + + operations = [ + migrations.AddField( + model_name='appconfig', + name='receber_recibo_proposicao', + field=models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], default=True, verbose_name='Protocolar proposição somente com recibo?'), + ), + ] diff --git a/sapl/base/models.py b/sapl/base/models.py index d5097ac6a..3a80e4d7b 100644 --- a/sapl/base/models.py +++ b/sapl/base/models.py @@ -165,6 +165,10 @@ class AppConfig(models.Model): default=False, verbose_name=_('Mostrar brasão da Casa no painel?')) + receber_recibo_proposicao = models.BooleanField( + verbose_name=_('Protocolar proposição somente com recibo?'), + 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/materia/admin.py b/sapl/materia/admin.py index b2f891718..65b754817 100644 --- a/sapl/materia/admin.py +++ b/sapl/materia/admin.py @@ -19,87 +19,9 @@ if not DEBUG: admin.site.unregister(TipoAfastamento) admin.site.unregister(SituacaoMilitar) admin.site.unregister(TipoDependente) - admin.site.unregister(TipoNormaJuridica) - admin.site.unregister(TipoVinculoNormaJuridica) - admin.site.unregister(TipoSessaoPlenaria) - admin.site.unregister(TipoExpediente) - admin.site.unregister(TipoResultadoVotacao) - admin.site.unregister(TipoDocumentoAdministrativo) - admin.site.unregister(TipoMateriaLegislativa) - class ProposicaoAdmin(admin.ModelAdmin): - def has_add_permission(self, request, obj=None): - return False - - def has_change_permission(self, request, obj=None): - return False - - def has_delete_permission(self, request, obj=None): - return False - - - class TipoAutorAdmin(admin.ModelAdmin): - - def has_add_permission(self, request, obj=None): - return False - - def has_change_permission(self, request, obj=None): - return False - - def has_delete_permission(self, request, obj=None): - return False - - - class TipoComissaoAdmin(admin.ModelAdmin): - - def has_add_permission(self, request, obj=None): - return False - - def has_change_permission(self, request, obj=None): - return False - - def has_delete_permission(self, request, obj=None): - return False - - - class TipoAfastamentoAdmin(admin.ModelAdmin): - - def has_add_permission(self, request, obj=None): - return False - - def has_change_permission(self, request, obj=None): - return False - - def has_delete_permission(self, request, obj=None): - return False - - - class SituacaoMilitarAdmin(admin.ModelAdmin): - - def has_add_permission(self, request, obj=None): - return False - - def has_change_permission(self, request, obj=None): - return False - - def has_delete_permission(self, request, obj=None): - return False - - - class TipoNormaJuridicaAdmin(admin.ModelAdmin): - - def has_add_permission(self, request, obj=None): - return False - - def has_change_permission(self, request, obj=None): - return False - - def has_delete_permission(self, request, obj=None): - return False - - - class TipoVinculoNormaJuridicaAdmin(admin.ModelAdmin): + class RestricaoAdmin(admin.ModelAdmin): def has_add_permission(self, request, obj=None): return False @@ -111,88 +33,9 @@ if not DEBUG: return False - class TipoDependenteAdmin(admin.ModelAdmin): - - def has_add_permission(self, request, obj=None): - return False - - def has_change_permission(self, request, obj=None): - return False - - def has_delete_permission(self, request, obj=None): - return False - - - class TipoSessaoPlenariaAdmin(admin.ModelAdmin): - - def has_add_permission(self, request, obj=None): - return False - - def has_change_permission(self, request, obj=None): - return False - - def has_delete_permission(self, request, obj=None): - return False - - - class TipoExpedienteAdmin(admin.ModelAdmin): - - def has_add_permission(self, request, obj=None): - return False - - def has_change_permission(self, request, obj=None): - return False - - def has_delete_permission(self, request, obj=None): - return False - - - class TipoResultadoVotacaoAdmin(admin.ModelAdmin): - - def has_add_permission(self, request, obj=None): - return False - - def has_change_permission(self, request, obj=None): - return False - - def has_delete_permission(self, request, obj=None): - return False - - - class TipoDocumentoAdministrativoAdmin(admin.ModelAdmin): - - def has_add_permission(self, request, obj=None): - return False - - def has_change_permission(self, request, obj=None): - return False - - def has_delete_permission(self, request, obj=None): - return False - - - class TipoMateriaLegislativaAdmin(admin.ModelAdmin): - - def has_add_permission(self, request, obj=None): - return False - - def has_change_permission(self, request, obj=None): - return False - - def has_delete_permission(self, request, obj=None): - return False - - - admin.site.register(Proposicao, ProposicaoAdmin) - admin.site.register(TipoAutor, TipoAutorAdmin) - admin.site.register(TipoComissao, TipoComissaoAdmin) - admin.site.register(TipoAfastamento, TipoAfastamentoAdmin) - admin.site.register(SituacaoMilitar, SituacaoMilitarAdmin) - admin.site.register(TipoDependente, TipoNormaJuridicaAdmin) - admin.site.register(TipoDependente, TipoVinculoNormaJuridicaAdmin) - admin.site.register(TipoDependente, TipoDependenteAdmin) - admin.site.register(TipoSessaoPlenaria, TipoSessaoPlenariaAdmin) - admin.site.register(TipoExpediente, TipoExpedienteAdmin) - admin.site.register(TipoResultadoVotacao, TipoResultadoVotacaoAdmin) - admin.site.register(TipoDocumentoAdministrativo, TipoDocumentoAdministrativoAdmin) - admin.site.register(TipoMateriaLegislativa, TipoMateriaLegislativaAdmin) + admin.site.register(Proposicao, RestricaoAdmin) + admin.site.register(TipoAutor, RestricaoAdmin) + admin.site.register(TipoComissao, RestricaoAdmin) + admin.site.register(TipoAfastamento, RestricaoAdmin) + admin.site.register(SituacaoMilitar, RestricaoAdmin) + admin.site.register(TipoDependente, RestricaoAdmin) diff --git a/sapl/materia/forms.py b/sapl/materia/forms.py index e954903b2..038a24d82 100644 --- a/sapl/materia/forms.py +++ b/sapl/materia/forms.py @@ -1116,7 +1116,7 @@ class ProposicaoForm(forms.ModelForm): receber_recibo = forms.TypedChoiceField( choices=YES_NO_CHOICES, - label='Deseja protocolar com recibo?', + widget=widgets.HiddenInput(), required=False) class Meta: @@ -1142,6 +1142,9 @@ class ProposicaoForm(forms.ModelForm): self.texto_articulado_proposicao = sapl.base.models.AppConfig.attr( 'texto_articulado_proposicao') + self.receber_recibo = sapl.base.models.AppConfig.attr( + 'receber_recibo_proposicao') + if not self.texto_articulado_proposicao: if 'tipo_texto' in self._meta.fields: self._meta.fields.remove('tipo_texto') @@ -1158,7 +1161,6 @@ class ProposicaoForm(forms.ModelForm): to_column(('ano_materia', 4)) ), - to_column(('receber_recibo', 3)), to_column( (Alert('teste', css_class="ementa_materia hidden alert-info", diff --git a/sapl/materia/views.py b/sapl/materia/views.py index bf8243939..7ca7c0b7a 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -422,6 +422,7 @@ class ProposicaoPendente(PermissionRequiredMixin, ListView): context = super(ProposicaoPendente, self).get_context_data(**kwargs) paginator = context['paginator'] page_obj = context['page_obj'] + context['AppConfig'] = sapl.base.models.AppConfig.objects.all().last() context['page_range'] = make_pagination( page_obj.number, paginator.num_pages) context['NO_ENTRIES_MSG'] = 'Nenhuma proposição pendente.' @@ -650,6 +651,7 @@ class ProposicaoCrud(Crud): def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['subnav_template_name'] = '' + context['AppConfig'] = sapl.base.models.AppConfig.objects.all().last() context['title'] = '%s (%s)' % ( self.object, self.object.autor) diff --git a/sapl/parlamentares/migrations/0020_fix_inicio_mandato.py b/sapl/parlamentares/migrations/0020_fix_inicio_mandato.py new file mode 100644 index 000000000..23b662d9b --- /dev/null +++ b/sapl/parlamentares/migrations/0020_fix_inicio_mandato.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + + +from django.db import migrations + +def popula_campo_data_inicio(apps, schema_editor): + Mandato = apps.get_model("parlamentares", "Mandato") + mandatos = Mandato.objects.all() + + for m in mandatos: + if m.data_inicio_mandato == None: + m.data_inicio_mandato = m.legislatura.data_inicio + m.save() + + +class Migration(migrations.Migration): + + dependencies = [ + # A dependencia real desse script é o arquivo 0001_initial.py, mas + # isso gera um erro (Conflicting migrations detected; multiple leaf + # nodes in the migration graph). para não ocasionar problemas de migração, + # vamos manter a ordem padrão do django. + ('parlamentares', '0019_auto_20180221_1155'), + ] + + operations = [ + migrations.RunPython(popula_campo_data_inicio), + ] \ No newline at end of file diff --git a/sapl/templates/base/layouts.yaml b/sapl/templates/base/layouts.yaml index 68da1cd70..3f066289b 100644 --- a/sapl/templates/base/layouts.yaml +++ b/sapl/templates/base/layouts.yaml @@ -15,7 +15,7 @@ AppConfig: - documentos_administrativos {% trans 'Proposições e Protocolo' %}: - - sequencia_numeracao proposicao_incorporacao_obrigatoria + - sequencia_numeracao proposicao_incorporacao_obrigatoria receber_recibo_proposicao {% trans 'Textos Articulados' %}: - texto_articulado_proposicao texto_articulado_materia texto_articulado_norma diff --git a/sapl/templates/materia/prop_pendentes_list.html b/sapl/templates/materia/prop_pendentes_list.html index c2c314d3d..092d19a26 100644 --- a/sapl/templates/materia/prop_pendentes_list.html +++ b/sapl/templates/materia/prop_pendentes_list.html @@ -15,7 +15,9 @@ Tipo Descrição Autor - Código do Documento + {% if not AppConfig.receber_recibo_proposicao %} + Código do Documento + {% endif %} @@ -28,11 +30,13 @@ {{ prop.descricao }} {{prop.autor}} + {% if not AppConfig.receber_recibo_proposicao %} {%if prop.hash_code %} {{ prop.hash_code }} {% else %} {{ prop.hash_code }} {% endif %} + {% endif %} {% endfor %} diff --git a/sapl/templates/materia/proposicao_detail.html b/sapl/templates/materia/proposicao_detail.html index 039d55ad7..53d6e8620 100644 --- a/sapl/templates/materia/proposicao_detail.html +++ b/sapl/templates/materia/proposicao_detail.html @@ -136,16 +136,19 @@ {% endif %} - {% if object.hash_code %} + + {% if not AppConfig.receber_recibo_proposicao %} + {% if object.hash_code %} -
-
-

{%field_verbose_name object 'hash_code'%}

-
-
{{object.hash_code}}
+
+
+

{%field_verbose_name object 'hash_code'%}

+
+
{{object.hash_code}}
+
+
-
-
+ {% endif %} {% endif %}
{% endblock detail_content %} diff --git a/setup.py b/setup.py index 1c624e447..1feba9cef 100644 --- a/setup.py +++ b/setup.py @@ -49,7 +49,7 @@ install_requires = [ ] setup( name='interlegis-sapl', - version='3.1.51', + version='3.1.52', packages=find_packages(), include_package_data=True, license='GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007',