From 3aa4d4afb18d17a00d2e1c1471cc87b0ab5de204 Mon Sep 17 00:00:00 2001 From: LeandroRoberto Date: Thu, 17 Sep 2015 15:57:30 -0300 Subject: [PATCH] create timeline compilacao app --- compilacao/templatetags/compilacao_filters.py | 33 +++++++------------ compilacao/urls.py | 4 +++ compilacao/views.py | 19 +++++++++-- templates/compilacao/index.html | 17 ++++------ .../compilacao/template_render_bloco.html | 3 +- 5 files changed, 41 insertions(+), 35 deletions(-) diff --git a/compilacao/templatetags/compilacao_filters.py b/compilacao/templatetags/compilacao_filters.py index 81ad6ea2c..670b31ed8 100644 --- a/compilacao/templatetags/compilacao_filters.py +++ b/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 '' * (int(value_max) - int(value_min) + 1) diff --git a/compilacao/urls.py b/compilacao/urls.py index 0997d5747..3adad4ef6 100644 --- a/compilacao/urls.py +++ b/compilacao/urls.py @@ -5,6 +5,10 @@ from compilacao import views urlpatterns = [ url(r'^norma/(?P[0-9]+)/compilacao/$', views.CompilacaoView.as_view(), name='compilacao'), + url(r'^norma/(?P[0-9]+)/compilacao/vigencia/' + + '(?P[0-9]+)/(?P[0-9]+)/(?P[0-9]+)/' + + '(?P[0-9]+)/(?P[0-9]+)/(?P[0-9]+)/$', + views.CompilacaoView.as_view(), name='vigencia'), url(r'^norma/(?P[0-9]+)/compilacao/(?P[0-9]+)/$', views.DispositivoView.as_view(), name='dispositivo'), ] diff --git a/compilacao/views.py b/compilacao/views.py index e14114f48..a6298330b 100644 --- a/compilacao/views.py +++ b/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) diff --git a/templates/compilacao/index.html b/templates/compilacao/index.html index 05ba14a41..d0041c8c0 100644 --- a/templates/compilacao/index.html +++ b/templates/compilacao/index.html @@ -7,11 +7,8 @@

{{ view.get_norma }}

{% endblock %} - - {% block base_content %} -