Browse Source

Fix #1718

pull/1719/head
tapumar@gmail.com 8 years ago
parent
commit
05418e1741
  1. 2
      docker-compose.yml
  2. 3
      sapl/base/forms.py
  3. 20
      sapl/base/migrations/0015_appconfig_receber_recibo_proposicao.py
  4. 4
      sapl/base/models.py
  5. 171
      sapl/materia/admin.py
  6. 6
      sapl/materia/forms.py
  7. 2
      sapl/materia/views.py
  8. 29
      sapl/parlamentares/migrations/0020_fix_inicio_mandato.py
  9. 2
      sapl/templates/base/layouts.yaml
  10. 6
      sapl/templates/materia/prop_pendentes_list.html
  11. 19
      sapl/templates/materia/proposicao_detail.html
  12. 2
      setup.py

2
docker-compose.yml

@ -11,7 +11,7 @@ sapldb:
ports: ports:
- "5432:5432" - "5432:5432"
sapl: sapl:
image: interlegis/sapl:3.1.51 image: interlegis/sapl:3.1.52
restart: always restart: always
environment: environment:
ADMIN_PASSWORD: interlegis ADMIN_PASSWORD: interlegis

3
sapl/base/forms.py

@ -645,7 +645,8 @@ class ConfiguracoesAppForm(ModelForm):
'cronometro_discurso', 'cronometro_discurso',
'cronometro_aparte', 'cronometro_aparte',
'cronometro_ordem', 'cronometro_ordem',
'mostrar_brasao_painel'] 'mostrar_brasao_painel',
'receber_recibo_proposicao']
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(ConfiguracoesAppForm, self).__init__(*args, **kwargs) super(ConfiguracoesAppForm, self).__init__(*args, **kwargs)

20
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?'),
),
]

4
sapl/base/models.py

@ -165,6 +165,10 @@ class AppConfig(models.Model):
default=False, default=False,
verbose_name=_('Mostrar brasão da Casa no painel?')) 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: class Meta:
verbose_name = _('Configurações da Aplicação') verbose_name = _('Configurações da Aplicação')
verbose_name_plural = _('Configurações da Aplicação') verbose_name_plural = _('Configurações da Aplicação')

171
sapl/materia/admin.py

@ -19,87 +19,9 @@ if not DEBUG:
admin.site.unregister(TipoAfastamento) admin.site.unregister(TipoAfastamento)
admin.site.unregister(SituacaoMilitar) admin.site.unregister(SituacaoMilitar)
admin.site.unregister(TipoDependente) 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): class RestricaoAdmin(admin.ModelAdmin):
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):
def has_add_permission(self, request, obj=None): def has_add_permission(self, request, obj=None):
return False return False
@ -111,88 +33,9 @@ if not DEBUG:
return False return False
class TipoDependenteAdmin(admin.ModelAdmin): admin.site.register(Proposicao, RestricaoAdmin)
admin.site.register(TipoAutor, RestricaoAdmin)
def has_add_permission(self, request, obj=None): admin.site.register(TipoComissao, RestricaoAdmin)
return False admin.site.register(TipoAfastamento, RestricaoAdmin)
admin.site.register(SituacaoMilitar, RestricaoAdmin)
def has_change_permission(self, request, obj=None): admin.site.register(TipoDependente, RestricaoAdmin)
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)

6
sapl/materia/forms.py

