Browse Source

finish first simp. version of Dispositivo editor

pull/10/head
LeandroRoberto 9 years ago
parent
commit
ced41a513b
  1. 71
      compilacao/models.py
  2. 180
      compilacao/views.py
  3. 3
      static/js/compilacao.js
  4. 73
      static/styles/compilacao.scss
  5. 21
      templates/compilacao/edit_bloco.html
  6. 2
      templates/compilacao/edit_bloco_alteracao.html

71
compilacao/models.py

@ -527,10 +527,29 @@ class Dispositivo(BaseModel):
r += self.get_nomenclatura_completa() r += self.get_nomenclatura_completa()
else: else:
if local_insert:
r += prefixo[1].strip() r += prefixo[1].strip()
r += self.get_nomenclatura_completa() r += self.get_nomenclatura_completa()
else:
self.dispositivo0 = 1
r += prefixo[0]
r += self.get_nomenclatura_completa()
else: else:
if local_insert == 1 and irmaos_mesmo_tipo.count() == 1: 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' % ( r += 'Transformar %s em %s%s e criar %s 2%s' % (
prefixo[1].strip(), prefixo[1].strip(),
prefixo[0], prefixo[0],
@ -693,17 +712,13 @@ class Dispositivo(BaseModel):
return result return result
def criar_espaco(self, espaco_a_criar, local): def criar_espaco(self, espaco_a_criar, local):
"""
-1 = Imediatamente antes
0 = Imediatamente Depois
1 = Depois - antes do proximo bloco do mesmo tipo"""
if local == 1: if local == 'add_next':
proximo_bloco = Dispositivo.objects.filter( proximo_bloco = Dispositivo.objects.filter(
ordem__gt=self.ordem, ordem__gt=self.ordem,
nivel__lte=self.nivel, nivel__lte=self.nivel,
norma_id=self.norma_id)[:1] norma_id=self.norma_id)[:1]
elif local == 0: elif local == 'add_in':
proximo_bloco = Dispositivo.objects.filter( proximo_bloco = Dispositivo.objects.filter(
ordem__gt=self.ordem, ordem__gt=self.ordem,
nivel__lte=self.nivel + 1, nivel__lte=self.nivel + 1,
@ -764,19 +779,6 @@ class Dispositivo(BaseModel):
def get_parents_asc(self): def get_parents_asc(self):
return self.get_parents(ordem='asc') return self.get_parents(ordem='asc')
def recalcular_ordem(self):
pass
"""try:
dispositivos = Dispositivo.objects.order_by('-ordem').filter(
norma_id=self.norma_id)
except:
return
ordem = dispositivos.count() * 1000
for d in dispositivos:
d.ordem = ordem
d.save()
ordem -= 1000"""
def incrementar_irmaos(self, variacao=0, tipoadd=[]): def incrementar_irmaos(self, variacao=0, tipoadd=[]):
if not self.tipo_dispositivo.contagem_continua: if not self.tipo_dispositivo.contagem_continua:
@ -840,13 +842,22 @@ class Dispositivo(BaseModel):
irmao.transform_in_next() irmao.transform_in_next()
irmao.rotulo = irmao.rotulo_padrao() irmao.rotulo = irmao.rotulo_padrao()
irmaos_a_salvar.append(irmao) 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: else:
if dp_profundidade == irmao_profundidade and \ if dp_profundidade < irmao_profundidade and \
dp_profundidade > 0 and \ dp_profundidade > 0 and \
self.get_numero_completo()[:dp_profundidade] < \ self.get_numero_completo()[:dp_profundidade] >= \
irmao.get_numero_completo()[:dp_profundidade]: irmao.get_numero_completo()[:dp_profundidade] and\
ultimo_irmao is None:
break break
else: else:
ultimo_irmao = irmao
irmao_numero = irmao.get_numero_completo() irmao_numero = irmao.get_numero_completo()
irmao_numero[dp_profundidade] += 1 irmao_numero[dp_profundidade] += 1
irmao.set_numero_completo(irmao_numero) irmao.set_numero_completo(irmao_numero)
@ -855,19 +866,19 @@ class Dispositivo(BaseModel):
irmaos_a_salvar.reverse() irmaos_a_salvar.reverse()
for irmao in irmaos_a_salvar: for irmao in irmaos_a_salvar:
if (irmao.dispositivo0 == 0 or if (irmao.dispositivo0 == 0 and
irmao.ordem <= self.ordem) and variacao == 0: irmao.ordem <= self.ordem) and variacao == 0:
if 'add_in' in tipoadd:
irmao.dispositivo0 = 2
irmao.rotulo = irmao.rotulo_padrao()
self.dispositivo0 = 1
self.rotulo = self.rotulo_padrao()
else:
irmao.dispositivo0 = 1 irmao.dispositivo0 = 1
irmao.rotulo = irmao.rotulo_padrao() irmao.rotulo = irmao.rotulo_padrao()
self.dispositivo0 = 2 self.dispositivo0 = 2
self.rotulo = self.rotulo_padrao() 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.clean()
irmao.save() irmao.save()

180
compilacao/views.py

@ -298,6 +298,7 @@ class CompilacaoEditView(CompilacaoView):
e.inicio_eficacia = norma.data_publicacao e.inicio_eficacia = norma.data_publicacao
e.timestamp = datetime.now() e.timestamp = datetime.now()
e.texto = norma.ementa e.texto = norma.ementa
e.dispositivo_pai = a
e.save() e.save()
a.pk = None a.pk = None
@ -329,7 +330,7 @@ class DispositivoEditView(CompilacaoEditView, FormMixin):
d.texto = texto d.texto = texto
d.save() d.save()
return self.get(request, *args, **kwargs) return self.get(request, *args, **kwargs)
d.texto = texto d.texto = texto.strip()
d.save() d.save()
if texto != '': if texto != '':
@ -410,6 +411,16 @@ class DispositivoEditView(CompilacaoEditView, FormMixin):
else: else:
base = Dispositivo.objects.get(pk=self.pk_add) base = Dispositivo.objects.get(pk=self.pk_add)
proximo_possivel = Dispositivo.objects.filter(
ordem__gt=base.ordem,
nivel__lte=base.nivel,
norma_id=base.norma_id)[:1]
if proximo_possivel.exists():
proximo_possivel = proximo_possivel[0]
else:
proximo_possivel = None
result = [{'tipo_insert': 'Inserir Depois', result = [{'tipo_insert': 'Inserir Depois',
'icone': '&#8631;&nbsp;', 'icone': '&#8631;&nbsp;',
'action': 'add_next', 'action': 'add_next',
@ -425,10 +436,10 @@ class DispositivoEditView(CompilacaoEditView, FormMixin):
] ]
# Possíveis inserções sequenciais já existentes # Possíveis inserções sequenciais já existentes
dps = base.get_parents() parents = base.get_parents()
dps.insert(0, base) parents.insert(0, base)
nivel = sys.maxsize nivel = sys.maxsize
for dp in dps: for dp in parents:
if dp.nivel >= nivel: if dp.nivel >= nivel:
continue continue
@ -436,6 +447,15 @@ class DispositivoEditView(CompilacaoEditView, FormMixin):
if dp.is_relative_auto_insert(): if dp.is_relative_auto_insert():
continue continue
if proximo_possivel and \
dp.tipo_dispositivo != base.tipo_dispositivo and\
dp.nivel < proximo_possivel.nivel and\
not proximo_possivel.tipo_dispositivo.permitido_inserir_in(
dp.tipo_dispositivo):
if dp.tipo_dispositivo != proximo_possivel.tipo_dispositivo:
continue
nivel = dp.nivel nivel = dp.nivel
# um do mesmo para inserção antes # um do mesmo para inserção antes
@ -445,7 +465,7 @@ class DispositivoEditView(CompilacaoEditView, FormMixin):
'tipo_pk': dp.tipo_dispositivo.pk, 'tipo_pk': dp.tipo_dispositivo.pk,
'variacao': 0, 'variacao': 0,
'provavel': '%s (%s)' % ( 'provavel': '%s (%s)' % (
dp.rotulo_padrao(), dp.rotulo_padrao(local_insert=1),
dp.tipo_dispositivo.nome,), dp.tipo_dispositivo.nome,),
'dispositivo_base': base.pk}) 'dispositivo_base': base.pk})
@ -501,6 +521,9 @@ class DispositivoEditView(CompilacaoEditView, FormMixin):
for c in result[0]['itens']: for c in result[0]['itens']:
if c['class_css'] not in classes_ja_inseridas: if c['class_css'] not in classes_ja_inseridas:
classes_ja_inseridas.append(c['class_css']) classes_ja_inseridas.append(c['class_css'])
for c in result[1]['itens']:
if c['class_css'] not in classes_ja_inseridas:
classes_ja_inseridas.append(c['class_css'])
otds = TipoDispositivo.objects.order_by( otds = TipoDispositivo.objects.order_by(
'-contagem_continua', 'id').all().exclude( '-contagem_continua', 'id').all().exclude(
class_css__in=classes_ja_inseridas) class_css__in=classes_ja_inseridas)
@ -514,10 +537,40 @@ class DispositivoEditView(CompilacaoEditView, FormMixin):
base.tipo_dispositivo = td base.tipo_dispositivo = td
if not paradentro: if not paradentro:
if not td.permitido_inserir_in(
raiz.tipo_dispositivo, excluir_autos=True): flag_insercao = False
for possivelpai in parents:
if td.permitido_inserir_in(
possivelpai.tipo_dispositivo,
excluir_autos=True):
flag_insercao = True
break
if not flag_insercao:
continue
if possivelpai.is_relative_auto_insert():
continue continue
if proximo_possivel:
if proximo_possivel.nivel == base.nivel:
if proximo_possivel.tipo_dispositivo != td and\
not proximo_possivel.tipo_dispositivo.\
permitido_inserir_in(td):
continue
else:
if possivelpai.tipo_dispositivo != \
proximo_possivel.tipo_dispositivo and\
not proximo_possivel.tipo_dispositivo.\
permitido_inserir_in(
possivelpai.tipo_dispositivo) and \
possivelpai.nivel < \
proximo_possivel.nivel:
continue
base.dispositivo_pai = possivelpai
Dispositivo.set_numero_for_add_in(
possivelpai, base, td)
else:
Dispositivo.set_numero_for_add_in(base, base, td) Dispositivo.set_numero_for_add_in(base, base, td)
r = [{'class_css': td.class_css, r = [{'class_css': td.class_css,
@ -535,18 +588,16 @@ class DispositivoEditView(CompilacaoEditView, FormMixin):
else:""" else:"""
result[1]['itens'] += r result[1]['itens'] += r
else: else:
if td.pk < tipb.pk:
result[2]['itens'] += r result[2]['itens'] += r
result[0]['itens'] += r result[0]['itens'] += r
if len(result[0]['itens']) < len(result[1]['itens']): # if len(result[0]['itens']) < len(result[1]['itens']):
r = result[0] # r = result[0]
result.remove(result[0]) # result.remove(result[0])
result.insert(1, r) # result.insert(1, r)
# remover temporariamente a opção inserir antes # remover temporariamente a opção inserir antes
# confirmar falta de necessidade # confirmar falta de necessidade
if len(result) > 2: if len(result) > 2:
result.pop() result.pop()
@ -573,55 +624,9 @@ class ActionsEditMixin(object):
pass pass
def add_in(self, context): def add_in(self, context):
return self.add_next(context, local_add='add_in')
try: def add_next(self, context, local_add='add_next'):
# Tipo do dispositivo a ser inserido
tipo = TipoDispositivo.objects.get(pk=context['tipo_pk'])
base = Dispositivo.objects.get(pk=context['dispositivo_id'])
dp = Dispositivo.new_instance_based_on(base, tipo)
dp.nivel += 1
dp.dispositivo_pai = base
Dispositivo.set_numero_for_add_in(base, dp, tipo)
dp.rotulo = dp.rotulo_padrao()
if dp.tipo_dispositivo.class_css == 'artigo':
ordem = base.criar_espaco(espaco_a_criar=2, local=0)
else:
ordem = base.criar_espaco(espaco_a_criar=1, local=0)
dp.ordem = ordem
dp.incrementar_irmaos(tipoadd=['add_in'])
dp.clean()
dp.save()
# Inserção automática do caput para artigos
if dp.tipo_dispositivo.class_css == 'artigo':
tipocaput = TipoDispositivo.objects.filter(
class_css='caput')
dp.dispositivo_pai_id = dp.pk
dp.pk = None
dp.nivel += 1
dp.tipo_dispositivo = tipocaput[0]
dp.set_numero_completo([1, 0, 0, 0, 0, 0, ])
dp.rotulo = dp.rotulo_padrao()
dp.texto = ''
dp.ordem = ordem + Dispositivo.INTERVALO_ORDEM
dp.clean()
dp.save()
dp = Dispositivo.objects.get(pk=dp.dispositivo_pai_id)
except Exception as e:
print(e)
data = self.get_json_for_refresh(dp)
return data
def add_next(self, context):
try: try:
base = Dispositivo.objects.get(pk=context['dispositivo_id']) base = Dispositivo.objects.get(pk=context['dispositivo_id'])
tipo = TipoDispositivo.objects.get(pk=context['tipo_pk']) tipo = TipoDispositivo.objects.get(pk=context['tipo_pk'])
@ -645,7 +650,7 @@ class ActionsEditMixin(object):
count_auto_insert += 1 count_auto_insert += 1
ordem = base.criar_espaco( ordem = base.criar_espaco(
espaco_a_criar=1 + count_auto_insert, local=1) espaco_a_criar=1 + count_auto_insert, local=local_add)
dp_irmao = None dp_irmao = None
dp_pai = None dp_pai = None
@ -689,44 +694,31 @@ class ActionsEditMixin(object):
dp.rotulo = dp.rotulo_padrao() dp.rotulo = dp.rotulo_padrao()
dp.ordem = ordem dp.ordem = ordem
dp.incrementar_irmaos(variacao) dp.incrementar_irmaos(variacao, [local_add, ])
''' inserção sem precedente é feita sem variação
portanto, não é necessário usar transform_next() para
incrementar, e sim, apenas somar no atributo dispositivo0
dada a possibilidade de existir irmãos com viariação
# Incrementar irmãos
irmaos = Dispositivo.objects.order_by('-ordem').filter(
dispositivo_pai_id=dp.dispositivo_pai_id,
ordem__gt=dp.ordem,
tipo_dispositivo_id=tipo.pk)
for irmao in irmaos:
irmao.dispositivo0 += 1
irmao.rotulo = irmao.rotulo_padrao()
irmao.clean()
irmao.save()'''
dp.clean() dp.clean()
dp.save() dp.save()
# Inserção automática do caput para artigos dp_auto_insert = None
# Inserção automática
if count_auto_insert: if count_auto_insert:
tipocaput = TipoDispositivo.objects.filter( dp_pk = dp.pk
class_css='caput')
dp.dispositivo_pai_id = dp.pk
dp.pk = None
dp.nivel += 1 dp.nivel += 1
dp.tipo_dispositivo = tipocaput[0] for tipoauto in tipos_dp_auto_insert:
dp.dispositivo_pai_id = dp_pk
dp.pk = None
dp.tipo_dispositivo = tipoauto.filho_permitido
if ';' in dp.tipo_dispositivo.rotulo_prefixo_texto:
dp.set_numero_completo([0, 0, 0, 0, 0, 0, ])
else:
dp.set_numero_completo([1, 0, 0, 0, 0, 0, ]) dp.set_numero_completo([1, 0, 0, 0, 0, 0, ])
dp.rotulo = dp.rotulo_padrao() dp.rotulo = dp.rotulo_padrao()
dp.texto = '' dp.texto = ''
dp.ordem = dp.ordem + Dispositivo.INTERVALO_ORDEM
dp.ordem = ordem + Dispositivo.INTERVALO_ORDEM
dp.clean() dp.clean()
dp.save() dp.save()
dp = Dispositivo.objects.get(pk=dp.dispositivo_pai_id) dp_auto_insert = dp
dp = Dispositivo.objects.get(pk=dp_pk)
''' Reenquadrar todos os dispositivos que possuem pai ''' Reenquadrar todos os dispositivos que possuem pai
antes da inserção atual e que são inferiores a dp, antes da inserção atual e que são inferiores a dp,
@ -743,14 +735,15 @@ class ActionsEditMixin(object):
if filho.nivel > nivel: if filho.nivel > nivel:
continue continue
if filho.tipo_dispositivo_id <= dp.tipo_dispositivo_id:
break
if filho.dispositivo_pai.ordem >= dp.ordem: if filho.dispositivo_pai.ordem >= dp.ordem:
continue continue
nivel = filho.nivel nivel = filho.nivel
if not filho.tipo_dispositivo.permitido_inserir_in(
dp.tipo_dispositivo):
continue
filho.dispositivo_pai = dp filho.dispositivo_pai = dp
filho.clean() filho.clean()
filho.save() filho.save()
@ -853,7 +846,10 @@ class ActionsEditMixin(object):
except Exception as e: except Exception as e:
print(e) print(e)
if dp_auto_insert is None:
data = self.get_json_for_refresh(dp) data = self.get_json_for_refresh(dp)
else:
data = self.get_json_for_refresh(dp_auto_insert)
return data return data

3
static/js/compilacao.js

@ -89,6 +89,7 @@ var clickUpdateDispositivo = function(event, __pk_refresh, __pk_edit, __action,
} }
url = pk_refresh+'/refresh?pkadd='+pk_edit+url; url = pk_refresh+'/refresh?pkadd='+pk_edit+url;
$("#message_block").css("display", "block");
} }
else { else {
@ -246,7 +247,7 @@ $(document).ready(function() {
editortype = ReadCookie("editortype") editortype = ReadCookie("editortype")
if (editortype == null || editortype == "") { if (editortype == null || editortype == "") {
editortype = "construct" editortype = "textarea"
SetCookie("editortype", editortype, 30) SetCookie("editortype", editortype, 30)
} }

73
static/styles/compilacao.scss

@ -13,6 +13,7 @@ $color_actions_border: #CCC;
-webkit-border-radius: $radius; -webkit-border-radius: $radius;
-moz-border-radius: $radius; -moz-border-radius: $radius;
-ms-border-radius: $radius; -ms-border-radius: $radius;
-o-border-radius: $radius;
border-radius: $radius; border-radius: $radius;
} }
@ -274,7 +275,7 @@ $color_actions_border: #CCC;
@extend .cp; @extend .cp;
margin-bottom: 30em; margin-bottom: 15em;
margin-left: 0.8em; margin-left: 0.8em;
a { a {
@ -355,6 +356,21 @@ $color_actions_border: #CCC;
display:block; display:block;
} }
} }
.bloco_alteracao {
@extend .articulacao;
margin: 0;
padding-top: 3em;
background: #ddd;
&::before {
content: "Bloco de Alteração";
position:absolute;
left: 0;
right: 0;
top: 0;
display: block;
}
}
.btns-action { .btns-action {
opacity: 0; opacity: 0;
} }
@ -365,7 +381,7 @@ $color_actions_border: #CCC;
border: 0px solid $color_actions_border; border: 0px solid $color_actions_border;
margin: 1em -2em 1em -2.8em; margin: 1em -2em 1em -2.8em;
padding: 2.2em 2.2em 1.6em 2.2em; padding: 2.2em 2.2em 1.6em 2.2em;
box-shadow: -4px 18px 18px rgba(0, 0, 0, 0.19), 0px 6px 6px rgba(0, 0, 0, 0.23); box-shadow: -4px 15px 15px rgba(0, 0, 0, 0.1), 0px 6px 6px rgba(0, 0, 0, 0.23);
@include background-top-down(#eaeaee, #ddd); @include background-top-down(#eaeaee, #ddd);
@ -391,6 +407,12 @@ $color_actions_border: #CCC;
} }
.bloco_alteracao {
&::before {
display: none;
}
}
& > .bloco { & > .bloco {
padding: 1em 0; padding: 1em 0;
opacity: 1; opacity: 1;
@ -440,7 +462,7 @@ $color_actions_border: #CCC;
display: table-cell; display: table-cell;
vertical-align: top; vertical-align: top;
&:hover { &:hover {
background-color: rgba(0,0,0,0.1); background-color: rgba(0,0,0,0.08);
& > a { & > a {
text-shadow: 0 0 5px #777; text-shadow: 0 0 5px #777;
color: #ff0; color: #ff0;
@ -477,6 +499,9 @@ $color_actions_border: #CCC;
div { div {
padding: 0 0.4em; padding: 0 0.4em;
font-stretch: condensed; font-stretch: condensed;
font-variant: small-caps;
font-weight: bold;
text-shadow: 0 0 10px #fff;
} }
& > li { & > li {
&:hover a{ &:hover a{
@ -558,7 +583,7 @@ $color_actions_border: #CCC;
& > a { & > a {
@include background-top-down(#3498DB, #2980C9); @include background-top-down(#3498DB, #2980C9);
border-right: 1px solid #fff; border-right: 1px solid #fff;
padding: 0.3em; padding: 0.2em;
display: block; display: block;
color: white; color: white;
text-align: center; text-align: center;
@ -591,6 +616,7 @@ $color_actions_border: #CCC;
height: 100%; height: 100%;
width: 2em; width: 2em;
} }
} /* btn-excluir */ } /* btn-excluir */
&.btn-salvar { &.btn-salvar {
@ -625,7 +651,7 @@ $color_actions_border: #CCC;
color: white; color: white;
background: #2980C9; background: #2980C9;
font-size: 80%; font-size: 80%;
padding: 0.33em 1em; padding: 0.23em 1em;
&:hover { &:hover {
background: #0a5ea4; background: #0a5ea4;
} }
@ -637,6 +663,28 @@ $color_actions_border: #CCC;
@include li_flutuante(); @include li_flutuante();
display: block; display: block;
} }
&.opc_excluir {
@include li_flutuante();
display: block;
& > ul {
li {
a {
background-color: #A70808;
&:hover {
background: #c70808;
}
}
}
&::before {
border-color: transparent transparent #A70808;
}
}
}
} }
} /* actions_inserts */ } /* actions_inserts */
@ -695,9 +743,8 @@ $color_actions_border: #CCC;
.clear { .clear {
clear:both; clear:both;
} }
.mce-panel {
.mce-container { border: 0px solid #ccc !important;
border-color: #ccc !important;
} }
.mce-btn button:hover { .mce-btn button:hover {
background-color: rgba(0,0,0,0.1) !important; background-color: rgba(0,0,0,0.1) !important;
@ -774,6 +821,16 @@ $color_actions_border: #CCC;
left: auto; left: auto;
} }
} }
&.opc_excluir > ul {
left: 30% !important;
right: 0 !important;
margin-left: 0;
margin-right: 0.5em;
&::before {
right: 35%;
left: auto;
}
}
} }
} }
} }

