Browse Source

Estruturar View e template de pendências.

pull/383/head
LeandroRoberto 9 years ago
parent
commit
09dc7f7466
  1. 8
      compilacao/forms.py
  2. 3
      compilacao/urls.py
  3. 80
      compilacao/views.py
  4. 1
      static/js/compilacao_edit.js
  5. 21
      static/js/compilacao_notas.js
  6. 53
      templates/compilacao/text_pendencias.html

8
compilacao/forms.py

@ -559,7 +559,7 @@ class DispositivoEdicaoBasicaForm(ModelForm):
self.helper = FormHelper()
self.helper.layout = SaplFormLayout(
*layout,
label_cancel=_('Retornar para o Editor Sequencial'))
label_cancel=_('Ir para o Editor Sequencial'))
super(DispositivoEdicaoBasicaForm, self).__init__(*args, **kwargs)
@ -727,7 +727,7 @@ class DispositivoEdicaoVigenciaForm(ModelForm):
self.helper = FormHelper()
self.helper.layout = SaplFormLayout(
*layout,
label_cancel=_('Retornar para o Editor Sequencial'))
label_cancel=_('Ir para o Editor Sequencial'))
super(DispositivoEdicaoVigenciaForm, self).__init__(*args, **kwargs)
@ -816,7 +816,7 @@ class DispositivoDefinidorVigenciaForm(Form):
self.helper = FormHelper()
self.helper.layout = SaplFormLayout(
*layout,
label_cancel=_('Retornar para o Editor Sequencial'))
label_cancel=_('Ir para o Editor Sequencial'))
pk = kwargs.pop('pk')
super(DispositivoDefinidorVigenciaForm, self).__init__(*args, **kwargs)
@ -955,7 +955,7 @@ class DispositivoEdicaoAlteracaoForm(ModelForm):
self.helper = FormHelper()
self.helper.layout = SaplFormLayout(
*layout,
label_cancel=_('Retornar para o Editor Sequencial'))
label_cancel=_('Ir para o Editor Sequencial'))
super(DispositivoEdicaoAlteracaoForm, self).__init__(*args, **kwargs)

3
compilacao/urls.py

@ -27,6 +27,9 @@ urlpatterns_compilacao = [
url(r'^(?P<ta_id>[0-9]+)/text/edit',
views.TextEditView.as_view(), name='ta_text_edit'),
url(r'^(?P<ta_id>[0-9]+)/text/pendencias',
views.TextPendenciasView.as_view(), name='ta_text_pendencias'),
url(r'^(?P<ta_id>[0-9]+)/text/(?P<dispositivo_id>[0-9]+)/$',
views.DispositivoView.as_view(), name='dispositivo'),

80
compilacao/views.py

@ -1,6 +1,6 @@
import sys
from collections import OrderedDict
from datetime import datetime, timedelta
import sys
from braces.views import FormMessagesMixin
from django import forms
@ -36,6 +36,7 @@ from compilacao.models import (Dispositivo, Nota,
from compilacao.utils import DISPOSITIVO_SELECT_RELATED
from crud.base import Crud, CrudListView, make_pagination
TipoNotaCrud = Crud.build(TipoNota, 'tipo_nota')
TipoVideCrud = Crud.build(TipoVide, 'tipo_vide')
TipoPublicacaoCrud = Crud.build(TipoPublicacao, 'tipo_publicacao')
@ -2291,3 +2292,80 @@ class DispositivoEdicaoAlteracaoView(FormMessagesMixin, UpdateView):
return self.form_invalid(form)
else:
return self.form_invalid(form)
class TextPendenciasView(ListView, CompMixin):
template_name = 'compilacao/text_pendencias.html'
def get_queryset(self):
result = Dispositivo.objects.filter(
ta_id=self.kwargs['ta_id']
).select_related(*DISPOSITIVO_SELECT_RELATED)
for r in result:
p = []
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

1
static/js/compilacao_edit.js

@ -1,6 +1,5 @@
var editortype = "textarea";
var gets = 0;
var onSubmitEditForm = function(event) {
var texto = '';

21
static/js/compilacao_notas.js

@ -123,20 +123,21 @@ function getForm(_this) {
function onReadyNotasVides() {
$('.dne-nota').removeClass('dne-nota');
$('.dne-form').html('');
$('.dne-nota').removeClass('dne-nota');
$('.dne-form').html('');
$('.dne .btn-action').off();
$('.dn .btn-action').off();
$('.dne .btn-action').off();
$('.dn .btn-action').off();
$('.dne .btn-action, .dn .btn-action').not('.btn-nota-delete').not('.btn-vide-delete').click(function(){
getForm(this);
});
$('.dne .btn-action, .dn .btn-action').not('.btn-nota-delete').not('.btn-vide-delete').click(function(){
getForm(this);
});
$('.dn .btn-nota-delete, .dn .btn-vide-delete').click(function(){
onDelete(this);
});
$('.dn .btn-nota-delete, .dn .btn-vide-delete').click(function(){
onDelete(this);
});
}
$(document).ready(function() {
onReadyNotasVides()
});

53
templates/compilacao/text_pendencias.html

@ -0,0 +1,53 @@
{% extends "base.html" %}
{% load i18n compilacao_filters common_tags sass_tags%}
{% block base_content %}
{% 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">
<thead>
<tr>
<th>{% trans "Dispositivos" %}</th>
<th>{% trans "Pendências" %}</th>
</tr>
</thead>
<tbody>
{% for dpt in object_list %}
<tr class="{{dpt.contextual_class}}">
<td class="cp" width="60%" {% 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}}" >
{{ dpt.tipo_dispositivo.rotulo_prefixo_html|safe }}
<a href="{% url 'compilacao:ta_text_edit' dpt.ta_id %}#{{dpt.pk}}">{% if dpt.rotulo or dpt.nivel = 1 %}{{ dpt.rotulo }}{%else%}[{{ dpt|nomenclatura}}{% if dpt.dispositivo_pai_id %} {% trans "de" %} {{ dpt.dispositivo_pai.rotulo }}{% endif %}] - {% endif %}</a>
{{ dpt.tipo_dispositivo.rotulo_sufixo_html|safe }}
<span class="dtxt"
id="d{% if not dpt.dispositivo_subsequente_id and dpt.dispositivo_substituido_id %}a{% endif %}{{dpt.pk}}"
pks="{{dpt.dispositivo_substituido_id|default:''}}"
pk="{{dpt.pk}}">{{ dpt.tipo_dispositivo.texto_prefixo_html|safe }}{%if dpt.texto %}{{ dpt.texto|safe }}{%else%}{%if not dpt.tipo_dispositivo.dispositivo_de_articulacao %}&nbsp;{% endif %}{% endif %}</span>
</div>
</div>
</div>
</td>
{% if dpt.contextual_class %}
<td>
<ul>
{% for p in dpt.pendencias %}
<li>
{%if p.2 %}
<a target="_blank" class="text-{{p.0}}" href="{{p.2}}{%if p.3 %}#{{p.3}}{% endif %}"><u>{{p.1}}</u></a>
{% else%}
<span class="text-{{p.0}}">{{p.1}}</span>
{% endif %}</li>
{% endfor %}
</ul>
</td>
{% endif %}
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
Loading…
Cancel
Save