Browse Source

create timeline compilacao app

pull/6/head
LeandroRoberto 9 years ago
parent
commit
3aa4d4afb1
  1. 33
      compilacao/templatetags/compilacao_filters.py
  2. 4
      compilacao/urls.py
  3. 19
      compilacao/views.py
  4. 17
      templates/compilacao/index.html
  5. 3
      templates/compilacao/template_render_bloco.html

33
compilacao/templatetags/compilacao_filters.py

@ -1,5 +1,3 @@
from builtins import ValueError
from django import template
from django.db.models import Q
@ -18,24 +16,21 @@ def get_bloco(pk_atualizador):
@register.filter
def get_field(value, key):
try:
return value[key]
except ValueError:
return None
@register.filter
def bloco_ja_incluso(view, bloco):
try:
return view.itens_de_bloco.index(bloco) >= 0
except ValueError:
return False
return value[key]
@register.simple_tag
def dispositivo_desativado(dispositivo):
if dispositivo.fim_vigencia is not None:
def dispositivo_desativado(dispositivo, inicio_vigencia, fim_vigencia):
if inicio_vigencia and fim_vigencia:
if dispositivo.fim_vigencia is None:
return ''
if dispositivo.inicio_vigencia >= inicio_vigencia:
return ''
return 'desativado'
else:
if dispositivo.fim_vigencia is not None:
return 'desativado'
return ''
@ -55,12 +50,6 @@ def set_nivel_old(view, value):
return ''
@register.simple_tag
def append_to_itens_de_bloco(view, value):
view.itens_de_bloco.append(value)
return ''
@register.simple_tag
def close_div(value_max, value_min):
return '</div>' * (int(value_max) - int(value_min) + 1)

4
compilacao/urls.py

@ -5,6 +5,10 @@ from compilacao import views
urlpatterns = [
url(r'^norma/(?P<norma_id>[0-9]+)/compilacao/$',
views.CompilacaoView.as_view(), name='compilacao'),
url(r'^norma/(?P<norma_id>[0-9]+)/compilacao/vigencia/' +
'(?P<iyear>[0-9]+)/(?P<imonth>[0-9]+)/(?P<iday>[0-9]+)/' +
'(?P<eyear>[0-9]+)/(?P<emonth>[0-9]+)/(?P<eday>[0-9]+)/$',
views.CompilacaoView.as_view(), name='vigencia'),
url(r'^norma/(?P<norma_id>[0-9]+)/compilacao/(?P<dispositivo_id>[0-9]+)/$',
views.DispositivoView.as_view(), name='dispositivo'),
]

19
compilacao/views.py

@ -1,6 +1,7 @@
from collections import OrderedDict
from datetime import timedelta
from datetime import timedelta, datetime, date
from django.db.models import Q
from django.views.generic.list import ListView
from compilacao.models import Dispositivo
@ -28,13 +29,27 @@ class CompilacaoView(ListView):
itens_de_vigencia = {}
inicio_vigencia = None
fim_vigencia = None
def get_queryset(self):
self.flag_alteradora = -1
self.flag_nivel_ini = 0
self.flag_nivel_old = -1
if self.is_norma_alteradora():
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(
Q(inicio_vigencia__lte=self.fim_vigencia),
ordem__gt=0,
norma_id=self.kwargs['norma_id'],
).select_related(*DISPOSITIVO_SELECT_RELATED)

17
templates/compilacao/index.html

