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 = FormHelper()
self.helper.layout = SaplFormLayout( self.helper.layout = SaplFormLayout(
*layout, *layout,
label_cancel=_('Retornar para o Editor Sequencial')) label_cancel=_('Ir para o Editor Sequencial'))
super(DispositivoEdicaoBasicaForm, self).__init__(*args, **kwargs) super(DispositivoEdicaoBasicaForm, self).__init__(*args, **kwargs)
@ -727,7 +727,7 @@ class DispositivoEdicaoVigenciaForm(ModelForm):
self.helper = FormHelper() self.helper = FormHelper()
self.helper.layout = SaplFormLayout( self.helper.layout = SaplFormLayout(
*layout, *layout,
label_cancel=_('Retornar para o Editor Sequencial')) label_cancel=_('Ir para o Editor Sequencial'))
super(DispositivoEdicaoVigenciaForm, self).__init__(*args, **kwargs) super(DispositivoEdicaoVigenciaForm, self).__init__(*args, **kwargs)
@ -816,7 +816,7 @@ class DispositivoDefinidorVigenciaForm(Form):
self.helper = FormHelper() self.helper = FormHelper()
self.helper.layout = SaplFormLayout( self.helper.layout = SaplFormLayout(
*layout, *layout,
label_cancel=_('Retornar para o Editor Sequencial')) label_cancel=_('Ir para o Editor Sequencial'))
pk = kwargs.pop('pk') pk = kwargs.pop('pk')
super(DispositivoDefinidorVigenciaForm, self).__init__(*args, **kwargs) super(DispositivoDefinidorVigenciaForm, self).__init__(*args, **kwargs)
@ -955,7 +955,7 @@ class DispositivoEdicaoAlteracaoForm(ModelForm):
self.helper = FormHelper() self.helper = FormHelper()
self.helper.layout = SaplFormLayout( self.helper.layout = SaplFormLayout(
*layout, *layout,
label_cancel=_('Retornar para o Editor Sequencial')) label_cancel=_('Ir para o Editor Sequencial'))
super(DispositivoEdicaoAlteracaoForm, self).__init__(*args, **kwargs) 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', url(r'^(?P<ta_id>[0-9]+)/text/edit',
views.TextEditView.as_view(), name='ta_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]+)/$', url(r'^(?P<ta_id>[0-9]+)/text/(?P<dispositivo_id>[0-9]+)/$',
views.DispositivoView.as_view(), name='dispositivo'), views.DispositivoView.as_view(), name='dispositivo'),

80
compilacao/views.py

@ -1,6 +1,6 @@
import sys
from collections import OrderedDict from collections import OrderedDict
from datetime import datetime, timedelta from datetime import datetime, timedelta
import sys
from braces.views import FormMessagesMixin from braces.views import FormMessagesMixin
from django import forms from django import forms
@ -36,6 +36,7 @@ from compilacao.models import (Dispositivo, Nota,
from compilacao.utils import DISPOSITIVO_SELECT_RELATED from compilacao.utils import DISPOSITIVO_SELECT_RELATED
from crud.base import Crud, CrudListView, make_pagination from crud.base import Crud, CrudListView, make_pagination
TipoNotaCrud = Crud.build(TipoNota, 'tipo_nota') TipoNotaCrud = Crud.build(TipoNota, 'tipo_nota')
TipoVideCrud = Crud.build(TipoVide, 'tipo_vide') TipoVideCrud = Crud.build(TipoVide, 'tipo_vide')
TipoPublicacaoCrud = Crud.build(TipoPublicacao, 'tipo_publicacao') TipoPublicacaoCrud = Crud.build(TipoPublicacao, 'tipo_publicacao')
@ -2291,3 +2292,80 @@ class DispositivoEdicaoAlteracaoView(FormMessagesMixin, UpdateView):
return self.form_invalid(form) return self.form_invalid(form)
else: else:
return self.form_invalid(form) 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 editortype = "textarea";
var gets = 0;
var onSubmitEditForm = function(event) { var onSubmitEditForm = function(event) {
var texto = ''; var texto = '';

21
static/js/compilacao_notas.js

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