Browse Source

Refat dos tipos de pendências e rend. dos vides

pull/383/head
LeandroRoberto 9 years ago
parent
commit
31b4f4bfa5
  1. 9
      compilacao/forms.py
  2. 211
      compilacao/views.py
  3. 24
      static/styles/compilacao.scss
  4. 8
      templates/compilacao/text_list_bloco.html
  5. 5
      templates/compilacao/text_pendencias.html

9
compilacao/forms.py

@ -7,6 +7,7 @@ from crispy_forms.layout import (HTML, Button, Column, Div, Field, Fieldset,
Layout, Row)
from django import forms
from django.core.exceptions import NON_FIELD_ERRORS, ValidationError
from django.db.models import Q
from django.forms.forms import Form
from django.forms.models import ModelForm
from django.template import defaultfilters
@ -732,12 +733,14 @@ class DispositivoEdicaoVigenciaForm(ModelForm):
super(DispositivoEdicaoVigenciaForm, self).__init__(*args, **kwargs)
pubs = Publicacao.objects.order_by(
'-data', '-hora').filter(ta=self.instance.ta)
'-data', '-hora').filter(Q(ta=self.instance.ta) |
Q(ta=self.instance.ta_publicado))
self.fields['publicacao'].choices = [("", "---------")] + [(
p.pk, _('%s realizada em %s') % (
p.pk, _('%s realizada em %s. %s') % (
p.tipo_publicacao,
defaultfilters.date(
p.data, "d \d\e F \d\e Y"))) for p in pubs]
p.data, "d \d\e F \d\e Y"),
str(p.ta))) for p in pubs]
dvs = Dispositivo.objects.order_by('ordem').filter(
pk=self.instance.dispositivo_vigencia_id)

211
compilacao/views.py

