Browse Source

Merge pull request #10 from interlegis/compilacao

Merge do módulo de compilação (01/12/2015).
pull/11/merge
Edward Ribeiro 9 years ago
parent
commit
83c8698643
  1. 2
      base/migrations/0001_initial.py
  2. 2
      comissoes/migrations/0001_initial.py
  3. 2
      comissoes/migrations/0002_auto_20150729_1310.py
  4. 327
      compilacao/file2dispositivo.py
  5. 211
      compilacao/forms.py
  6. 376
      compilacao/insert_inicial_TipoDispositivo.sql
  7. 2
      compilacao/migrations/0001_initial.py
  8. 2
      compilacao/migrations/0002_auto_20150907_2334.py
  9. 2
      compilacao/migrations/0003_auto_20150911_1735.py
  10. 2
      compilacao/migrations/0004_auto_20150914_0842.py
  11. 77
      compilacao/migrations/0005_auto_20150924_1012.py
  12. 54
      compilacao/migrations/0006_auto_20150924_1121.py
  13. 19
      compilacao/migrations/0007_auto_20150924_1131.py
  14. 50
      compilacao/migrations/0008_auto_20151005_1023.py
  15. 23
      compilacao/migrations/0009_auto_20151007_1635.py
  16. 30
      compilacao/migrations/0010_auto_20151105_1532.py
  17. 27
      compilacao/migrations/0011_auto_20151105_1540.py
  18. 34
      compilacao/migrations/0012_auto_20151105_1658.py
  19. 24
      compilacao/migrations/0013_auto_20151106_1843.py
  20. 19
      compilacao/migrations/0014_auto_20151107_1836.py
  21. 24
      compilacao/migrations/0015_auto_20151115_2310.py
  22. 49
      compilacao/migrations/0016_auto_20151119_0950.py
  23. 28
      compilacao/migrations/0017_auto_20151119_1035.py
  24. 23
      compilacao/migrations/0018_auto_20151119_1052.py
  25. 20
      compilacao/migrations/0019_auto_20151119_1120.py
  26. 20
      compilacao/migrations/0020_auto_20151119_1126.py
  27. 23
      compilacao/migrations/0021_auto_20151119_1617.py
  28. 33
      compilacao/migrations/0022_auto_20151120_1503.py
  29. 29
      compilacao/migrations/0023_auto_20151120_1529.py
  30. 37
      compilacao/migrations/0024_auto_20151120_1814.py
  31. 24
      compilacao/migrations/0025_auto_20151122_1744.py
  32. 28
      compilacao/migrations/0026_auto_20151122_1756.py
  33. 33
      compilacao/migrations/0027_auto_20151130_1632.py
  34. 18
      compilacao/migrations/0028_auto_20151201_0042.py
  35. 19
      compilacao/migrations/0029_auto_20151201_1611.py
  36. 767
      compilacao/models.py
  37. 106
      compilacao/templatetags/compilacao_filters.py
  38. 68
      compilacao/urls.py
  39. 1183
      compilacao/views.py
  40. 2
      lexml/migrations/0001_initial.py
  41. 2
      lexml/migrations/0002_auto_20150806_1614.py
  42. 2
      materia/migrations/0001_initial.py
  43. 2
      materia/migrations/0002_auto_20150729_1310.py
  44. 2
      materia/migrations/0003_auto_20150729_1717.py
  45. 3
      materia/migrations/0004_materialegislativa_texto_original.py
  46. 2
      materia/migrations/0005_auto_20150923_0941.py
  47. 2
      materia/migrations/0006_proposicao_status.py
  48. 2
      materia/migrations/0007_auto_20151021_1200.py
  49. 2
      materia/migrations/0008_auto_20151029_1416.py
  50. 2
      materia/migrations/0009_auto_20151029_1420.py
  51. 3
      materia/migrations/0010_auto_20151117_1551.py
  52. 2
      norma/migrations/0001_initial.py
  53. 2
      norma/migrations/0002_auto_20150729_1717.py
  54. 2
      norma/migrations/0003_auto_20150906_0239.py
  55. 2
      norma/migrations/0004_auto_20150907_0004.py
  56. 2
      norma/migrations/0005_auto_20150915_1141.py
  57. 18
      norma/migrations/0006_auto_20151025_1427.py
  58. 19
      norma/migrations/0007_auto_20151130_1632.py
  59. 7
      norma/models.py
  60. 21
      norma/urls.py
  61. 12
      norma/views.py
  62. 2
      painel/migrations/0001_initial.py
  63. 2
      parlamentares/migrations/0001_initial.py
  64. 2
      parlamentares/migrations/0002_auto_20150729_1310.py
  65. 2
      parlamentares/migrations/0003_auto_20150729_1717.py
  66. 2
      parlamentares/migrations/0004_auto_20150929_1425.py
  67. 3
      parlamentares/migrations/0005_parlamentar_fotografia.py
  68. 2
      parlamentares/migrations/0006_auto_20151119_1318.py
  69. 2
      protocoloadm/migrations/0001_initial.py
  70. 2
      protocoloadm/migrations/0002_auto_20150729_1717.py
  71. 3
      protocoloadm/migrations/0003_documentoacessorioadministrativo_texto_integral.py
  72. 3
      protocoloadm/migrations/0004_auto_20151007_1035.py
  73. 3
      protocoloadm/migrations/0005_auto_20151008_0744.py
  74. 1
      requirements/requirements.txt
  75. 27
      sapl/utils.py
  76. 2
      sessao/migrations/0001_initial.py
  77. 2
      sessao/migrations/0002_auto_20150729_1450.py
  78. 2
      sessao/migrations/0003_remove_sessaoplenaria_tipo_expediente.py
  79. 3
      sessao/migrations/0004_auto_20150806_1614.py
  80. 2
      sessao/migrations/0005_remove_presencaordemdia_data_ordem.py
  81. 2
      sessao/migrations/0006_auto_20150929_1425.py
  82. 2
      sessao/migrations/0007_auto_20150929_1426.py
  83. 2
      sessao/migrations/0008_auto_20151005_0814.py
  84. 2
      sessao/migrations/0009_auto_20151005_0934.py
  85. BIN
      static/img/ajax-loader.gif
  86. BIN
      static/img/down_arrow_select.jpg
  87. BIN
      static/img/hand-note.png
  88. BIN
      static/img/icon_delete_white.png
  89. BIN
      static/img/icon_save_white.png
  90. 39
      static/js/compilacao.js
  91. 254
      static/js/compilacao_edit.js
  92. 179
      static/js/compilacao_notas.js
  93. 40
      static/js/compilacao_view.js
  94. 1415
      static/styles/compilacao.scss
  95. 10
      static/styles/compilacao_tinymce.css
  96. 7
      templates/ajuda/impressos.html
  97. 3
      templates/base.html
  98. 3
      templates/compilacao/ajax_form.html
  99. 43
      templates/compilacao/dispositivo_search_fragment_form.html
  100. 57
      templates/compilacao/edit.html

2
base/migrations/0001_initial.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
comissoes/migrations/0001_initial.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
comissoes/migrations/0002_auto_20150729_1310.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

327
compilacao/file2dispositivo.py

@ -0,0 +1,327 @@
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)

211
compilacao/forms.py

@ -0,0 +1,211 @@
from crispy_forms.helper import FormHelper
from crispy_forms.layout import HTML, Button, Column, Div, Field, Layout, Row
from django import forms
from django.forms.models import ModelForm
from django.utils.translation import ugettext_lazy as _
from compilacao.models import Dispositivo, Nota, TipoNota, TipoVide, Vide
from norma.models import TipoNormaJuridica
from sapl.layout import to_column, to_row
class UpLoadImportFileForm(forms.Form):
import_file = forms.FileField(
required=True,
label=_('Arquivo formato ODF para Importanção'))
error_messages = {
'required': _('Este campo é obrigatório'),
'invalid': _('URL inválida.')
}
class NotaForm(ModelForm):
NPRIV = 1
NINST = 2
NPUBL = 3
PUBLICIDADE_CHOICES = (
# Only the owner of the note has visibility.
(NPRIV, _('Nota Privada')),
# All authenticated users have visibility.
(NINST, _('Nota Institucional')),
# All users have visibility.
(NPUBL, _('Nota Pública')),
)
titulo = forms.CharField(label='&nbsp;', required=False)
texto = forms.CharField(
label='',
widget=forms.Textarea,
error_messages=error_messages)
url_externa = forms.URLField(
label='',
required=False,
error_messages=error_messages)
publicidade = forms.ChoiceField(
required=True,
label=_('Publicidade'),
choices=PUBLICIDADE_CHOICES,
widget=forms.Select(attrs={'class': 'selector'}))
tipo = forms.ModelChoiceField(
required=False,
label=_('Tipo da Nota'),
queryset=TipoNota.objects.all(),
empty_label=None)
publicacao = forms.DateField(
label=_('Publicação'),
input_formats=['%d/%m/%Y'],
required=True,
widget=forms.DateInput(
format='%d/%m/%Y'),
error_messages=error_messages
)
efetividade = forms.DateField(
label=_('Efetividade'),
input_formats=['%d/%m/%Y'],
required=True,
widget=forms.DateInput(
format='%d/%m/%Y'),
error_messages=error_messages)
dispositivo = forms.ModelChoiceField(queryset=Dispositivo.objects.all(),
widget=forms.HiddenInput())
pk = forms.IntegerField(widget=forms.HiddenInput(),
required=False)
class Meta:
model = Nota
fields = ['titulo',
'texto',
'url_externa',
'publicidade',
'publicacao',
'efetividade',
'tipo',
'dispositivo',
'pk'
]
def __init__(self, *args, **kwargs):
row1 = to_row([
('tipo', 4),
])
row1.append(
Column(
Field(
'titulo',
placeholder=_('Título da Nota (opcional)')
),
css_class='columns large-8'))
row3 = to_row([
('publicidade', 3),
('publicacao', 3),
('efetividade', 3),
(Button('submit', 'Salvar',
css_class='button primary radius'), 3)
])
self.helper = FormHelper()
self.helper.layout = Layout(
Div(HTML(_('Notas')), css_class='title_form'),
row1,
Field('texto', placeholder=_('Adicionar Nota')),
Field('url_externa', placeholder=_('URL Externa (opcional)')),
row3
)
super(NotaForm, self).__init__(*args, **kwargs)
class VideForm(ModelForm):
dispositivo_base = forms.ModelChoiceField(
queryset=Dispositivo.objects.all(),
widget=forms.HiddenInput())
dispositivo_ref = forms.ModelChoiceField(
queryset=Dispositivo.objects.all(),
widget=forms.HiddenInput())
tipo_norma = forms.ModelChoiceField(
queryset=TipoNormaJuridica.objects.all(),
required=False)
num_norma = forms.IntegerField(label=_('Núm. da Norma'), required=False)
ano_norma = forms.IntegerField(label=_('Ano da Norma'), required=False)
texto = forms.CharField(
label='',
widget=forms.Textarea,
error_messages=error_messages,
required=False)
tipo = forms.ModelChoiceField(
label=_('Tipo do Vide'),
queryset=TipoVide.objects.all(),
required=True)
busca_dispositivo = forms.CharField(
label=_('Buscar Dispositivo a Referenciar'),
required=False)
pk = forms.IntegerField(widget=forms.HiddenInput(),
required=False)
class Meta:
model = Vide
fields = ['dispositivo_base',
'dispositivo_ref',
'texto',
'tipo',
'pk']
def __init__(self, *args, **kwargs):
self.helper = FormHelper()
self.helper.layout = Layout(
Div(HTML(_('Vides')), css_class='title_form'),
Row(
to_column((
Div(
Div(to_column((Field(
'tipo',
placeholder=_('Selecione um Tipo de Vide')), 12))),
Div(to_column((
Field(
'texto',
placeholder=_(
'Texto Adicional ao Vide')), 12))),
Div(to_column((
Button(
'submit',
'Salvar',
css_class='button primary radius'), 12)))
), 4)),
to_column((
Div(
Div(to_column(('tipo_norma', 6))),
Div(to_column(('num_norma', 3)),
to_column(('ano_norma', 3))),
Div(to_column(
(Field(
'busca_dispositivo',
placeholder=_('Digite palavras, letras, '
'números ou algo'
' que estejam '
'no rótulo ou no texto.')), 10)),
to_column((
Button(
'buscar',
'Buscar',
css_class='button btn-busca radius'), 2))
),
to_column(
(Div(css_class='container-busca'), 12))
), 8)
)
)
)
super(VideForm, self).__init__(*args, **kwargs)

376
compilacao/insert_inicial_TipoDispositivo.sql

