Browse Source

migra frontend da manutenção de tipos de proposição

pull/2485/head
Leandro Roberto 7 years ago
parent
commit
f244c77328
  1. 36
      sapl/materia/forms.py
  2. 21
      sapl/materia/migrations/0039_auto_20190209_2346.py
  3. 16
      sapl/materia/models.py
  4. 5
      sapl/templates/materia/tipoproposicao_form.html

36
sapl/materia/forms.py

@ -5,7 +5,7 @@ import os
from crispy_forms.bootstrap import Alert, InlineRadios from crispy_forms.bootstrap import Alert, InlineRadios
from crispy_forms.helper import FormHelper from crispy_forms.helper import FormHelper
from crispy_forms.layout import (HTML, Button, Column, Div, Field, Fieldset, from crispy_forms.layout import (HTML, Button, Column, Div, Field, Fieldset,
Layout) Layout, Row)
from django import forms from django import forms
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ObjectDoesNotExist, ValidationError from django.core.exceptions import ObjectDoesNotExist, ValidationError
@ -1191,7 +1191,8 @@ class TipoProposicaoForm(ModelForm):
content_type = forms.ModelChoiceField( content_type = forms.ModelChoiceField(
queryset=ContentType.objects.all(), queryset=ContentType.objects.all(),
label=TipoProposicao._meta.get_field('content_type').verbose_name, label=TipoProposicao._meta.get_field('content_type').verbose_name,
required=True) required=True,
help_text=TipoProposicao._meta.get_field('content_type').help_text)
tipo_conteudo_related_radio = ChoiceWithoutValidationField( tipo_conteudo_related_radio = ChoiceWithoutValidationField(
label="Seleção de Tipo", label="Seleção de Tipo",
@ -1215,13 +1216,30 @@ class TipoProposicaoForm(ModelForm):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
tipo_select = Fieldset(TipoProposicao._meta.verbose_name, tipo_select = Fieldset(
Div(to_column(('descricao', 5)), TipoProposicao._meta.verbose_name,
to_column(('content_type', 7)), Row(
css_class='clearfix'), to_column(
to_column(('tipo_conteudo_related_radio', 6)), (
Row(
to_column(('perfis', 6))) to_column(('descricao', 12)),
to_column(('perfis', 12)),
),
5
)
),
to_column(
(
Row(
to_column(('content_type', 12)),
to_column(('tipo_conteudo_related_radio', 12)),
to_column(('tipo_conteudo_related', 12)),
),
7
)
),
)
)
self.helper = FormHelper() self.helper = FormHelper()
self.helper.layout = SaplFormLayout(tipo_select) self.helper.layout = SaplFormLayout(tipo_select)

21
sapl/materia/migrations/0039_auto_20190209_2346.py

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.18 on 2019-02-10 01:46
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('materia', '0038_auto_20190108_1606'),
]
operations = [
migrations.AlterField(
model_name='tipoproposicao',
name='content_type',
field=models.ForeignKey(default=None, help_text='\n Quando uma proposição é incorporada, ela é convertida de proposição\n para outro elemento dentro do Sapl. Existem alguns elementos que\n uma proposição pode se tornar. Defina este meta-tipo e em seguida\n escolha um Tipo Correspondente!\n ', on_delete=django.db.models.deletion.PROTECT, to='contenttypes.ContentType', verbose_name='Conversão de Meta-Tipos'),
),
]

16
sapl/materia/models.py

@ -42,13 +42,21 @@ class TipoProposicao(models.Model):
error_messages={ error_messages={
'unique': _('Já existe um Tipo de Proposição com esta descrição.') 'unique': _('Já existe um Tipo de Proposição com esta descrição.')
}) })
content_type = models.ForeignKey(ContentType, default=None, content_type = models.ForeignKey(
on_delete=models.PROTECT, ContentType, default=None,
verbose_name=_('Definição de Tipo')) on_delete=models.PROTECT,
verbose_name=_('Conversão de Meta-Tipos'),
help_text=_("""
Quando uma proposição é incorporada, ela é convertida de proposição
para outro elemento dentro do Sapl. Existem alguns elementos que
uma proposição pode se tornar. Defina este meta-tipo e em seguida
escolha um Tipo Correspondente!
""")
)
object_id = models.PositiveIntegerField( object_id = models.PositiveIntegerField(
blank=True, null=True, default=None) blank=True, null=True, default=None)
tipo_conteudo_related = SaplGenericForeignKey( tipo_conteudo_related = SaplGenericForeignKey(
'content_type', 'object_id', verbose_name=_('Seleção de Tipo')) 'content_type', 'object_id', verbose_name=_('T'))
perfis = models.ManyToManyField( perfis = models.ManyToManyField(
PerfilEstruturalTextoArticulado, PerfilEstruturalTextoArticulado,

5
sapl/templates/materia/tipoproposicao_form.html

@ -40,9 +40,9 @@ $(document).ready(function(){
return; return;
} }
var radios = $("#div_id_tipo_conteudo_related_radio .controls").html(''); var radios = $("#div_id_tipo_conteudo_related_radio > div").html('');
data.forEach(function (val, index) { 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>'; var html_radio = '<div class="radio"><label id="id_tipo_conteudo_related_'+index+'"><input type="radio" name="tipo_conteudo_related" id="id_tipo_conteudo_related_'+index+'" value="'+val.value+'"'+(initial_select ?' checked="checked"':'')+'>'+val.text+'</label></div>';
if (val.value === initial_select) if (val.value === initial_select)
initial_select=0; initial_select=0;
@ -50,7 +50,6 @@ $(document).ready(function(){
}); });
}); });
}); });
$("#div_id_tipo_conteudo_related_radio .controls").addClass('controls-radio-checkbox');
$('#id_content_type').trigger('change'); $('#id_content_type').trigger('change');
}); });

Loading…
Cancel
Save