Browse Source

Criar Texto Articulado e seu CRUD

pull/98/head
LeandroRoberto 9 years ago
parent
commit
5d0272b3c7
  1. 327
      compilacao/file2dispositivo.py
  2. 76
      compilacao/forms.py
  3. 349
      compilacao/insert_inicial_TipoDispositivo.sql
  4. 119
      compilacao/migrations/0033_auto_20151222_1608.py
  5. 22
      compilacao/migrations/0034_auto_20151222_1609.py
  6. 32
      compilacao/migrations/0035_auto_20151223_1709.py
  7. 114
      compilacao/models.py
  8. 8
      compilacao/templatetags/compilacao_filters.py
  9. 66
      compilacao/urls.py
  10. 83
      compilacao/utils.py
  11. 1351
      compilacao/views.py
  12. 1351
      compilacao/views2.py
  13. 10
      materia/urls.py
  14. 5
      norma/urls.py
  15. 1
      requirements/requirements.txt
  16. 27
      sapl/utils.py
  17. 2
      static/styles/compilacao.scss
  18. 8
      templates/compilacao/dispositivo_search_fragment_form.html
  19. 2
      templates/compilacao/edit.html
  20. 8
      templates/compilacao/edit_bloco.html
  21. 2
      templates/compilacao/edit_bloco_alteracao.html
  22. 6
      templates/compilacao/form.html
  23. 14
      templates/compilacao/index.html
  24. 14
      templates/compilacao/index_bloco.html
  25. 2
      templates/compilacao/index_bloco_alteracao.html
  26. 71
      templates/compilacao/textoarticulado_detail.html
  27. 61
      templates/compilacao/textoarticulado_list.html

327
compilacao/file2dispositivo.py

@ -1,327 +0,0 @@
import re
from odf.element import Node, Text
from odf.opendocument import load
from odf.table import Table, TableCell, TableRow
from odf.text import (List, ListHeader, ListItem, ListLevelStyleBullet,
ListLevelStyleNumber, ListStyle, Note)
from sapl import utils
class Parser(object):
parser_list = []
def parser(self, _filepath):
self.filepath = _filepath
return self.re_parser()
def re_parser(self):
self.parser_list = []
# odt identificado pela extensão ou teste caso o arquivo sem extensão
if self.filepath.endswith('.odt') or\
not re.search(r"(\w+)\.(\w+)", self.filepath):
try:
odtparser = OdtParser()
self.parser_list = odtparser.parser(self.filepath)
return self.parser_list
except Exception as e:
print(e)
# TODO: Continue para outros formatos
pass
# doc identificado pela extensão ou teste caso o arquivo sem extensão
if self.filepath.endswith(('.doc', 'docx')) or\
not re.search(r"(\w+)\.(\w+)", self.filepath):
try:
# TODO
return []
except Exception as e:
# TODO: Continue para outros formatos
pass
return []
def _reduce_terms(self, _nodes=None, level=0):
print(level)
if not _nodes:
nodes = self.parser_list
else:
nodes = _nodes
fstr = True
i = -1
for nd in nodes:
i += 1
# print(nd)
if not _nodes:
fstr = False
if nd[0] == 'table:table':
continue
if isinstance(nd, list):
fstr = False
nodes[i] = self._reduce_terms(nd, level=level + 1)
if fstr:
return ' '.join(nodes)
return nodes
class OdtParser(Parser):
FNC1 = '1'
FNCI = 'I'
FNCi = 'i'
FNCA = 'A'
FNCa = 'a'
FNC8 = '*'
FNCN = 'N'
def re_parser(self):
self.textdoc = load(self.filepath)
self.level_list = 0
self.control_list = {}
# mm = ODF2MoinMoin(self.filepath)
# self.parser_list = [mm.toString(), ]
self.parser_list = self._import_itens(self.textdoc.text, level=0)
# self._reduce_terms()
return self.parser_list
def _import_itens(self, element, level=0):
try:
result = []
for el in element.childNodes:
print(level, el.tagName)
_r = ''
if el.tagName == 'Text':
_r = str(el)
else:
if el.isInstanceOf(Note):
continue
elif el.isInstanceOf(Table):
_r = self._import_table(el, level=level + 1)
elif el.isInstanceOf(List):
_r = self._import_list(el, level=level + 1)
# elif el.isInstanceOf(P):
# _r = [self.extractText(el),]
elif el.hasChildNodes():
_r = self._import_itens(el, level=level + 1)
else:
_r = str(el)
if _r:
if isinstance(_r, str):
result += [_r, ]
else:
result += _r
return result
except Exception as e:
print(e)
def _import_table(self, element, level=0):
result = ''
print(level)
try:
if element.isInstanceOf(Table):
result += '<table width="100%">'
for el in element.childNodes:
_r = ''
if isinstance(el, Text):
_r = str(el)
else:
if el.isInstanceOf(TableRow):
_r = self._import_table(el, level=level + 1)
_r = '<tr>%s</tr>' % (''.join(_r))
result += ''.join(_r)
elif el.isInstanceOf(TableCell):
_r = self._import_table(el, level=level + 1)
if el.getAttribute('numberrowsspanned'):
_r = '<td rowspan="%s">%s</td>' % (
el.getAttribute('numberrowsspanned'),
''.join(_r))
elif el.getAttribute('numbercolumnsspanned'):
_r = '<td colspan="%s">%s</td>' % (
el.getAttribute('numbercolumnsspanned'),
''.join(_r))
else:
_r = '<td>%s</td>' % (''.join(_r))
result += ''.join(_r)
else:
_r = self.extractText(el)
# _r = self._reduce_terms(_r)
if isinstance(_r, list):
result += '<br>'.join(_r)
else:
if _r:
result += _r + '<br>'
if element.isInstanceOf(Table):
result += '</table>'
return [result, ]
except Exception as e:
print(e)
def _import_list(self, element, level=0):
self.level_list += 1
result = []
print(level)
numsufixo = ''
numformat = ''
startvalue = ''
count_list_item = 0
try:
if element.isInstanceOf(List):
_stylename = element.getAttribute('stylename')
if _stylename:
self.stylename = _stylename
liststyles = self.textdoc.getElementsByType(ListStyle)
for liststyle in liststyles:
if liststyle.getAttribute('name') == self.stylename:
break
stylesnumbers = liststyle.getElementsByType(
ListLevelStyleNumber)
for item in stylesnumbers:
if item.getAttribute('level') == str(self.level_list):
numsufixo = item.getAttribute('numsuffix') or ''
numformat = item.getAttribute('numformat') or ''
startvalue = item.getAttribute('startvalue') or ''
break
if not numformat:
stylesbullets = liststyle.getElementsByType(
ListLevelStyleBullet)
for item in stylesbullets:
if item.getAttribute('level') == str(self.level_list):
numformat = '*'
break
_id = element.getAttribute('id')
if _id:
self.id_last_list = _id
if self.id_last_list not in self.control_list:
self.control_list[self.id_last_list] = [0, ] * 10
if _id:
if not element.getAttribute('continuelist') and\
self.level_list == 1:
self.control_list[self.id_last_list] = [0, ] * 10
except Exception as e:
print(e)
try:
flag_first = True
for el in element.childNodes:
prefixo = ''
if isinstance(el, Text):
_r = [str(el), ]
else:
if el.isInstanceOf(ListHeader) or\
el.isInstanceOf(ListItem):
if startvalue and flag_first:
self.control_list[self.id_last_list][
self.level_list - 1] = int(startvalue) - 1
flag_first = False
self.control_list[self.id_last_list][
self.level_list - 1] += 1
count_list_item = self.control_list[self.id_last_list][
self.level_list - 1]
if numformat == OdtParser.FNC1:
prefixo = str(count_list_item)
elif numformat == OdtParser.FNCI:
prefixo = utils.int_to_roman(count_list_item)
elif numformat == OdtParser.FNCi:
prefixo = utils.int_to_roman(
count_list_item).lower()
elif numformat == OdtParser.FNCA:
prefixo = utils.int_to_letter(count_list_item)
elif numformat == OdtParser.FNCa:
prefixo = utils.int_to_letter(
count_list_item).lower()
elif numformat == OdtParser.FNC8:
prefixo = '*'
else:
prefixo = str(count_list_item)
prefixo += numsufixo
_r = self._import_itens(el, level=level + 1)
if _r:
if prefixo:
_r[0] = '%s %s' % (prefixo, _r[0])
result += _r
else:
result += _r
self.level_list -= 1
return result
except Exception as e:
print(e)
def extractText(self, odfElement):
""" Extract text content from an Element, with whitespace represented
properly. Returns the text, with tabs, spaces, and newlines
correctly evaluated. This method recursively descends through the
children of the given element, accumulating text and "unwrapping"
<text:s>, <text:tab>, and <text:line-break> elements along the way.
"""
result = []
if len(odfElement.childNodes) != 0:
for child in odfElement.childNodes:
if child.nodeType == Node.TEXT_NODE:
result.append(child.data)
elif child.nodeType == Node.ELEMENT_NODE:
subElement = child
tagName = subElement.qname
if tagName == (u"urn:oasis:names:tc:opendocument:xmlns:" +
"text:1.0", u"line-break"):
result.append("\n")
elif tagName == (u"urn:oasis:names:tc:opendocument:" +
"xmlns:text:1.0", u"tab"):
result.append("\t")
elif tagName == (u"urn:oasis:names:tc:opendocument:" +
"xmlns:text:1.0", u"s"):
c = subElement.getAttribute('c')
if c:
spaceCount = int(c)
else:
spaceCount = 1
result.append(" " * spaceCount)
else:
result.append(self.extractText(subElement))
return ''.join(result)

76
compilacao/forms.py