@ -1,27 +1,349 @@
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (1, 'Articulação', 'articulacao', '', '', 0, '.....', '', '', '', '', '', '', True, '1', '1', '1', '1', '1', '1');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (2, 'Ementa', 'ementa', '', '', 0, '.....', '', '', '', '', '', '', False, 'N', '1', '1', '1', '1', '1');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (3, 'Bloco Alteração', 'bloco_alteracao', '', '', 0, '.....', '', '', '', '', '', '', True, '1', '1', '1', '1', '1', '1');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (4, 'Omissis', 'omissis', '', '', 0, '.....', '', '', '', '', '', '', False, '1', '1', '1', '1', '1', '1');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (11, 'Anexo', 'anexo', '', 'Anexo', 0, '-----', '', '<br>', '', '<br>', '', '', False, 'I', '1', '1', '1', '1', '1');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (12, 'Parte', 'parte', '', 'Parte', 0, '-----', '', '<br>', '', '<br>', '', '', False, 'I', '1', '1', '1', '1', '1');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (13, 'Livro', 'livro', '', 'Livro', 0, '-----', '', '<br>', '', '<br>', '', '', False, 'I', '1', '1', '1', '1', '1');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (14, 'Título', 'titulo', '', 'Título', 0, '-----', '', '<br>', '', '<br>', '', '', False, 'I', '1', '1', '1', '1', '1');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (15, 'Capítulo', 'capitulo', '', 'Capítulo', 0, '-----', '', '<br>', '', '<br>', '', '', False, 'I', '1', '1', '1', '1', '1');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (16, 'Seção', 'secao', '', 'Seção', 0, '-----', '', '<br>', '', '<br>', '', '', False, 'I', '1', '1', '1', '1', '1');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (17, 'SubSeção', 'subsecao', '', 'SubSeção', 0, '-----', '', '<br>', '', '<br>', '', '', False, '1', '1', '1', '1', '1', '1');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (18, 'Item de Seção', 'itemsecao', '', 'Item', 0, '-----', '', '<br>', '', '<br>', '', '', False, '1', '1', '1', '1', '1', '1');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (19, 'Artigo', 'artigo', '', 'Art.', 9, '-----', '', '&nbsp;&ndash;&nbsp;', '', '', '', '', True, '1', '1', '1', '1', '1', '1');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (20, 'Caput', 'caput', '', '', 0, '', '', '', '', '', '', '', False, 'N', 'N', 'N', 'N', 'N', 'N');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (21, 'Parágrafo', 'paragrafo', '', '§;Parágrafo Único', 9, '-----', '', '&nbsp;&ndash;&nbsp;', '', '', '', '', False, '1', '1', '1', '1', '1', '1');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (22, 'Inciso', 'inciso', '', '', 0, '.....', '', '&nbsp;&ndash;&nbsp;', '', '', '', '', False, 'I', '1', '1', '1', '1', '1');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (23, 'Alinea', 'alinea', '', '', 0, '.....', '', '&nbsp;&ndash;&nbsp;', '', '', '', '', False, 'a', '1', '1', '1', '1', '1');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (24, 'Item', 'item', '', '', 0, '.....', '', '&nbsp;&ndash;&nbsp;', '', '', '', '', False, '1', '1', '1', '1', '1', '1');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (25, 'Disposições Preliminares', 'disp_preliminares', '', 'Disposições Preliminares', 0, '-----', '', '<br>', '', '<br>', '', '', False, 'N', '1', '1', '1', '1', '1');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (26, 'Disposições Gerais', 'disp_gerais', '', 'Disposições Gerais', 0, '-----', '', '<br>', '', '<br>', '', '', False, 'N', '1', '1', '1', '1', '1');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (27, 'Disposições Transitórias', 'disp_transitorias', '', 'Disposições Transitórias', 0, '-----', '', '<br>', '', '<br>', '', '', False, 'N', '1', '1', '1', '1', '1');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (28, 'Disposições Finais', 'disp_finais', '', 'Disposições Finais', 0, '-----', '', '<br>', '', '<br>', '', '', False, 'N', '1', '1', '1', '1', '1');
insert INTO compilacao_tipodispositivo (id, nome, class_css, rotulo_prefixo_html, rotulo_prefixo_texto, rotulo_ordinal, rotulo_separadores_variacao, 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) VALUES (29, 'Texto Não Estruturado', 'texto_n_estruturado', '', '', 0, '.....', '', '', '', '', '', '',False, '1', '1', '1', '1', '1', '1');
select setval('compilacao_tipodispositivo_id_seq'::regclass, (select max(id) from compilacao_tipodispositivo));
--
-- 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
--

2
compilacao/migrations/0001_initial.py

@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):

2
compilacao/migrations/0002_auto_20150907_2334.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
compilacao/migrations/0003_auto_20150911_1735.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
compilacao/migrations/0004_auto_20150914_0842.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

77
compilacao/migrations/0005_auto_20150924_1012.py

@ -0,0 +1,77 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0004_auto_20150914_0842'),
]
operations = [
migrations.AlterModelOptions(
name='tipodispositivo',
options={'verbose_name_plural': 'Tipos de Dispositivo', 'verbose_name': 'Tipo de Dispositivo', 'ordering': ['id']},
),
migrations.RemoveField(
model_name='tipodispositivo',
name='rotulo_separadores_variacao',
),
migrations.AddField(
model_name='tipodispositivo',
name='rotulo_separador_variacao01',
field=models.CharField(max_length=1, default='-', verbose_name='Separadores entre Numeração e Variação 1', blank=True),
),
migrations.AddField(
model_name='tipodispositivo',
name='rotulo_separador_variacao12',
field=models.CharField(max_length=1, default='-', verbose_name='Separadores entre Variação 1 e Variação 2', blank=True),
),
migrations.AddField(
model_name='tipodispositivo',
name='rotulo_separador_variacao23',
field=models.CharField(max_length=1, default='-', verbose_name='Separadores entre Variação 2 e Variação 3', blank=True),
),
migrations.AddField(
model_name='tipodispositivo',
name='rotulo_separador_variacao34',
field=models.CharField(max_length=1, default='-', verbose_name='Separadores entre Variação 3 e Variação 4', blank=True),
),
migrations.AddField(
model_name='tipodispositivo',
name='rotulo_separador_variacao45',
field=models.CharField(max_length=1, default='-', verbose_name='Separadores entre Variação 4 e Variação 5', blank=True),
),
migrations.AlterField(
model_name='tipodispositivo',
name='formato_variacao0',
field=models.CharField(max_length=1, default='1', choices=[('1', '1-Numérico'), ('I', 'I-Romano Maiúsculo'), ('i', 'i-Romano Minúsculo'), ('A', 'A-Alfabético Maiúsculo'), ('a', 'a-Alfabético Minúsculo'), ('*', 'Tópico - Sem contagem'), ('N', 'Sem renderização')], verbose_name='Formato da Numeração'),
),
migrations.AlterField(
model_name='tipodispositivo',
name='formato_variacao1',
field=models.CharField(max_length=1, default='1', choices=[('1', '1-Numérico'), ('I', 'I-Romano Maiúsculo'), ('i', 'i-Romano Minúsculo'), ('A', 'A-Alfabético Maiúsculo'), ('a', 'a-Alfabético Minúsculo'), ('*', 'Tópico - Sem contagem'), ('N', 'Sem renderização')], verbose_name='Formato da Variação 1'),
),
migrations.AlterField(
model_name='tipodispositivo',
name='formato_variacao2',
field=models.CharField(max_length=1, default='1', choices=[('1', '1-Numérico'), ('I', 'I-Romano Maiúsculo'), ('i', 'i-Romano Minúsculo'), ('A', 'A-Alfabético Maiúsculo'), ('a', 'a-Alfabético Minúsculo'), ('*', 'Tópico - Sem contagem'), ('N', 'Sem renderização')], verbose_name='Formato da Variação 2'),
),
migrations.AlterField(
model_name='tipodispositivo',
name='formato_variacao3',
field=models.CharField(max_length=1, default='1', choices=[('1', '1-Numérico'), ('I', 'I-Romano Maiúsculo'), ('i', 'i-Romano Minúsculo'), ('A', 'A-Alfabético Maiúsculo'), ('a', 'a-Alfabético Minúsculo'), ('*', 'Tópico - Sem contagem'), ('N', 'Sem renderização')], verbose_name='Formato da Variação 3'),
),
migrations.AlterField(
model_name='tipodispositivo',
name='formato_variacao4',
field=models.CharField(max_length=1, default='1', choices=[('1', '1-Numérico'), ('I', 'I-Romano Maiúsculo'), ('i', 'i-Romano Minúsculo'), ('A', 'A-Alfabético Maiúsculo'), ('a', 'a-Alfabético Minúsculo'), ('*', 'Tópico - Sem contagem'), ('N', 'Sem renderização')], verbose_name='Formato da Variação 4'),
),
migrations.AlterField(
model_name='tipodispositivo',
name='formato_variacao5',
field=models.CharField(max_length=1, default='1', choices=[('1', '1-Numérico'), ('I', 'I-Romano Maiúsculo'), ('i', 'i-Romano Minúsculo'), ('A', 'A-Alfabético Maiúsculo'), ('a', 'a-Alfabético Minúsculo'), ('*', 'Tópico - Sem contagem'), ('N', 'Sem renderização')], verbose_name='Formato da Variação 5'),
),
]

54
compilacao/migrations/0006_auto_20150924_1121.py

@ -0,0 +1,54 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0005_auto_20150924_1012'),
]
operations = [
migrations.AlterField(
model_name='tipodispositivo',
name='rotulo_ordinal',
field=models.IntegerField(choices=[(-1, 'Numeração Cardinal.'), (0, 'Numeração Ordinal.'), (9, 'Numeração Ordinal até o item nove.')], verbose_name='Tipo de número do rótulo'),
),
migrations.AlterField(
model_name='tipodispositivo',
name='rotulo_prefixo_texto',
field=models.CharField(blank=True, max_length=30, verbose_name='Prefixo de Edição do rótulo'),
),
migrations.AlterField(
model_name='tipodispositivo',
name='rotulo_separador_variacao01',
field=models.CharField(blank=True, default='-', max_length=1, verbose_name='Separador entre Numeração e Variação 1'),
),
migrations.AlterField(
model_name='tipodispositivo',
name='rotulo_separador_variacao12',
field=models.CharField(blank=True, default='-', max_length=1, verbose_name='Separador entre Variação 1 e Variação 2'),
),
migrations.AlterField(
model_name='tipodispositivo',
name='rotulo_separador_variacao23',
field=models.CharField(blank=True, default='-', max_length=1, verbose_name='Separador entre Variação 2 e Variação 3'),
),
migrations.AlterField(
model_name='tipodispositivo',
name='rotulo_separador_variacao34',
field=models.CharField(blank=True, default='-', max_length=1, verbose_name='Separador entre Variação 3 e Variação 4'),
),
migrations.AlterField(
model_name='tipodispositivo',
name='rotulo_separador_variacao45',
field=models.CharField(blank=True, default='-', max_length=1, verbose_name='Separador entre Variação 4 e Variação 5'),
),
migrations.AlterField(
model_name='tipodispositivo',
name='rotulo_sufixo_texto',
field=models.CharField(blank=True, max_length=30, verbose_name='Sufixo de Edição do rótulo'),
),
]

19
compilacao/migrations/0007_auto_20150924_1131.py

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0006_auto_20150924_1121'),
]
operations = [
migrations.AlterField(
model_name='tipodispositivo',
name='class_css',
field=models.CharField(max_length=20, blank=True, verbose_name='Classe CSS'),
),
]

50
compilacao/migrations/0008_auto_20151005_1023.py

@ -0,0 +1,50 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0007_auto_20150924_1131'),
]
operations = [
migrations.AddField(
model_name='tipodispositivo',
name='dispositivo_de_articulacao',
field=models.BooleanField(verbose_name='Dispositivo de Articulação (Sem Texto)', default=False, choices=[
(True, 'Sim'), (False, 'Não')]),
),
migrations.AlterField(
model_name='tipodispositivo',
name='rotulo_separador_variacao01',
field=models.CharField(
verbose_name='Separador entre Numeração e Variação 1', default='-', max_length=1),
),
migrations.AlterField(
model_name='tipodispositivo',
name='rotulo_separador_variacao12',
field=models.CharField(
verbose_name='Separador entre Variação 1 e Variação 2', default='-', max_length=1),
),
migrations.AlterField(
model_name='tipodispositivo',
name='rotulo_separador_variacao23',
field=models.CharField(
verbose_name='Separador entre Variação 2 e Variação 3', default='-', max_length=1),
),
migrations.AlterField(
model_name='tipodispositivo',
name='rotulo_separador_variacao34',
field=models.CharField(
verbose_name='Separador entre Variação 3 e Variação 4', default='-', max_length=1),
),
migrations.AlterField(
model_name='tipodispositivo',
name='rotulo_separador_variacao45',
field=models.CharField(
verbose_name='Separador entre Variação 4 e Variação 5', default='-', max_length=1),
),
]

23
compilacao/migrations/0009_auto_20151007_1635.py

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0008_auto_20151005_1023'),
]
operations = [
migrations.AlterField(
model_name='tipodispositivo',
name='rotulo_ordinal',
field=models.IntegerField(choices=[(0, 'Numeração Cardinal.'), (-1, 'Numeração Ordinal.'), (9, 'Numeração Ordinal até o item nove.')], verbose_name='Tipo de número do rótulo'),
),
migrations.AlterUniqueTogether(
name='dispositivo',
unique_together=set([('norma', 'ordem'), ('norma', 'dispositivo0', 'dispositivo1', 'dispositivo2', 'dispositivo3', 'dispositivo4', 'dispositivo5', 'tipo_dispositivo', 'dispositivo_pai', 'norma_publicada', 'publicacao')]),
),
]

