Browse Source

HOT-FIX: Refatora linha do tempo da compilação

Permitir distinção na linha do tempo de textos articulados diferentes
com início de vigência na mesma data
pull/3292/head
Leandro Roberto 4 years ago
parent
commit
ccf7174d02
  1. 33
      sapl/compilacao/views.py
  2. 9
      sapl/templates/compilacao/text_list__embedded.html

33
sapl/compilacao/views.py

@ -951,6 +951,10 @@ class TextView(CompMixin, ListView):
self.inicio_vigencia = None self.inicio_vigencia = None
self.fim_vigencia = None self.fim_vigencia = None
self.ta_vigencia = None self.ta_vigencia = None
params = {
'ordem__gt': 0,
'ta_id': self.kwargs['ta_id']
}
if 'sign' in self.kwargs: if 'sign' in self.kwargs:
signer = Signer() signer = Signer()
try: try:
@ -960,20 +964,17 @@ class TextView(CompMixin, ListView):
self.fim_vigencia = parse_date(string[2]) self.fim_vigencia = parse_date(string[2])
except: except:
return Dispositivo.objects.filter( return Dispositivo.objects.filter(
ordem__gt=0, **params
ta_id=self.kwargs['ta_id'],
).select_related(*DISPOSITIVO_SELECT_RELATED) ).select_related(*DISPOSITIVO_SELECT_RELATED)
if self.fim_vigencia:
params['inicio_vigencia__lte'] = self.fim_vigencia
return Dispositivo.objects.filter( return Dispositivo.objects.filter(
inicio_vigencia__lte=self.fim_vigencia, **params
ordem__gt=0,
ta_id=self.kwargs['ta_id'],
).select_related(*DISPOSITIVO_SELECT_RELATED) ).select_related(*DISPOSITIVO_SELECT_RELATED)
else: else:
r = Dispositivo.objects.filter( r = Dispositivo.objects.filter(
ordem__gt=0, **params
ta_id=self.kwargs['ta_id'],
).select_related(*DISPOSITIVO_SELECT_RELATED) ).select_related(*DISPOSITIVO_SELECT_RELATED)
return r return r
@ -982,9 +983,9 @@ class TextView(CompMixin, ListView):
itens = Dispositivo.objects.filter( itens = Dispositivo.objects.filter(
ta_id=self.kwargs['ta_id'] ta_id=self.kwargs['ta_id']
).order_by( ).order_by(
'dispositivo_vigencia__inicio_vigencia', 'ordem' 'dispositivo_vigencia__inicio_vigencia', 'ta_publicado__id', 'ordem'
).distinct( ).distinct(
'dispositivo_vigencia__inicio_vigencia' 'dispositivo_vigencia__inicio_vigencia', 'ta_publicado__id'
).select_related( ).select_related(
'ta_publicado', 'ta_publicado',
'ta', 'ta',
@ -1000,6 +1001,18 @@ class TextView(CompMixin, ListView):
lenLista = len(ajuste_datas_vigencia) lenLista = len(ajuste_datas_vigencia)
for i in range(lenLista): for i in range(lenLista):
if i + 1 < lenLista: if i + 1 < lenLista:
if ajuste_datas_vigencia[
i].inicio_vigencia == ajuste_datas_vigencia[
i + 1].inicio_vigencia:
if i + 2 < lenLista:
ajuste_datas_vigencia[
i].fim_vigencia = ajuste_datas_vigencia[
i + 2].inicio_vigencia - timedelta(days=1)
else:
ajuste_datas_vigencia[i].fim_vigencia = None
else:
ajuste_datas_vigencia[ ajuste_datas_vigencia[
i].fim_vigencia = ajuste_datas_vigencia[ i].fim_vigencia = ajuste_datas_vigencia[
i + 1].inicio_vigencia - timedelta(days=1) i + 1].inicio_vigencia - timedelta(days=1)

9
sapl/templates/compilacao/text_list__embedded.html

@ -18,7 +18,7 @@
<ul class="cp-linha-vigencias"> <ul class="cp-linha-vigencias">
{% for dispositivo in values %} {% for dispositivo in values %}
<li class="{% if view.inicio_vigencia == dispositivo.inicio_vigencia %}active{%endif%}"> <li class="{% if view.inicio_vigencia == dispositivo.inicio_vigencia %}active{%endif%}">
<a class="" href="{% url 'sapl.compilacao:ta_vigencia' dispositivo.ta_id dispositivo|get_sign_vigencia %}" title="{% trans 'Vigência entre'%} {{dispositivo.inicio_vigencia}} {% trans 'e'%} {{dispositivo.fim_vigencia}}">{% trans 'Texto<br>Original'%}</a> <a class="" href="{% url 'sapl.compilacao:ta_vigencia' dispositivo.ta_id dispositivo|get_sign_vigencia %}" title="{% trans 'Vigência entre'%} {{dispositivo.inicio_vigencia}} {% trans 'e'%} {{dispositivo.fim_vigencia|default:''}}">{% trans 'Texto<br>Original'%}</a>
<span class="circle"> </span> <span class="circle"> </span>
</li> </li>
{% endfor %} {% endfor %}
@ -66,7 +66,12 @@
{% for dispositivo in values %} {% for dispositivo in values %}
<li class=""> <li class="">
{% if not forloop.parentloop.first %} {% if not forloop.parentloop.first %}
<a href="{% url 'sapl.compilacao:ta_vigencia' dispositivo.ta_id dispositivo|get_sign_vigencia %}" title="{% if dispositivo.ta_publicado_id in ta_pub_list%}{{ ta_pub_list|lookup:dispositivo.ta_publicado_id }}{%else%}{%if dispositivo.ta_publicado %}{{dispositivo.ta_publicado}}{%else%}{{dispositivo.ta}}{%endif%}{%endif%}">{% trans 'Vigência entre'%} {{dispositivo.inicio_vigencia}} {% trans 'e'%} {{dispositivo.fim_vigencia}}</a> {% if dispositivo.fim_vigencia %}
<a href="{% url 'sapl.compilacao:ta_vigencia' dispositivo.ta_id dispositivo|get_sign_vigencia %}" title="{% if dispositivo.ta_publicado_id in ta_pub_list%}{{ ta_pub_list|lookup:dispositivo.ta_publicado_id }}{%else%}{%if dispositivo.ta_publicado %}{{dispositivo.ta_publicado}}{%else%}{{dispositivo.ta}}{%endif%}{%endif%}">{% trans 'Vigência entre'%} {{dispositivo.inicio_vigencia}} {% trans 'e'%} {{dispositivo.fim_vigencia|default:''}}</a>
{% else %}
<a href="{% url 'sapl.compilacao:ta_vigencia' dispositivo.ta_id dispositivo|get_sign_vigencia %}" title="{% if dispositivo.ta_publicado_id in ta_pub_list%}{{ ta_pub_list|lookup:dispositivo.ta_publicado_id }}{%else%}{%if dispositivo.ta_publicado %}{{dispositivo.ta_publicado}}{%else%}{{dispositivo.ta}}{%endif%}{%endif%}">{% trans 'Vigência a partir'%} {{dispositivo.inicio_vigencia}}</a>
{% endif %}
{% endif %} {% endif %}
</li> </li>
{% endfor %} {% endfor %}

Loading…
Cancel
Save