@ -1,13 +1,18 @@
from crispy_forms.helper import FormHelper from crispy_forms.helper import FormHelper
from crispy_forms.layout import HTML, Button, Column, Div, Field, Layout, Row from crispy_forms_foundation.layout import (HTML, Column, Div, Fieldset,
Layout, Row, Submit)
from crispy_forms_foundation.layout.buttons import Button, ButtonHolder
from crispy_forms_foundation.layout.fields import Field
from django import forms from django import forms
from django.core.exceptions import NON_FIELD_ERRORS from django.core.exceptions import NON_FIELD_ERRORS
from django.forms.models import ModelForm from django.forms.models import ModelForm
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from compilacao.models import Dispositivo, Nota, TipoNota, TipoVide, Vide from compilacao.models import Dispositivo, Nota, TipoNota, TipoVide, Vide,\
TextoArticulado, TipoTextoArticulado
from compilacao.utils import to_row, to_column
from norma.models import TipoNormaJuridica from norma.models import TipoNormaJuridica
from sapl.layout import to_column, to_row
class UpLoadImportFileForm(forms.Form): class UpLoadImportFileForm(forms.Form):
@ -20,6 +25,71 @@ nota_error_messages = {
'invalid': _('URL inválida.') 'invalid': _('URL inválida.')
} }
ta_error_messages = {
'required': _('Este campo é obrigatório'),
}
class TaForm(ModelForm):
tipo_ta = forms.ModelChoiceField(
label=_('Tipo do Texto Articulado'),
queryset=TipoTextoArticulado.objects.all(),
required=True,
empty_label=None)
numero = forms.IntegerField(label=_('Número'), required=True)
ano = forms.IntegerField(label=_('Ano'), required=True)
data = forms.DateField(
label=_('Data'),
input_formats=['%d/%m/%Y'],
required=True,
widget=forms.DateInput(
format='%d/%m/%Y'),
error_messages=ta_error_messages
)
ementa = forms.CharField(
label='',
widget=forms.Textarea,
error_messages=ta_error_messages)
observacao = forms.CharField(
label='',
widget=forms.Textarea,
error_messages=ta_error_messages,
required=False)
class Meta:
model = TextoArticulado
fields = ['tipo_ta',
'numero',
'ano',
'data',
'ementa',
'observacao',
]
def __init__(self, *args, **kwargs):
row1 = to_row([
('tipo_ta', 5),
('numero', 2),
('ano', 2),
('data', 3),
])
self.helper = FormHelper()
self.helper.layout = Layout(
row1,
Fieldset(_('Ementa'), Column('ementa'), css_class="large-12"),
Fieldset(
_('Observações'), Column('observacao'), css_class="large-12"),
ButtonHolder(
Submit('Save', 'Save',
css_class='radius')
)
)
super(TaForm, self).__init__(*args, **kwargs)
class NotaForm(ModelForm): class NotaForm(ModelForm):
NPRIV = 1 NPRIV = 1

349
compilacao/insert_inicial_TipoDispositivo.sql