30
compilacao/migrations/0010_auto_20151105_1532.py

@ -0,0 +1,30 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0009_auto_20151007_1635'),
]
operations = [
migrations.CreateModel(
name='TipoDispositivoRelationship',
fields=[
('id', models.AutoField(verbose_name='ID', auto_created=True, primary_key=True, serialize=False)),
('filho_permitido', models.ForeignKey(related_name='filho_permitido', to='compilacao.TipoDispositivo')),
('pai', models.ForeignKey(related_name='pai', to='compilacao.TipoDispositivo')),
],
options={
'abstract': False,
},
),
migrations.AddField(
model_name='tipodispositivo',
name='relacoes_diretas_pai_filho',
field=models.ManyToManyField(related_name='filhos_permitidos', through='compilacao.TipoDispositivoRelationship', to='compilacao.TipoDispositivo'),
),
]

27
compilacao/migrations/0011_auto_20151105_1540.py

@ -0,0 +1,27 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0010_auto_20151105_1532'),
]
operations = [
migrations.AlterModelOptions(
name='tipodispositivorelationship',
options={'verbose_name': 'Relação Direta Permitida', 'verbose_name_plural': 'Relaçõe Diretas Permitidas', 'ordering': ['pai', 'filho_permitido']},
),
migrations.AlterField(
model_name='tipodispositivorelationship',
name='filho_permitido',
field=models.ForeignKey(null=True, to='compilacao.TipoDispositivo', blank=True, default=None, related_name='filho_permitido'),
),
migrations.AlterUniqueTogether(
name='tipodispositivorelationship',
unique_together=set([('pai', 'filho_permitido')]),
),
]

34
compilacao/migrations/0012_auto_20151105_1658.py

@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0011_auto_20151105_1540'),
]
operations = [
migrations.AddField(
model_name='tipodispositivorelationship',
name='filho_de_insercao_automatica',
field=models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], default=False, verbose_name='Filho de Inserção Automática'),
),
migrations.AlterField(
model_name='tipodispositivo',
name='relacoes_diretas_pai_filho',
field=models.ManyToManyField(to='compilacao.TipoDispositivo', related_name='possiveis_pais', through='compilacao.TipoDispositivoRelationship'),
),
migrations.AlterField(
model_name='tipodispositivorelationship',
name='filho_permitido',
field=models.ForeignKey(blank=True, default=None, null=True, related_name='pais', to='compilacao.TipoDispositivo'),
),
migrations.AlterField(
model_name='tipodispositivorelationship',
name='pai',
field=models.ForeignKey(to='compilacao.TipoDispositivo', related_name='filhos_permitidos'),
),
]

24
compilacao/migrations/0013_auto_20151106_1843.py

@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0012_auto_20151105_1658'),
]
operations = [
migrations.AlterField(
model_name='tipodispositivo',
name='relacoes_diretas_pai_filho',
field=models.ManyToManyField(to='compilacao.TipoDispositivo', related_name='_relacoes_diretas_pai_filho_+', through='compilacao.TipoDispositivoRelationship'),
),
migrations.AlterField(
model_name='tipodispositivorelationship',
name='filho_permitido',
field=models.ForeignKey(null=True, blank=True, related_name='possiveis_pais', to='compilacao.TipoDispositivo', default=None),
),
]

19
compilacao/migrations/0014_auto_20151107_1836.py

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0013_auto_20151106_1843'),
]
operations = [
migrations.AddField(
model_name='tipodispositivo',
name='quantidade_permitida',
field=models.IntegerField(default=-1, verbose_name='Quantidade permitida dentro de uma Norma'),
),
]

24
compilacao/migrations/0015_auto_20151115_2310.py

@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0014_auto_20151107_1836'),
]
operations = [
migrations.AddField(
model_name='tipodispositivo',
name='dispositivo_de_alteracao',
field=models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], default=False, verbose_name='Dispositivo de Alteração'),
),
migrations.AlterField(
model_name='tipodispositivorelationship',
name='filho_permitido',
field=models.ForeignKey(related_name='possiveis_pais', to='compilacao.TipoDispositivo'),
),
]

49
compilacao/migrations/0016_auto_20151119_0950.py

@ -0,0 +1,49 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import datetime
from django.db import migrations, models
from django.utils.timezone import utc
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0015_auto_20151115_2310'),
]
operations = [
migrations.CreateModel(
name='PerfilEstruturalTextosNormativos',
fields=[
('id', models.AutoField(auto_created=True, serialize=False, primary_key=True, verbose_name='ID')),
('nome', models.CharField(max_length=50, verbose_name='Nome')),
],
options={
'verbose_name_plural': 'Perfis Estruturais de Textos Normativos',
'verbose_name': 'Perfil Estrutural de Textos Normativos',
},
),
migrations.RemoveField(
model_name='dispositivo',
name='timestamp',
),
migrations.AddField(
model_name='dispositivo',
name='created',
field=models.DateTimeField(default=datetime.datetime(2015, 11, 19, 11, 49, 55, 455058, tzinfo=utc), auto_now_add=True, verbose_name='created'),
preserve_default=False,
),
migrations.AddField(
model_name='dispositivo',
name='modified',
field=models.DateTimeField(auto_now=True, default=datetime.datetime(2015, 11, 19, 11, 50, 5, 86839, tzinfo=utc), verbose_name='modified'),
preserve_default=False,
),
migrations.AddField(
model_name='tipodispositivorelationship',
name='perfil',
field=models.ForeignKey(blank=True, related_name='+', null=True, default=None, to='compilacao.PerfilEstruturalTextosNormativos'),
),
]

28
compilacao/migrations/0017_auto_20151119_1035.py

@ -0,0 +1,28 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0016_auto_20151119_0950'),
]
operations = [
migrations.AddField(
model_name='perfilestruturaltextosnormativos',
name='padrao',
field=models.BooleanField(verbose_name='Padrão', choices=[(True, 'Sim'), (False, 'Não')], default=False),
),
migrations.AlterField(
model_name='tipodispositivorelationship',
name='perfil',
field=models.ForeignKey(to='compilacao.PerfilEstruturalTextosNormativos'),
),
migrations.AlterUniqueTogether(
name='tipodispositivorelationship',
unique_together=set([('pai', 'filho_permitido', 'perfil')]),
),
]

23
compilacao/migrations/0018_auto_20151119_1052.py

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0017_auto_20151119_1035'),
]
operations = [
migrations.RemoveField(
model_name='tipodispositivo',
name='quantidade_permitida',
),
migrations.AddField(
model_name='tipodispositivorelationship',
name='quantidade_permitida',
field=models.IntegerField(default=-1, verbose_name='Quantidade permitida nesta relação'),
),
]

20
compilacao/migrations/0019_auto_20151119_1120.py

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0018_auto_20151119_1052'),
]
operations = [
migrations.AddField(
model_name='perfilestruturaltextosnormativos',
name='sigla',
field=models.CharField(max_length=10, verbose_name='Sigla', default='LC95'),
preserve_default=False,
),
]

20
compilacao/migrations/0020_auto_20151119_1126.py

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0019_auto_20151119_1120'),
]
operations = [
migrations.AlterField(
model_name='perfilestruturaltextosnormativos',
name='sigla',
field=models.CharField(
max_length=10, verbose_name='Sigla', unique=True),
),
]

23
compilacao/migrations/0021_auto_20151119_1617.py

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0020_auto_20151119_1126'),
]
operations = [
migrations.AlterModelOptions(
name='perfilestruturaltextosnormativos',
options={'verbose_name': 'Perfil Estrutural de Textos Normativos', 'verbose_name_plural': 'Perfis Estruturais de Textos Normativos', 'ordering': ['-padrao', 'sigla']},
),
migrations.AddField(
model_name='tipodispositivorelationship',
name='permitir_variacao',
field=models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], verbose_name='Permitir Variação Numérica', default=True),
),
]

33
compilacao/migrations/0022_auto_20151120_1503.py

@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import datetime
from django.db import migrations, models
from django.utils.timezone import utc
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0021_auto_20151119_1617'),
]
operations = [
migrations.RemoveField(
model_name='publicacao',
name='timestamp',
),
migrations.AddField(
model_name='publicacao',
name='created',
field=models.DateTimeField(verbose_name='created', auto_now_add=True, default=datetime.datetime(2015, 11, 20, 17, 3, 45, 347063, tzinfo=utc)),
preserve_default=False,
),
migrations.AddField(
model_name='publicacao',
name='modified',
field=models.DateTimeField(verbose_name='modified', default=datetime.datetime(2015, 11, 20, 17, 3, 51, 67108, tzinfo=utc), auto_now=True),
preserve_default=False,
),
]

29
compilacao/migrations/0023_auto_20151120_1529.py

@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import datetime
from django.db import migrations, models
from django.utils.timezone import utc
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0022_auto_20151120_1503'),
]
operations = [
migrations.AddField(
model_name='vide',
name='created',
field=models.DateTimeField(verbose_name='created', auto_now_add=True, default=datetime.datetime(2015, 11, 20, 17, 29, 27, 32283, tzinfo=utc)),
preserve_default=False,
),
migrations.AddField(
model_name='vide',
name='modified',
field=models.DateTimeField(verbose_name='modified', auto_now=True, default=datetime.datetime(2015, 11, 20, 17, 29, 31, 856683, tzinfo=utc)),
preserve_default=False,
),
]

37
compilacao/migrations/0024_auto_20151120_1814.py

@ -0,0 +1,37 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import datetime
from django.db import migrations, models
from django.utils.timezone import utc
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0023_auto_20151120_1529'),
]
operations = [
migrations.RemoveField(
model_name='nota',
name='data_criacao',
),
migrations.RemoveField(
model_name='vide',
name='data_criacao',
),
migrations.AddField(
model_name='nota',
name='created',
field=models.DateTimeField(auto_now_add=True, default=datetime.datetime(2015, 11, 20, 20, 13, 57, 385520, tzinfo=utc), verbose_name='created'),
preserve_default=False,
),
migrations.AddField(
model_name='nota',
name='modified',
field=models.DateTimeField(auto_now=True, default=datetime.datetime(2015, 11, 20, 20, 14, 3, 360297, tzinfo=utc), verbose_name='modified'),
preserve_default=False,
),
]

24
compilacao/migrations/0025_auto_20151122_1744.py

@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0024_auto_20151120_1814'),
]
operations = [
migrations.RenameField(
model_name='nota',
old_name='efetifidade',
new_name='efetividade',
),
migrations.AlterField(
model_name='nota',
name='dispositivo',
field=models.ForeignKey(to='compilacao.Dispositivo', related_name='notas', verbose_name='Dispositivo da Nota'),
),
]

28
compilacao/migrations/0026_auto_20151122_1756.py

@ -0,0 +1,28 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0025_auto_20151122_1744'),
]
operations = [
migrations.AlterModelOptions(
name='nota',
options={'verbose_name': 'Nota', 'ordering': ['publicacao'], 'verbose_name_plural': 'Notas'},
),
migrations.AddField(
model_name='nota',
name='titulo',
field=models.CharField(verbose_name='Título', max_length=100, default=''),
),
migrations.AlterField(
model_name='nota',
name='texto',
field=models.TextField(verbose_name='Texto'),
),
]

33
compilacao/migrations/0027_auto_20151130_1632.py

@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0026_auto_20151122_1756'),
]
operations = [
migrations.AlterModelOptions(
name='nota',
options={'verbose_name': 'Nota', 'ordering': ['-publicacao', '-modified'], 'verbose_name_plural': 'Notas'},
),
migrations.AlterField(
model_name='nota',
name='titulo',
field=models.CharField(verbose_name='Título', default='', blank=True, max_length=100),
),
migrations.AlterField(
model_name='vide',
name='dispositivo_base',
field=models.ForeignKey(verbose_name='Dispositivo Base', related_name='cita', to='compilacao.Dispositivo'),
),
migrations.AlterField(
model_name='vide',
name='dispositivo_ref',
field=models.ForeignKey(verbose_name='Dispositivo Referido', related_name='citado', to='compilacao.Dispositivo'),
),
]

18
compilacao/migrations/0028_auto_20151201_0042.py

@ -0,0 +1,18 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0027_auto_20151130_1632'),
]
operations = [
migrations.AlterUniqueTogether(
name='vide',
unique_together=set([('dispositivo_base', 'dispositivo_ref')]),
),
]

19
compilacao/migrations/0029_auto_20151201_1611.py

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0028_auto_20151201_0042'),
]
operations = [
migrations.AlterField(
model_name='nota',
name='publicidade',
field=models.PositiveSmallIntegerField(verbose_name='Nível de Publicidade', choices=[(1, 'Nota Privada'), (2, 'Nota Institucional'), (3, 'Nota Pública')]),
),
]

767
compilacao/models.py

