Browse Source

Add disponibilidade de perfis para TipoProposicao

pull/797/head
LeandroRoberto 8 years ago
parent
commit
b4e87d1a1f
  1. 19
      sapl/materia/forms.py
  2. 21
      sapl/materia/migrations/0069_tipoproposicao_perfis.py
  3. 27
      sapl/materia/models.py
  4. 6
      sapl/templates/materia/tipoproposicao_form.html

19
sapl/materia/forms.py

@ -22,7 +22,8 @@ import django_filters
from sapl.base.models import Autor
from sapl.comissoes.models import Comissao
from sapl.compilacao.models import STATUS_TA_PRIVATE,\
STATUS_TA_IMMUTABLE_PUBLIC, TextoArticulado, STATUS_TA_PUBLIC
STATUS_TA_IMMUTABLE_PUBLIC, TextoArticulado, STATUS_TA_PUBLIC,\
PerfilEstruturalTextoArticulado
from sapl.crispy_layout_mixin import (SaplFormLayout, form_actions, to_column,
to_row)
from sapl.materia.models import TipoProposicao, MateriaLegislativa,\
@ -747,16 +748,20 @@ class TipoProposicaoForm(ModelForm):
fields = ['descricao',
'content_type',
'tipo_conteudo_related_radio',
'tipo_conteudo_related']
'tipo_conteudo_related',
'perfis']
widgets = {'tipo_conteudo_related': forms.HiddenInput()}
widgets = {'tipo_conteudo_related': forms.HiddenInput(),
'perfis': widgets.CheckboxSelectMultiple()}
def __init__(self, *args, **kwargs):
tipo_select = Fieldset(TipoProposicao._meta.verbose_name,
to_column(('descricao', 5)),
to_column(('content_type', 7)),
to_column(('tipo_conteudo_related_radio', 12)))
to_column(('tipo_conteudo_related_radio', 6)),
to_column(('perfis', 6)))
self.helper = FormHelper()
self.helper.layout = SaplFormLayout(tipo_select)
@ -795,7 +800,7 @@ class TipoProposicaoForm(ModelForm):
@transaction.atomic
def save(self, commit=False):
tipo_proposicao = super(TipoProposicaoForm, self).save(commit)
tipo_proposicao = self.instance
assert tipo_proposicao.content_type
@ -803,9 +808,7 @@ class TipoProposicaoForm(ModelForm):
tipo_proposicao.content_type.model_class(
).objects.get(pk=self.cleaned_data['tipo_conteudo_related'])
tipo_proposicao.save()
return tipo_proposicao
return super().save(True)
class ProposicaoForm(forms.ModelForm):

21
sapl/materia/migrations/0069_tipoproposicao_perfis.py

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.7 on 2016-11-11 10:05
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0069_auto_20161107_1932'),
('materia', '0068_auto_20161110_0910'),
]
operations = [
migrations.AddField(
model_name='tipoproposicao',
name='perfis',
field=models.ManyToManyField(blank=True, to='compilacao.PerfilEstruturalTextoArticulado', verbose_name='Perfis Estruturais de Textos Articulados'),
),
]

27
sapl/materia/models.py

@ -8,7 +8,8 @@ from model_utils import Choices
from sapl.base.models import Autor
from sapl.comissoes.models import Comissao
from sapl.compilacao.models import TextoArticulado
from sapl.compilacao.models import TextoArticulado,\
PerfilEstruturalTextoArticulado
from sapl.parlamentares.models import Parlamentar
from sapl.utils import (RANGE_ANOS, YES_NO_CHOICES, SaplGenericForeignKey,
SaplGenericRelation, restringe_tipos_de_arquivo_txt,
@ -38,19 +39,17 @@ class TipoProposicao(models.Model):
tipo_conteudo_related = SaplGenericForeignKey(
'content_type', 'object_id', verbose_name=_('Seleção de Tipo'))
"""materia_ou_documento = models.CharField(
max_length=1, verbose_name=_('Gera'), choices=MAT_OU_DOC_CHOICES)
modelo = models.CharField(max_length=50, verbose_name=_('Modelo XML'))
# mutually exclusive (depend on materia_ou_documento)
tipo_materia = models.ForeignKey(
TipoMateriaLegislativa,
blank=True,
null=True,
verbose_name=_('Tipo de Matéria'))
tipo_documento = models.ForeignKey(
TipoDocumento, blank=True, null=True,
verbose_name=_('Tipo de Documento'))"""
perfis = models.ManyToManyField(
PerfilEstruturalTextoArticulado,
blank=True, verbose_name=_('Perfis Estruturais de Textos Articulados'),
help_text=_("""
Mesmo que em Configurações da Aplicação nas
Tabelas Auxiliares esteja definido que Proposições possam
utilizar Textos Articulados, ao gerar uma proposição,
a solução de Textos Articulados será disponibilizada se
o Tipo escolhido para a Proposição estiver associada a ao
menos um Perfil Estrutural de Texto Articulado.
"""))
class Meta:
verbose_name = _('Tipo de Proposição')

6
sapl/templates/materia/tipoproposicao_form.html

@ -6,7 +6,7 @@ aaa
<script type="text/javascript">
$(document).ready(function(){
var initial_select = $("input[name=tipo_conteudo_related]").val();
var initial_select = parseInt($("input[name=tipo_conteudo_related]").val());
$("input[name=tipo_conteudo_related]").remove();
$('#id_content_type').change(function(event) {
var pk = this[event.target.selectedIndex].value;
@ -18,8 +18,8 @@ $(document).ready(function(){
data.forEach(function (val, index) {
var html_radio = '<div class="radio'+(initial_select==val.value?' checked':'')+'"> <label><span class="icons"><span class="first-icon"></span><span class="second-icon"></span></span><input type="radio" name="tipo_conteudo_related" id="id_tipo_conteudo_related_'+index+'" value="'+val.value+'"'+(initial_select?' checked="checked"':'')+' style="display:none;">'+val.text+'</label></div>';
if (val === initial_select)
initial_select='';
if (val.value === initial_select)
initial_select=0;
radios.append(html_radio);
});
});

Loading…
Cancel
Save