Browse Source

Complete timeline features of the compilacao app

pull/6/head
LeandroRoberto 9 years ago
parent
commit
ac6cbccf0d
  1. 1
      compilacao/models.py
  2. 7
      compilacao/templatetags/compilacao_filters.py
  3. 31
      compilacao/views.py
  4. 24
      static/styles/compilacao.scss
  5. 40
      templates/compilacao/index.html

1
compilacao/models.py

@ -185,6 +185,7 @@ class Publicacao(models.Model):
class Dispositivo(models.Model):
TEXTO_PADRAO_DISPOSITIVO_REVOGADO = _('(Revogado)')
ordem = models.PositiveIntegerField(
default=0,
verbose_name=_('Ordem de Renderização'))

7
compilacao/templatetags/compilacao_filters.py

@ -28,7 +28,6 @@ def dispositivo_desativado(dispositivo, inicio_vigencia, fim_vigencia):
elif dispositivo.fim_vigencia >= fim_vigencia:
return ''
return 'desativado'
else:
if dispositivo.fim_vigencia is not None:
return 'desativado'
@ -37,11 +36,13 @@ def dispositivo_desativado(dispositivo, inicio_vigencia, fim_vigencia):
@register.simple_tag
def nota_automatica(dispositivo):
# return ''
if dispositivo.norma_publicada is not None and \
dispositivo.tipo_dispositivo.class_css != 'artigo':
d = dispositivo.dispositivo_atualizador.dispositivo_pai
return 'Alteração feita pelo %s.' % d
if dispositivo.texto == Dispositivo.TEXTO_PADRAO_DISPOSITIVO_REVOGADO:
return 'Revogado pelo %s.' % d
else:
return 'Alteração feita pelo %s.' % d
return ''

31
compilacao/views.py