@ -1,11 +1,63 @@
from datetime import datetime
from django.contrib.auth.models import User
from django.db import models
from django.db.models import F, Q
from django.db.models.aggregates import Max
from django.utils.translation import ugettext_lazy as _
from norma.models import NormaJuridica
from sapl import utils
from sapl.utils import YES_NO_CHOICES
class TimestampedMixin(models.Model):
created = models.DateTimeField(
verbose_name=_('created'),
editable=False, blank=True, auto_now_add=True)
modified = models.DateTimeField(
verbose_name=_('modified'), editable=False, blank=True, auto_now=True)
class Meta:
abstract = True
class BaseModel(models.Model):
class Meta:
abstract = True
def clean(self):
"""
Check for instances with null values in unique_together fields.
"""
from django.core.exceptions import ValidationError
super(BaseModel, self).clean()
for field_tuple in self._meta.unique_together[:]:
unique_filter = {}
unique_fields = []
null_found = False
for field_name in field_tuple:
field_value = getattr(self, field_name)
if getattr(self, field_name) is None:
unique_filter['%s__isnull' % field_name] = True
null_found = True
else:
unique_filter['%s' % field_name] = field_value
unique_fields.append(field_name)
if null_found:
unique_queryset = self.__class__.objects.filter(
**unique_filter)
if self.pk:
unique_queryset = unique_queryset.exclude(pk=self.pk)
if unique_queryset.exists():
msg = self.unique_error_message(
self.__class__, tuple(unique_fields))
raise ValidationError(msg)
class TipoNota(models.Model):
sigla = models.CharField(
max_length=10, unique=True, verbose_name=_('Sigla'))
@ -34,7 +86,23 @@ class TipoVide(models.Model):
return '%s: %s' % (self.sigla, self.nome)
class TipoDispositivo(models.Model):
class TipoDispositivo(BaseModel):
"""
- no attributo rotulo_prefixo_texto, caso haja um ';' (ponto e vírgula), e
pode haver 1 ';', o método [def rotulo_padrao] considerará que o
rótulo do dispositivo deverá ser escrito com o contéudo após o ';'
caso para o pai do dispositivo em processamento exista apenas
o próprio como filho
- ao o usuário trocar manualmente o rotulo para a opção após o ';'
necessáriamente o numeração do dispositivo deve ser redusida a 0,
podendo manter as variações
-tipo de dispositivos com contagem continua são continua porém encapsuladas
em articulação... mudando articulação, reinicia-se a contagem
- revogação de dispositivo_de_articulacao revogam todo o conteúdo
"""
FNC1 = '1'
FNCI = 'I'
FNCi = 'i'
@ -43,18 +111,32 @@ class TipoDispositivo(models.Model):
FNC8 = '*'
FNCN = 'N'
FORMATO_NUMERACAO_CHOICES = (
(FNC1, _('(1) Numérico')),
(FNCI, _('(I) Romano Maiúsculo')),
(FNCi, _('(i) Romano Minúsculo')),
(FNCA, _('(A) Alfabético Maiúsculo')),
(FNCa, _('(a) Alfabético Minúsculo')),
(FNC1, _('1-Numérico')),
(FNCI, _('I-Romano Maiúsculo')),
(FNCi, _('i-Romano Minúsculo')),
(FNCA, _('A-Alfabético Maiúsculo')),
(FNCa, _('a-Alfabético Minúsculo')),
(FNC8, _('Tópico - Sem contagem')),
(FNCN, _('Sem renderização')),
)
# Choice básico. Porém pode ser melhorado dando a opção de digitar outro
# valor maior que zero e diferente de nove. A App de edição de rótulo,
# entenderá que deverá colocar ordinal até o valor armazenado ou em tudo
# se for igual -1.
TNRT = -1
TNRN = 0
TNR9 = 9
TIPO_NUMERO_ROTULO = (
(TNRN, _('Numeração Cardinal.')),
(TNRT, _('Numeração Ordinal.')),
(TNR9, _('Numeração Ordinal até o item nove.')),
)
nome = models.CharField(
max_length=50, unique=True, verbose_name=_('Nome'))
class_css = models.CharField(
blank=True,
max_length=20,
verbose_name=_('Classe CSS'))
rotulo_prefixo_html = models.CharField(
@ -64,17 +146,39 @@ class TipoDispositivo(models.Model):
rotulo_prefixo_texto = models.CharField(
blank=True,
max_length=30,
verbose_name=_('Prefixo de construção do rótulo'))
verbose_name=_('Prefixo de Edição do rótulo'))
rotulo_ordinal = models.IntegerField(
choices=TIPO_NUMERO_ROTULO,
verbose_name=_('Tipo de número do rótulo'))
rotulo_separadores_variacao = models.CharField(
blank=True,
max_length=5,
verbose_name=_('Separadores das Variações'))
rotulo_separador_variacao01 = models.CharField(
blank=False,
max_length=1,
default="-",
verbose_name=_('Separador entre Numeração e Variação 1'))
rotulo_separador_variacao12 = models.CharField(
blank=False,
max_length=1,
default="-",
verbose_name=_('Separador entre Variação 1 e Variação 2'))
rotulo_separador_variacao23 = models.CharField(
blank=False,
max_length=1,
default="-",
verbose_name=_('Separador entre Variação 2 e Variação 3'))
rotulo_separador_variacao34 = models.CharField(
blank=False,
max_length=1,
default="-",
verbose_name=_('Separador entre Variação 3 e Variação 4'))
rotulo_separador_variacao45 = models.CharField(
blank=False,
max_length=1,
default="-",
verbose_name=_('Separador entre Variação 4 e Variação 5'))
rotulo_sufixo_texto = models.CharField(
blank=True,
max_length=30,
verbose_name=_('Sufixo de construção do rótulo'))
verbose_name=_('Sufixo de Edição do rótulo'))
rotulo_sufixo_html = models.CharField(
blank=True,
max_length=100,
@ -97,6 +201,14 @@ class TipoDispositivo(models.Model):
verbose_name=_('Sufixo html da nota automática'))
contagem_continua = models.BooleanField(
choices=YES_NO_CHOICES, verbose_name=_('Contagem contínua'))
dispositivo_de_articulacao = models.BooleanField(
choices=YES_NO_CHOICES,
default=False,
verbose_name=_('Dispositivo de Articulação (Sem Texto)'))
dispositivo_de_alteracao = models.BooleanField(
choices=YES_NO_CHOICES,
default=False,
verbose_name=_('Dispositivo de Alteração'))
formato_variacao0 = models.CharField(
max_length=1,
choices=FORMATO_NUMERACAO_CHOICES,
@ -128,13 +240,107 @@ class TipoDispositivo(models.Model):
default=FNC1,
verbose_name=_('Formato da Variação 5'))
relacoes_diretas_pai_filho = models.ManyToManyField(
'self',
through='TipoDispositivoRelationship',
through_fields=('pai', 'filho_permitido'),
symmetrical=False,
related_name='+')
class Meta:
verbose_name = _('Tipo de Dispositivo')
verbose_name_plural = _('Tipos de Dispositivo')
ordering = ['id']
def __str__(self):
return self.nome
def permitido_inserir_in(
self, pai_relativo, include_relative_autos=True, perfil_pk=None):
if not perfil_pk:
perfis = PerfilEstruturalTextosNormativos.objects.filter(
padrao=True)[:1]
if not perfis.exists():
return False
perfil_pk = perfis[0].pk
pp = self.possiveis_pais.filter(pai=pai_relativo, perfil_id=perfil_pk)
if pp.exists():
if not include_relative_autos:
if pp[0].filho_de_insercao_automatica:
return False
return True
return False
def permitido_variacao(
self, base, perfil_pk=None):
if not perfil_pk:
perfis = PerfilEstruturalTextosNormativos.objects.filter(
padrao=True)[:1]
if not perfis.exists():
return False
perfil_pk = perfis[0].pk
pp = self.possiveis_pais.filter(pai=base, perfil_id=perfil_pk)
if pp.exists():
if pp[0].permitir_variacao:
return True
return False
class PerfilEstruturalTextosNormativos(BaseModel):
sigla = models.CharField(
max_length=10, unique=True, verbose_name=_('Sigla'))
nome = models.CharField(max_length=50, verbose_name=_('Nome'))
padrao = models.BooleanField(
default=False,
choices=YES_NO_CHOICES, verbose_name=_('Padrão'))
class Meta:
verbose_name = _('Perfil Estrutural de Textos Normativos')
verbose_name_plural = _('Perfis Estruturais de Textos Normativos')
ordering = ['-padrao', 'sigla']
def __str__(self):
return self.nome
class TipoDispositivoRelationship(BaseModel):
pai = models.ForeignKey(TipoDispositivo, related_name='filhos_permitidos')
filho_permitido = models.ForeignKey(
TipoDispositivo,
related_name='possiveis_pais')
perfil = models.ForeignKey(PerfilEstruturalTextosNormativos)
filho_de_insercao_automatica = models.BooleanField(
default=False,
choices=YES_NO_CHOICES, verbose_name=_('Filho de Inserção Automática'))
permitir_variacao = models.BooleanField(
default=True,
choices=YES_NO_CHOICES, verbose_name=_('Permitir Variação Numérica'))
quantidade_permitida = models.IntegerField(
default=-1,
verbose_name=_('Quantidade permitida nesta relação'))
class Meta:
verbose_name = _('Relação Direta Permitida')
verbose_name_plural = _('Relaçõe Diretas Permitidas')
ordering = ['pai', 'filho_permitido']
unique_together = (
('pai', 'filho_permitido', 'perfil'),)
def __str__(self):
return '%s - %s' % (
self.pai.nome,
self.filho_permitido.nome if self.filho_permitido else '')
class TipoPublicacao(models.Model):
sigla = models.CharField(
@ -162,7 +368,7 @@ class VeiculoPublicacao(models.Model):
return '%s: %s' % (self.sigla, self.nome)
class Publicacao(models.Model):
class Publicacao(TimestampedMixin):
norma = models.ForeignKey(
NormaJuridica, verbose_name=_('Norma Jurídica'))
veiculo_publicacao = models.ForeignKey(
@ -174,7 +380,6 @@ class Publicacao(models.Model):
blank=True, null=True, verbose_name=_('Pg. Início'))
pagina_fim = models.PositiveIntegerField(
blank=True, null=True, verbose_name=_('Pg. Fim'))
timestamp = models.DateTimeField()
class Meta:
verbose_name = _('Publicação')
@ -184,14 +389,17 @@ class Publicacao(models.Model):
return '%s: %s' % (self.veiculo_publicacao, self.publicacao)
class Dispositivo(models.Model):
class Dispositivo(BaseModel, TimestampedMixin):
TEXTO_PADRAO_DISPOSITIVO_REVOGADO = _('(Revogado)')
INTERVALO_ORDEM = 1000
ordem = models.PositiveIntegerField(
default=0,
verbose_name=_('Ordem de Renderização'))
ordem_bloco_atualizador = models.PositiveIntegerField(
default=0,
verbose_name=_('Ordem de Renderização no Bloco Atualizador'))
# apenas articulacao recebe nivel zero
nivel = models.PositiveIntegerField(
default=0,
blank=True,
@ -261,8 +469,6 @@ class Dispositivo(models.Model):
choices=YES_NO_CHOICES,
verbose_name=_('Visibilidade na Norma Publicada'))
timestamp = models.DateTimeField()
tipo_dispositivo = models.ForeignKey(
TipoDispositivo,
related_name='dispositivos_do_tipo_set',
@ -323,6 +529,7 @@ class Dispositivo(models.Model):
'dispositivo5',
'tipo_dispositivo',
'dispositivo_pai',
'norma_publicada',
'publicacao',),
)
@ -331,9 +538,500 @@ class Dispositivo(models.Model):
'rotulo': (self.rotulo if self.rotulo else self.tipo_dispositivo),
'norma': self.norma}
def rotulo_padrao(self, local_insert=0, for_insert_in=0):
"""
0 = Sem inserção - com nomeclatura padrao
1 = Inserção com transformação de parágrafo único para §1º """
r = ''
t = self.tipo_dispositivo
prefixo = t.rotulo_prefixo_texto.split(';')
if len(prefixo) > 1:
if for_insert_in:
irmaos_mesmo_tipo = Dispositivo.objects.filter(
tipo_dispositivo=self.tipo_dispositivo,
dispositivo_pai=self)
else:
irmaos_mesmo_tipo = Dispositivo.objects.filter(
tipo_dispositivo=self.tipo_dispositivo,
dispositivo_pai=self.dispositivo_pai)
if not irmaos_mesmo_tipo.exists():
r += prefixo[1]
else:
if self.dispositivo0 == 0:
if for_insert_in:
if irmaos_mesmo_tipo.count() == 0:
r += prefixo[0]
r += self.get_nomenclatura_completa()
elif irmaos_mesmo_tipo.count() == 1:
self.transform_in_next()
self.transform_in_next()
r += 'Transformar %s em %s%s e criar %s1%s' % (
prefixo[1].strip(),
prefixo[0],
self.get_nomenclatura_completa(),
prefixo[0],
'º' if
self.tipo_dispositivo.rotulo_ordinal >= 0
else '',)
else:
self.dispositivo0 = 1
r += prefixo[0]
r += self.get_nomenclatura_completa()
else:
if local_insert:
r += prefixo[1].strip()
r += self.get_nomenclatura_completa()
else:
self.dispositivo0 = 1
r += prefixo[0]
r += self.get_nomenclatura_completa()
else:
if local_insert == 1 and irmaos_mesmo_tipo.count() == 1:
if Dispositivo.objects.filter(
ordem__gt=self.ordem,
ordem__lt=irmaos_mesmo_tipo[0].ordem).exists():
self.dispositivo0 = 2
r += 'Transformar %s em %s%s e criar %s1%s' % (
prefixo[1].strip(),
prefixo[0],
self.get_nomenclatura_completa(),
prefixo[0],
'º' if
self.tipo_dispositivo.rotulo_ordinal >= 0
else '',)
else:
r += 'Transformar %s em %s%s e criar %s 2%s' % (
prefixo[1].strip(),
prefixo[0],
self.get_nomenclatura_completa(),
prefixo[0],
'º' if
self.tipo_dispositivo.
rotulo_ordinal >= 0 else '',)
else:
r += prefixo[0]
r += self.get_nomenclatura_completa()
else:
r += prefixo[0]
r += self.get_nomenclatura_completa()
r += t.rotulo_sufixo_texto
return r
def get_profundidade(self):
numero = self.get_numero_completo()
for i in range(len(numero)):
if numero[i] != 0 or i == 0:
continue
return i - 1
return i
class Vide(models.Model):
data_criacao = models.DateTimeField(verbose_name=_('Data de Criação'))
def transform_in_next(self, direcao_variacao=0):
"""
direcao_variacao é lida da seguinte forma:
-1 = reduza 1 variacao e incremente 1
1 = aumente 1 variacao e incremente 1
-2 = reduza 2 variacoes e incremente 1
2 = aumente 2 variacoes e incremente 1
"""
numero = self.get_numero_completo()
flag_variacao = 0
flag_direcao = False
if direcao_variacao <= 0:
numero.reverse()
for i in range(len(numero)):
if not flag_direcao and numero[i] == 0 and i < len(numero) - 1:
continue
if direcao_variacao < 0:
numero[i] = 0
direcao_variacao += 1
flag_variacao -= 1
if i == len(numero) - 1:
flag_direcao = False
else:
flag_direcao = True
continue
break
numero[i] += 1
numero.reverse()
elif direcao_variacao > 0:
for i in range(len(numero)):
if numero[i] != 0 or i == 0:
continue
if direcao_variacao > 0:
numero[i] = 1
direcao_variacao -= 1
flag_variacao += 1
flag_direcao = True
if direcao_variacao == 0:
break
continue
if not flag_direcao:
flag_direcao = True
numero[i] += 1
self.set_numero_completo(numero)
return (flag_direcao, flag_variacao)
def set_numero_completo(self, *numero):
numero = numero[0]
self.dispositivo0 = numero[0]
self.dispositivo1 = numero[1]
self.dispositivo2 = numero[2]
self.dispositivo3 = numero[3]
self.dispositivo4 = numero[4]
self.dispositivo5 = numero[5]
def get_numero_completo(self):
return [
self.dispositivo0,
self.dispositivo1,
self.dispositivo2,
self.dispositivo3,
self.dispositivo4,
self.dispositivo5]
def get_nomenclatura_completa(self):
numero = self.get_numero_completo()
formato = [
self.tipo_dispositivo.formato_variacao0,
self.tipo_dispositivo.formato_variacao1,
self.tipo_dispositivo.formato_variacao2,
self.tipo_dispositivo.formato_variacao3,
self.tipo_dispositivo.formato_variacao4,
self.tipo_dispositivo.formato_variacao5]
separadores = [
'',
self.tipo_dispositivo.rotulo_separador_variacao01,
self.tipo_dispositivo.rotulo_separador_variacao12,
self.tipo_dispositivo.rotulo_separador_variacao23,
self.tipo_dispositivo.rotulo_separador_variacao34,
self.tipo_dispositivo.rotulo_separador_variacao45]
numero.reverse()
formato.reverse()
separadores.reverse()
result = ''
flag_obrigatorio = False
for i in range(len(numero)):
if not flag_obrigatorio and numero[i] == 0:
continue
flag_obrigatorio = True
if i + 1 == len(numero) and numero[i] == 0:
continue
if i + 1 == len(numero) and \
(self.tipo_dispositivo.rotulo_ordinal == -1 or
0 < numero[i] <= self.tipo_dispositivo.rotulo_ordinal):
result = 'º' + result
if formato[i] == TipoDispositivo.FNC1:
result = separadores[i] + str(numero[i]) + result
elif formato[i] == TipoDispositivo.FNCI:
result = separadores[i] + \
utils.int_to_roman(numero[i]) + result
elif formato[i] == TipoDispositivo.FNCi:
result = separadores[i] + \
utils.int_to_roman(numero[i]).lower() + result
elif formato[i] == TipoDispositivo.FNCA:
result = separadores[i] + \
utils.int_to_letter(numero[i]) + result
elif formato[i] == TipoDispositivo.FNCa:
result = separadores[i] + \
utils.int_to_letter(numero[i]).lower() + result
elif formato[i] == TipoDispositivo.FNC8:
result = separadores[i] + '*' + result
elif formato[i] == TipoDispositivo.FNCN:
result = separadores[i] + result
return result
def criar_espaco(self, espaco_a_criar, local):
if local == 'add_next':
proximo_bloco = Dispositivo.objects.filter(
ordem__gt=self.ordem,
nivel__lte=self.nivel,
norma_id=self.norma_id)[:1]
elif local == 'add_in':
proximo_bloco = Dispositivo.objects.filter(
ordem__gt=self.ordem,
nivel__lte=self.nivel + 1,
norma_id=self.norma_id).exclude(
tipo_dispositivo__class_css='caput')[:1]
else:
proximo_bloco = Dispositivo.objects.filter(
ordem__gte=self.ordem,
norma_id=self.norma_id)[:1]
if proximo_bloco.exists():
ordem = proximo_bloco[0].ordem
proximo_bloco = Dispositivo.objects.order_by('-ordem').filter(
ordem__gte=ordem,
norma_id=self.norma_id)
proximo_bloco.update(ordem=F('ordem') + 1)
proximo_bloco.update(
ordem=F('ordem') + (
Dispositivo.INTERVALO_ORDEM * espaco_a_criar - 1))
else:
# inserção no fim da norma
ordem_max = Dispositivo.objects.order_by(
'ordem').filter(norma_id=self.norma_id).aggregate(
Max('ordem'))
if ordem_max['ordem__max'] is None:
raise Exception(
'Não existem registros base nesta Norma')
ordem = ordem_max['ordem__max'] + Dispositivo.INTERVALO_ORDEM
return ordem
def organizar_niveis(self):
if self.dispositivo_pai is None:
self.nivel = 0
else:
self.nivel = self.dispositivo_pai.nivel + 1
filhos = Dispositivo.objects.filter(
dispositivo_pai_id=self.pk)
for filho in filhos:
filho.nivel = self.nivel + 1
filho.save()
filho.organizar_niveis()
def get_parents(self, ordem='desc'):
dp = self
p = []
while dp.dispositivo_pai is not None:
dp = dp.dispositivo_pai
if ordem == 'desc':
p.append(dp)
else:
p.insert(0, dp)
return p
def get_parents_asc(self):
return self.get_parents(ordem='asc')
def incrementar_irmaos(self, variacao=0, tipoadd=[]):
if not self.tipo_dispositivo.contagem_continua:
irmaos = list(Dispositivo.objects.filter(
Q(ordem__gt=self.ordem) | Q(dispositivo0=0),
dispositivo_pai_id=self.dispositivo_pai_id,
tipo_dispositivo_id=self.tipo_dispositivo.pk))
elif self.dispositivo_pai is None:
irmaos = list(Dispositivo.objects.filter(
ordem__gt=self.ordem,
norma_id=self.norma_id,
tipo_dispositivo_id=self.tipo_dispositivo.pk))
else: # contagem continua restrita a articulacao
proxima_articulacao = self.get_proximo_nivel_zero()
if proxima_articulacao is None:
irmaos = list(Dispositivo.objects.filter(
ordem__gt=self.ordem,
norma_id=self.norma_id,
tipo_dispositivo_id=self.tipo_dispositivo.pk))
else:
irmaos = list(Dispositivo.objects.filter(
Q(ordem__gt=self.ordem) &
Q(ordem__lt=proxima_articulacao.ordem),
norma_id=self.norma_id,
tipo_dispositivo_id=self.tipo_dispositivo.pk))
dp_profundidade = self.get_profundidade()
irmaos_a_salvar = []
ultimo_irmao = None
for irmao in irmaos:
if irmao.ordem <= self.ordem or irmao.dispositivo0 == 0:
irmaos_a_salvar.append(irmao)
continue
irmao_profundidade = irmao.get_profundidade()
if irmao_profundidade < dp_profundidade:
break
if irmao.get_numero_completo() < self.get_numero_completo():
if irmao_profundidade > dp_profundidade:
if ultimo_irmao is None:
irmao.transform_in_next(
dp_profundidade - irmao_profundidade)
irmao.transform_in_next(
irmao_profundidade - dp_profundidade)
else:
irmao.set_numero_completo(
ultimo_irmao.get_numero_completo())
irmao.transform_in_next(
irmao_profundidade -
ultimo_irmao.get_profundidade())
ultimo_irmao = irmao
else:
irmao.transform_in_next()
irmao.rotulo = irmao.rotulo_padrao()
irmaos_a_salvar.append(irmao)
elif irmao.get_numero_completo() == self.get_numero_completo():
irmao_numero = irmao.get_numero_completo()
irmao_numero[dp_profundidade] += 1
irmao.set_numero_completo(irmao_numero)
irmao.rotulo = irmao.rotulo_padrao()
irmaos_a_salvar.append(irmao)
else:
if dp_profundidade < irmao_profundidade and \
dp_profundidade > 0 and \
self.get_numero_completo()[:dp_profundidade] >= \
irmao.get_numero_completo()[:dp_profundidade] and\
ultimo_irmao is None:
break
else:
ultimo_irmao = irmao
irmao_numero = irmao.get_numero_completo()
irmao_numero[dp_profundidade] += 1
irmao.set_numero_completo(irmao_numero)
irmao.rotulo = irmao.rotulo_padrao()
irmaos_a_salvar.append(irmao)
irmaos_a_salvar.reverse()
for irmao in irmaos_a_salvar:
if (irmao.dispositivo0 == 0 and
irmao.ordem <= self.ordem) and variacao == 0:
irmao.dispositivo0 = 1
irmao.rotulo = irmao.rotulo_padrao()
self.dispositivo0 = 2
self.rotulo = self.rotulo_padrao()
elif (irmao.dispositivo0 == 0 and
irmao.ordem > self.ordem) and variacao == 0:
irmao.dispositivo0 = 2
irmao.rotulo = irmao.rotulo_padrao()
self.dispositivo0 = 1
self.rotulo = self.rotulo_padrao()
irmao.clean()
irmao.save()
def get_proximo_nivel_zero(self):
proxima_articulacao = Dispositivo.objects.filter(
ordem__gt=self.ordem,
nivel=0,
norma_id=self.norma_id)[:1]
if not proxima_articulacao.exists():
return None
return proxima_articulacao[0]
def is_relative_auto_insert(self, perfil_pk=None):
if self.dispositivo_pai is not None:
# pp possiveis_pais
if not perfil_pk:
perfis = PerfilEstruturalTextosNormativos.objects.filter(
padrao=True)[:1]
if perfis.exists():
perfil_pk = perfis[0].pk
pp = self.tipo_dispositivo.possiveis_pais.filter(
pai=self.dispositivo_pai.tipo_dispositivo,
perfil_id=perfil_pk)
if pp.exists():
if pp[0].filho_de_insercao_automatica:
return True
return False
def get_raiz(self):
dp = self
while dp.dispositivo_pai is not None:
dp = dp.dispositivo_pai
return dp
@staticmethod
def new_instance_based_on(dispositivo_base, tipo_base):
dp = Dispositivo()
dp.tipo_dispositivo = tipo_base
dp.set_numero_completo(
dispositivo_base.get_numero_completo())
dp.nivel = dispositivo_base.nivel
dp.texto = ''
dp.norma = dispositivo_base.norma
dp.dispositivo_pai = dispositivo_base.dispositivo_pai
dp.inicio_eficacia = dispositivo_base.inicio_eficacia
dp.inicio_vigencia = dispositivo_base.inicio_vigencia
dp.publicacao = dispositivo_base.publicacao
dp.timestamp = datetime.now()
dp.ordem = dispositivo_base.ordem
return dp
@staticmethod
def set_numero_for_add_in(dispositivo_base, dispositivo, tipo_base):
if tipo_base.contagem_continua:
raiz = dispositivo_base.get_raiz()
disps = Dispositivo.objects.order_by('-ordem').filter(
tipo_dispositivo_id=tipo_base.pk,
ordem__lte=dispositivo_base.ordem,
ordem__gt=raiz.ordem,
norma_id=dispositivo_base.norma_id)[:1]
if disps.exists():
dispositivo.set_numero_completo(
disps[0].get_numero_completo())
dispositivo.transform_in_next()
else:
dispositivo.set_numero_completo([1, 0, 0, 0, 0, 0, ])
else:
if ';' in tipo_base.rotulo_prefixo_texto:
if dispositivo != dispositivo_base:
irmaos_mesmo_tipo = Dispositivo.objects.filter(
tipo_dispositivo=tipo_base,
dispositivo_pai=dispositivo_base)
dispositivo.set_numero_completo([
1 if irmaos_mesmo_tipo.exists() else 0,
0, 0, 0, 0, 0, ])
else:
dispositivo.set_numero_completo([0, 0, 0, 0, 0, 0, ])
else:
dispositivo.set_numero_completo([1, 0, 0, 0, 0, 0, ])
class Vide(TimestampedMixin):
texto = models.TextField(verbose_name=_('Texto do Vide'))
tipo = models.ForeignKey(TipoVide, verbose_name=_('Tipo do Vide'))
@ -341,50 +1039,54 @@ class Vide(models.Model):
dispositivo_base = models.ForeignKey(
Dispositivo,
verbose_name=_('Dispositivo Base'),
related_name='%(class)s_dispositivo_base')
related_name='cita')
dispositivo_ref = models.ForeignKey(
Dispositivo,
related_name='%(class)s_dispositivo_ref',
related_name='citado',
verbose_name=_('Dispositivo Referido'))
class Meta:
verbose_name = _('Vide')
verbose_name_plural = _('Vides')
unique_together = ['dispositivo_base', 'dispositivo_ref']
def __str__(self):
return _('Vide %s') % self.texto
class Nota(models.Model):
class Nota(TimestampedMixin):
NPRIV = 1
NSTRL = 2
NINST = 3
NPUBL = 4
NINST = 2
NPUBL = 3
PUBLICIDADE_CHOICES = (
# Only the owner of the note has visibility.
(NPRIV, _('Nota Privada')),
# All of the same group have visibility.
(NSTRL, _('Nota Setorial')),
# All authenticated users have visibility.
(NINST, _('Nota Institucional')),
# All users have visibility.
(NPUBL, _('Nota Pública')),
)
texto = models.TextField(verbose_name=_('Texto da Nota'))
titulo = models.CharField(
verbose_name=_('Título'),
max_length=100,
default='',
blank=True)
texto = models.TextField(verbose_name=_('Texto'))
url_externa = models.CharField(
max_length=1024,
blank=True,
verbose_name=_('Url externa'))
data_criacao = models.DateTimeField(verbose_name=_('Data de Criação'))
publicacao = models.DateTimeField(verbose_name=_('Data de Publicação'))
efetifidade = models.DateTimeField(verbose_name=_('Data de Efeito'))
efetividade = models.DateTimeField(verbose_name=_('Data de Efeito'))
tipo = models.ForeignKey(TipoNota, verbose_name=_('Tipo da Nota'))
dispositivo = models.ForeignKey(
Dispositivo,
verbose_name=_('Dispositivo da Nota'))
verbose_name=_('Dispositivo da Nota'),
related_name='notas')
owner = models.ForeignKey(User, verbose_name=_('Dono da Nota'))
publicidade = models.PositiveSmallIntegerField(
@ -394,9 +1096,10 @@ class Nota(models.Model):
class Meta:
verbose_name = _('Nota')
verbose_name_plural = _('Notas')
ordering = ['-publicacao', '-modified']
def __str__(self):
return '%s: %s' % (
self.tipo,
self.PUBLICIDADE_CHOICES[self.publicidade][1]
self.get_publicidade_display()
)

106
compilacao/templatetags/compilacao_filters.py

@ -2,21 +2,28 @@ from django import template
from django.core.signing import Signer
from django.db.models import Q
from compilacao.models import Dispositivo
from compilacao.models import Dispositivo, TipoDispositivo
register = template.Library()
@register.filter
def get_bloco(pk_atualizador):
def get_bloco_atualizador(pk_atualizador):
return Dispositivo.objects.order_by('ordem_bloco_atualizador').filter(
Q(dispositivo_pai_id=pk_atualizador) |
Q(dispositivo_atualizador_id=pk_atualizador)).select_related()
@register.filter
def get_field(value, key):
return value[key]
def get_tipos_dispositivo(pk_atual):
return TipoDispositivo.objects.filter(
id__gte=pk_atual)
@register.filter
def get_field(value_dict, key):
return value_dict[key]
@register.simple_tag
@ -35,11 +42,12 @@ def dispositivo_desativado(dispositivo, inicio_vigencia, fim_vigencia):
@register.simple_tag
def nota_automatica(dispositivo):
if dispositivo.norma_publicada is not None and \
dispositivo.tipo_dispositivo.class_css != 'artigo':
if dispositivo.norma_publicada is not None:
d = dispositivo.dispositivo_atualizador.dispositivo_pai
if dispositivo.texto == Dispositivo.TEXTO_PADRAO_DISPOSITIVO_REVOGADO:
return 'Revogado pelo %s.' % d
elif not dispositivo.dispositivo_substituido:
return 'Inclusão feita pelo %s.' % d
else:
return 'Alteração feita pelo %s.' % d
return ''
@ -52,8 +60,8 @@ def set_nivel_old(view, value):
@register.simple_tag
def close_div(value_max, value_min):
return '</div>' * (int(value_max) - int(value_min) + 1)
def close_div(value_max, value_min, varr):
return '</div>' * (int(value_max) - int(value_min) + 1 + varr)
@register.filter
@ -61,3 +69,85 @@ def get_sign_vigencia(value):
string = "%s,%s" % (value.inicio_vigencia, value.fim_vigencia)
signer = Signer()
return signer.sign(str(string))
@register.filter
def select_provaveis_inserts(view, request):
return view.select_provaveis_inserts(request)
@register.filter
def is_relative_auto_insert(dpt, request):
return dpt.is_relative_auto_insert(request.session['perfil_estrutural'])
@register.filter
def isinst(value, class_str):
classe = value.__class__.__name__
return classe == class_str
@register.filter
def render_actions_head(view, d_atual):
if view.__class__.__name__ != 'DispositivoEditView':
return False
# Menu
if view.pk_view == view.pk_edit and d_atual.pk == view.pk_view:
return True
# conteudo e menu no filho
if view.pk_view != view.pk_edit and d_atual.pk == view.pk_edit:
return True
return False
@register.filter
def short_string(str, length):
if len(str) > length:
return str[:length] + '...'
else:
return str
@register.filter
def nomenclatura(d):
result = ''
if d.rotulo != '':
if d.tipo_dispositivo.rotulo_prefixo_texto != '':
result = d.rotulo
else:
result = '(' + d.tipo_dispositivo.nome + ' ' + \
d.rotulo + ')'
else:
result = '(' + d.tipo_dispositivo.nome + \
d.rotulo_padrao() + ')'
return result
@register.simple_tag
def nomenclatura_heranca(d, ignore_ultimo=0, ignore_primeiro=0):
result = ''
while d is not None:
if ignore_ultimo and d.dispositivo_pai is None:
break
if ignore_primeiro:
ignore_primeiro = 0
d = d.dispositivo_pai
continue
if d.rotulo != '':
if d.tipo_dispositivo.rotulo_prefixo_texto != '':
result = d.rotulo + ' ' + result
else:
result = '(' + d.tipo_dispositivo.nome + ' ' + \
d.rotulo + ')' + ' ' + result
else:
result = '(' + d.tipo_dispositivo.nome + \
d.rotulo_padrao() + ')' + ' ' + result
d = d.dispositivo_pai
return result

68
compilacao/urls.py

@ -1,16 +1,70 @@
from django.conf.urls import url
from django.conf.urls import include, url
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 = [
url(r'^norma/(?P<norma_id>[0-9]+)/compilacao/$',
urlpatterns_compilacao = [
url(r'^(?P<norma_id>[0-9]+)/compilacao$',
views.CompilacaoView.as_view(), name='compilacao'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/(?P<dispositivo_id>[0-9]+)/$',
views.DispositivoView.as_view(), name='dispositivo'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/vigencia/(?P<sign>.+)/$',
views.CompilacaoView.as_view(), name='vigencia'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/edit',
views.CompilacaoEditView.as_view(), name='comp_edit'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/(?P<dispositivo_id>[0-9]+)/refresh',
views.DispositivoEditView.as_view(), name='dispositivo_edit'),
url(r'^norma/(?P<norma_id>[0-9]+)/compilacao/vigencia/(?P<sign>.+)/$',
views.CompilacaoView.as_view(), name='vigencia'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/(?P<dispositivo_id>[0-9]+)/actions',
views.ActionsEditView.as_view(), name='dispositivo_actions'),
url(r'^norma/(?P<norma_id>[0-9]+)/compilacao/(?P<dispositivo_id>[0-9]+)/$',
views.DispositivoView.as_view(), name='dispositivo'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/'
'(?P<dispositivo_id>[0-9]+)/nota/create$',
views.NotasCreateView.as_view(), name='nota_create'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/'
'(?P<dispositivo_id>[0-9]+)/nota/(?P<pk>[0-9]+)/edit$',
views.NotasEditView.as_view(), name='nota_edit'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/'
'(?P<dispositivo_id>[0-9]+)/nota/(?P<pk>[0-9]+)/delete$',
views.NotasDeleteView.as_view(), name='nota_delete'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/'
'(?P<dispositivo_id>[0-9]+)/vide/create$',
views.VideCreateView.as_view(), name='vide_create'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/'
'(?P<dispositivo_id>[0-9]+)/vide/(?P<pk>[0-9]+)/edit$',
views.VideEditView.as_view(), name='vide_edit'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/'
'(?P<dispositivo_id>[0-9]+)/vide/(?P<pk>[0-9]+)/delete$',
views.VideDeleteView.as_view(), name='vide_delete'),
url(r'^(?P<norma_id>[0-9]+)/compilacao/search$',
views.DispositivoSearchFragmentFormView.as_view(),
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)),
]

1183
compilacao/views.py

File diff suppressed because it is too large

2
lexml/migrations/0001_initial.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
lexml/migrations/0002_auto_20150806_1614.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
materia/migrations/0001_initial.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
materia/migrations/0002_auto_20150729_1310.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
materia/migrations/0003_auto_20150729_1717.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

3
materia/migrations/0004_materialegislativa_texto_original.py

@ -1,7 +1,8 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
import materia.models

2
materia/migrations/0005_auto_20150923_0941.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
materia/migrations/0006_proposicao_status.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
materia/migrations/0007_auto_20151021_1200.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
materia/migrations/0008_auto_20151029_1416.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
materia/migrations/0009_auto_20151029_1420.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

3
materia/migrations/0010_auto_20151117_1551.py

@ -1,7 +1,8 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
import materia.models

2
norma/migrations/0001_initial.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
norma/migrations/0002_auto_20150729_1717.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
norma/migrations/0003_auto_20150906_0239.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
norma/migrations/0004_auto_20150907_0004.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
norma/migrations/0005_auto_20150915_1141.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

18
norma/migrations/0006_auto_20151025_1427.py

@ -0,0 +1,18 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('norma', '0005_auto_20150915_1141'),
]
operations = [
migrations.AlterModelOptions(
name='normajuridica',
options={'ordering': ['-data', '-numero'], 'verbose_name_plural': 'Normas Jurídicas', 'verbose_name': 'Norma Jurídica'},
),
]

19
norma/migrations/0007_auto_20151130_1632.py

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('norma', '0006_auto_20151025_1427'),
]
operations = [
migrations.AlterField(
model_name='normajuridica',
name='complemento',
field=models.NullBooleanField(verbose_name='Complementar ?', choices=[(True, 'Sim'), (False, 'Não')]),
),
]