@ -6,6 +6,7 @@ from braces.views import FormMessagesMixin
from django import forms
from django.contrib.auth.decorators import login_required
from django.contrib.contenttypes.models import ContentType
from django.contrib.messages import constants
from django.core.signing import Signer
from django.core.urlresolvers import reverse_lazy
from django.db import transaction
@ -2303,69 +2304,157 @@ class TextPendenciasView(ListView, CompMixin):
ta_id=self.kwargs['ta_id']
).select_related(*DISPOSITIVO_SELECT_RELATED)
p = []
def padd(r, type_pendencia, reverse_url=None, test=True, msg='',
kwargs=None, to_position=None):
if not test:
return
r.contextual_class = type_pendencia
if not kwargs:
kwargs = {'ta_id': r.ta_id, 'pk': r.pk}
if reverse_url:
p.append((type_pendencia, msg,
reverse_lazy(reverse_url, kwargs=kwargs),
to_position))
else:
p.append((type_pendencia, msg, None, to_position))
def success(r):
type_pendencia = 'success'
padd(r, type_pendencia, 'compilacao:dispositivo_edit_vigencia',
r.inconstitucionalidade,
_('Declarado Inconstitucional.'))
padd(r, type_pendencia, 'compilacao:ta_text_edit',
r.ta_publicado and r.dispositivo_atualizador,
_('Dispositivo alterado em %s' % r.ta_publicado),
{'ta_id': r.ta_publicado_id}, r.dispositivo_atualizador_id)
def info(r):
type_pendencia = 'info'
padd(r, type_pendencia, 'compilacao:dispositivo_edit_vigencia',
r.publicacao and
r.dispositivo_vigencia and
r.publicacao.data != r.dispositivo_vigencia.inicio_vigencia,
_('Data da publicação associada ao Dispositivo difere da data'
' de inicio de vigência do Dispositivo de vigência.'))
padd(r, type_pendencia, 'compilacao:dispositivo_edit_vigencia',
r.publicacao and r.publicacao.data != r.inicio_vigencia,
_('Data da publicação associada ao Dispositivo difere '
'da data de inicio de vigência.'))
padd(r, type_pendencia, 'compilacao:dispositivo_edit',
r.rotulo != r.rotulo_padrao(local_insert=1),
_('Rótulo Diferente do Padrão'))
padd(r, type_pendencia, 'compilacao:dispositivo_edit',
r.texto_atualizador and r.texto_atualizador != r.texto,
_('Texto do Dispositivo para o Documento '
'está diferente do texto para o Documento Alterador.'))
padd(r, type_pendencia, 'compilacao:dispositivo_edit_alteracao',
r.texto_atualizador and r.texto_atualizador == r.texto,
_('Texto do Dispositivo no Documento Alterador '
'está igual ao Texto no Documento Original. '
'Não é necessário manter armazenado o texto no Documento '
'Alterador.'))
def warning(r):
type_pendencia = 'warning'
padd(r, type_pendencia, 'compilacao:dispositivo_edit_vigencia',
r.dispositivo_vigencia and r.inicio_vigencia !=
r.dispositivo_vigencia.inicio_vigencia,
_('Data de início de Vigência difere da data início de '
'Vigência do Dispositivo de Vigência'))
padd(r, type_pendencia, 'compilacao:ta_text',
r.inconstitucionalidade and not r.notas.exists(),
_('Dispositivo está definido como inconstitucional. É '
'aconcelhavel inserir uma Nota informando esta condição.'),
kwargs={'ta_id': r.ta_id},
to_position=r.pk)
padd(r, type_pendencia, 'compilacao:dispositivo_edit_vigencia',
r.inconstitucionalidade and not (
r.inicio_vigencia == r.fim_vigencia and
r.fim_vigencia == r.inicio_eficacia and
r.inicio_eficacia == r.fim_eficacia),
_('Dispositivo está definido como inconstitucional porém '
'existe diferença entre as datas início e fim de '
'vigência e eficácia.'))
padd(r, type_pendencia, 'compilacao:dispositivo_edit_vigencia',
r.publicacao and
r.ta_publicado and r.ta_publicado != r.publicacao.ta,
_('A Publicação associada a este Dispositivo não é '
'uma publicação do Texto Articulado Alterador.'))
padd(r, type_pendencia, 'compilacao:dispositivo_edit_vigencia',
not r.publicacao,
_('Dispositivo sem registro de publicação.'))
padd(r, type_pendencia, 'compilacao:dispositivo_edit_vigencia',
r.texto and r.tipo_dispositivo.dispositivo_de_articulacao,
_('Dispositivos de Articulação não '
'deveriam armazenar texto.'))
padd(r, type_pendencia, 'compilacao:dispositivo_edit_vigencia',
not r.texto and r.tipo_dispositivo.dispositivo_de_articulacao,
_('Dispositivo está sem texto.'))
padd(r, type_pendencia, 'compilacao:dispositivo_edit_alteracao',
r.texto_atualizador and not r.ta_publicado,
_('Existe Texto Atualizador, porém este Dispositivo não '
'está associado a nenhum Documento Atualizador.'))
def danger(r):
type_pendencia = 'danger'
padd(r, type_pendencia, 'compilacao:dispositivo_edit_vigencia',
not r.dispositivo_vigencia,
_('Dispositivo sem definição de Dispositivo de Vigência.'))
padd(r, type_pendencia, 'compilacao:dispositivo_edit_vigencia',
r.inconstitucionalidade and
r.inicio_vigencia != r.fim_vigencia,
_('Dispositivo está definido como inconstitucional porém '
'existe período de vigência.'))
padd(r, type_pendencia, 'compilacao:dispositivo_edit_alteracao',
r.ta_publicado and not r.dispositivo_atualizador,
_('Dispositivo está associado a um Texto Articulado '
'Atualizador mas, a nenhum Dispositivo Atualizador.'))
padd(r, type_pendencia, 'compilacao:dispositivo_edit_alteracao',
not r.dispositivo_atualizador and
r.dispositivo_substituido,
_('Dispositivo está substituindo outro mas não foi informado '
'o Dispositivo Atualizador.'))
padd(r, type_pendencia, 'compilacao:dispositivo_edit_alteracao',
r.dispositivo_substituido.tipo_dispositivo !=
r.tipo_dispositivo,
_('Dispositivo está substituindo um Dispositivo '
'de outro tipo.'))
padd(r, type_pendencia, 'compilacao:dispositivo_edit_alteracao',
r.dispositivo_substituido.ta != r.ta,
_('Dispositivo está substituindo um Dispositivo de outro '
'Texto Articulado.'))
for r in result:
p = []
r.contextual_class = ""
# sucess
success(r)
info(r)
warning(r)
danger(r)
def padd(type_pendencia, msg,
reverse_url=None, _kwargs=None, to_position=None):
r.contextual_class = type_pendencia
if not _kwargs:
_kwargs = {'ta_id': r.ta_id, 'pk': r.pk}
if reverse_url:
p.append((type_pendencia, msg,
reverse_lazy(reverse_url, kwargs=_kwargs),
to_position))
else:
p.append((type_pendencia, msg, None, to_position))
# info
if r.rotulo != r.rotulo_padrao(local_insert=1):
padd('info', _('Rótulo Diferente do Padrão'),
'compilacao:dispositivo_edit')
if r.texto_atualizador and r.texto_atualizador != r.texto:
padd('info', _('Texto do Dispositivo para o Documento '
'está diferente do texto para o Documento '
'Alterador.'),
'compilacao:dispositivo_edit')
if r.inconstitucionalidade:
if not r.notas.exists():
padd('info', _('Este Dispositivo está definido como '
'inconstitucional. É aconcelhavel inserir '
'uma Nota informando esta condição.'),
'compilacao:ta_text', _kwargs={'ta_id': r.ta_id},
to_position=r.pk)
if not (r.inicio_vigencia == r.fim_vigencia and
r.fim_vigencia == r.inicio_eficacia and
r.inicio_eficacia == r.fim_eficacia):
padd('info', _('Este Dispositivo está definido como '
'inconstitucional porém existe '
'diferença entre as datas de vigência e '
'eficácia.'),
'compilacao:dispositivo_edit_vigencia')
# warnings
if r.dispositivo_vigencia and r.inicio_vigencia != \
r.dispositivo_vigencia.inicio_vigencia:
padd('warning',
_('Data de início de Vigência diferente da '
'data início de Vigência do Dispositivo de Vigência'),
'compilacao:dispositivo_edit_vigencia')
if r.inconstitucionalidade:
if r.inicio_vigencia != r.fim_vigencia:
padd('warning', _('Este Dispositivo está definido como '
'inconstitucional porém existe '
'período de vigência!'),
'compilacao:dispositivo_edit_vigencia')
# dangers
if not r.dispositivo_vigencia:
padd('danger',
_('Sem definição de Dispositivo de Vigência'),
'compilacao:dispositivo_edit_vigencia')
r.pendencias = p
return result