@ -1,349 +0,0 @@
--
-- PostgreSQL database dump
--
-- Dumped from database version 9.4.5
-- Dumped by pg_dump version 9.4.5
-- Started on 2015-11-19 19:39:23 BRST
SET statement_timeout = 0;
SET lock_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET search_path = public, pg_catalog;
--
-- TOC entry 2567 (class 0 OID 40610)
-- Dependencies: 366
-- Data for Name: compilacao_perfilestruturaltextosnormativos; Type: TABLE DATA; Schema: public; Owner: sapl
--
INSERT INTO compilacao_perfilestruturaltextosnormativos (id, nome, padrao, sigla) VALUES (1, 'Perfil Lei Complementar 95', false, 'LC95');
INSERT INTO compilacao_perfilestruturaltextosnormativos (id, nome, padrao, sigla) VALUES (2, 'Perfil Jataí - Goiás', true, 'PJTIGO');
--
-- TOC entry 2575 (class 0 OID 0)
-- Dependencies: 365
-- Name: compilacao_perfilestruturaltextosnormativos_id_seq; Type: SEQUENCE SET; Schema: public; Owner: sapl
--
SELECT pg_catalog.setval('compilacao_perfilestruturaltextosnormativos_id_seq', 2, true);
--
-- TOC entry 2562 (class 0 OID 38245)
-- Dependencies: 204
-- Data for Name: compilacao_tipodispositivo; Type: TABLE DATA; Schema: public; Owner: sapl
--
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 (102, 'Disposições Gerais', 'disp_gerais', '', 'Disposições Gerais', 0, '', '<br>', '', '<br>', '', '', 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, '', '<br>', '', '<br>', '', '', 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, '', '<br>', '', '<br>', '', '', 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 (122, 'Inciso', 'inciso', '', '', 0, '', '&nbsp;&ndash;&nbsp;', '', '', '', '', 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 (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 (118, 'Item de Seção', 'itemsecao', '', 'Item ', 0, '', '<br>', '', '<br>', '<br>', '', 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 (117, 'SubSeção', 'subsecao', '', 'SubSeção ', 0, '', '<br>', '', '<br>', '<br>', '', 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 (116, 'Seção', 'secao', '', 'Seção ', 0, '', '<br>', '', '<br>', '<br>', '', 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, '', '<br>', '', '<br>', '<br>', '', 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, '', '<br>', '', '<br>', '<br>', '', 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, '', '<br>', '', '<br>', '<br>', '', 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 (111, 'Anexo', 'anexo', '', 'Anexo ', 0, '', '<br>', '', '<br>', '<br>', '', 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, '', '<br>', '', '<br>', '<br>', '', 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 (124, 'Item', 'item', '', '', 0, '', '&nbsp;&ndash;&nbsp;', '', '', '', '', 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 (121, 'Parágrafo', 'paragrafo', '', '§ ;Parágrafo Único ', 9, '', '&nbsp;&ndash;&nbsp;', '', '', '', '', 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 (101, 'Disposições Preliminares', 'disp_preliminares', '', 'Disposições Preliminares', 0, '', '<br>', '', '<br>', '', '', 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 (119, 'Artigo', 'artigo', '', 'Art. ', 9, '.', '&nbsp;&ndash;&nbsp;', '', '', '', '', 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 (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 (123, 'Alinea', 'alinea', '', '', 0, ')', '&nbsp;&ndash;&nbsp;', '', '', '', '', 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 (3, 'Bloco Alteração', 'bloco_alteracao', '', '', 0, '', '', '', '', '', '', true, '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, '1', '1', '1', '1', '1', '1', '-', '-', '-', '-', '-', false, 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 (2, 'Ementa', 'ementa', '', '', 0, '', '', '', '', '', '', false, 'N', '1', '1', '1', '1', '1', '-', '-', '-', '-', '-', false, false);
--
-- TOC entry 2576 (class 0 OID 0)
-- Dependencies: 205
-- Name: compilacao_tipodispositivo_id_seq; Type: SEQUENCE SET; Schema: public; Owner: sapl
--
SELECT pg_catalog.setval('compilacao_tipodispositivo_id_seq', 28, true);
--
-- TOC entry 2564 (class 0 OID 38253)
-- Dependencies: 206
-- Data for Name: compilacao_tipodispositivorelationship; Type: TABLE DATA; Schema: public; Owner: sapl
--
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, 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, true);
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, 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, 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, true);
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, true);
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, 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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, 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, true);
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, 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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (356, 101, 3, false, 1, -1, true);
INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (357, 102, 3, false, 1, -1, true);
INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (358, 103, 3, false, 1, -1, true);
INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (359, 104, 3, false, 1, -1, true);
INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (360, 111, 3, false, 1, -1, true);
INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (361, 112, 3, false, 1, -1, true);
INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (362, 113, 3, false, 1, -1, true);
INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (363, 114, 3, false, 1, -1, true);
INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (364, 115, 3, false, 1, -1, true);
INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (365, 116, 3, false, 1, -1, true);
INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (366, 117, 3, false, 1, -1, true);
INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (368, 119, 3, false, 1, -1, true);
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, true);
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, true);
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, 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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (126, 1, 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 (127, 2, 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 (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 (147, 125, 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 (146, 124, 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 (145, 123, 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 (144, 122, 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 (143, 121, 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 (142, 120, 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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (221, 120, 119, 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 (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 (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 (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 (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 (322, 118, 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 (326, 118, 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 (329, 118, 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 (331, 118, 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 (353, 118, 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 (367, 118, 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 (333, 119, 118, 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 (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 (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 (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 (118, 113, 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 (129, 101, 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 (130, 102, 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 (131, 103, 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 (132, 104, 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 (133, 111, 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 (134, 112, 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 (135, 113, 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 (136, 114, 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 (137, 115, 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 (138, 116, 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 (139, 117, 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 (141, 119, 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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (253, 1, 3, false, 1, -1, true);
INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (254, 2, 3, false, 1, -1, true);
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, true);
INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (256, 125, 3, false, 1, -1, true);
INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (257, 124, 3, false, 1, -1, true);
INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (258, 123, 3, false, 1, -1, true);
INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (259, 122, 3, false, 1, -1, true);
INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (260, 121, 3, false, 1, -1, true);
INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (261, 120, 3, false, 1, -1, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, 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, true);
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, true);
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, 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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, true);
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, 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, true);
INSERT INTO compilacao_tipodispositivorelationship (id, filho_permitido_id, pai_id, filho_de_insercao_automatica, perfil_id, quantidade_permitida, permitir_variacao) VALUES (287, 118, 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 (269, 118, 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 (278, 118, 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 (296, 118, 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 (304, 118, 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 (311, 118, 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 (317, 118, 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 (335, 121, 119, false, 1, -1, false);
--
-- TOC entry 2577 (class 0 OID 0)
-- Dependencies: 207
-- Name: compilacao_tipodispositivorelationship_id_seq; Type: SEQUENCE SET; Schema: public; Owner: sapl
--
SELECT pg_catalog.setval('compilacao_tipodispositivorelationship_id_seq', 384, true);
-- Completed on 2015-11-19 19:39:24 BRST
--
-- PostgreSQL database dump complete
--

119
compilacao/migrations/0033_auto_20151222_1608.py

@ -0,0 +1,119 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0032_auto_20151213_1538'),
]
operations = [
migrations.CreateModel(
name='PerfilEstruturalTextoArticulado',
fields=[
('id', models.AutoField(
auto_created=True, serialize=False, primary_key=True,
verbose_name='ID')),
('sigla', models.CharField(
unique=True, max_length=10, verbose_name='Sigla')),
('nome', models.CharField(max_length=50, verbose_name='Nome')),
('padrao', models.BooleanField(
choices=[(True, 'Sim'), (False, 'Não')], default=False,
verbose_name='Padrão')),
],
options={
'verbose_name_plural': 'Perfis Estruturais de'
' Textos Articulados',
'verbose_name': 'Perfil Estrutural de Texto Articulado',
'ordering': ['-padrao', 'sigla'],
},
),
migrations.CreateModel(
name='TextoArticulado',
fields=[
('id', models.AutoField(
auto_created=True,
serialize=False, primary_key=True, verbose_name='ID')),
('created', models.DateTimeField(
auto_now_add=True, verbose_name='created')),
('modified', models.DateTimeField(
auto_now=True, verbose_name='modified')),
('data', models.DateField(
blank=True, null=True, verbose_name='Data')),
('ementa', models.TextField(verbose_name='Ementa')),
('observacao', models.TextField(
blank=True, null=True, verbose_name='Observação')),
('numero', models.PositiveIntegerField(verbose_name='Número')),
('ano', models.PositiveSmallIntegerField(verbose_name='Ano')),
],
options={
'verbose_name_plural': 'Textos Articulados',
'verbose_name': 'Texto Articulado',
},
),
migrations.AlterModelOptions(
name='dispositivo',
options={'verbose_name_plural': 'Dispositivos',
'verbose_name': 'Dispositivo'},
),
migrations.RemoveField(
model_name='publicacao',
name='norma',
),
migrations.AlterField(
model_name='dispositivo',
name='visibilidade',
field=models.BooleanField(choices=[(
True, 'Sim'), (False, 'Não')], default=False,
verbose_name='Visibilidade no Texto Articulado Publicado'),
),
migrations.AlterField(
model_name='tipodispositivorelationship',
name='perfil',
field=models.ForeignKey(
to='compilacao.PerfilEstruturalTextoArticulado'),
),
migrations.AlterUniqueTogether(
name='dispositivo',
unique_together=set([]),
),
migrations.DeleteModel(
name='PerfilEstruturalTextosNormativos',
),
migrations.RemoveField(
model_name='dispositivo',
name='norma',
),
migrations.RemoveField(
model_name='dispositivo',
name='norma_publicada',
),
migrations.AddField(
model_name='dispositivo',
name='ta',
field=models.ForeignKey(
related_name='dispositivos_set',
verbose_name='Texto Articulado',
to='compilacao.TextoArticulado', default=1),
preserve_default=False,
),
migrations.AddField(
model_name='dispositivo',
name='ta_publicado',
field=models.ForeignKey(
related_name='dispositivos_alterados_pelo_ta_set', blank=True,
verbose_name='Texto Articulado Publicado',
default=None, to='compilacao.TextoArticulado', null=True),
),
migrations.AddField(
model_name='publicacao',
name='ta',
field=models.ForeignKey(
verbose_name='Texto Articulado',
to='compilacao.TextoArticulado', default=1),
preserve_default=False,
),
]

22
compilacao/migrations/0034_auto_20151222_1609.py

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0033_auto_20151222_1608'),
]
operations = [
migrations.AlterModelOptions(
name='dispositivo',
options={'ordering': ['ta', 'ordem'], 'verbose_name_plural': 'Dispositivos', 'verbose_name': 'Dispositivo'},
),
migrations.AlterUniqueTogether(
name='dispositivo',
unique_together=set([('ta', 'dispositivo0', 'dispositivo1', 'dispositivo2', 'dispositivo3', 'dispositivo4', 'dispositivo5', 'tipo_dispositivo', 'dispositivo_pai', 'ta_publicado', 'publicacao'), ('ta', 'ordem')]),
),
]

32
compilacao/migrations/0035_auto_20151223_1709.py

@ -0,0 +1,32 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0034_auto_20151222_1609'),
]
operations = [
migrations.CreateModel(
name='TipoTextoArticulado',
fields=[
('id', models.AutoField(auto_created=True, serialize=False, primary_key=True, verbose_name='ID')),
('sigla', models.CharField(max_length=3, verbose_name='Sigla')),
('descricao', models.CharField(max_length=50, verbose_name='Descrição')),
],
options={
'verbose_name_plural': 'Tipos de Texto Articulados',
'verbose_name': 'Tipo de Texto Articulado',
},
),
migrations.AddField(
model_name='textoarticulado',
name='tipo_ta',
field=models.ForeignKey(to='compilacao.TipoTextoArticulado', default=1, verbose_name='Tipo de Texto Articulado'),
preserve_default=False,
),
]

114
compilacao/models.py

@ -4,11 +4,11 @@ from django.contrib.auth.models import User
from django.db import models from django.db import models
from django.db.models import F, Q from django.db.models import F, Q
from django.db.models.aggregates import Max from django.db.models.aggregates import Max
from django.template import defaultfilters
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from norma.models import NormaJuridica from compilacao import utils
from sapl import utils from compilacao.utils import YES_NO_CHOICES
from sapl.utils import YES_NO_CHOICES
class TimestampedMixin(models.Model): class TimestampedMixin(models.Model):
@ -58,6 +58,41 @@ class BaseModel(models.Model):
raise ValidationError(msg) raise ValidationError(msg)
class TipoTextoArticulado(models.Model):
sigla = models.CharField(max_length=3, verbose_name=_('Sigla'))
descricao = models.CharField(max_length=50, verbose_name=_('Descrição'))
class Meta:
verbose_name = _('Tipo de Texto Articulado')
verbose_name_plural = _('Tipos de Texto Articulados')
def __str__(self):
return self.descricao
class TextoArticulado(TimestampedMixin):
data = models.DateField(blank=True, null=True, verbose_name=_('Data'))
ementa = models.TextField(verbose_name=_('Ementa'))
observacao = models.TextField(
blank=True, null=True, verbose_name=_('Observação'))
numero = models.PositiveIntegerField(verbose_name=_('Número'))
ano = models.PositiveSmallIntegerField(verbose_name=_('Ano'))
tipo_ta = models.ForeignKey(
TipoTextoArticulado,
verbose_name=_('Tipo de Texto Articulado'))
class Meta:
verbose_name = _('Texto Articulado')
verbose_name_plural = _('Textos Articulados')
ordering = ['-data', '-numero']
def __str__(self):
return _('Texto Articulado nº %(numero)s de %(data)s') % {
'tipo': self.tipo_ta,
'numero': self.numero,
'data': defaultfilters.date(self.data, "d \d\e F \d\e Y")}
class TipoNota(models.Model): class TipoNota(models.Model):
sigla = models.CharField( sigla = models.CharField(
max_length=10, unique=True, verbose_name=_('Sigla')) max_length=10, unique=True, verbose_name=_('Sigla'))
@ -259,7 +294,7 @@ class TipoDispositivo(BaseModel):
self, pai_relativo, include_relative_autos=True, perfil_pk=None): self, pai_relativo, include_relative_autos=True, perfil_pk=None):
if not perfil_pk: if not perfil_pk:
perfis = PerfilEstruturalTextosNormativos.objects.filter( perfis = PerfilEstruturalTextoArticulado.objects.filter(
padrao=True)[:1] padrao=True)[:1]
if not perfis.exists(): if not perfis.exists():
@ -279,7 +314,7 @@ class TipoDispositivo(BaseModel):
self, base, perfil_pk=None): self, base, perfil_pk=None):
if not perfil_pk: if not perfil_pk:
perfis = PerfilEstruturalTextosNormativos.objects.filter( perfis = PerfilEstruturalTextoArticulado.objects.filter(
padrao=True)[:1] padrao=True)[:1]
if not perfis.exists(): if not perfis.exists():
@ -294,7 +329,7 @@ class TipoDispositivo(BaseModel):
return False return False
class PerfilEstruturalTextosNormativos(BaseModel): class PerfilEstruturalTextoArticulado(BaseModel):
sigla = models.CharField( sigla = models.CharField(
max_length=10, unique=True, verbose_name=_('Sigla')) max_length=10, unique=True, verbose_name=_('Sigla'))
nome = models.CharField(max_length=50, verbose_name=_('Nome')) nome = models.CharField(max_length=50, verbose_name=_('Nome'))
@ -303,8 +338,8 @@ class PerfilEstruturalTextosNormativos(BaseModel):
choices=YES_NO_CHOICES, verbose_name=_('Padrão')) choices=YES_NO_CHOICES, verbose_name=_('Padrão'))
class Meta: class Meta:
verbose_name = _('Perfil Estrutural de Textos Normativos') verbose_name = _('Perfil Estrutural de Texto Articulado')
verbose_name_plural = _('Perfis Estruturais de Textos Normativos') verbose_name_plural = _('Perfis Estruturais de Textos Articulados')
ordering = ['-padrao', 'sigla'] ordering = ['-padrao', 'sigla']
@ -317,7 +352,7 @@ class TipoDispositivoRelationship(BaseModel):
filho_permitido = models.ForeignKey( filho_permitido = models.ForeignKey(
TipoDispositivo, TipoDispositivo,
related_name='possiveis_pais') related_name='possiveis_pais')
perfil = models.ForeignKey(PerfilEstruturalTextosNormativos) perfil = models.ForeignKey(PerfilEstruturalTextoArticulado)
filho_de_insercao_automatica = models.BooleanField( filho_de_insercao_automatica = models.BooleanField(
default=False, default=False,
choices=YES_NO_CHOICES, verbose_name=_('Filho de Inserção Automática')) choices=YES_NO_CHOICES, verbose_name=_('Filho de Inserção Automática'))
@ -369,8 +404,8 @@ class VeiculoPublicacao(models.Model):
class Publicacao(TimestampedMixin): class Publicacao(TimestampedMixin):
norma = models.ForeignKey( ta = models.ForeignKey(
NormaJuridica, verbose_name=_('Norma Jurídica')) TextoArticulado, verbose_name=_('Texto Articulado'))
veiculo_publicacao = models.ForeignKey( veiculo_publicacao = models.ForeignKey(
VeiculoPublicacao, verbose_name=_('Veículo de Publicação')) VeiculoPublicacao, verbose_name=_('Veículo de Publicação'))
tipo_publicacao = models.ForeignKey( tipo_publicacao = models.ForeignKey(
@ -467,7 +502,7 @@ class Dispositivo(BaseModel, TimestampedMixin):
visibilidade = models.BooleanField( visibilidade = models.BooleanField(
default=False, default=False,
choices=YES_NO_CHOICES, choices=YES_NO_CHOICES,
verbose_name=_('Visibilidade na Norma Publicada')) verbose_name=_('Visibilidade no Texto Articulado Publicado'))
tipo_dispositivo = models.ForeignKey( tipo_dispositivo = models.ForeignKey(
TipoDispositivo, TipoDispositivo,
@ -478,15 +513,15 @@ class Dispositivo(BaseModel, TimestampedMixin):
Publicacao, Publicacao,
blank=True, null=True, default=None, verbose_name=_('Publicação')) blank=True, null=True, default=None, verbose_name=_('Publicação'))
norma = models.ForeignKey( ta = models.ForeignKey(
NormaJuridica, TextoArticulado,
related_name='dispositivos_set', related_name='dispositivos_set',
verbose_name=_('Norma Jurídica')) verbose_name=_('Texto Articulado'))
norma_publicada = models.ForeignKey( ta_publicado = models.ForeignKey(
NormaJuridica, TextoArticulado,
blank=True, null=True, default=None, blank=True, null=True, default=None,
related_name='dispositivos_alterados_pela_norma_set', related_name='dispositivos_alterados_pelo_ta_set',
verbose_name=_('Norma Jurídica Publicada')) verbose_name=_('Texto Articulado Publicado'))
dispositivo_subsequente = models.ForeignKey( dispositivo_subsequente = models.ForeignKey(
'self', 'self',
@ -517,10 +552,10 @@ class Dispositivo(BaseModel, TimestampedMixin):
class Meta: class Meta:
verbose_name = _('Dispositivo') verbose_name = _('Dispositivo')
verbose_name_plural = _('Dispositivos') verbose_name_plural = _('Dispositivos')
ordering = ['norma', 'ordem'] ordering = ['ta', 'ordem']
unique_together = ( unique_together = (
('norma', 'ordem',), ('ta', 'ordem',),
('norma', ('ta',
'dispositivo0', 'dispositivo0',
'dispositivo1', 'dispositivo1',
'dispositivo2', 'dispositivo2',
@ -529,14 +564,14 @@ class Dispositivo(BaseModel, TimestampedMixin):
'dispositivo5', 'dispositivo5',
'tipo_dispositivo', 'tipo_dispositivo',
'dispositivo_pai', 'dispositivo_pai',
'norma_publicada', 'ta_publicado',
'publicacao',), 'publicacao',),
) )
def __str__(self): def __str__(self):
return '%(rotulo)s - %(norma)s' % { return '%(rotulo)s - %(ta)s' % {
'rotulo': (self.rotulo if self.rotulo else self.tipo_dispositivo), 'rotulo': (self.rotulo if self.rotulo else self.tipo_dispositivo),
'norma': self.norma} 'ta': self.ta}
def rotulo_padrao(self, local_insert=0, for_insert_in=0): def rotulo_padrao(self, local_insert=0, for_insert_in=0):
""" """
@ -774,36 +809,37 @@ class Dispositivo(BaseModel, TimestampedMixin):
proximo_bloco = Dispositivo.objects.filter( proximo_bloco = Dispositivo.objects.filter(
ordem__gt=self.ordem, ordem__gt=self.ordem,
nivel__lte=self.nivel, nivel__lte=self.nivel,
norma_id=self.norma_id)[:1] ta_id=self.ta_id)[:1]
elif local == 'add_in': elif local == 'add_in':
proximo_bloco = Dispositivo.objects.filter( proximo_bloco = Dispositivo.objects.filter(
ordem__gt=self.ordem, ordem__gt=self.ordem,
nivel__lte=self.nivel + 1, nivel__lte=self.nivel + 1,
norma_id=self.norma_id).exclude( ta_id=self.ta_id).exclude(
tipo_dispositivo__class_css='caput')[:1] tipo_dispositivo__class_css='caput')[:1]
else: else:
proximo_bloco = Dispositivo.objects.filter( proximo_bloco = Dispositivo.objects.filter(
ordem__gte=self.ordem, ordem__gte=self.ordem,
norma_id=self.norma_id)[:1] ta_id=self.ta_id)[:1]
if proximo_bloco.exists(): if proximo_bloco.exists():
ordem = proximo_bloco[0].ordem ordem = proximo_bloco[0].ordem
proximo_bloco = Dispositivo.objects.order_by('-ordem').filter( proximo_bloco = Dispositivo.objects.order_by('-ordem').filter(
ordem__gte=ordem, ordem__gte=ordem,
norma_id=self.norma_id) ta_id=self.ta_id)
proximo_bloco.update(ordem=F('ordem') + 1) proximo_bloco.update(ordem=F('ordem') + 1)
proximo_bloco.update( proximo_bloco.update(
ordem=F('ordem') + ( ordem=F('ordem') + (
Dispositivo.INTERVALO_ORDEM * espaco_a_criar - 1)) Dispositivo.INTERVALO_ORDEM * espaco_a_criar - 1))
else: else:
# inserção no fim da norma # inserção no fim da ta
ordem_max = Dispositivo.objects.order_by( ordem_max = Dispositivo.objects.order_by(
'ordem').filter(norma_id=self.norma_id).aggregate( 'ordem').filter(
ta_id=self.ta_id).aggregate(
Max('ordem')) Max('ordem'))
if ordem_max['ordem__max'] is None: if ordem_max['ordem__max'] is None:
raise Exception( raise Exception(
'Não existem registros base nesta Norma') 'Não existem registros base neste Texto Articulado')
ordem = ordem_max['ordem__max'] + Dispositivo.INTERVALO_ORDEM ordem = ordem_max['ordem__max'] + Dispositivo.INTERVALO_ORDEM
return ordem return ordem
@ -847,7 +883,7 @@ class Dispositivo(BaseModel, TimestampedMixin):
elif self.dispositivo_pai is None: elif self.dispositivo_pai is None:
irmaos = list(Dispositivo.objects.filter( irmaos = list(Dispositivo.objects.filter(
ordem__gt=self.ordem, ordem__gt=self.ordem,
norma_id=self.norma_id, ta_id=self.ta_id,
tipo_dispositivo_id=self.tipo_dispositivo.pk)) tipo_dispositivo_id=self.tipo_dispositivo.pk))
else: # contagem continua restrita a articulacao else: # contagem continua restrita a articulacao
@ -856,13 +892,13 @@ class Dispositivo(BaseModel, TimestampedMixin):
if proxima_articulacao is None: if proxima_articulacao is None:
irmaos = list(Dispositivo.objects.filter( irmaos = list(Dispositivo.objects.filter(
ordem__gt=self.ordem, ordem__gt=self.ordem,
norma_id=self.norma_id, ta_id=self.ta_id,
tipo_dispositivo_id=self.tipo_dispositivo.pk)) tipo_dispositivo_id=self.tipo_dispositivo.pk))
else: else:
irmaos = list(Dispositivo.objects.filter( irmaos = list(Dispositivo.objects.filter(
Q(ordem__gt=self.ordem) & Q(ordem__gt=self.ordem) &
Q(ordem__lt=proxima_articulacao.ordem), Q(ordem__lt=proxima_articulacao.ordem),
norma_id=self.norma_id, ta_id=self.ta_id,
tipo_dispositivo_id=self.tipo_dispositivo.pk)) tipo_dispositivo_id=self.tipo_dispositivo.pk))
dp_profundidade = self.get_profundidade() dp_profundidade = self.get_profundidade()
@ -943,7 +979,7 @@ class Dispositivo(BaseModel, TimestampedMixin):
proxima_articulacao = Dispositivo.objects.filter( proxima_articulacao = Dispositivo.objects.filter(
ordem__gt=self.ordem, ordem__gt=self.ordem,
nivel=0, nivel=0,
norma_id=self.norma_id)[:1] ta_id=self.ta_id)[:1]
if not proxima_articulacao.exists(): if not proxima_articulacao.exists():
return None return None
@ -955,7 +991,7 @@ class Dispositivo(BaseModel, TimestampedMixin):
# pp possiveis_pais # pp possiveis_pais
if not perfil_pk: if not perfil_pk:
perfis = PerfilEstruturalTextosNormativos.objects.filter( perfis = PerfilEstruturalTextoArticulado.objects.filter(
padrao=True)[:1] padrao=True)[:1]
if perfis.exists(): if perfis.exists():
perfil_pk = perfis[0].pk perfil_pk = perfis[0].pk
@ -985,7 +1021,7 @@ class Dispositivo(BaseModel, TimestampedMixin):
dispositivo_base.get_numero_completo()) dispositivo_base.get_numero_completo())
dp.nivel = dispositivo_base.nivel dp.nivel = dispositivo_base.nivel
dp.texto = '' dp.texto = ''
dp.norma = dispositivo_base.norma dp.ta = dispositivo_base.ta
dp.dispositivo_pai = dispositivo_base.dispositivo_pai dp.dispositivo_pai = dispositivo_base.dispositivo_pai
dp.inicio_eficacia = dispositivo_base.inicio_eficacia dp.inicio_eficacia = dispositivo_base.inicio_eficacia
dp.inicio_vigencia = dispositivo_base.inicio_vigencia dp.inicio_vigencia = dispositivo_base.inicio_vigencia
@ -1005,7 +1041,7 @@ class Dispositivo(BaseModel, TimestampedMixin):
tipo_dispositivo_id=tipo_base.pk, tipo_dispositivo_id=tipo_base.pk,
ordem__lte=dispositivo_base.ordem, ordem__lte=dispositivo_base.ordem,
ordem__gt=raiz.ordem, ordem__gt=raiz.ordem,
norma_id=dispositivo_base.norma_id)[:1] ta_id=dispositivo_base.ta_id)[:1]
if disps.exists(): if disps.exists():
dispositivo.set_numero_completo( dispositivo.set_numero_completo(

8
compilacao/templatetags/compilacao_filters.py

@ -43,7 +43,7 @@ def dispositivo_desativado(dispositivo, inicio_vigencia, fim_vigencia):
@register.simple_tag @register.simple_tag
def nota_automatica(dispositivo): def nota_automatica(dispositivo):
if dispositivo.norma_publicada is not None: if dispositivo.ta_publicado is not None:
d = dispositivo.dispositivo_atualizador.dispositivo_pai d = dispositivo.dispositivo_atualizador.dispositivo_pai
if dispositivo.texto == Dispositivo.TEXTO_PADRAO_DISPOSITIVO_REVOGADO: if dispositivo.texto == Dispositivo.TEXTO_PADRAO_DISPOSITIVO_REVOGADO:
return 'Revogado pelo %s.' % d return 'Revogado pelo %s.' % d
@ -152,3 +152,9 @@ def nomenclatura_heranca(d, ignore_ultimo=0, ignore_primeiro=0):
d = d.dispositivo_pai d = d.dispositivo_pai
return result return result
@register.simple_tag
def verbose_name(instance, field_name):
return instance._meta.get_field(field_name).verbose_name.title()

66
compilacao/urls.py

@ -1,70 +1,66 @@
from django.conf.urls import include, url from django.conf.urls import include, url
from compilacao import views from compilacao import views
from compilacao.views import (perfil_estr_txt_norm, tipo_dispositivo_crud,
tipo_nota_crud, tipo_publicacao_crud,
tipo_vide_crud, veiculo_publicacao_crud)
urlpatterns_compilacao = [ urlpatterns_compilacao = [
url(r'^(?P<norma_id>[0-9]+)/compilacao$',
url(r'^$', views.TaListView.as_view(), name='ta_list'),
url(r'^(?P<pk>[0-9]+)$', views.TaDetailView.as_view(), name='ta_detail'),
url(r'^(?P<pk>[0-9]+)/edit$',
views.TaUpdateView.as_view(), name='ta_edit'),
]
urlpatterns = [
url(r'^ta/', include(urlpatterns_compilacao)),
]
"""
url(r'^(?P<ta_id>[0-9]+)/compilacao$',
views.CompilacaoView.as_view(), name='compilacao'), views.CompilacaoView.as_view(), name='compilacao'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/(?P<dispositivo_id>[0-9]+)/$', url(r'^(?P<ta_id>[0-9]+)/compilacao/(?P<dispositivo_id>[0-9]+)/$',
views.DispositivoView.as_view(), name='dispositivo'), views.DispositivoView.as_view(), name='dispositivo'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/vigencia/(?P<sign>.+)/$', url(r'^(?P<ta_id>[0-9]+)/compilacao/vigencia/(?P<sign>.+)/$',
views.CompilacaoView.as_view(), name='vigencia'), views.CompilacaoView.as_view(), name='vigencia'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/edit', url(r'^(?P<ta_id>[0-9]+)/compilacao/edit',
views.CompilacaoEditView.as_view(), name='comp_edit'), views.CompilacaoEditView.as_view(), name='comp_edit'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/(?P<dispositivo_id>[0-9]+)/refresh', url(r'^(?P<ta_id>[0-9]+)/compilacao/(?P<dispositivo_id>[0-9]+)/refresh',
views.DispositivoEditView.as_view(), name='dispositivo_edit'), views.DispositivoEditView.as_view(), name='dispositivo_edit'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/(?P<dispositivo_id>[0-9]+)/actions', url(r'^(?P<ta_id>[0-9]+)/compilacao/(?P<dispositivo_id>[0-9]+)/actions',
views.ActionsEditView.as_view(), name='dispositivo_actions'), views.ActionsEditView.as_view(), name='dispositivo_actions'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/' url(r'^(?P<ta_id>[0-9]+)/compilacao/'
'(?P<dispositivo_id>[0-9]+)/nota/create$', '(?P<dispositivo_id>[0-9]+)/nota/create$',
views.NotasCreateView.as_view(), name='nota_create'), views.NotasCreateView.as_view(), name='nota_create'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/' url(r'^(?P<ta_id>[0-9]+)/compilacao/'
'(?P<dispositivo_id>[0-9]+)/nota/(?P<pk>[0-9]+)/edit$', '(?P<dispositivo_id>[0-9]+)/nota/(?P<pk>[0-9]+)/edit$',
views.NotasEditView.as_view(), name='nota_edit'), views.NotasEditView.as_view(), name='nota_edit'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/' url(r'^(?P<ta_id>[0-9]+)/compilacao/'
'(?P<dispositivo_id>[0-9]+)/nota/(?P<pk>[0-9]+)/delete$', '(?P<dispositivo_id>[0-9]+)/nota/(?P<pk>[0-9]+)/delete$',
views.NotasDeleteView.as_view(), name='nota_delete'), views.NotasDeleteView.as_view(), name='nota_delete'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/' url(r'^(?P<ta_id>[0-9]+)/compilacao/'
'(?P<dispositivo_id>[0-9]+)/vide/create$', '(?P<dispositivo_id>[0-9]+)/vide/create$',
views.VideCreateView.as_view(), name='vide_create'), views.VideCreateView.as_view(), name='vide_create'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/' url(r'^(?P<ta_id>[0-9]+)/compilacao/'
'(?P<dispositivo_id>[0-9]+)/vide/(?P<pk>[0-9]+)/edit$', '(?P<dispositivo_id>[0-9]+)/vide/(?P<pk>[0-9]+)/edit$',
views.VideEditView.as_view(), name='vide_edit'), views.VideEditView.as_view(), name='vide_edit'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/' url(r'^(?P<ta_id>[0-9]+)/compilacao/'
'(?P<dispositivo_id>[0-9]+)/vide/(?P<pk>[0-9]+)/delete$', '(?P<dispositivo_id>[0-9]+)/vide/(?P<pk>[0-9]+)/delete$',
views.VideDeleteView.as_view(), name='vide_delete'), views.VideDeleteView.as_view(), name='vide_delete'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/search$', url(r'^(?P<ta_id>[0-9]+)/compilacao/search$',
views.DispositivoSearchFragmentFormView.as_view(), views.DispositivoSearchFragmentFormView.as_view(),
name='search_dispositivo'), name='search_dispositivo'),
"""
]
urlpatterns = [
url(r'^norma/', include(urlpatterns_compilacao)),
url(r'^sistema/compilacao/tipo-nota/',
include(tipo_nota_crud.urls)),
url(r'^sistema/compilacao/tipo-vide/',
include(tipo_vide_crud.urls)),
url(r'^sistema/compilacao/tipo-publicacao/',
include(tipo_publicacao_crud.urls)),
url(r'^sistema/compilacao/tipo-dispositivo/',
include(tipo_dispositivo_crud.urls)),
url(r'^sistema/compilacao/veiculo-publicacao/',
include(veiculo_publicacao_crud.urls)),
url(r'^sistema/compilacao/perfil-estrutural-textos-normativos/',
include(perfil_estr_txt_norm.urls)),
]

83
compilacao/utils.py

@ -0,0 +1,83 @@
from crispy_forms_foundation.layout import (HTML, Column, Div, Fieldset,
Layout, Row, Submit)
from django.apps import apps
from django.contrib import admin
from django.utils.translation import ugettext_lazy as _
def to_column(name_span):
fieldname, span = name_span
return Column(fieldname, css_class='large-%d' % span)
def to_row(names_spans):
return Row(*list(map(to_column, names_spans)))
def make_choices(*choice_pairs):
assert len(choice_pairs) % 2 == 0
ipairs = iter(choice_pairs)
choices = list(zip(ipairs, ipairs))
yield choices
for key, value in choices:
yield key
YES_NO_CHOICES = [(True, _('Sim')), (False, _('Não'))]
def int_to_roman(int_value):
# if isinstance(int_value, type(1)):
# raise TypeError("expected integer, got %s" % type(int_value))
if not 0 < int_value < 4000:
raise ValueError("Argument must be between 1 and 3999")
ints = (1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1)
nums = ('M', 'CM', 'D', 'CD', 'C', 'XC',
'L', 'XL', 'X', 'IX', 'V', 'IV', 'I')
result = ""
for i in range(len(ints)):
count = int(int_value / ints[i])
result += nums[i] * count
int_value -= ints[i] * count
return result
def int_to_letter(int_value):
result = ''
int_value -= 1
while int_value >= 26:
rest = int_value % 26
int_value = int(int_value / 26) - 1
result = chr(rest + 65) + result
result = chr(int_value + 65) + result
return result
def from_to(start, end):
return list(range(start, end + 1))
def make_pagination(index, num_pages):
'''Make a list of adjacent page ranges interspersed with "None"s
The list starts with [1, 2] and end with [num_pages-1, num_pages].
The list includes [index-1, index, index+1]
"None"s separate those ranges and mean ellipsis (...)
Example: [1, 2, None, 10, 11, 12, None, 29, 30]
'''
PAGINATION_LENGTH = 10
if num_pages <= PAGINATION_LENGTH:
return from_to(1, num_pages)
else:
if index - 1 <= 5:
tail = [num_pages - 1, num_pages]
head = from_to(1, PAGINATION_LENGTH - 3)
else:
if index + 1 >= num_pages - 3:
tail = from_to(index - 1, num_pages)
else:
tail = [index - 1, index, index + 1,
None, num_pages - 1, num_pages]
head = from_to(1, PAGINATION_LENGTH - len(tail) - 1)
return head + [None] + tail

1351
compilacao/views.py

File diff suppressed because it is too large

1351
compilacao/views2.py

File diff suppressed because it is too large

10
materia/urls.py

@ -17,7 +17,16 @@ from materia.views import (AutoriaEditView, AutoriaView,
tipo_fim_relatoria_crud, tipo_materia_crud, tipo_fim_relatoria_crud, tipo_materia_crud,
tipo_proposicao_crud, unidade_tramitacao_crud) tipo_proposicao_crud, unidade_tramitacao_crud)
materia_legislativa_patterns = materia_legislativa_crud.urlpatterns
# + __url__compilacao
urlpatterns = [ urlpatterns = [
url(r'^materia/', include(materia_legislativa_patterns,
materia_legislativa_crud.namespace,
materia_legislativa_crud.namespace)),
url(r'^sistema/proposicoes/tipo/', include(tipo_proposicao_crud.urls)), url(r'^sistema/proposicoes/tipo/', include(tipo_proposicao_crud.urls)),
url(r'^sistema/proposicoes/autor/', include(autor_crud.urls)), url(r'^sistema/proposicoes/autor/', include(autor_crud.urls)),
url(r'^sistema/materia/tipo/', include(tipo_materia_crud.urls)), url(r'^sistema/materia/tipo/', include(tipo_materia_crud.urls)),
@ -35,7 +44,6 @@ urlpatterns = [
url(r'^sistema/materia/status-tramitacao/', url(r'^sistema/materia/status-tramitacao/',
include(status_tramitacao_crud.urls)), include(status_tramitacao_crud.urls)),
url(r'^sistema/materia/orgao/', include(orgao_crud.urls)), url(r'^sistema/materia/orgao/', include(orgao_crud.urls)),
url(r'^materia/', include(materia_legislativa_crud.urls)),
url(r'^materia/formulario-simplificado', url(r'^materia/formulario-simplificado',
FormularioSimplificadoView.as_view(), FormularioSimplificadoView.as_view(),
name='formulario_simplificado'), name='formulario_simplificado'),

5
norma/urls.py

@ -1,9 +1,11 @@
from django.conf.urls import include, url from django.conf.urls import include, url
from compilacao.urls import urlpatterns as __url__compilacao
from norma.views import (NormaIncluirView, assunto_norma_crud, from norma.views import (NormaIncluirView, assunto_norma_crud,
norma_temporario_crud, tipo_norma_crud) norma_temporario_crud, tipo_norma_crud)
norma_url_patterns = norma_temporario_crud.urlpatterns + []
norma_url_patterns = norma_temporario_crud.urlpatterns
# norma_url_patterns = norma_crud.urlpatterns + [] # norma_url_patterns = norma_crud.urlpatterns + []
urlpatterns = [ urlpatterns = [
@ -11,7 +13,6 @@ urlpatterns = [
norma_temporario_crud.namespace, norma_temporario_crud.namespace,
norma_temporario_crud.namespace)), norma_temporario_crud.namespace)),
url(r'^sistema/norma/tipo/', include(tipo_norma_crud.urls)), url(r'^sistema/norma/tipo/', include(tipo_norma_crud.urls)),
url(r'^sistema/norma/assunto/', include(assunto_norma_crud.urls)), url(r'^sistema/norma/assunto/', include(assunto_norma_crud.urls)),

1
requirements/requirements.txt

@ -9,7 +9,6 @@ django-crispy-forms
django-extra-views django-extra-views
django-vanilla-views django-vanilla-views
git+git://github.com/interlegis/django-sass-processor.git git+git://github.com/interlegis/django-sass-processor.git
git+git://github.com/LeandroRoberto/odfpy.git
libsass libsass
psycopg2 psycopg2
pytz pytz

27
sapl/utils.py

@ -37,30 +37,3 @@ def make_choices(*choice_pairs):
yield key yield key
YES_NO_CHOICES = [(True, _('Sim')), (False, _('Não'))] YES_NO_CHOICES = [(True, _('Sim')), (False, _('Não'))]
def int_to_roman(int_value):
# if isinstance(int_value, type(1)):
# raise TypeError("expected integer, got %s" % type(int_value))
if not 0 < int_value < 4000:
raise ValueError("Argument must be between 1 and 3999")
ints = (1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1)
nums = ('M', 'CM', 'D', 'CD', 'C', 'XC',
'L', 'XL', 'X', 'IX', 'V', 'IV', 'I')
result = ""
for i in range(len(ints)):
count = int(int_value / ints[i])
result += nums[i] * count
int_value -= ints[i] * count
return result
def int_to_letter(int_value):
result = ''
int_value -= 1
while int_value >= 26:
rest = int_value % 26
int_value = int(int_value / 26) - 1
result = chr(rest + 65) + result
result = chr(int_value + 65) + result
return result

2
static/styles/compilacao.scss

@ -576,7 +576,7 @@ a:link:after, a:visited:after {
} }
} }
} }
.norma_title { .ta_title {
padding: 0.15em 0.7em; padding: 0.15em 0.7em;
background-color: rgba(0, 0, 0, 0.15); background-color: rgba(0, 0, 0, 0.15);
margin: 0.1em 0.08em 0 0.1em; margin: 0.1em 0.08em 0 0.1em;

8
templates/compilacao/dispositivo_search_fragment_form.html

@ -8,9 +8,9 @@
{% endif %} {% endif %}
{% for dpt in object_list %} {% for dpt in object_list %}
{% ifchanged dpt.norma%} {% ifchanged dpt.ta%}
{% if not forloop.first %}</ul>{% endif %} {% if not forloop.first %}</ul>{% endif %}
<div class="norma_title">{{dpt.norma}}</div> <div class="ta_title">{{dpt.ta}}</div>
<ul> <ul>
{% endifchanged %} {% endifchanged %}
@ -22,7 +22,7 @@
</div> </div>
<div class="itemlabel"> <div class="itemlabel">
<label for="r{{dpt.dispositivo_pai.pk}}">{{dpt.dispositivo_pai.rotulo|safe}} - {{dpt.texto|safe}}</label> <label for="r{{dpt.dispositivo_pai.pk}}">{{dpt.dispositivo_pai.rotulo|safe}} - {{dpt.texto|safe}}</label>
<a target="_blank" href="{% url 'compilacao' dpt.norma.pk%}#{{dpt.pk}}" class="nomenclatura_heranca">{% nomenclatura_heranca dpt 1 1 %}</a> <a target="_blank" href="{% url 'compilacao' dpt.ta.pk%}#{{dpt.pk}}" class="nomenclatura_heranca">{% nomenclatura_heranca dpt 1 1 %}</a>
</div> </div>
</li> </li>
{% endif%} {% endif%}
@ -34,7 +34,7 @@
</div> </div>
<div class="itemlabel"> <div class="itemlabel">
<label for="r{{dpt.pk}}">{{dpt.rotulo|safe}} - {{dpt.texto|safe}}</label> <label for="r{{dpt.pk}}">{{dpt.rotulo|safe}} - {{dpt.texto|safe}}</label>
<a target="_blank" href="{% url 'compilacao' dpt.norma.pk%}#{{dpt.pk}}" class="nomenclatura_heranca">{% nomenclatura_heranca dpt 1 1 %}</a> <a target="_blank" href="{% url 'compilacao' dpt.ta.pk%}#{{dpt.pk}}" class="nomenclatura_heranca">{% nomenclatura_heranca dpt 1 1 %}</a>
</div> </div>
</li> </li>
{% endif%} {% endif%}

2
templates/compilacao/edit.html

@ -14,7 +14,7 @@
{% block title%} {% block title%}
<h1><b>Edição:</b> {{ view.get_norma }} - <i>{% trans 'Texto Multivigente' %}</i></h1> <h1><b>Edição:</b> {{ view.get_ta }} - <i>{% trans 'Texto Multivigente' %}</i></h1>
{% endblock %} {% endblock %}
{% block base_content %} {% block base_content %}

8
templates/compilacao/edit_bloco.html

@ -23,7 +23,7 @@
<li class="edt-tinymce"><a class="btn-top btn-action" pk="{{dpt.pk}}" action="refresh:tinymce" title="{% trans 'Editar o texto com TinyMCE'%}">E+</a></li> <li class="edt-tinymce"><a class="btn-top btn-action" pk="{{dpt.pk}}" action="refresh:tinymce" title="{% trans 'Editar o texto com TinyMCE'%}">E+</a></li>
{%endif%} {%endif%}
<li class="edt-detail"><a class="btn-top btn-action" pk="{{dpt.pk}}" action="refresh:detail" title="{% trans 'TODO: Edição detalhada'%}">E*</a></li> <li class="edt-detail"><a class="btn-top btn-action" pk="{{dpt.pk}}" action="refresh:detail" title="{% trans 'TODO: Edição detalhada'%}">E*</a></li>
<li class="edt-construct"><a class="btn-top btn-action" pk="{{dpt.pk}}" action="refresh:construct" title="{% trans 'Construçao da estrutura da Norma'%}">C</a></li> <li class="edt-construct"><a class="btn-top btn-action" pk="{{dpt.pk}}" action="refresh:construct" title="{% trans 'Construçao da estrutura do Texto Articulado'%}">C</a></li>
</ul> </ul>
<ul class="btns-action actions_right"> <ul class="btns-action actions_right">
<li><a class="btn-right btn-action" pk="{{dpt.pk}}" action="refresh" title="{% trans 'TODO: Reduzir nível do Dispositivo'%}">&#10092;</a></li> <li><a class="btn-right btn-action" pk="{{dpt.pk}}" action="refresh" title="{% trans 'TODO: Reduzir nível do Dispositivo'%}">&#10092;</a></li>
@ -107,15 +107,15 @@
<div class="bloco {% dispositivo_desativado dpt view.inicio_vigencia view.fim_vigencia %} {{ dpt.tipo_dispositivo.class_css }}"> <div class="bloco {% dispositivo_desativado dpt view.inicio_vigencia view.fim_vigencia %} {{ dpt.tipo_dispositivo.class_css }}">
{% spaceless %} {% spaceless %}
<div class="de" id="id{{dpt.id}}" pk="{{dpt.pk}}" ordem="{{dpt.ordem}}" name="{{dpt.pk}}" title="{{dpt.pk}}">{{ dpt.tipo_dispositivo.rotulo_prefixo_html|safe }}{{ dpt.rotulo }}{{ dpt.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ dpt.tipo_dispositivo.texto_prefixo_html|safe }}{% if dpt.texto == '' and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}<span class="semtexto">({{dpt.tipo_dispositivo}} sem texto)</span>{%else%}{{ dpt.texto|safe }}{%endif%}</div> <div class="de" id="id{{dpt.id}}" pk="{{dpt.pk}}" ordem="{{dpt.ordem}}" name="{{dpt.pk}}" title="{{dpt.pk}}">{{ dpt.tipo_dispositivo.rotulo_prefixo_html|safe }}{{ dpt.rotulo }}{{ dpt.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ dpt.tipo_dispositivo.texto_prefixo_html|safe }}{% if dpt.texto == '' and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}<span class="semtexto">({{dpt.tipo_dispositivo}} sem texto)</span>{%else%}{{ dpt.texto|safe }}{%endif%}</div>
{% if dpt.norma_publicada_id != None and not dpt.tipo_dispositivo.dispositivo_de_articulacao %} {% if dpt.ta_publicado_id != None and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}
<a class="link_alterador" href="{%url 'comp_edit' dpt.norma_publicada.pk %}#{{dpt.dispositivo_atualizador_id}}"> <a class="link_alterador" href="{%url 'comp_edit' dpt.ta_publicado.pk %}#{{dpt.dispositivo_atualizador_id}}">
{{ dpt.tipo_dispositivo.nota_automatica_prefixo_html|safe }} {{ dpt.tipo_dispositivo.nota_automatica_prefixo_html|safe }}
{% nota_automatica dpt %} {% nota_automatica dpt %}
{{ dpt.tipo_dispositivo.nota_automatica_sufixo_html|safe }} {{ dpt.tipo_dispositivo.nota_automatica_sufixo_html|safe }}
</a> </a>
{% endif %} {% endif %}
{% endspaceless %} {% endspaceless %}
{% if view.is_norma_alteradora and dpt.tipo_dispositivo.class_css == 'bloco_alteracao'%} {% if view.is_ta_alterador and dpt.tipo_dispositivo.class_css == 'bloco_alteracao'%}
{%with node=dpt template_name='compilacao/edit_bloco_alteracao.html' %} {%with node=dpt template_name='compilacao/edit_bloco_alteracao.html' %}
{%include template_name%} {%include template_name%}
{%endwith%} {%endwith%}

2
templates/compilacao/edit_bloco_alteracao.html

@ -3,7 +3,7 @@
{% spaceless %} {% spaceless %}
<div class="dpt" id="d{{ch.id}}"> <div class="dpt" id="d{{ch.id}}">
<div class="{{ ch.tipo_dispositivo.class_css }}" id="id{{ch.id}}" nivel="{{ch.nivel}}"> <div class="{{ ch.tipo_dispositivo.class_css }}" id="id{{ch.id}}" nivel="{{ch.nivel}}">
{{ ch.tipo_dispositivo.rotulo_prefixo_html|safe }}<a name="{{ch.pk}}" href="{%url 'comp_edit' ch.norma.pk %}#{{ch.pk}}">{{ ch.rotulo }}</a>{{ ch.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ ch.tipo_dispositivo.texto_prefixo_html|safe }}{{ ch.texto|safe }} {{ ch.tipo_dispositivo.rotulo_prefixo_html|safe }}<a name="{{ch.pk}}" href="{%url 'comp_edit' ch.ta.pk %}#{{ch.pk}}">{{ ch.rotulo }}</a>{{ ch.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ ch.tipo_dispositivo.texto_prefixo_html|safe }}{{ ch.texto|safe }}
</div> </div>
</div> </div>
{% endspaceless %} {% endspaceless %}

6
templates/compilacao/form.html

@ -0,0 +1,6 @@
{% extends "base.html" %}
{% load i18n crispy_forms_tags %}
{% block base_content %}
{% crispy form %}
{% endblock %}

14
templates/compilacao/index.html

@ -18,7 +18,7 @@
{% block title%} {% block title%}
<h1>{{ view.get_norma }}</h1> <h1>{{ view.get_ta }}</h1>
{% endblock %} {% endblock %}
{% block base_content %} {% block base_content %}
@ -41,11 +41,11 @@
<li class="nav__item has-dropdown"> <li class="nav__item has-dropdown">
{% if forloop.first %} {% if forloop.first %}
{% for dispositivo in values %} {% for dispositivo in values %}
<a class="nav__link {% if view.inicio_vigencia == dispositivo.inicio_vigencia %}selected{%endif%}" href="{%url 'vigencia' dispositivo.norma.pk dispositivo|get_sign_vigencia %}" title="{% trans 'Vigência entre'%} {{dispositivo.inicio_vigencia}} {% trans 'e'%} {{dispositivo.fim_vigencia}}">{% trans 'Norma Original'%}</a> <a class="nav__link {% if view.inicio_vigencia == dispositivo.inicio_vigencia %}selected{%endif%}" href="{%url 'vigencia' dispositivo.ta.pk dispositivo|get_sign_vigencia %}" title="{% trans 'Vigência entre'%} {{dispositivo.inicio_vigencia}} {% trans 'e'%} {{dispositivo.fim_vigencia}}">{% trans 'Texto Original'%}</a>
{% endfor %} {% endfor %}
{% elif forloop.last %} {% elif forloop.last %}
{% for dispositivo in values %} {% for dispositivo in values %}
<a class="nav__link {% if view.inicio_vigencia == None %}selected{%endif%}" href="{%url 'compilacao' dispositivo.norma.pk %}" title="{% trans 'Compilação atual'%}.&#013;{% trans 'Vigência a partir de'%} {{dispositivo.inicio_vigencia}}&#013;{{dispositivo.norma_publicada}}">{% trans 'Norma Atual'%}</a> <a class="nav__link {% if view.inicio_vigencia == None %}selected{%endif%}" href="{%url 'compilacao' dispositivo.ta.pk %}" title="{% trans 'Compilação atual'%}.&#013;{% trans 'Vigência a partir de'%} {{dispositivo.inicio_vigencia}}&#013;{{dispositivo.ta_publicado}}">{% trans 'Texto Atual'%}</a>
{% endfor %} {% endfor %}
{% else %} {% else %}
<a class="nav__link {% if view.inicio_vigencia.year == key %}selected{%endif%}">{{ key }}</a> <a class="nav__link {% if view.inicio_vigencia.year == key %}selected{%endif%}">{{ key }}</a>
@ -56,7 +56,7 @@
{% for dispositivo in values %} {% for dispositivo in values %}
<li class="nav__sub-item"> <li class="nav__sub-item">
{% if not forloop.parentloop.first %} {% if not forloop.parentloop.first %}
<a class="nav__sub-link" href="{%url 'vigencia' dispositivo.norma.pk dispositivo|get_sign_vigencia %}" title="{{ dispositivo.norma_publicada }}">{% trans 'Vigência entre'%} {{dispositivo.inicio_vigencia}} {% trans 'e'%} {{dispositivo.fim_vigencia}}</a> <a class="nav__sub-link" href="{%url 'vigencia' dispositivo.ta.pk dispositivo|get_sign_vigencia %}" title="{{ dispositivo.ta_publicado }}">{% trans 'Vigência entre'%} {{dispositivo.inicio_vigencia}} {% trans 'e'%} {{dispositivo.fim_vigencia}}</a>
{%endif%} {%endif%}
</li> </li>
{% endfor %} {% endfor %}
@ -69,8 +69,8 @@
{% comment %} {% comment %}
<ul class="nav left tipo-vigencias"> <ul class="nav left tipo-vigencias">
<li><a class="selected" onclick="textoMultiVigente(this);" title="">{% trans 'Texto Multivigente'%}</a></li> <li><a class="selected" onclick="textoMultiVigente(this);" title="">{% trans 'Texto Multivigente'%}</a></li>
<li><a onclick="textoVigente(this, true);">{% trans 'Texto Vigente COM Links para Normas Alteradoras'%}</a></li> <li><a onclick="textoVigente(this, true);">{% trans 'Texto Vigente COM Links para Textos Alteradores'%}</a></li>
<li><a onclick="textoVigente(this, false);">{% trans 'Texto Vigente SEM Links para Normas Alteradoras'%}</a></li> <li><a onclick="textoVigente(this, false);">{% trans 'Texto Vigente SEM Links para Textos Alteradores'%}</a></li>
</ul> </ul>
{% endcomment %} {% endcomment %}
@ -78,7 +78,7 @@
<ul class="tipo-vigencias"> <ul class="tipo-vigencias">
<li><a class="selected" onclick="textoMultiVigente(this, false);" title="{% trans 'Texto Multivigente Sequencial'%}">{% trans 'TMS'%}</a></li> <li><a class="selected" onclick="textoMultiVigente(this, false);" title="{% trans 'Texto Multivigente Sequencial'%}">{% trans 'TMS'%}</a></li>
<li><a onclick="textoMultiVigente(this, true);" title="{% trans 'Texto Multivigente Integrado com Realce de Alterações'%}">{% trans 'TMI'%}</a></li> <li><a onclick="textoMultiVigente(this, true);" title="{% trans 'Texto Multivigente Integrado com Realce de Alterações'%}">{% trans 'TMI'%}</a></li>
<li><a onclick="textoVigente(this, true);" title="{% trans 'Texto Vigente COM Links para Normas Alteradoras'%}">{% trans 'TVL'%}</a></li> <li><a onclick="textoVigente(this, true);" title="{% trans 'Texto Vigente COM Links para Textos Alteradores'%}">{% trans 'TVL'%}</a></li>
<li><a onclick="textoVigente(this, false);" title="{% trans 'Texto Vigente'%}">{% trans 'TVT'%}</a></li> <li><a onclick="textoVigente(this, false);" title="{% trans 'Texto Vigente'%}">{% trans 'TVT'%}</a></li>
</ul> </ul>

14
templates/compilacao/index_bloco.html

@ -20,8 +20,8 @@
<div class="{{ dpt.tipo_dispositivo.class_css }}"> <div class="{{ dpt.tipo_dispositivo.class_css }}">
<div class="dptt {% dispositivo_desativado dpt view.inicio_vigencia view.fim_vigencia %}" id="dptt{{dpt.pk}}" > <div class="dptt {% dispositivo_desativado dpt view.inicio_vigencia view.fim_vigencia %}" id="dptt{{dpt.pk}}" >
{{ dpt.tipo_dispositivo.rotulo_prefixo_html|safe }}<a name="{{dpt.pk}}" title="{{dpt.pk}}">{{ dpt.rotulo }}</a>{{ dpt.tipo_dispositivo.rotulo_sufixo_html|safe }}<span class="dtxt" id="d{% if not dpt.dispositivo_subsequente and dpt.dispositivo_substituido %}a{%endif%}{{dpt.pk}}" pks="{{dpt.dispositivo_substituido.pk}}" pk="{{dpt.pk}}">{{ dpt.tipo_dispositivo.texto_prefixo_html|safe }}{%if dpt.texto%}{{ dpt.texto|safe }}{%else%}&nbsp;{%endif%}</span> {{ dpt.tipo_dispositivo.rotulo_prefixo_html|safe }}<a name="{{dpt.pk}}" title="{{dpt.pk}}">{{ dpt.rotulo }}</a>{{ dpt.tipo_dispositivo.rotulo_sufixo_html|safe }}<span class="dtxt" id="d{% if not dpt.dispositivo_subsequente and dpt.dispositivo_substituido %}a{%endif%}{{dpt.pk}}" pks="{{dpt.dispositivo_substituido.pk}}" pk="{{dpt.pk}}">{{ dpt.tipo_dispositivo.texto_prefixo_html|safe }}{%if dpt.texto%}{{ dpt.texto|safe }}{%else%}&nbsp;{%endif%}</span>
{% if dpt.norma_publicada_id != None and not dpt.tipo_dispositivo.dispositivo_de_articulacao %} {% if dpt.ta_publicado_id != None and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}
<a class="link_alterador" href="{%url 'compilacao' dpt.norma_publicada.pk %}#{{dpt.dispositivo_atualizador_id}}"> <a class="link_alterador" href="{%url 'compilacao' dpt.ta_publicado.pk %}#{{dpt.dispositivo_atualizador_id}}">
{{ dpt.tipo_dispositivo.nota_automatica_prefixo_html|safe }} {{ dpt.tipo_dispositivo.nota_automatica_prefixo_html|safe }}
{% nota_automatica dpt %} {% nota_automatica dpt %}
{{ dpt.tipo_dispositivo.nota_automatica_sufixo_html|safe }} {{ dpt.tipo_dispositivo.nota_automatica_sufixo_html|safe }}
@ -69,9 +69,9 @@
<div class="ntitulo">Vide: </div> <div class="ntitulo">Vide: </div>
<div class="ntexto"> <div class="ntexto">
{% if dpt.is_relative_auto_insert %} {% if dpt.is_relative_auto_insert %}
<a href="{%url 'compilacao' vide.dispositivo_ref.dispositivo_pai.norma.pk%}#{{vide.dispositivo_ref.dispositivo_pai.pk }}">{{ vide.dispositivo_ref.dispositivo_pai}}</a> <a href="{%url 'compilacao' vide.dispositivo_ref.dispositivo_pai.ta.pk%}#{{vide.dispositivo_ref.dispositivo_pai.pk }}">{{ vide.dispositivo_ref.dispositivo_pai}}</a>
{% else %} {% else %}
<a href="{%url 'compilacao' vide.dispositivo_ref.norma.pk%}#{{vide.dispositivo_ref.pk }}">{{ vide.dispositivo_ref}}</a> <a href="{%url 'compilacao' vide.dispositivo_ref.ta.pk%}#{{vide.dispositivo_ref.pk }}">{{ vide.dispositivo_ref}}</a>
{% endif %} {% endif %}
{% if vide.texto %} - {{vide.texto}}{% endif %} {% if vide.texto %} - {{vide.texto}}{% endif %}
</div> </div>
@ -91,9 +91,9 @@
<div class="ntitulo">Citado em: </div> <div class="ntitulo">Citado em: </div>
<div class="ntexto"> <div class="ntexto">
{% if dpt.is_relative_auto_insert %} {% if dpt.is_relative_auto_insert %}
<a href="{%url 'compilacao' vide.dispositivo_base.dispositivo_pai.norma.pk%}#{{vide.dispositivo_base.dispositivo_pai.pk }}">{{ vide.dispositivo_base.dispositivo_pai}}</a> <a href="{%url 'compilacao' vide.dispositivo_base.dispositivo_pai.ta.pk%}#{{vide.dispositivo_base.dispositivo_pai.pk }}">{{ vide.dispositivo_base.dispositivo_pai}}</a>
{% else %} {% else %}
<a href="{%url 'compilacao' vide.dispositivo_base.norma.pk%}#{{vide.dispositivo_base.pk }}">{{ vide.dispositivo_base}}</a> <a href="{%url 'compilacao' vide.dispositivo_base.ta.pk%}#{{vide.dispositivo_base.pk }}">{{ vide.dispositivo_base}}</a>
{% endif %} {% endif %}
{% if vide.texto %} - {{vide.texto}}{% endif %} {% if vide.texto %} - {{vide.texto}}{% endif %}
</div> </div>
@ -162,7 +162,7 @@
{% endif%} {% endif%}
</div> </div>
{% endspaceless %} {% endspaceless %}
{% if view.is_norma_alteradora and dpt.tipo_dispositivo.class_css == 'bloco_alteracao'%} {% if view.is_ta_alterador and dpt.tipo_dispositivo.class_css == 'bloco_alteracao'%}
{%with node=dpt template_name='compilacao/index_bloco_alteracao.html' %} {%with node=dpt template_name='compilacao/index_bloco_alteracao.html' %}
{%include template_name%} {%include template_name%}
{%endwith%} {%endwith%}

2
templates/compilacao/index_bloco_alteracao.html

@ -4,7 +4,7 @@
{% if ch.visibilidade %} {% if ch.visibilidade %}
<div class="dpt" id="d{{ch.id}}"> <div class="dpt" id="d{{ch.id}}">
<div class="{{ ch.tipo_dispositivo.class_css }}" id="id{{ch.id}}" nivel="{{ch.nivel}}"> <div class="{{ ch.tipo_dispositivo.class_css }}" id="id{{ch.id}}" nivel="{{ch.nivel}}">
{{ ch.tipo_dispositivo.rotulo_prefixo_html|safe }}<a name="{{ch.pk}}" href="{%url 'compilacao' ch.norma.pk %}#{{ch.pk}}">{{ ch.rotulo }}</a>{{ ch.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ ch.tipo_dispositivo.texto_prefixo_html|safe }}{{ ch.texto|safe }} {{ ch.tipo_dispositivo.rotulo_prefixo_html|safe }}<a name="{{ch.pk}}" href="{%url 'compilacao' ch.ta.pk %}#{{ch.pk}}">{{ ch.rotulo }}</a>{{ ch.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ ch.tipo_dispositivo.texto_prefixo_html|safe }}{{ ch.texto|safe }}
</div> </div>
</div> </div>
{%endif%} {%endif%}

71
templates/compilacao/textoarticulado_detail.html

@ -0,0 +1,71 @@
{% extends "base.html" %}
{% load i18n %}
{% load compilacao_filters %}
{% block base_content %}
{# FIXME is this the best markup to use? #}
<div class="clearfix">
{% block actions %}
<dl class="sub-nav right">
<dd><a href="{% url 'ta_edit' object.pk %}" class="button">{% trans 'Editar' %}</a></dd>
<dd><a href="" class="button alert">{% trans 'Excluir' %}</a></dd>
</dl>
{% endblock actions %}
{% block sections_nav %}{% endblock %}
</div>
{% block detail_content %}
{# TODO replace fieldset for something semantically correct, but with similar visual grouping style #}
<fieldset>
<legend>{%trans 'Identificação Básica'%}</legend>
<div class="row">
<div class="columns large-5">
<div id="div_id_tipo" class="holder">
<label>{% verbose_name object 'tipo_ta' %}</label>
<p>{{ object.tipo_ta}}</p>
</div>
</div>
<div class="columns large-2">
<div id="div_id_numero" class="holder">
<label>{% verbose_name object 'numero' %}</label>
<p>{{ object.numero}}</p>
</div>
</div>
<div class="columns large-2">
<div id="div_id_ano" class="holder">
<label>{% verbose_name object 'ano' %}</label>
<p>{{ object.ano}}</p>
</div>
</div>
<div class="columns large-3">
<div id="div_id_data" class="holder">
<label>{% verbose_name object 'data' %}</label>
<p>{{ object.data}}</p>
</div>
</div>
</div>
<div class="row">
<div class="columns large-12">
<div id="div_id_ementa" class="holder">
<label>{% verbose_name object 'ementa' %}</label>
<p>{{ object.ementa|safe}}</p>
</div>
</div>
</div>
</fieldset>
{% endblock detail_content %}
{% endblock base_content %}

61
templates/compilacao/textoarticulado_list.html

@ -0,0 +1,61 @@
{% extends "base.html" %} {% load i18n %} {% block base_content %}
<table class="table table-hover">
<thead>
<tr>
<th>{% trans 'Tipo'%}</th>
<th>{% trans 'Número'%}</th>
<th>{% trans 'Ano'%}</th>
<th>{% trans 'Data'%}</th>
<th>{% trans 'Ementa'%}</th>
</tr>
</thead>
<tbody>
{% for ta in object_list %}
<tr>
<td><a href="{% url 'ta_detail' ta.pk %}">{{ ta.tipo_ta }}</a></td>
<td>{{ ta.numero }}</td>
<td>{{ ta.ano }}</td>
<td>{{ ta.data }}</td>
<td>{{ ta.ementa }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% if is_paginated %}
<div class="pagination-centered">
<ul class="pagination" role="menubar" aria-label="Pagination">
{% if page_obj.has_previous %}
<li>
<a href="?page={{ page_obj.previous_page_number }}">
<span class="arrow">&laquo;</span>
</a>
</li>
{% else %}
<li class="arrow unavailable" aria-disabled="true"><a href="">&laquo;</a></li>
{% endif %}
{% for page in page_range %}
{% if page %}
<li {% if page == page_obj.number %}class="current"{% endif %}>
<a href="?page={{ page }}">{{ page }}</a>
</li>
{% else %}
<li class="unavailable" aria-disabled="true"><a href="">&hellip;</a></li>
{% endif %}
{% endfor %}
{% if page_obj.has_next %}
<li>
<a href="?page={{ page_obj.next_page_number }}">
<span class="arrow">&raquo;</span>
</a>
</li>
{% else %}
<li class="arrow unavailable" aria-disabled="true"><a href="">&raquo;</a></li>
{% endif %}
</ul>
</div>
{% endif %}
{% endblock %}
Loading…
Cancel
Save