7
norma/models.py

@ -3,7 +3,7 @@ from django.template import defaultfilters
from django.utils.translation import ugettext_lazy as _
from materia.models import MateriaLegislativa
from sapl.utils import make_choices
from sapl.utils import YES_NO_CHOICES, make_choices
class AssuntoNorma(models.Model):
@ -86,7 +86,8 @@ class NormaJuridica(models.Model):
observacao = models.TextField(
blank=True, null=True, verbose_name=_('Observação'))
complemento = models.NullBooleanField(
blank=True, verbose_name=_('Complementar ?'))
blank=True, verbose_name=_('Complementar ?'),
choices=YES_NO_CHOICES)
# XXX was a CharField (attention on migrate)
assuntos = models.ManyToManyField(
AssuntoNorma,
@ -97,7 +98,7 @@ class NormaJuridica(models.Model):
class Meta:
verbose_name = _('Norma Jurídica')
verbose_name_plural = _('Normas Jurídicas')
ordering = ['-data']
ordering = ['-data', '-numero']
def __str__(self):
return _('%(tipo)s%(numero)s de %(data)s') % {

21
norma/urls.py

@ -1,14 +1,19 @@
from django.conf.urls import url
from django.conf.urls import include, url
from norma.views import NormaIncluirView, norma_temporario_para_compilacao_crud
from norma.views import (NormaIncluirView, assunto_norma_crud,
norma_temporario_crud, tipo_norma_crud)
norma_url_patterns = norma_temporario_para_compilacao_crud.urlpatterns
norma_url_patterns = norma_temporario_crud.urlpatterns + []
# norma_url_patterns = norma_crud.urlpatterns + []
urlpatterns = [
# url(r'^norma/', include(norma_url_patterns,
# norma_temporario_para_compilacao_crud.namespace,
# norma_temporario_para_compilacao_crud.namespace)),
# url(r'^sistema/norma/tipo/', include(tipo_norma_crud.urls)),
# url(r'^sistema/norma/assunto/', include(assunto_norma_crud.urls)),
url(r'^norma/', include(norma_url_patterns,
norma_temporario_crud.namespace,
norma_temporario_crud.namespace)),
url(r'^sistema/norma/tipo/', include(tipo_norma_crud.urls)),
url(r'^sistema/norma/assunto/', include(assunto_norma_crud.urls)),
url(r'^norma/incluir', NormaIncluirView.as_view(), name='norma-incluir'),
]

12
norma/views.py

@ -30,6 +30,7 @@ tipo_norma_crud = build_crud(
])
norma_crud = build_crud(
NormaJuridica, '', [
[_('Identificação Básica'),
@ -47,19 +48,18 @@ norma_crud = build_crud(
[('indexacao', 12)],
[('observacao', 12)]],
[_('Assuntos (Classificação) [+] '),
[_('Assuntos (Classificação) [+]'),
[('assunto_norma_FIXME', 12)],
[('assunto_norma_FIXME', 12)],
[('assunto_norma_FIXME', 12)]],
])
norma_temporario_para_compilacao_crud = build_crud(
NormaJuridica, 'norma', [
norma_temporario_crud = build_crud(
NormaJuridica, 'normajuridica', [
[_('Identificação Básica'),
[('tipo', 4), ('numero', 4), ('ano', 4)],
[('data', 4), ('esfera_federacao', 4)],
[('data_publicacao', 3)],
[('tipo', 5), ('numero', 2), ('ano', 2), ('data', 3)],
[('ementa', 12)]],
])

2
painel/migrations/0001_initial.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
parlamentares/migrations/0001_initial.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
parlamentares/migrations/0002_auto_20150729_1310.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
parlamentares/migrations/0003_auto_20150729_1717.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
parlamentares/migrations/0004_auto_20150929_1425.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

3
parlamentares/migrations/0005_parlamentar_fotografia.py

@ -1,7 +1,8 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
import parlamentares.models

2
parlamentares/migrations/0006_auto_20151119_1318.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
protocoloadm/migrations/0001_initial.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
protocoloadm/migrations/0002_auto_20150729_1717.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

3
protocoloadm/migrations/0003_documentoacessorioadministrativo_texto_integral.py

@ -1,7 +1,8 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
import protocoloadm.models

3
protocoloadm/migrations/0004_auto_20151007_1035.py

@ -1,7 +1,8 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
import protocoloadm.models

3
protocoloadm/migrations/0005_auto_20151008_0744.py

@ -1,7 +1,8 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
import protocoloadm.models

1
requirements/requirements.txt

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

27
sapl/utils.py

@ -37,3 +37,30 @@ def make_choices(*choice_pairs):
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

2
sessao/migrations/0001_initial.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
sessao/migrations/0002_auto_20150729_1450.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
sessao/migrations/0003_remove_sessaoplenaria_tipo_expediente.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

3
sessao/migrations/0004_auto_20150806_1614.py

@ -1,7 +1,8 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
import sessao.models

2
sessao/migrations/0005_remove_presencaordemdia_data_ordem.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
sessao/migrations/0006_auto_20150929_1425.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
sessao/migrations/0007_auto_20150929_1426.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
sessao/migrations/0008_auto_20151005_0814.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

2
sessao/migrations/0009_auto_20151005_0934.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):

BIN
static/img/ajax-loader.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

BIN
static/img/down_arrow_select.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 682 B

BIN
static/img/hand-note.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 B

BIN
static/img/icon_delete_white.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
static/img/icon_save_white.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

39
static/js/compilacao.js

@ -0,0 +1,39 @@
function initTinymce() {
tinymce.init({
mode : "textareas",
force_br_newlines : false,
force_p_newlines : false,
forced_root_block : '',
plugins: ["table save code"],
menubar: "edit format table tools",
toolbar: "save | undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent",
tools: "inserttable",
save_onsavecallback: onSubmitEditForm,
border_css: "/static/styles/compilacao_tinymce.css",
content_css: "/static/styles/compilacao_tinymce.css"
});
}
function SetCookie(cookieName,cookieValue,nDays) {
var today = new Date();
var expire = new Date();
if (nDays==null || nDays==0) nDays=1;
expire.setTime(today.getTime() + 3600000*24*nDays);
document.cookie = cookieName+"="+escape(cookieValue)
+ ";expires="+expire.toGMTString();
}
function ReadCookie(cookieName) {
var theCookie=" "+document.cookie;
var ind=theCookie.indexOf(" "+cookieName+"=");
if (ind==-1) ind=theCookie.indexOf(";"+cookieName+"=");
if (ind==-1 || cookieName=="") return "";
var ind1=theCookie.indexOf(";",ind+1);
if (ind1==-1) ind1=theCookie.length;
return unescape(theCookie.substring(ind+cookieName.length+2,ind1));
}
function insertWaitAjax(element) {
jQuery(element).append('<div style="text-align:center;"><img src="/static/img/ajax-loader.gif"></div>');
}

254
static/js/compilacao_edit.js

@ -0,0 +1,254 @@
var editortype = "textarea";
var gets = 0;
var onSubmitEditForm = function(event) {
var texto = '';
var editorTiny = tinymce.get('editdi_texto');
if (editorTiny != null)
texto = editorTiny.getContent();
else
texto = $('#editdi_texto').val();
var formData = {
'csrfmiddlewaretoken' : $('input[name=csrfmiddlewaretoken]').val(),
'texto' : texto
};
var url = $('.csform form').attr( "action_ajax" );
$("#message_block").css("display", "block");
$.post(url, formData)
.done(function(data) {
if (typeof data == "string") {
$('.dpt-selected').html(data);
clearEditSelected();
reloadFunctionClicks();
return;
}
clearEditSelected();
if (data.pk != null)
refreshScreenFocusPk(data);
else {
alert('Erro na inserção!');
flag_refresh_all = false;
}
}).always(function() {
$("#message_block").css("display", "none");
});
if (event != null)
event.preventDefault();
}
var clickEditDispositivo = function(event) {
var _pk = event.currentTarget.getAttribute('pk');
if ($('#dpt'+_pk).hasClass("dpt-selected")) {
clearEditSelected();
return;
}
clearEditSelected();
clickUpdateDispositivo(event);
}
var clickUpdateDispositivo = function(event, __pk_refresh, __pk_edit, __action, flag_actions_vibible, flag_refresh_all) {
var pk_refresh = __pk_refresh;
var pk_edit = __pk_edit;
var _action = __action;
var _variacao = '';
var _tipo_pk = '';
var _perfil_pk = '';
if (event != null) {
pk_refresh = event.currentTarget.getAttribute('pk');
_action = $(this).attr('action');
_variacao = $(this).attr('variacao');
_tipo_pk = $(this).attr('tipo_pk');
_perfil_pk = $(this).attr('perfil_pk');
}
if (pk_edit == null)
pk_edit = pk_refresh;
var url = '';
if (_action == '')
return;
else if ( _action == null) {
url = pk_refresh+'/refresh?edit='+pk_edit;
}
else if (_action.startsWith('refresh')) {
var str = _action.split(':');
if (str.length > 1) {
if(_action.endsWith('perfil')) {
url = '&perfil_pk='+_perfil_pk;
$("#message_block").css("display", "block");
}
else {
editortype = str[1];
SetCookie("editortype", editortype, 30)
}
}
url = pk_refresh+'/refresh?edit='+pk_edit+url;
}
else if (_action.startsWith('add_')) {
url = pk_refresh+'/actions?action='+_action;
url += '&tipo_pk='+_tipo_pk;
url += '&variacao='+_variacao;
$("#message_block").css("display", "block");
}
else if (_action.startsWith('delete_')) {
var r = confirm("Confirma Exclusão deste dispositivo?");
if (r == true) {
x = "You pressed OK!";
} else {
return
}
url = pk_refresh+'/actions?action='+_action;
$("#message_block").css("display", "block");
}
$.get(url).done(function( data ) {
if ( _action == null || _action.startsWith('refresh')) {
if (flag_refresh_all) {
if (flag_actions_vibible)
clearEditSelected();
$( '#dpt' + pk_refresh ).html( data);
}
else {
//console.log(pk_refresh + ' - '+pk_edit)
if (flag_actions_vibible == null || flag_actions_vibible)
clearEditSelected();
$( '#dpt' + pk_refresh ).prepend( data );
}
reloadFunctionClicks();
var _editortype = editortype;
if ( $('.edt-'+_editortype).length == 0) {
_editortype = 'construct';
}
if ( _editortype == 'tinymce' ) {
initTinymce();
}
else if (_editortype == 'textarea') {
$('.csform form').submit(onSubmitEditForm);
}
else if (_editortype == 'construct') {
$('.csform .btn-salvar').parent().addClass("displaynone");
$('.csform .btn-salvar, .csform .fields').addClass("displaynone");
$('#dpt'+pk_refresh).css('min-height', $('.actions_right').height()*2);
$('.actions_inserts').removeClass('menu_flutuante');
}
else if (_editortype == 'detail') {
$('.csform .btn-salvar').parent().removeClass("displaynone");
$('.csform .btn-salvar, .csform .fields').removeClass("displaynone");
$('#dpt'+pk_refresh).css('min-height', $('.actions_right').height()*2);
$('.actions_inserts').addClass('menu_flutuante');
}
$(".edt-"+_editortype).addClass('selected');
//$(".container").addClass('class_color_container');
if (flag_actions_vibible == null || flag_actions_vibible) {
$('#dpt'+pk_edit).addClass('dpt-selected');
$('html, body').animate({
scrollTop: $('#dpt' + pk_edit ).offset().top - window.innerHeight / 10
}, 300);
}
}
else if (_action == 'add_next' || _action == 'add_in') {
clearEditSelected();
if (data.pk != null) {
if (data.alert != null)
alert(data.alert)
refreshScreenFocusPk(data);
}
else {
alert('Erro na inserção!');
}
}
else if (_action.startsWith('delete_')) {
$("#message_block").css("display", "block");
clearEditSelected();
if (data.pk != null) {
refreshScreenFocusPk(data);
}
else {
alert('Erro exclusão!');
}
}
else {
clearEditSelected();
reloadFunctionClicks();
}
}).always(function() {
$("#message_block").css("display", "none");
});
}
function refreshScreenFocusPk(data) {
for (var pai = 0; pai < data.pai.length; pai++)
if (data.pai[pai] != -1) {
clickUpdateDispositivo(null, data.pai[pai], data.pk, 'refresh', pai == 0, true);
}
else {
href = location.href.split('#')[0]
location.href = href+'#'+data.pk
location.reload(true)
}
}
function clearEditSelected() {
$(".container").removeClass('class_color_container');
tinymce.remove();
$('.dpt-selected').removeClass('dpt-selected');
$('.dpt').css('min-height', '');
$('.csform').remove();
}
function reloadFunctionClicks() {
$('.dpt .de, .btn-action, .btn-edit').off();
$('.dpt .de, .btn-edit').on('click', clickEditDispositivo);
$('.btn-action').on('click', clickUpdateDispositivo);
$('#editdi_texto').focus();
}
$(document).ready(function() {
editortype = ReadCookie("editortype")
if (editortype == null || editortype == "") {
editortype = "textarea"
SetCookie("editortype", editortype, 30)
}
reloadFunctionClicks();
$("#message_block").css("display", "none");
href = location.href.split('#')
if (href.length == 2) {
clickUpdateDispositivo(null, href[1], href[1], 'refresh', true);
}
});

179
static/js/compilacao_notas.js

@ -0,0 +1,179 @@
function onEventsDneExec(pk) {
$('html, body').animate({
scrollTop: $('#dne' + pk ).offset().top - window.innerHeight / 5
}, 300);
$('.dateinput').fdatepicker({
// TODO localize
format: 'dd/mm/yyyy',
language: 'pt',
endDate: '31/12/2100',
todayBtn: true
});
$('#dne'+pk+" .primary").click(onSubmitEditForm);
$('#dne'+pk+" .btn-close-container").click(function(){
$(this).closest('.dne-nota').removeClass('dne-nota');
$(this).closest('.dne-form').html('');
});
$('#dne'+pk+" select[name='tipo']").change(function(event) {
var url = '';
url = 'compilacao/'+pk+'/nota/create?action=modelo_nota&id_tipo='+this.value;
$.get(url).done(function( data ) {
$('#dne'+pk+" textarea[name='texto']").val(data);
});
});
$('#dne'+pk+" select[name='tipo_norma']"
).change(onChangeParamNorma);
$('#dne'+pk+" input[name='num_norma'], "
+ '#dne'+pk+" input[name='ano_norma'], "
+ '#dne'+pk+" input[name='busca_dispositivo']"
).change(onChangeParamNorma);
$('#dne'+pk+" .btn-busca").click(onChangeParamNorma);
onChangeParamNorma();
}
var onChangeParamNorma = function(event) {
var tipo_norma = $("select[name='tipo_norma']").val();
var num_norma = $("input[name='num_norma']").val();
var ano_norma = $("input[name='ano_norma']").val();
var busca_dispositivo = $("input[name='busca_dispositivo']").val();
var dispositivo_ref = $("#id_dispositivo_ref").val();
$('#id_dispositivo_ref').remove();
if (dispositivo_ref == null)
dispositivo_ref = ''
var url = '';
var pk = $("select[name='tipo_norma']").closest('.dne').attr('pk')
var formData = {
'tipo_norma' : tipo_norma,
'num_norma' : num_norma,
'ano_norma' : ano_norma,
'busca' : busca_dispositivo,
'tipo_form' : 'radio',
'initial_ref' : dispositivo_ref
};
url = 'compilacao/search';
$('.container-busca').html('');
insertWaitAjax('.container-busca')
$.get(url, formData).done(function( data ) {
$('.container-busca').html(data);
$("input[name='dispositivo_ref']").first().prop('checked', true);
});
}
var onSubmitEditForm = function(event) {
var url = '';
var model = 'nota';
var id_edit = null;
var id_dispositivo = $('#id_dispositivo').val();
if (id_dispositivo == null) { // trata-se de um vide
$('#id_dispositivo_ref').remove();
id_dispositivo = $('#id_dispositivo_base').val();
model='vide';
}
id_edit = $('#id_pk').val();
url = 'compilacao/'+id_dispositivo+'/'+model+'/'
if (id_edit == null || id_edit == '')
url += 'create';
else
url += id_edit+'/edit';
console.log($('#dne'+id_dispositivo+" form").serialize());
$.post( url, $('#dne'+id_dispositivo+" form").serialize(), function(data) {
if (typeof data == "string") {
if (data.indexOf('<form') >= 0) {
$('#dne'+id_dispositivo+' .dne-form').html(data);
onEventsDneExec(id_dispositivo);
}
else {
$('#dne'+id_dispositivo+' .dne-form').closest('.dpt').html(data)
onReadyNotasVides();
$('html, body').animate({
scrollTop: $('#dne' + id_dispositivo ).offset().top - window.innerHeight / 3
}, 300);
}
}
}
);
}
var onDelete = function(event) {
var model = $(event).attr('model');
var id_dispositivo = $(event).closest('.dn').attr('pk');
var id_delete = $(event).attr('pk');
var url = 'compilacao/'+id_dispositivo+'/'+model+'/'+id_delete+'/delete';
$.get( url, function(data) {
$('#dne'+id_dispositivo+' .dne-form').closest('.dpt').html(data)
onReadyNotasVides();
}
);
}
function getForm(_this) {
var url = '';
var model = $(_this).attr('model');
var id_dispositivo = $('.dne-nota .dne-form').closest('.dne').attr('pk');
if (id_dispositivo != null) {
$('#dne'+id_dispositivo).removeClass('dne-nota');
$('#dne'+id_dispositivo+' .dne-form').html('');
}
if (_this.className.indexOf('create') >= 0 ) {
id_dispositivo = $(_this).attr('pk');
url = 'compilacao/'+id_dispositivo+'/'+model+'/create';
}
else if (_this.className.indexOf('edit') >= 0 ) {
var id_edit = $(_this).attr('pk');
id_dispositivo = $(_this).closest('.dn').attr('pk');
url = 'compilacao/'+id_dispositivo+'/'+model+'/'+id_edit+'/edit'
}
$('#dne'+id_dispositivo).addClass('dne-nota');
$.get(url).done(function( data ) {
$('#dne'+id_dispositivo+' .dne-form').html(data);
onEventsDneExec(id_dispositivo);
}).fail(function() {
onReadyNotasVides();
});
}
function onReadyNotasVides() {
$('.dne-nota').removeClass('dne-nota');
$('.dne-form').html('');
$('.dne .btn-action').off();
$('.dn .btn-action').off();
$('.dne .btn-action, .dn .btn-action').not('.btn-nota-delete').not('.btn-vide-delete').click(function(){
getForm(this);
});
$('.dn .btn-nota-delete, .dn .btn-vide-delete').click(function(){
onDelete(this);
});
}
$(document).ready(function() {
onReadyNotasVides()
});

40
static/js/compilacao_view.js

@ -0,0 +1,40 @@
$( window ).scroll(function() {
if (window.pageYOffset <= 180)
$( "section.vigencias" ).removeClass("fixed");
else if (!$( "section.vigencias" ).hasClass("fixed"))
$( "section.vigencias" ).addClass("fixed");
});
$(window).load(function() {
setTimeout(function() {
height = $( "section.vigencias" ).height();
$('html, body').animate({
scrollTop: window.pageYOffset - height - 55
}, 300);
}, 100);
});
function textoMultiVigente(item) {
$(".cp .tipo-vigencias a").removeClass("selected")
$(item).addClass("selected")
$(".desativado").removeClass("displaynone");
$(".link_alterador").removeClass("displaynone");
}
function textoVigente(item, link) {
$(".cp .tipo-vigencias a").removeClass("selected")
$(item).addClass("selected")
$(".desativado").addClass("displaynone");
$(".link_alterador").removeClass("displaynone");
if (!link)
$(".link_alterador").addClass("displaynone");
}
$(document).ready(function() {
$("#btn_font_menos").click(function() {
$(".dpt").css("font-size", "-=1");
});
$("#btn_font_mais").click(function() {
$(".dpt").css("font-size", "+=1");
});
});

1415
static/styles/compilacao.scss

File diff suppressed because it is too large

10
static/styles/compilacao_tinymce.css

@ -0,0 +1,10 @@
.mce-content-body {
font-family: "Open Sans" "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
font-style: normal;
font-weight: normal;
line-height: 1.5;
font-size: 1em;
color: #444444;
}

7
templates/ajuda/impressos.html

@ -10,8 +10,11 @@
<h1 class="firstHeading">Impressos</h1>
<br />
Esta função tem por objetivo a seleção de informações sobre matérias legislativas para a geração de Etiquetas, Fichas ou Guias de Remessa a serem impressas.<br />
<p><b>Etiquetas</b> - Selecionar as matérias por faixa de número de processo ou selecionada por Tipo de matéria e intervalo de datas de entrada. Se a opção escolhida for por faixa de número de processo, informar o intervalo desejado: números inicial e final. Se a opção for a "selecionada", significa que deverão ser indicados o Tipo de Matéria por meio de seleção no <i>combo box</i> e o período desejado, preenchendo as datas inicial e final.<p> Em seguida, clicar em "gerar" para o sistema proceder à seleção das matérias. O resultado da consulta será a lista de matérias que atendem aos parâmetros informados. Ao lado de cada matéria é apresentado um <i>checkbox</i>, que deve ser assinalado se desejar gerar a etiqueta daquela matéria específica. Uma vez assinaladas as matérias, as quais se deseja gerar as etiquetas, clicar em "gerar" e o sistema irá apresentar as informações das matérias selecionadas já sob o formatado de etiquetas, uma para cada matéria selecionada, que conterá: tipo de matéria, número do processo, data de entrada, autor e o texto da ementa.<p><b>Fichas</b> - Os procedimentos necessários para a seleção de matérias e geração das respectivas fichas é análogo aos indicados para a Etiqueta, excetuando-se o formato da saída que será o de uma ficha. </><p<b>Guias de Remessa</b> - Assinalar se a Guia de Remessa será para Indicação ou Requerimento informando, também, a data e o número da sessão correspondente e clicar em "enviar".
<p><b>Etiquetas</b> - Selecionar as matérias por faixa de número de processo ou selecionada por Tipo de matéria e intervalo de datas de entrada. Se a opção escolhida for por faixa de número de processo, informar o intervalo desejado: números inicial e final. Se a opção for a "selecionada", significa que deverão ser indicados o Tipo de Matéria por meio de seleção no <i>combo box</i> e o período desejado, preenchendo as datas inicial e final.</p>
<p>Em seguida, clicar em "gerar" para o sistema proceder à seleção das matérias. O resultado da consulta será a lista de matérias que atendem aos parâmetros informados. Ao lado de cada matéria é apresentado um <i>checkbox</i>, que deve ser assinalado se desejar gerar a etiqueta daquela matéria específica. Uma vez assinaladas as matérias, as quais se deseja gerar as etiquetas, clicar em "gerar" e o sistema irá apresentar as informações das matérias selecionadas já sob o formatado de etiquetas, uma para cada matéria selecionada, que conterá: tipo de matéria, número do processo, data de entrada, autor e o texto da ementa.</p>
<p><b>Fichas</b> - Os procedimentos necessários para a seleção de matérias e geração das respectivas fichas é análogo aos indicados para a Etiqueta, excetuando-se o formato da saída que será o de uma ficha. </p>
<p><b>Guias de Remessa</b> - Assinalar se a Guia de Remessa será para Indicação ou Requerimento informando, também, a data e o número da sessão correspondente e clicar em "enviar".</p>
<br />
<p>Após visualizar a lista contendo o resultado da seleção das matérias, colocar o formulário apropriado na impressora, de acordo com a opção escolhida, e acionar a função de impressão do navegador para imprimir efetivamente.
<p>Após visualizar a lista contendo o resultado da seleção das matérias, colocar o formulário apropriado na impressora, de acordo com a opção escolhida, e acionar a função de impressão do navegador para imprimir efetivamente.</p>
{% endblock base_content %}

3
templates/base.html

@ -4,7 +4,7 @@
<!DOCTYPE html>
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!-->
<html class="no-js" lang="en">
<html class="no-js" lang="pt-br">
<!--<![endif]-->
<head>
@ -19,7 +19,6 @@
<link rel="stylesheet" href="{% static 'components-font-awesome/css/font-awesome.css' %}">
<link rel="stylesheet" href="{% static 'foundation-icon-fonts/foundation-icons.css' %}">
<link rel="stylesheet" href="{% sass_src 'styles/app.scss' %}" type="text/css">
<link rel="stylesheet" href="{% sass_src 'styles/compilacao.scss' %}" type="text/css">
{# Scripts #}
{# modernizr must be in head (see http://modernizr.com/docs/#installing) #}

3
templates/compilacao/ajax_form.html

@ -0,0 +1,3 @@
{% load crispy_forms_tags %}
<div class="btn-close-container"><div class="icon-close"></div></div>
{% crispy form form.helper%}

43
templates/compilacao/dispositivo_search_fragment_form.html

@ -0,0 +1,43 @@
{% load i18n %}
{% load compilacao_filters %}
{% if object_list.count >= 100 %}
<div class="alert-box success radius">
{% trans 'Use argumentos para simplificar listagem...' %}
</div>
{% endif %}
{% for dpt in object_list %}
{% ifchanged dpt.norma%}
{% if not forloop.first %}</ul>{% endif %}
<div class="norma_title">{{dpt.norma}}</div>
<ul>
{% endifchanged %}
{% if dpt.is_relative_auto_insert and dpt.dispositivo_pai and dpt.dispositivo_pai.nivel != 0 %}
<li>
<div class="iteminput">
<input type="{{request.GET.tipo_form}}" name="dispositivo_ref" id="r{{dpt.pk}}" value="{{dpt.pk}}"/>
</div>
<div class="itemlabel">
<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>
</div>
</li>
{% endif%}
{% if not dpt.tipo_dispositivo.dispositivo_de_articulacao and not dpt.is_relative_auto_insert %}
<li>
<div class="iteminput">
<input type="{{request.GET.tipo_form}}" name="dispositivo_ref" id="r{{dpt.pk}}" value="{{dpt.pk}}"/>
</div>
<div class="itemlabel">
<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>
</div>
</li>
{% endif%}
{% if forloop.last %}</ul>{% endif %}
{% endfor %}

57
templates/compilacao/edit.html

@ -0,0 +1,57 @@
{% extends "base.html" %}
{% load i18n %}
{% load compilacao_filters %}
{% load staticfiles %}
{% load sass_tags %}
{% load crispy_forms_tags %}
{% block head_content %}{{block.super}}
<link rel="stylesheet" href="{% sass_src 'styles/compilacao.scss' %}" type="text/css">
<script type="text/javascript" src="{% static 'js/compilacao.js' %}"></script>
<script type="text/javascript" src="{% static 'js/compilacao_edit.js' %}"></script>
{% endblock %}
{% block title%}
<h1><b>Edição:</b> {{ view.get_norma }} - <i>{% trans 'Texto Multivigente' %}</i></h1>
{% endblock %}
{% block base_content %}
<div id="message_block"><div id="msg">{% trans 'Aguarde... Atualizando informações!!!'%}</div></div>
<div class="cpe">
{% include 'compilacao/edit_bloco.html'%}
</div>
{% if user.is_authenticated and False %}
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
{% if message %}
<div data-alert="" class="alert-box success radius">
{{message}}
<a href="#" class="close">×</a>
</div>
{% endif %}
<fieldset>
<legend>{% trans 'Parser ODF' %}</legend>
{{ form.as_p }}
<input type="submit" name="import_submit" value="{% trans 'Importar' %}" class="button primary" />
</fieldset>
</form>
{% for parser in parser_list %}
<div class="test_import">
{{ parser|safe}}
</div>
{% endfor %}
{% endif%}
{% endblock base_content %}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save