@ -1,15 +1,13 @@
from collections import OrderedDict
from datetime import timedelta, datetime, date
from datetime import timedelta
from django.core.signing import Signer
from django.db.models import Q
from django.utils.dateparse import parse_date
from django.views.generic.list import ListView
from compilacao.models import Dispositivo
from norma.models import NormaJuridica
DISPOSITIVO_SELECT_RELATED = (
'tipo_dispositivo',
'norma_publicada',
@ -34,33 +32,6 @@ class CompilacaoView(ListView):
inicio_vigencia = None
fim_vigencia = None
def get_queryset1(self):
self.flag_alteradora = -1
self.flag_nivel_ini = 0
self.flag_nivel_old = -1
self.inicio_vigencia = None
self.fim_vigencia = None
if 'iyear' in self.kwargs and 'eyear' in self.kwargs:
self.inicio_vigencia = date(
int(self.kwargs['iyear']),
int(self.kwargs['imonth']),
int(self.kwargs['iday']))
self.fim_vigencia = date(
int(self.kwargs['eyear']),
int(self.kwargs['emonth']),
int(self.kwargs['eday']))
return Dispositivo.objects.filter(
inicio_vigencia__lte=self.fim_vigencia,
ordem__gt=0,
norma_id=self.kwargs['norma_id'],
).select_related(*DISPOSITIVO_SELECT_RELATED)
else:
return Dispositivo.objects.filter(
ordem__gt=0,
norma_id=self.kwargs['norma_id']
).select_related(*DISPOSITIVO_SELECT_RELATED)
def get_queryset(self):
self.flag_alteradora = -1
self.flag_nivel_ini = 0

24
static/styles/compilacao.scss

@ -140,7 +140,15 @@
height: auto;
background: #2980B9;
z-index:1;
margin: 0 auto;
max-width: 62.5rem;
}
.compilacao .top-bar-section li:not(.has-form) a:not(.button).selected,
.compilacao .top-bar-section li:not(.has-form) a:not(.button):hover {
background: #1056A0;
}
.compilacao .top-bar-section li:not(.has-form) a:not(.button) {
padding: 0 0.43333rem;
}
@ -151,14 +159,20 @@
width: 100%;
z-index:1;
}
.compilacao .vigencias{
.compilacao .tipo-vigencias {
border-top: 1px solid #62B5B5;
}
.compilacao .vigencias {
margin: 2.5em 0 0 0;
transition: all .4s ease-in-out;
background: #2980B9;
}
.compilacao .fixed{
z-index:98;
transition: all .4s ease-in-out;
z-index:98;
}
.displaynone {
display: none !important;
}

40
templates/compilacao/index.html

@ -18,7 +18,29 @@ $( window ).scroll(function() {
else if (!$( "section.vigencias" ).hasClass("fixed")){
$( "section.vigencias" ).addClass("fixed");
}
});
});
function textoMultiVigente(item) {
$(".compilacao .tipo-vigencias a").removeClass("selected")
$(item).addClass("selected")
$(".desativado").removeClass("displaynone");
$(".link_alterador").removeClass("displaynone");
}
function textoVigente(item, link) {
$(".compilacao .tipo-vigencias a").removeClass("selected")
$(item).addClass("selected")
$(".desativado").addClass("displaynone");
$(".link_alterador").removeClass("displaynone");
if (!link)
$(".link_alterador").addClass("displaynone");
}
</script>
<div class="compilacao">
@ -32,14 +54,16 @@ $( window ).scroll(function() {
<li class="nav__item has-dropdown">
{% if forloop.first %}
{% for dispositivo in values %}
<a class="nav__link" href="{%url 'vigencia' dispositivo.norma.pk dispositivo|get_sign_vigencia %}" title="{% trans 'Vigência entre'%} {{dispositivo.inicio_vigencia}} {% trans 'e'%} {{dispositivo.fim_vigencia}}">{% trans 'Norma Original'%}</a>
<a class="nav__link {% if view.inicio_vigencia == dispositivo.inicio_vigencia %}selected{%endif%}" href="{%url 'vigencia' dispositivo.norma.pk dispositivo|get_sign_vigencia %}" title="{% trans 'Vigência entre'%} {{dispositivo.inicio_vigencia}} {% trans 'e'%} {{dispositivo.fim_vigencia}}">{% trans 'Norma Original'%}</a>
{% endfor %}
{% elif forloop.last %}
{% for dispositivo in values %}
<a class="nav__link" href="{%url 'compilacao' dispositivo.norma.pk %}" title="{% trans 'Compilação atual'%}.&#013;{% trans 'Vigência a partir de'%} {{dispositivo.inicio_vigencia}}&#013;{{dispositivo.norma_publicada}}">{% trans 'Texto em Vigência'%}</a>
<a class="nav__link {% if view.inicio_vigencia == None %}selected{%endif%}" href="{%url 'compilacao' dispositivo.norma.pk %}" title="{% trans 'Compilação atual'%}.&#013;{% trans 'Vigência a partir de'%} {{dispositivo.inicio_vigencia}}&#013;{{dispositivo.norma_publicada}}">{% trans 'Norma Atual'%}</a>
{% endfor %}
{% else %}
<a class="nav__link">{{ key }}</a>
<a class="nav__link {% if view.inicio_vigencia.year == key %}selected{%endif%}">{{ key }}</a>
{%endif%}
{% if not forloop.first and not forloop.last %}
@ -56,14 +80,18 @@ $( window ).scroll(function() {
</li>
{% if forloop.last %}
</ul>
<ul class="nav left tipo-vigencias">
<li><a class="selected" onclick="textoMultiVigente(this);">{% trans 'Texto Multivigente'%}</a></li>
<li><a onclick="textoVigente(this, true);">{% trans 'Texto Vigente COM Links para Normas Alteradoras'%}</a></li>
<li><a onclick="textoVigente(this, false);">{% trans 'Texto Vigente SEM Links para Normas Alteradoras'%}</a></li>
</ul>
</section>
</nav>
</section>
{%endif%}
{% endfor %}
<br>
{% if view.inicio_vigencia != None and view.fim_vigencia != None %}
<br>
{% trans 'Vigência entre'%} <b>{{view.inicio_vigencia}}</b> {% trans 'e'%} <b>{{view.fim_vigencia}}</b>.
{%endif%}

Loading…
Cancel
Save