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.helper import FormHelper
from crispy_forms.layout import (HTML, Button, Column, Div, Field, Fieldset,
Layout)
Layout, Row)
from django import forms
from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ObjectDoesNotExist, ValidationError
@ -1191,7 +1191,8 @@ class TipoProposicaoForm(ModelForm):
content_type = forms.ModelChoiceField(
queryset=ContentType.objects.all(),
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(
label="Seleção de Tipo",
@ -1215,13 +1216,30 @@ class TipoProposicaoForm(ModelForm):
def __init__(self, *args, **kwargs):
tipo_select = Fieldset(TipoProposicao._meta.verbose_name,
Div(to_column(('descricao', 5)),
to_column(('content_type', 7)),
css_class='clearfix'),
to_column(('tipo_conteudo_related_radio', 6)),
to_column(('perfis', 6)))
tipo_select = Fieldset(
TipoProposicao._meta.verbose_name,
Row(
to_column(
(
Row(
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.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={
'unique': _('Já existe um Tipo de Proposição com esta descrição.')
})
content_type = models.ForeignKey(ContentType, default=None,
on_delete=models.PROTECT,
verbose_name=_('Definição de Tipo'))
content_type = models.ForeignKey(
ContentType, default=None,
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(
blank=True, null=True, default=None)
tipo_conteudo_related = SaplGenericForeignKey(
'content_type', 'object_id', verbose_name=_('Seleção de Tipo'))
'content_type', 'object_id', verbose_name=_('T'))
perfis = models.ManyToManyField(
PerfilEstruturalTextoArticulado,

5
sapl/templates/materia/tipoproposicao_form.html

@ -40,9 +40,9 @@ $(document).ready(function(){
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) {
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)
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');
});

Loading…
Cancel
Save