21
templates/compilacao/edit_bloco.html

@ -57,7 +57,18 @@
{% endfor %} {% endfor %}
{%endif%} {%endif%}
<li><a href="#" class="btn-excluir">&nbsp;<span>Excluir</span></a></li> <li class="opc_excluir"><a class="btn-excluir">&nbsp;<span>Excluir</span></a>
<ul>
<li><a href="#" class="btn-excluir">&nbsp;<span>Excluir apenas este dispositivo</span></a></li>
<li><a href="#" class="btn-excluir">&nbsp;<span>Excluir toda a estrutura deste dispositivo</span></a></li>
</ul>
</li>
<li><a onclick="onSubmitEditForm()" class="btn-salvar">&nbsp<span>Salvar</span></a></li> <li><a onclick="onSubmitEditForm()" class="btn-salvar">&nbsp<span>Salvar</span></a></li>
</ul> </ul>
@ -93,13 +104,9 @@
<div class="bloco {% dispositivo_desativado dpt view.inicio_vigencia view.fim_vigencia %} {{ dpt.tipo_dispositivo.class_css }}"> <div class="bloco {% dispositivo_desativado dpt view.inicio_vigencia view.fim_vigencia %} {{ dpt.tipo_dispositivo.class_css }}">
{% spaceless %} {% spaceless %}
<a class="de" id="id{{dpt.id}}" pk="{{dpt.pk}}" ordem="{{dpt.ordem}}" name="{{dpt.pk}}" title="{{dpt.pk}}"> <a class="de" id="id{{dpt.id}}" pk="{{dpt.pk}}" ordem="{{dpt.ordem}}" name="{{dpt.pk}}" title="{{dpt.pk}}">{{ dpt.tipo_dispositivo.rotulo_prefixo_html|safe }}{{ dpt.rotulo }}{{ dpt.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ dpt.tipo_dispositivo.texto_prefixo_html|safe }}{% if dpt.texto == '' and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}<span class="semtexto">({{dpt.tipo_dispositivo}} sem texto)</span>{%else%}{{ dpt.texto|safe }}{%endif%}</a>
{{ dpt.tipo_dispositivo.rotulo_prefixo_html|safe }}{{ dpt.rotulo }}{{ dpt.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ dpt.tipo_dispositivo.texto_prefixo_html|safe }}
{% if dpt.texto == '' and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}<span class="semtexto">({{dpt.tipo_dispositivo}} sem texto)</span>{%else%}{{ dpt.texto|safe }}{%endif%}
</a>
{% if dpt.norma_publicada_id != None and not dpt.tipo_dispositivo.dispositivo_de_articulacao %} {% if dpt.norma_publicada_id != None and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}
<a class="link_alterador" href="{%url 'compilacao' dpt.norma_publicada.pk %}#{{dpt.dispositivo_atualizador_id}}"> <a class="link_alterador" href="{%url 'comp_edit' dpt.norma_publicada.pk %}#{{dpt.dispositivo_atualizador_id}}">
{{ dpt.tipo_dispositivo.nota_automatica_prefixo_html|safe }} {{ dpt.tipo_dispositivo.nota_automatica_prefixo_html|safe }}
{% nota_automatica dpt %} {% nota_automatica dpt %}
{{ dpt.tipo_dispositivo.nota_automatica_sufixo_html|safe }} {{ dpt.tipo_dispositivo.nota_automatica_sufixo_html|safe }}

2
templates/compilacao/edit_bloco_alteracao.html

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

Loading…
Cancel
Save