@ -7,11 +7,8 @@
<h1>{{ view.get_norma }}</h1>
{% endblock %}
{% block base_content %}
<div class="compilacao">
<section class="vigencias">
<nav class="top-bar" data-topbar="" role="navigation">
@ -19,28 +16,28 @@
<ul class="nav left">
{% for key, values in view.get_vigencias.items %}
<li class="nav__item has-dropdown">
{% if forloop.first %}
{% for dispositivo in values %}
<a class="nav__link" href="{%url 'compilacao' dispositivo.norma.pk %}" title="{{ dispositivo.norma }}">{% trans 'Norma Original'%}</a>
<a class="nav__link" href="{%url 'vigencia' dispositivo.norma.pk dispositivo.inicio_vigencia.year dispositivo.inicio_vigencia.month dispositivo.inicio_vigencia.day dispositivo.fim_vigencia.year dispositivo.fim_vigencia.month dispositivo.fim_vigencia.day %}" title="{{ dispositivo.norma }}">{% trans 'Norma Original'%}</a>
{% endfor %}
{% elif forloop.last %}
{% for dispositivo in values %}
<a class="nav__link" href="{%url 'compilacao' dispositivo.norma_publicada.pk %}" title="{% trans 'Compilação atual'%}">{% trans 'Texto em Vigência'%}</a>
<a class="nav__link" href="{%url 'compilacao' dispositivo.norma.pk %}" title="{% trans 'Compilação atual'%}">{% trans 'Texto em Vigência'%}</a>
{% endfor %}
{% else %}
<a class="nav__link">{{ key }}</a>
{%endif%}
{% if not forloop.first and not forloop.last %}
<ul class="nav__sub-nav dropdown">
{% for dispositivo in values %}
<li class="nav__sub-item">
{% if forloop.parentloop.first %}
<a class="nav__sub-link" href="{%url 'compilacao' dispositivo.norma.pk %}" >{% trans 'Norma Original'%}</a>
<a class="nav__sub-link" href="{%url 'vigencia' dispositivo.norma.pk dispositivo.inicio_vigencia.year dispositivo.inicio_vigencia.month dispositivo.inicio_vigencia.day dispositivo.fim_vigencia.year dispositivo.fim_vigencia.month dispositivo.fim_vigencia.day %}" >{% trans 'Norma Original'%}</a>
{% else %}
<a class="nav__sub-link" href="{%url 'compilacao' dispositivo.norma_publicada.pk %}" title="{{ dispositivo.norma_publicada }}">{% trans 'Vigência entre'%} {{dispositivo.inicio_vigencia}} {% trans 'e'%} {{dispositivo.fim_vigencia}}</a>
<a class="nav__sub-link" href="{%url 'vigencia' dispositivo.norma.pk dispositivo.inicio_vigencia.year dispositivo.inicio_vigencia.month dispositivo.inicio_vigencia.day dispositivo.fim_vigencia.year dispositivo.fim_vigencia.month dispositivo.fim_vigencia.day %}" title="{{ dispositivo.norma_publicada }}">{% trans 'Vigência entre'%} {{dispositivo.inicio_vigencia}} {% trans 'e'%} {{dispositivo.fim_vigencia}}</a>
{%endif%}
</li>
{% endfor %}

3
templates/compilacao/template_render_bloco.html

@ -8,13 +8,14 @@
{% close_div view.flag_nivel_old dispositivo.nivel %}
{% endif%}
<div class="dispositivo" id="d{{dispositivo.id}}">
<div class="{% dispositivo_desativado dispositivo %} {{ dispositivo.tipo_dispositivo.class_css }}" id="id{{dispositivo.id}}">
<div class="{% dispositivo_desativado dispositivo view.inicio_vigencia view.fim_vigencia %} {{ dispositivo.tipo_dispositivo.class_css }}" id="id{{dispositivo.id}}">
{% spaceless %}
{{ dispositivo.tipo_dispositivo.rotulo_prefixo_html|safe }}
<a name="{{dispositivo.pk}}">{{ dispositivo.rotulo }}</a>
{{ dispositivo.tipo_dispositivo.rotulo_sufixo_html|safe }}
{{ dispositivo.tipo_dispositivo.texto_prefixo_html|safe }}
{{ dispositivo.texto|safe }}
{% if dispositivo.norma_publicada_id != None %}
<a class="link_alterador" href="{%url 'compilacao' dispositivo.norma_publicada.pk %}#{{dispositivo.dispositivo_atualizador_id}}">
{{ dispositivo.tipo_dispositivo.nota_automatica_prefixo_html|safe }}

Loading…
Cancel
Save