diff --git a/sapl/base/forms.py b/sapl/base/forms.py index 4334f7e94..605d23b84 100644 --- a/sapl/base/forms.py +++ b/sapl/base/forms.py @@ -1,4 +1,3 @@ -import django_filters from crispy_forms.helper import FormHelper from crispy_forms.layout import HTML, Button, Fieldset, Layout from django import forms @@ -7,6 +6,7 @@ from django.core.exceptions import ValidationError from django.db import models from django.forms import ModelForm from django.utils.translation import ugettext_lazy as _ +import django_filters from sapl.crispy_layout_mixin import form_actions, to_row from sapl.materia.models import MateriaLegislativa @@ -272,4 +272,7 @@ class ConfiguracoesAppForm(ModelForm): model = AppConfig fields = ['documentos_administrativos', 'sequencia_numeracao', - 'painel_aberto'] + 'painel_aberto', + 'texto_articulado_proposicao', + 'texto_articulado_materia', + 'texto_articulado_norma'] diff --git a/sapl/base/migrations/0020_auto_20161006_0950.py b/sapl/base/migrations/0020_auto_20161006_0950.py new file mode 100644 index 000000000..71f9f9a6b --- /dev/null +++ b/sapl/base/migrations/0020_auto_20161006_0950.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-10-06 12:50 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('base', '0019_auto_20160928_1951'), + ] + + operations = [ + migrations.AddField( + model_name='appconfig', + name='texto_articulado_materia', + field=models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], default=False, verbose_name='Usar Textos Articulados para Matérias'), + ), + migrations.AddField( + model_name='appconfig', + name='texto_articulado_norma', + field=models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], default=False, verbose_name='Usar Textos Articulados para Normas'), + ), + migrations.AddField( + model_name='appconfig', + name='texto_articulado_proposicao', + field=models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], default=False, verbose_name='Usar Textos Articulados para Proposições'), + ), + ] diff --git a/sapl/base/migrations/0021_auto_20161006_1019.py b/sapl/base/migrations/0021_auto_20161006_1019.py new file mode 100644 index 000000000..107cca4d4 --- /dev/null +++ b/sapl/base/migrations/0021_auto_20161006_1019.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-10-06 13:19 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('base', '0020_auto_20161006_0950'), + ] + + operations = [ + migrations.AlterField( + model_name='appconfig', + name='texto_articulado_norma', + field=models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], default=True, verbose_name='Usar Textos Articulados para Normas'), + ), + ] diff --git a/sapl/base/models.py b/sapl/base/models.py index 71f2634fe..1762aaa0a 100644 --- a/sapl/base/models.py +++ b/sapl/base/models.py @@ -7,11 +7,12 @@ from django.contrib.contenttypes.models import ContentType from django.core import exceptions from django.db import models, router from django.db.utils import DEFAULT_DB_ALIAS -from django.utils.translation import ugettext_lazy as _ from django.utils.translation import string_concat +from django.utils.translation import ugettext_lazy as _ from sapl.utils import UF, YES_NO_CHOICES + TIPO_DOCUMENTO_ADMINISTRATIVO = (('O', _('Ostensivo')), ('R', _('Restritivo'))) @@ -98,6 +99,18 @@ class AppConfig(models.Model): verbose_name=_('Painel aberto para usuário anônimo'), choices=YES_NO_CHOICES, default=False) + texto_articulado_proposicao = models.BooleanField( + verbose_name=_('Usar Textos Articulados para Proposições'), + choices=YES_NO_CHOICES, default=False) + + texto_articulado_materia = models.BooleanField( + verbose_name=_('Usar Textos Articulados para Matérias'), + choices=YES_NO_CHOICES, default=False) + + texto_articulado_norma = models.BooleanField( + verbose_name=_('Usar Textos Articulados para Normas'), + 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/compilacao/compilacao_data_tables.sql b/sapl/compilacao/compilacao_data_tables.sql new file mode 100644 index 000000000..802e88a60 --- /dev/null +++ b/sapl/compilacao/compilacao_data_tables.sql @@ -0,0 +1,231 @@ +INSERT INTO compilacao_perfilestruturaltextoarticulado (id, sigla, nome, padrao) VALUES (2, 'LC95-v', 'Lei Complementar 95 com Variação', false); +INSERT INTO compilacao_perfilestruturaltextoarticulado (id, sigla, nome, padrao) VALUES (1, 'LC95', 'Lei Complementar 95', true); +SELECT pg_catalog.setval('compilacao_perfilestruturaltextoarticulado_id_seq', 2, true); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (1, 'Articulação', 'articulacao', '', '', 0, '', '', '', '', '', '', true, 'N', 'N', 'N', 'N', 'N', 'N', '-', '-', '-', '-', '-', true, false); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (2, 'Ementa', 'ementa', '', '', 0, '', '', '', '', '', '', false, 'N', '1', '1', '1', '1', '1', '-', '-', '-', '-', '-', false, false); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (101, 'Disposições Preliminares', 'disp_preliminares', '', 'Disposições Preliminares', 0, '', '
', '', '
', '', '', false, 'N', '1', '1', '1', '1', '1', '-', '-', '-', '-', '-', false, false); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (102, 'Disposições Gerais', 'disp_gerais', '', 'Disposições Gerais', 0, '', '
', '', '
', '', '', false, 'N', '1', '1', '1', '1', '1', '-', '-', '-', '-', '-', false, false); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (103, 'Disposições Transitórias', 'disp_transitorias', '', 'Disposições Transitórias', 0, '', '
', '', '
', '', '', false, 'N', '1', '1', '1', '1', '1', '-', '-', '-', '-', '-', false, false); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (104, 'Disposições Finais', 'disp_finais', '', 'Disposições Finais', 0, '', '
', '', '
', '', '', false, 'N', '1', '1', '1', '1', '1', '-', '-', '-', '-', '-', false, false); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (111, 'Anexo', 'anexo', '', 'Anexo ', 0, '', '
', '', '
', '
', '', false, 'I', '1', '1', '1', '1', '1', '-', '-', '-', '-', '-', false, false); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (112, 'Parte', 'parte', '', 'Parte ', 0, '', '
', '', '
', '
', '', false, 'I', '1', '1', '1', '1', '1', '-', '-', '-', '-', '-', false, false); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (113, 'Livro', 'livro', '', 'Livro ', 0, '', '
', '', '
', '
', '', false, 'I', '1', '1', '1', '1', '1', '-', '-', '-', '-', '-', false, false); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (114, 'Título', 'titulo', '', 'Título ', 0, '', '
', '', '
', '
', '', false, 'I', '1', '1', '1', '1', '1', '-', '-', '-', '-', '-', false, false); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (115, 'Capítulo', 'capitulo', '', 'Capítulo ', 0, '', '
', '', '
', '
', '', false, 'I', 'A', '1', '1', '1', '1', '-', '-', '-', '-', '-', false, false); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (116, 'Seção', 'secao', '', 'Seção ', 0, '', '
', '', '
', '
', '', false, 'I', '1', '1', '1', '1', '1', '-', '-', '-', '-', '-', false, false); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (117, 'SubSeção', 'subsecao', '', 'SubSeção ', 0, '', '
', '', '
', '
', '', false, '1', '1', '1', '1', '1', '1', '-', '-', '-', '-', '-', false, false); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (119, 'Artigo', 'artigo', '', 'Art. ', 9, '.', ' – ', '', '', '', '', true, '1', 'A', '1', '1', '1', '1', '-', '-', '-', '-', '-', true, false); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (120, 'Caput', 'caput', '', '', 0, '', '', '', '', '', '', false, 'N', 'N', 'N', 'N', 'N', 'N', '-', '-', '-', '-', '-', false, false); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (121, 'Parágrafo', 'paragrafo', '', '§ ;Parágrafo Único ', 9, '', ' – ', '', '', '', '', false, '1', '1', '1', '1', '1', '1', '-', '-', '-', '-', '-', false, false); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (122, 'Inciso', 'inciso', '', '', 0, '', ' – ', '', '', '', '', false, 'I', '1', '1', '1', '1', '1', '-', '-', '-', '-', '-', false, false); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (123, 'Alinea', 'alinea', '', '', 0, ')', ' – ', '', '', '', '', false, 'a', '1', '1', '1', '1', '1', '-', '-', '-', '-', '-', false, false); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (124, 'Item', 'item', '', '', 0, '', ' – ', '', '', '', '', false, '1', '1', '1', '1', '1', '1', '.', '.', '.', '.', '.', false, false); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (125, 'Texto Não Estruturado', 'texto_n_estruturado', '', '', 0, '', '', '', '', '', '', false, 'N', 'N', 'N', 'N', 'N', 'N', '-', '-', '-', '-', '-', false, false); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (3, 'Bloco Alteração', 'bloco_alteracao', '', '', 0, '', '', '', '', '', '', false, 'N', 'N', 'N', 'N', 'N', 'N', '-', '-', '-', '-', '-', true, true); +INSERT INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_sufixo_texto, rotulo_sufixo_html, texto_prefixo_html, texto_sufixo_html, nota_automatica_prefixo_html, nota_automatica_sufixo_html, contagem_continua, formato_variacao0, formato_variacao1, formato_variacao2, formato_variacao3, formato_variacao4, formato_variacao5, rotulo_separador_variacao01, rotulo_separador_variacao12, rotulo_separador_variacao23, rotulo_separador_variacao34, rotulo_separador_variacao45, dispositivo_de_articulacao, dispositivo_de_alteracao) VALUES (4, 'Omissis', 'omissis', '', '', 0, '', '', '', '', '', '', false, 'N', 'N', 'N', 'N', 'N', 'N', '-', '-', '-', '-', '-', false, true); +SELECT pg_catalog.setval('compilacao_tipodispositivo_id_seq', 125, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (117, 112, 1, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (119, 114, 1, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (120, 115, 1, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (121, 116, 1, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (122, 117, 1, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (124, 119, 1, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (125, 125, 1, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (128, 4, 3, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (148, 111, 101, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (149, 112, 101, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (150, 113, 101, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (151, 114, 101, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (152, 115, 101, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (153, 116, 101, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (154, 117, 101, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (156, 119, 101, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (157, 111, 102, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (158, 112, 102, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (160, 114, 102, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (161, 115, 102, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (162, 116, 102, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (163, 117, 102, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (165, 119, 102, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (166, 111, 103, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (167, 112, 103, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (168, 113, 103, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (169, 114, 103, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (170, 115, 103, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (171, 116, 103, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (172, 117, 103, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (175, 111, 104, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (176, 112, 104, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (177, 113, 104, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (178, 114, 104, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (179, 115, 104, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (180, 116, 104, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (181, 117, 104, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (183, 119, 104, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (185, 112, 111, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (186, 113, 111, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (187, 114, 111, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (188, 115, 111, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (189, 116, 111, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (192, 119, 111, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (193, 113, 112, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (194, 114, 112, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (195, 115, 112, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (196, 116, 112, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (197, 117, 112, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (199, 119, 112, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (200, 114, 113, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (201, 115, 113, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (202, 116, 113, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (203, 117, 113, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (318, 119, 113, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (206, 115, 114, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (207, 116, 114, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (208, 117, 114, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (319, 115, 114, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (320, 116, 114, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (211, 116, 115, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (210, 119, 114, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (212, 117, 115, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (321, 117, 114, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (214, 119, 115, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (215, 117, 116, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (217, 119, 116, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (219, 119, 117, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (243, 3, 119, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (222, 121, 119, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (226, 125, 119, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (251, 3, 120, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (227, 122, 120, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (228, 123, 120, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (229, 124, 120, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (230, 125, 120, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (247, 3, 121, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (232, 123, 121, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (233, 124, 121, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (234, 125, 121, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (248, 3, 122, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (235, 123, 122, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (236, 124, 122, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (237, 125, 122, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (249, 3, 123, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (238, 124, 123, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (239, 125, 123, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (250, 3, 124, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (240, 125, 124, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (112, 101, 1, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (113, 102, 1, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (115, 104, 1, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (116, 111, 1, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (344, 103, 1, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (346, 111, 1, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (345, 104, 1, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (347, 112, 1, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (349, 114, 1, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (350, 115, 1, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (351, 116, 1, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (352, 117, 1, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (354, 119, 1, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (355, 125, 1, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (255, 4, 3, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (262, 111, 101, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (263, 112, 101, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (264, 113, 101, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (265, 114, 101, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (266, 115, 101, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (267, 116, 101, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (268, 117, 101, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (270, 119, 101, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (271, 111, 102, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (272, 112, 102, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (273, 113, 102, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (274, 114, 102, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (275, 115, 102, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (276, 116, 102, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (277, 117, 102, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (279, 119, 102, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (280, 111, 103, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (281, 112, 103, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (282, 113, 103, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (283, 114, 103, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (284, 115, 103, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (285, 116, 103, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (286, 117, 103, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (174, 119, 103, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (288, 119, 103, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (289, 111, 104, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (290, 112, 104, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (292, 114, 104, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (293, 115, 104, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (294, 116, 104, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (295, 117, 104, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (297, 119, 104, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (298, 112, 111, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (299, 113, 111, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (300, 114, 111, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (301, 115, 111, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (302, 116, 111, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (303, 117, 111, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (305, 119, 111, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (306, 113, 112, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (307, 114, 112, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (308, 115, 112, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (309, 116, 112, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (310, 117, 112, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (312, 119, 112, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (313, 114, 113, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (314, 115, 113, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (315, 116, 113, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (316, 117, 113, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (205, 119, 113, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (323, 119, 114, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (324, 116, 115, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (325, 117, 115, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (328, 117, 116, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (330, 119, 116, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (332, 119, 117, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (379, 3, 119, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (335, 121, 119, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (336, 125, 119, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (384, 3, 120, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (337, 122, 120, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (338, 123, 120, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (339, 124, 120, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (340, 125, 120, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (380, 3, 121, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (369, 122, 121, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (370, 123, 121, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (371, 124, 121, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (231, 122, 121, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (372, 125, 121, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (373, 123, 122, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (374, 124, 122, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (375, 125, 122, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (382, 3, 123, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (376, 124, 123, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (377, 125, 123, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (383, 3, 124, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (378, 125, 124, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (111, 2, 1, true, 2, 1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (341, 2, 1, true, 1, 1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (343, 102, 1, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (114, 103, 1, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (342, 101, 1, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (348, 113, 1, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (159, 113, 102, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (291, 113, 104, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (190, 117, 111, false, 2, -1, true); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (327, 119, 115, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (381, 3, 122, false, 1, -1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (334, 120, 119, true, 1, 1, false); +INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (221, 120, 119, true, 2, 1, true); +SELECT pg_catalog.setval('compilacao_tipodispositivorelationship_id_seq', 384, true); +INSERT INTO compilacao_tiponota (id, sigla, nome, modelo) VALUES (1, 'NE', 'Nota Explicativa', ''); +INSERT INTO compilacao_tiponota (id, sigla, nome, modelo) VALUES (2, 'NI', 'Nota de Inconstitucionalidade', 'Declaração de Inconstitucionalidade conforme n...'); +SELECT pg_catalog.setval('compilacao_tiponota_id_seq', 2, true); +INSERT INTO compilacao_tipopublicacao (id, sigla, nome) VALUES (2, 'RPUB', 'Republicação'); +INSERT INTO compilacao_tipopublicacao (id, sigla, nome) VALUES (3, 'RET', 'Retificação'); +INSERT INTO compilacao_tipopublicacao (id, sigla, nome) VALUES (1, 'PUB', 'Publicação'); +SELECT pg_catalog.setval('compilacao_tipopublicacao_id_seq', 3, true); +INSERT INTO compilacao_tipovide (id, sigla, nome) VALUES (1, 'RS', 'Referência Simples'); +SELECT pg_catalog.setval('compilacao_tipovide_id_seq', 1, true); diff --git a/sapl/compilacao/forms.py b/sapl/compilacao/forms.py index f93f71855..7e318fa15 100644 --- a/sapl/compilacao/forms.py +++ b/sapl/compilacao/forms.py @@ -1280,3 +1280,101 @@ class DispositivoRegistroAlteracaoForm(Form): super(DispositivoRegistroAlteracaoForm, self).__init__(*args, **kwargs) self.fields['dispositivo_alterado'].choices = [] + + +class DispositivoRegistroRevogacaoForm(Form): + + dispositivo_revogado = forms.ModelChoiceField( + label=_('Dispositivo a ser revogado'), + required=False, + queryset=Dispositivo.objects.all()) + + dispositivo_search_form = forms.CharField(widget=forms.HiddenInput(), + required=False) + + def __init__(self, *args, **kwargs): + + layout = [] + kwargs.pop('instance') + kwargs['initial'].pop('editor_type') + + row_dispositivo = Field( + 'dispositivo_revogado', + data_sapl_ta='DispositivoSearch', + data_field='dispositivo_revogado', + data_type_selection='radio', + template="compilacao/layout/dispositivo_radio.html") + + layout.append(Fieldset(_('Registro de Revogação - ' + 'Seleção do Dispositivo a ser Revogado'), + row_dispositivo, + css_class="col-md-12")) + layout.append(Field('dispositivo_search_form')) + + more = [ + HTML('%s' % + _('Cancelar')), + ] + more.append(Submit('salvar', _('Salvar'), css_class='pull-right')) + + buttons = FormActions(*more, css_class='form-group') + + _fields = [Div(*layout, css_class="row-fluid")] + \ + [to_row([(buttons, 12)])] + + self.helper = FormHelper() + self.helper.layout = Layout(*_fields) + + super(DispositivoRegistroRevogacaoForm, self).__init__(*args, **kwargs) + + self.fields['dispositivo_revogado'].choices = [] + + +class DispositivoRegistroInclusaoForm(Form): + + dispositivo_base_para_inclusao = forms.ModelChoiceField( + label=_('Dispositivo Base para inclusão de novo dispositivo'), + required=False, + queryset=Dispositivo.objects.all()) + + dispositivo_search_form = forms.CharField(widget=forms.HiddenInput(), + required=False) + + def __init__(self, *args, **kwargs): + + layout = [] + kwargs.pop('instance') + kwargs['initial'].pop('editor_type') + + row_dispositivo = Field( + 'dispositivo_base_para_inclusao', + data_sapl_ta='DispositivoSearch', + data_field='dispositivo_base_para_inclusao', + data_type_selection='radio', + template="compilacao/layout/dispositivo_radio.html") + + layout.append(Fieldset(_('Registro de Inclusão - ' + 'Seleção do Dispositivo Base para inclusão ' + 'de novo dispositivo.'), + row_dispositivo, + css_class="col-md-12")) + layout.append(Field('dispositivo_search_form')) + layout.append(Div(css_class="allowed_inserts col-md-12")) + + more = [ + HTML('%s' % + _('Cancelar')), + ] + #more.append(Submit('salvar', _('Salvar'), css_class='pull-right')) + + buttons = FormActions(*more, css_class='form-group') + + _fields = [Div(*layout, css_class="row-fluid")] + \ + [to_row([(buttons, 12)])] + + self.helper = FormHelper() + self.helper.layout = Layout(*_fields) + + super(DispositivoRegistroInclusaoForm, self).__init__(*args, **kwargs) + + self.fields['dispositivo_base_para_inclusao'].choices = [] diff --git a/sapl/compilacao/migrations/0055_dispositivo_dispositivo_de_revogacao.py b/sapl/compilacao/migrations/0055_dispositivo_dispositivo_de_revogacao.py new file mode 100644 index 000000000..daf297852 --- /dev/null +++ b/sapl/compilacao/migrations/0055_dispositivo_dispositivo_de_revogacao.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-09-20 11:57 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('compilacao', '0054_auto_20160916_1424'), + ] + + operations = [ + migrations.AddField( + model_name='dispositivo', + name='dispositivo_de_revogacao', + field=models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], default=False, verbose_name='Dispositivo de Revogação'), + ), + ] diff --git a/sapl/compilacao/migrations/0056_auto_20161006_1251.py b/sapl/compilacao/migrations/0056_auto_20161006_1251.py new file mode 100644 index 000000000..d92358d04 --- /dev/null +++ b/sapl/compilacao/migrations/0056_auto_20161006_1251.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-10-06 15:51 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('compilacao', '0055_dispositivo_dispositivo_de_revogacao'), + ] + + operations = [ + migrations.AlterField( + model_name='tipotextoarticulado', + name='content_type', + field=models.OneToOneField(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType', verbose_name='Modelo Integrado'), + ), + ] diff --git a/sapl/compilacao/models.py b/sapl/compilacao/models.py index 7bcc3ae39..72bfc47e1 100644 --- a/sapl/compilacao/models.py +++ b/sapl/compilacao/models.py @@ -71,9 +71,9 @@ class BaseModel(models.Model): class TipoTextoArticulado(models.Model): sigla = models.CharField(max_length=3, verbose_name=_('Sigla')) descricao = models.CharField(max_length=50, verbose_name=_('Descrição')) - content_type = models.ForeignKey( + content_type = models.OneToOneField( ContentType, - blank=True, null=True, default=None, + null=True, default=None, verbose_name=_('Modelo Integrado')) participacao_social = models.NullBooleanField( default=False, @@ -132,7 +132,7 @@ class TextoArticulado(TimestampedMixin): 'numero': self.numero, 'data': defaultfilters.date(self.data, "d \d\e F \d\e Y")} - def ordenar_dispositivos(self): + def reagrupar_ordem_de_dispositivos(self): dpts = Dispositivo.objects.filter(ta=self) @@ -150,6 +150,37 @@ class TextoArticulado(TimestampedMixin): count += Dispositivo.INTERVALO_ORDEM Dispositivo.objects.filter(pk=d).update(ordem=count) + def reordenar_dispositivos(self): + + dpts = Dispositivo.objects.filter(ta=self) + + if not dpts.exists(): + return + + ordem_max = dpts.last().ordem + dpts.update(ordem=F('ordem') + ordem_max) + + raizes = Dispositivo.objects.filter( + ta=self, + dispositivo_pai__isnull=True).values_list( + 'pk', flat=True).order_by('ordem') + + count = [] + count.append(Dispositivo.INTERVALO_ORDEM) + + def update(dpk): + Dispositivo.objects.filter(pk=dpk).update(ordem=count[0]) + count[0] = count[0] + Dispositivo.INTERVALO_ORDEM + filhos = Dispositivo.objects.filter( + dispositivo_pai_id=dpk).values_list( + 'pk', flat=True).order_by('ordem') + + for dpk in filhos: + update(dpk) + + for dpk in raizes: + update(dpk) + class TipoNota(models.Model): sigla = models.CharField( @@ -587,6 +618,11 @@ class Dispositivo(BaseModel, TimestampedMixin): choices=YES_NO_CHOICES, verbose_name=_('Visibilidade no Texto Articulado Publicado')) + dispositivo_de_revogacao = models.BooleanField( + default=False, + choices=YES_NO_CHOICES, + verbose_name=_('Dispositivo de Revogação')) + tipo_dispositivo = models.ForeignKey( TipoDispositivo, related_name='dispositivos_do_tipo_set', diff --git a/sapl/compilacao/templatetags/compilacao_filters.py b/sapl/compilacao/templatetags/compilacao_filters.py index d7929c559..de8b70530 100644 --- a/sapl/compilacao/templatetags/compilacao_filters.py +++ b/sapl/compilacao/templatetags/compilacao_filters.py @@ -86,7 +86,7 @@ def nota_automatica(dispositivo, ta_pub_list): ta_publicado = ta_pub_list[dispositivo.ta_publicado_id] if\ ta_pub_list else dispositivo.ta_publicado - if dispositivo.texto == Dispositivo.TEXTO_PADRAO_DISPOSITIVO_REVOGADO: + if dispositivo.dispositivo_de_revogacao: return _('Revogado pelo %s - %s.') % ( d, ta_publicado) elif not dispositivo.dispositivo_substituido_id: diff --git a/sapl/compilacao/urls.py b/sapl/compilacao/urls.py index f9b0de9f4..1f7eb5195 100644 --- a/sapl/compilacao/urls.py +++ b/sapl/compilacao/urls.py @@ -2,7 +2,8 @@ from django.conf.urls import include, url from sapl.compilacao import views from sapl.compilacao.views import (TipoNotaCrud, TipoPublicacaoCrud, - TipoVideCrud, VeiculoPublicacaoCrud) + TipoVideCrud, VeiculoPublicacaoCrud, + TipoDispositivoCrud) from .apps import AppConfig @@ -122,5 +123,7 @@ urlpatterns = [ include(TipoPublicacaoCrud.get_urls())), url(r'^ta/config/veiculo-publicacao/', include(VeiculoPublicacaoCrud.get_urls())), + url(r'^ta/config/tipo-dispositivo/', + include(TipoDispositivoCrud.get_urls())), ] diff --git a/sapl/compilacao/views.py b/sapl/compilacao/views.py index ec26d5996..6a1e907d9 100644 --- a/sapl/compilacao/views.py +++ b/sapl/compilacao/views.py @@ -1,22 +1,26 @@ -import sys from collections import OrderedDict from datetime import datetime, timedelta +import logging +import sys from braces.views import FormMessagesMixin from django import forms +from django.conf import settings +from django.contrib import messages from django.contrib.auth.decorators import login_required from django.contrib.contenttypes.models import ContentType from django.core.signing import Signer from django.core.urlresolvers import reverse_lazy -from django.db import transaction +from django.db import transaction, connection from django.db.models import Q +from django.db.utils import IntegrityError from django.http.response import (HttpResponse, HttpResponseRedirect, JsonResponse) from django.shortcuts import get_object_or_404, redirect from django.utils.dateparse import parse_date from django.utils.decorators import method_decorator from django.utils.encoding import force_text -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import ugettext_lazy as _, string_concat from django.views.generic.base import TemplateView from django.views.generic.detail import DetailView from django.views.generic.edit import (CreateView, DeleteView, FormView, @@ -28,6 +32,8 @@ from sapl.compilacao.forms import (DispositivoDefinidorVigenciaForm, DispositivoEdicaoBasicaForm, DispositivoEdicaoVigenciaForm, DispositivoRegistroAlteracaoForm, + DispositivoRegistroInclusaoForm, + DispositivoRegistroRevogacaoForm, DispositivoSearchModalForm, NotaForm, PublicacaoForm, TaForm, TextNotificacoesForm, TipoTaForm, VideForm) @@ -41,15 +47,66 @@ from sapl.compilacao.utils import (DISPOSITIVO_SELECT_RELATED, DISPOSITIVO_SELECT_RELATED_EDIT) from sapl.crud.base import Crud, CrudListView, make_pagination + TipoNotaCrud = Crud.build(TipoNota, 'tipo_nota') TipoVideCrud = Crud.build(TipoVide, 'tipo_vide') TipoPublicacaoCrud = Crud.build(TipoPublicacao, 'tipo_publicacao') VeiculoPublicacaoCrud = Crud.build(VeiculoPublicacao, 'veiculo_publicacao') +TipoDispositivoCrud = Crud.build( + TipoDispositivo, 'tipo_dispositivo') + +logger = logging.getLogger(__name__) + + +def get_integrations_view_names(): + result = [] + modules = sys.modules + for key, value in modules.items(): + if key.endswith('.views'): + for v in value.__dict__.values(): + if hasattr(v, '__bases__'): + for base in v.__bases__: + if base == IntegracaoTaView: + result.append(v) + return result + + +def choice_models_in_extenal_views(): + integrations_view_names = get_integrations_view_names() + result = [(None, '-------------'), ] + for item in integrations_view_names: + if hasattr(item, 'model') and hasattr(item, 'model_type_foreignkey'): + ct = ContentType.objects.filter( + model=item.model.__name__.lower(), + app_label=item.model._meta.app_label) + if ct.exists(): + result.append(( + ct[0].pk, + item.model._meta.verbose_name_plural)) + return result class IntegracaoTaView(TemplateView): - def get(self, *args, **kwargs): + def get_redirect_deactivated(self): + messages.error( + self.request, + _('O modulo de Textos Articulados está desativado.')) + return redirect('/') + + def get(self, request, *args, **kwargs): + + try: + if settings.DEBUG or not TipoDispositivo.objects.exists(): + self.import_pattern() + except Exception as e: + logger.error( + string_concat( + _('Ocorreu erro na importação do arquivo base dos Tipos de' + 'Dispositivos, entre outras informações iniciais.'), + str(e))) + return self.get_redirect_deactivated() + item = get_object_or_404(self.model, pk=kwargs['pk']) related_object_type = ContentType.objects.get_for_model(item) @@ -57,6 +114,9 @@ class IntegracaoTaView(TemplateView): object_id=item.pk, content_type=related_object_type) + tipo_ta = TipoTextoArticulado.objects.filter( + content_type=related_object_type) + if not ta.exists(): ta = TextoArticulado() tipo_ta = TipoTextoArticulado.objects.filter( @@ -102,36 +162,86 @@ class IntegracaoTaView(TemplateView): return redirect(to=reverse_lazy('sapl.compilacao:ta_text', kwargs={'ta_id': ta.pk})) - class Meta: - abstract = True + """msg = messages.error if not request.user.is_anonymous( + ) else messages.info + msg(request, + _('A funcionalidade de Textos Articulados está desativada.')) -def get_integrations_view_names(): - result = [] - modules = sys.modules - for key, value in modules.items(): - if key.endswith('.views'): - for v in value.__dict__.values(): - if hasattr(v, '__bases__'): - for base in v.__bases__: - if base == IntegracaoTaView: - result.append(v) - return result + if not request.user.is_anonymous(): + msg( + request, + _('Para ativá-la, os Tipos de Textos devem ser criados.')) + msg(request, + _('Sua tela foi redirecionada para a tela de ' + 'cadastro de Textos Articulados.')) -def choice_models_in_extenal_views(): - integrations_view_names = get_integrations_view_names() - result = [(None, '-------------'), ] - for item in integrations_view_names: - if hasattr(item, 'model') and hasattr(item, 'model_type_foreignkey'): - ct = ContentType.objects.filter( - model=item.model.__name__.lower(), - app_label=item.model._meta.app_label) - if ct.exists(): - result.append(( - ct[0].pk, - item.model._meta.verbose_name_plural)) - return result + return redirect(to=reverse_lazy('sapl.compilacao:tipo_ta_list', + kwargs={})) + else: + + return redirect(to=reverse_lazy( + '%s:%s_detail' % ( + item._meta.app_config.name, item._meta.model_name), + kwargs={'pk': item.pk}))""" + + def import_pattern(self): + + from unipath import Path + + compilacao_app = Path(__file__).ancestor(1) + print(compilacao_app) + with open(compilacao_app + '/compilacao_data_tables.sql', 'r') as f: + lines = f.readlines() + lines = [line.rstrip('\n') for line in lines] + + with connection.cursor() as cursor: + for line in lines: + try: + cursor.execute(line) + except IntegrityError as e: + if not settings.DEBUG: + logger.error( + string_concat( + _('Ocorreu erro na importação: '), + line, + str(e))) + + integrations_view_names = get_integrations_view_names() + + def cria_sigla(verbose_name): + verbose_name = verbose_name.upper().split() + if len(verbose_name) == 1: + verbose_name = verbose_name[0] + sigla = '' + for letra in verbose_name: + if letra in 'BCDFGHJKLMNPQRSTVWXYZ': + sigla += letra + else: + sigla = ''.join([palavra[0] for palavra in verbose_name]) + return sigla[:3] + + for view in integrations_view_names: + try: + tipo = TipoTextoArticulado() + tipo.sigla = cria_sigla( + view.model._meta.verbose_name + if view.model._meta.verbose_name + else view.model._meta.model_name) + tipo.descricao = view.model._meta.verbose_name + tipo.content_type = ContentType.objects.get_by_natural_key( + view.model._meta.app_label, view.model._meta.model_name) + tipo.save() + except IntegrityError as e: + if not settings.DEBUG: + logger.error( + string_concat( + _('Ocorreu erro na criação tipo de ta: '), + str(e))) + + class Meta: + abstract = True class CompMixin: @@ -983,8 +1093,7 @@ class TextEditView(TemplateView): ta_publicado = lista_ta_publicado[dispositivo.ta_publicado_id] if\ lista_ta_publicado else dispositivo.ta_publicado - if dispositivo.texto == \ - Dispositivo.TEXTO_PADRAO_DISPOSITIVO_REVOGADO: + if dispositivo.dispositivo_de_revogacao: return _('Revogado pelo %s - %s.') % ( d, ta_publicado) elif not dispositivo.dispositivo_substituido_id: @@ -1170,7 +1279,7 @@ class ActionDeleteDispositivoMixin(ActionsCommonsMixin): else: self.set_message(data, 'success', _( 'Exclusão efetuada com sucesso!'), modal=True) - ta_base.ordenar_dispositivos() + ta_base.reagrupar_ordem_de_dispositivos() except Exception as e: data['pk'] = self.kwargs['dispositivo_id'] self.set_message(data, 'danger', str(e), modal=True) @@ -1459,7 +1568,7 @@ class ActionDeleteDispositivoMixin(ActionsCommonsMixin): class ActionDispositivoCreateMixin(ActionsCommonsMixin): - def allowed_inserts(self): + def allowed_inserts(self, _base=None): request = self.request try: if request and 'perfil_estrutural' not in request.session: @@ -1467,7 +1576,8 @@ class ActionDispositivoCreateMixin(ActionsCommonsMixin): perfil_pk = request.session['perfil_estrutural'] - base = Dispositivo.objects.get(pk=self.kwargs['dispositivo_id']) + base = Dispositivo.objects.get( + pk=self.kwargs['dispositivo_id'] if not _base else _base) prox_possivel = Dispositivo.objects.filter( ordem__gt=base.ordem, @@ -1740,7 +1850,9 @@ class ActionDispositivoCreateMixin(ActionsCommonsMixin): def json_add_in(self, context): return self.json_add_next(context, local_add='json_add_in') - def json_add_next(self, context, local_add='json_add_next'): + def json_add_next( + self, + context, local_add='json_add_next', create_auto_inserts=True): try: dp_auto_insert = None @@ -1834,23 +1946,24 @@ class ActionDispositivoCreateMixin(ActionsCommonsMixin): dp.publicacao = pub_last dp.save() - tipos_dp_auto_insert = tipo.filhos_permitidos.filter( - filho_de_insercao_automatica=True, - perfil_id=context['perfil_pk']) - count_auto_insert = 0 - for tipoauto in tipos_dp_auto_insert: - qtdp = tipoauto.quantidade_permitida - if qtdp >= 0: - qtdp -= Dispositivo.objects.filter( - ta_id=dp.ta_id, - dispositivo_pai_id=dp.id, - tipo_dispositivo_id=tipoauto.filho_permitido.pk - ).count() - if qtdp > 0: + if create_auto_inserts: + tipos_dp_auto_insert = tipo.filhos_permitidos.filter( + filho_de_insercao_automatica=True, + perfil_id=context['perfil_pk']) + + for tipoauto in tipos_dp_auto_insert: + qtdp = tipoauto.quantidade_permitida + if qtdp >= 0: + qtdp -= Dispositivo.objects.filter( + ta_id=dp.ta_id, + dispositivo_pai_id=dp.id, + tipo_dispositivo_id=tipoauto.filho_permitido.pk + ).count() + if qtdp > 0: + count_auto_insert += 1 + else: count_auto_insert += 1 - else: - count_auto_insert += 1 # Inserção automática if count_auto_insert: @@ -2003,6 +2116,7 @@ class ActionDispositivoCreateMixin(ActionsCommonsMixin): except Exception as e: print(e) + return {} class ActionsEditMixin(ActionDragAndMoveDispositivoAlteradoMixin, @@ -2019,6 +2133,9 @@ class ActionsEditMixin(ActionDragAndMoveDispositivoAlteradoMixin, if 'variacao' in self.request.GET: context['variacao'] = self.request.GET['variacao'] + if 'pk_bloco' in self.request.GET: + context['pk_bloco'] = self.request.GET['pk_bloco'] + if 'perfil_estrutural' in self.request.session: context['perfil_pk'] = self.request.session['perfil_estrutural'] @@ -2066,7 +2183,67 @@ class ActionsEditMixin(ActionDragAndMoveDispositivoAlteradoMixin, return perfis[0].pk return None - def registra_alteracao(self, bloco_alteracao, dispositivo_a_alterar): + def json_add_next_registra_inclusao( + self, context, local_add='json_add_next'): + + base = Dispositivo.objects.get(pk=self.kwargs['dispositivo_id']) + bloco_alteracao = Dispositivo.objects.get(pk=context['pk_bloco']) + + data = {} + data.update({'pk': bloco_alteracao.pk, + 'pai': [bloco_alteracao.pk, ]}) + + """if bloco_alteracao.inicio_vigencia < base.inicio_vigencia: + self.set_message( + data, 'danger', + _('O Dispositivo Base para inclusão possui início de vigência ' + 'anterior ao bloco de alteração atual. Um bloco de ' + 'alteração não pode ser retroativo!'), time=10000) + return data""" + + data = self.json_add_next(context, + local_add=local_add, + create_auto_inserts=True) + + if data: + + ndp = Dispositivo.objects.get(pk=data['pk']) + + ndp.dispositivo_atualizador = bloco_alteracao + ndp.ta_publicado = bloco_alteracao.ta + ndp.publicacao = bloco_alteracao.publicacao + ndp.dispositivo_vigencia = bloco_alteracao.dispositivo_vigencia + if ndp.dispositivo_vigencia: + ndp.inicio_eficacia = ndp.dispositivo_vigencia.inicio_eficacia + ndp.inicio_vigencia = ndp.dispositivo_vigencia.inicio_vigencia + else: + ndp.inicio_eficacia = bloco_alteracao.inicio_eficacia + ndp.inicio_vigencia = bloco_alteracao.inicio_vigencia + + ndp.save() + + bloco_alteracao.ordenar_bloco_alteracao() + + data.update({'pk': ndp.pk, + 'pai': [bloco_alteracao.pk, ]}) + + return data + + def json_add_in_registra_inclusao(self, context): + return self.json_add_next_registra_inclusao( + context, local_add='json_add_in') + + def registra_revogacao(self, bloco_alteracao, dispositivo_a_revogar): + return self.registra_alteracao( + bloco_alteracao, + dispositivo_a_revogar, + revogacao=True + ) + + def registra_alteracao(self, + bloco_alteracao, + dispositivo_a_alterar, + revogacao=False): """ Caracteristicas: 1 - Se é um dispositivo simples e sem subsequente @@ -2096,10 +2273,10 @@ class ActionsEditMixin(ActionDragAndMoveDispositivoAlteradoMixin, for d in history: """FIXME: A comparação "<" deverá ser mudada para - "<=" caso um seja necessário permitir duas alterações + "<=" caso seja necessário permitir duas alterações com mesmo inicio_vigencia no mesmo dispositivo. Neste Caso, - a sequencia correta ficará a cargo dos reposicionamentos entre - dispositivos de mesmo nível, + a sequencia correta ficará a cargo dos reposicionamentos e + (a ser implementado) entre dispositivos de mesmo nível, """ if d.inicio_vigencia < bloco_alteracao.inicio_vigencia: dispositivo_a_alterar = d @@ -2118,8 +2295,12 @@ class ActionsEditMixin(ActionDragAndMoveDispositivoAlteradoMixin, dispositivo_a_alterar, dispositivo_a_alterar.tipo_dispositivo) ndp.rotulo = dispositivo_a_alterar.rotulo - ndp.texto = dispositivo_a_alterar.texto ndp.publicacao = bloco_alteracao.publicacao + if not revogacao: + ndp.texto = dispositivo_a_alterar.texto + else: + ndp.texto = Dispositivo.TEXTO_PADRAO_DISPOSITIVO_REVOGADO + ndp.dispositivo_de_revogacao = True ndp.dispositivo_vigencia = bloco_alteracao.dispositivo_vigencia if ndp.dispositivo_vigencia: @@ -2167,9 +2348,16 @@ class ActionsEditMixin(ActionDragAndMoveDispositivoAlteradoMixin, d.dispositivo_pai = ndp d.save() - self.set_message( - data, 'success', - _('Dispositivo de Alteração adicionado com sucesso.')) + ndp.ta.reordenar_dispositivos() + + if not revogacao: + self.set_message( + data, 'success', + _('Dispositivo de Alteração adicionado com sucesso.')) + else: + self.set_message( + data, 'success', + _('Dispositivo de Revogação adicionado com sucesso.')) except Exception as e: print(e) @@ -2193,8 +2381,13 @@ class DispositivoDinamicEditView( if 'action' in self.request.GET: initial.update({'editor_type': self.request.GET['action']}) + if self.action.startswith('get_form_'): + if self.action.endswith('_radio_allowed_inserts'): + initial.update({'allowed_inserts': self.allowed_inserts()}) + initial.update({'dispositivo_search_form': reverse_lazy( 'sapl.compilacao:dispositivo_search_form')}) + return initial def get_form(self, form_class=None): @@ -2221,11 +2414,17 @@ class DispositivoDinamicEditView( self.form_class = DispositivoEdicaoBasicaForm elif self.action.endswith('_alteracao'): self.form_class = DispositivoRegistroAlteracaoForm + elif self.action.endswith('_revogacao'): + self.form_class = DispositivoRegistroRevogacaoForm + elif self.action.endswith('_inclusao'): + self.form_class = DispositivoRegistroInclusaoForm + context = self.get_context_data() return self.render_to_response(context) + elif self.action.startswith('get_actions'): self.form_class = None - self.template_name = 'compilacao/ajax_actions_dinamic_edit.html' + self.object = Dispositivo.objects.get( pk=self.kwargs['dispositivo_id']) @@ -2234,17 +2433,26 @@ class DispositivoDinamicEditView( context = {} context['object'] = self.object - if ta_id == str(self.object.ta_id): + if self.action.endswith('_allowed_inserts_registro_inclusao'): + self.template_name = ('compilacao/' + 'ajax_actions_registro_inclusao.html') context['allowed_inserts'] = self.allowed_inserts() - if 'perfil_pk' in request.GET: - self.set_perfil_in_session( - request, request.GET['perfil_pk']) - elif 'perfil_estrutural' not in request.session: - self.set_perfil_in_session(request=request) + else: + self.template_name = ('compilacao/' + 'ajax_actions_dinamic_edit.html') + + if ta_id == str(self.object.ta_id): + context['allowed_inserts'] = self.allowed_inserts() - context['perfil_estrutural_list' - ] = PerfilEstruturalTextoArticulado.objects.all() + if 'perfil_pk' in request.GET: + self.set_perfil_in_session( + request, request.GET['perfil_pk']) + elif 'perfil_estrutural' not in request.session: + self.set_perfil_in_session(request=request) + + context['perfil_estrutural_list' + ] = PerfilEstruturalTextoArticulado.objects.all() return self.render_to_response(context) @@ -2267,6 +2475,20 @@ class DispositivoDinamicEditView( data = self.registra_alteracao(d, dispositivo_a_alterar) + elif formtype == 'get_form_revogacao': + + dispositivo_a_revogar = Dispositivo.objects.get( + pk=request.POST['dispositivo_revogado']) + + data = self.registra_revogacao(d, dispositivo_a_revogar) + + if formtype == 'get_form_inclusao': + + dispositivo_base_para_inclusao = Dispositivo.objects.get( + pk=request.POST['dispositivo_base_para_inclusao']) + + data = self.registra_inclusao(d, dispositivo_base_para_inclusao) + elif formtype == 'get_form_base': texto = request.POST['texto'].strip() texto_atualizador = request.POST['texto_atualizador'].strip() diff --git a/sapl/materia/views.py b/sapl/materia/views.py index 4efbc599b..a1638acfe 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -24,7 +24,7 @@ from django.views.generic import CreateView, ListView, TemplateView, UpdateView from django.views.generic.base import RedirectView from django_filters.views import FilterView -from sapl.base.models import CasaLegislativa +from sapl.base.models import CasaLegislativa, AppConfig from sapl.compilacao.views import IntegracaoTaView from sapl.crispy_layout_mixin import SaplFormLayout, form_actions, to_row from sapl.crud.base import (ACTION_CREATE, ACTION_DELETE, ACTION_DETAIL, @@ -72,6 +72,38 @@ TipoAutorCrud = CrudAux.build( TipoAutor, 'regime_tramitacao') +class MateriaTaView(IntegracaoTaView): + model = MateriaLegislativa + model_type_foreignkey = TipoMateriaLegislativa + """ + Para manter a app compilacao isolada das outras aplicações, + este get foi implementado para tratar uma prerrogativa externa + de usuário. + """ + + def get(self, request, *args, **kwargs): + if AppConfig.attr('texto_articulado_materia'): + return IntegracaoTaView.get(self, request, *args, **kwargs) + else: + return self.get_redirect_deactivated() + + +class ProposicaoTaView(IntegracaoTaView): + model = Proposicao + model_type_foreignkey = TipoProposicao + + def get(self, request, *args, **kwargs): + """ + Para manter a app compilacao isolada das outras aplicações, + este get foi implementado para tratar uma prerrogativa externa + de usuário. + """ + if AppConfig.attr('texto_articulado_proposicao'): + return IntegracaoTaView.get(self, request, *args, **kwargs) + else: + return self.get_redirect_deactivated() + + def recuperar_materia(request): tipo = TipoMateriaLegislativa.objects.get(pk=request.GET['tipo']) materia = MateriaLegislativa.objects.filter(tipo=tipo).last() @@ -970,16 +1002,6 @@ class MateriaLegislativaPesquisaView(FilterView): return context -class MateriaTaView(IntegracaoTaView): - model = MateriaLegislativa - model_type_foreignkey = TipoMateriaLegislativa - - -class ProposicaoTaView(IntegracaoTaView): - model = Proposicao - model_type_foreignkey = TipoProposicao - - class AcompanhamentoMateriaView(PermissionRequiredMixin, CreateView): template_name = "materia/acompanhamento_materia.html" permission_required = permissoes_materia() diff --git a/sapl/norma/views.py b/sapl/norma/views.py index a93bb012d..19aba74e3 100644 --- a/sapl/norma/views.py +++ b/sapl/norma/views.py @@ -5,6 +5,7 @@ from django.shortcuts import redirect from django.views.generic import FormView, ListView from django.views.generic.base import RedirectView +from sapl.base.models import AppConfig from sapl.compilacao.views import IntegracaoTaView from sapl.crud.base import RP_DETAIL, RP_LIST, Crud, CrudAux, make_pagination from sapl.norma.forms import NormaJuridicaForm @@ -23,6 +24,22 @@ TipoNormaCrud = CrudAux.build( list_field_names=['equivalente_lexml', 'sigla', 'descricao']) +class NormaTaView(IntegracaoTaView): + model = NormaJuridica + model_type_foreignkey = TipoNormaJuridica + + def get(self, request, *args, **kwargs): + """ + Para manter a app compilacao isolada das outras aplicações, + este get foi implementado para tratar uma prerrogativa externa + de usuário. + """ + if AppConfig.attr('texto_articulado_norma'): + return IntegracaoTaView.get(self, request, *args, **kwargs) + else: + return self.get_redirect_deactivated() + + class NormaCrud(Crud): model = NormaJuridica help_path = 'norma_juridica' @@ -179,8 +196,3 @@ class PesquisaNormaListView(ListView): context['page_range'] = make_pagination( page_obj.number, paginator.num_pages) return context - - -class NormaTaView(IntegracaoTaView): - model = NormaJuridica - model_type_foreignkey = TipoNormaJuridica diff --git a/sapl/static/js/compilacao.js b/sapl/static/js/compilacao.js index 22093eed5..6d797ea41 100644 --- a/sapl/static/js/compilacao.js +++ b/sapl/static/js/compilacao.js @@ -148,7 +148,7 @@ function DispostivoSearch(opts) { var btn_open_search = $('