@ -1116,7 +1116,7 @@ class ProposicaoForm(forms.ModelForm):
receber_recibo = forms.TypedChoiceField( receber_recibo = forms.TypedChoiceField(
choices=YES_NO_CHOICES, choices=YES_NO_CHOICES,
label='Deseja protocolar com recibo?', widget=widgets.HiddenInput(),
required=False) required=False)
class Meta: class Meta:
@ -1142,6 +1142,9 @@ class ProposicaoForm(forms.ModelForm):
self.texto_articulado_proposicao = sapl.base.models.AppConfig.attr( self.texto_articulado_proposicao = sapl.base.models.AppConfig.attr(
'texto_articulado_proposicao') 'texto_articulado_proposicao')
self.receber_recibo = sapl.base.models.AppConfig.attr(
'receber_recibo_proposicao')
if not self.texto_articulado_proposicao: if not self.texto_articulado_proposicao:
if 'tipo_texto' in self._meta.fields: if 'tipo_texto' in self._meta.fields:
self._meta.fields.remove('tipo_texto') self._meta.fields.remove('tipo_texto')
@ -1158,7 +1161,6 @@ class ProposicaoForm(forms.ModelForm):
to_column(('ano_materia', 4)) to_column(('ano_materia', 4))
), ),
to_column(('receber_recibo', 3)),
to_column( to_column(
(Alert('teste', (Alert('teste',
css_class="ementa_materia hidden alert-info", css_class="ementa_materia hidden alert-info",

2
sapl/materia/views.py

@ -422,6 +422,7 @@ class ProposicaoPendente(PermissionRequiredMixin, ListView):
context = super(ProposicaoPendente, self).get_context_data(**kwargs) context = super(ProposicaoPendente, self).get_context_data(**kwargs)
paginator = context['paginator'] paginator = context['paginator']
page_obj = context['page_obj'] page_obj = context['page_obj']
context['AppConfig'] = sapl.base.models.AppConfig.objects.all().last()
context['page_range'] = make_pagination( context['page_range'] = make_pagination(
page_obj.number, paginator.num_pages) page_obj.number, paginator.num_pages)
context['NO_ENTRIES_MSG'] = 'Nenhuma proposição pendente.' context['NO_ENTRIES_MSG'] = 'Nenhuma proposição pendente.'
@ -650,6 +651,7 @@ class ProposicaoCrud(Crud):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
context['subnav_template_name'] = '' context['subnav_template_name'] = ''
context['AppConfig'] = sapl.base.models.AppConfig.objects.all().last()
context['title'] = '%s <small>(%s)</small>' % ( context['title'] = '%s <small>(%s)</small>' % (
self.object, self.object.autor) self.object, self.object.autor)

29
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),
]

2
sapl/templates/base/layouts.yaml

@ -15,7 +15,7 @@ AppConfig:
- documentos_administrativos - documentos_administrativos
{% trans 'Proposições e Protocolo' %}: {% trans 'Proposições e Protocolo' %}:
- sequencia_numeracao proposicao_incorporacao_obrigatoria - sequencia_numeracao proposicao_incorporacao_obrigatoria receber_recibo_proposicao
{% trans 'Textos Articulados' %}: {% trans 'Textos Articulados' %}:
- texto_articulado_proposicao texto_articulado_materia texto_articulado_norma - texto_articulado_proposicao texto_articulado_materia texto_articulado_norma

6
sapl/templates/materia/prop_pendentes_list.html

@ -15,7 +15,9 @@
<th>Tipo</th> <th>Tipo</th>
<th>Descrição</th> <th>Descrição</th>
<th>Autor</th> <th>Autor</th>
<th>Código do Documento</th> {% if not AppConfig.receber_recibo_proposicao %}
<th>Código do Documento</th>
{% endif %}
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -28,11 +30,13 @@
<td>{{ prop.descricao }}</td> <td>{{ prop.descricao }}</td>
<td>{{prop.autor}}</td> <td>{{prop.autor}}</td>
<td> <td>
{% if not AppConfig.receber_recibo_proposicao %}
{%if prop.hash_code %} {%if prop.hash_code %}
<a href="{% url 'sapl.materia:proposicao-confirmar' prop.hash_code|strip_hash prop.pk %}">{{ prop.hash_code }}</a> <a href="{% url 'sapl.materia:proposicao-confirmar' prop.hash_code|strip_hash prop.pk %}">{{ prop.hash_code }}</a>
{% else %} {% else %}
{{ prop.hash_code }} {{ prop.hash_code }}
{% endif %} {% endif %}
{% endif %}
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}

19
sapl/templates/materia/proposicao_detail.html

@ -136,16 +136,19 @@
</div> </div>
</div> </div>
{% endif %} {% endif %}
{% if object.hash_code %}
{% if not AppConfig.receber_recibo_proposicao %}
{% if object.hash_code %}
<div class="col-sm-12"> <div class="col-sm-12">
<div id="div_id_hash_code" class="form-group"> <div id="div_id_hash_code" class="form-group">
<p class="control-label">{%field_verbose_name object 'hash_code'%}</p> <p class="control-label">{%field_verbose_name object 'hash_code'%}</p>
<div class="controls"> <div class="controls">
<div class="form-control-static">{{object.hash_code}}</div> <div class="form-control-static">{{object.hash_code}}</div>
</div>
</div>
</div> </div>
</div> {% endif %}
</div>
{% endif %} {% endif %}
</div> </div>
{% endblock detail_content %} {% endblock detail_content %}

2
setup.py

@ -49,7 +49,7 @@ install_requires = [
] ]
setup( setup(
name='interlegis-sapl', name='interlegis-sapl',
version='3.1.51', version='3.1.52',
packages=find_packages(), packages=find_packages(),
include_package_data=True, include_package_data=True,
license='GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007', license='GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007',

Loading…
Cancel
Save