24
static/styles/compilacao.scss

@ -1063,6 +1063,28 @@ a:link:after, a:visited:after {
}
}
.table-pendencias {
tbody {
tr {
td {
border-top: 1px solid white;
padding: 5px;
vertical-align: middle;
ul {
margin: 0px;
/*padding: 0px;
list-style: none;*/
li {
&:hover {
background-color: rgba(0, 0, 0, 0.1)
}
}
}
}
}
}
}
.btn-modal-open {
float: right;
}
@ -1071,9 +1093,11 @@ a:link:after, a:visited:after {
.class_color_container {
background: #ddd !important;
}
.clear {
clear:both;
}
.mce-panel {
/*border: 0px solid #ccc !important;*/
}

8
templates/compilacao/text_list_bloco.html

@ -72,9 +72,9 @@
<div class="ntitulo">Vide: </div>
<div class="ntexto">
{% if vide.dispositivo_ref.dispositivo_pai.nivel != 0 and vide.dispositivo_ref.dispositivo_pai.tipo_dispositivo.dispositivo_de_articulacao %}
<a href="{%url 'compilacao:ta_text' vide.dispositivo_ref.dispositivo_pai.ta.pk%}#{{vide.dispositivo_ref.dispositivo_pai.pk }}">{{ vide.dispositivo_ref.dispositivo_pai}}</a>
<a href="{%url 'compilacao:ta_text' vide.dispositivo_ref.dispositivo_pai.ta.pk%}#{{vide.dispositivo_ref.dispositivo_pai.pk }}">{{ vide.dispositivo_ref.dispositivo_pai}} - {{ vide.dispositivo_ref.dispositivo_pai.ta}}</a>
{% else %}
<a href="{%url 'compilacao:ta_text' vide.dispositivo_ref.ta.pk%}#{{vide.dispositivo_ref.pk }}">{{ vide.dispositivo_ref}}</a>
<a href="{%url 'compilacao:ta_text' vide.dispositivo_ref.ta.pk%}#{{vide.dispositivo_ref.pk }}">{{ vide.dispositivo_ref}} - {{vide.dispositivo_ref.ta}}</a>
{% endif %}
{% if vide.texto %} - {{vide.texto}}{% endif %}
</div>
@ -100,9 +100,9 @@
<div class="ntitulo">Citado em: </div>
<div class="ntexto">
{% if vide.dispositivo_base.dispositivo_pai.nivel != 0 and vide.dispositivo_base.dispositivo_pai.tipo_dispositivo.dispositivo_de_articulacao%}
<a href="{%url 'compilacao:ta_text' vide.dispositivo_base.dispositivo_pai.ta.pk%}#{{vide.dispositivo_base.dispositivo_pai.pk }}">{{ vide.dispositivo_base.dispositivo_pai}}</a>
<a href="{%url 'compilacao:ta_text' vide.dispositivo_base.dispositivo_pai.ta.pk%}#{{vide.dispositivo_base.dispositivo_pai.pk }}">{{ vide.dispositivo_base.dispositivo_pai}} - {{ vide.dispositivo_base.dispositivo_pai.ta}}</a>
{% else %}
<a href="{%url 'compilacao:ta_text' vide.dispositivo_base.ta.pk%}#{{vide.dispositivo_base.pk }}">{{ vide.dispositivo_base}}</a>
<a href="{%url 'compilacao:ta_text' vide.dispositivo_base.ta.pk%}#{{vide.dispositivo_base.pk }}">{{ vide.dispositivo_base}} - {{ vide.dispositivo_base.ta}}</a>
{% endif %}
{% if vide.texto %} - {{vide.texto}}{% endif %}
</div>

5
templates/compilacao/text_pendencias.html

@ -6,8 +6,7 @@
{% block head_content %}{{block.super}}
<link rel="stylesheet" href="{% sass_src 'styles/compilacao.scss' %}" type="text/css">
{% endblock %}
<table class="table table-striped table-hover">
<table class="table table-striped table-hover table-pendencias">
<thead>
<tr>
<th>{% trans "Dispositivos" %}</th>
@ -17,7 +16,7 @@
<tbody>
{% for dpt in object_list %}
<tr class="{{dpt.contextual_class}}">
<td class="cp" width="60%" {% if not dpt.contextual_class %}colspan=2{% endif %} >
<td class="cp" width="63%" {% if not dpt.contextual_class %}colspan=2{% endif %} >
<div class="dpt">
<div class="{{ dpt.tipo_dispositivo.class_css }}">
<div class="dptt {% dispositivo_desativado dpt None None %}" id="dptt{{dpt.pk}}" >

Loading…
Cancel
Save