Browse Source

Setar dispositivo de vigência

pull/299/head
LeandroRoberto 9 years ago
parent
commit
621ad13f73
  1. 26
      compilacao/forms.py
  2. 2
      compilacao/templatetags/compilacao_filters.py
  3. 3
      compilacao/urls.py
  4. 28
      compilacao/views.py
  5. 7
      static/js/compilacao_edit.js
  6. 3
      templates/compilacao/publicacao_list.html
  7. 11
      templates/compilacao/text_edit_bloco.html
  8. 2
      templates/compilacao/textoarticulado_detail.html

26
compilacao/forms.py

@ -136,6 +136,17 @@ class TaForm(ModelForm):
) )
super(TaForm, self).__init__(*args, **kwargs) super(TaForm, self).__init__(*args, **kwargs)
instance = getattr(self, 'instance', None)
if instance and instance.pk:
self.fields['tipo_ta'].widget.attrs['disabled'] = True
self.fields['tipo_ta'].required = False
def clean_tipo_ta(self):
instance = getattr(self, 'instance', None)
if instance and instance.pk:
return instance.tipo_ta
else:
return self.cleaned_data['tipo_ta']
class NotaForm(ModelForm): class NotaForm(ModelForm):
@ -451,3 +462,18 @@ class PublicacaoForm(ModelForm):
super(PublicacaoForm, self).__init__(*args, **kwargs) super(PublicacaoForm, self).__init__(*args, **kwargs)
pass pass
class DispositivoForm(ModelForm):
class Meta:
model = Dispositivo
fields = []
def __init__(self, *args, **kwargs):
self.helper = FormHelper()
"""self.helper.layout = SaplFormLayout(
Fieldset(Publicacao._meta.verbose_name,
row1, row2, row3, css_class="col-md-12"))"""
super(PublicacaoForm, self).__init__(*args, **kwargs)

2
compilacao/templatetags/compilacao_filters.py

@ -93,7 +93,7 @@ def isinst(value, class_str):
@register.filter @register.filter
def render_actions_head(view, d_atual): def render_actions_head(view, d_atual):
if view.__class__.__name__ != 'DispositivoEditView': if view.__class__.__name__ != 'DispositivoSimpleEditView':
return False return False
# Menu # Menu

3
compilacao/urls.py

@ -31,6 +31,9 @@ urlpatterns_compilacao = [
views.DispositivoView.as_view(), name='dispositivo'), views.DispositivoView.as_view(), name='dispositivo'),
url(r'^(?P<ta_id>[0-9]+)/text/(?P<dispositivo_id>[0-9]+)/refresh', url(r'^(?P<ta_id>[0-9]+)/text/(?P<dispositivo_id>[0-9]+)/refresh',
views.DispositivoSimpleEditView.as_view(), name='dispositivo_refresh'),
url(r'^(?P<ta_id>[0-9]+)/text/(?P<dispositivo_id>[0-9]+)/edit',
views.DispositivoEditView.as_view(), name='dispositivo_edit'), views.DispositivoEditView.as_view(), name='dispositivo_edit'),
url(r'^(?P<ta_id>[0-9]+)/text/(?P<dispositivo_id>[0-9]+)/actions', url(r'^(?P<ta_id>[0-9]+)/text/(?P<dispositivo_id>[0-9]+)/actions',

28
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
@ -21,7 +21,7 @@ from django.views.generic.edit import CreateView, DeleteView, UpdateView
from django.views.generic.list import ListView from django.views.generic.list import ListView
from compilacao.forms import (NotaForm, PublicacaoForm, TaForm, TipoTaForm, from compilacao.forms import (NotaForm, PublicacaoForm, TaForm, TipoTaForm,
VideForm) VideForm, DispositivoForm)
from compilacao.models import (Dispositivo, Nota, from compilacao.models import (Dispositivo, Nota,
PerfilEstruturalTextoArticulado, Publicacao, PerfilEstruturalTextoArticulado, Publicacao,
TextoArticulado, TipoDispositivo, TipoNota, TextoArticulado, TipoDispositivo, TipoNota,
@ -29,6 +29,7 @@ from compilacao.models import (Dispositivo, Nota,
VeiculoPublicacao, Vide) VeiculoPublicacao, Vide)
from crud.base import Crud, CrudListView, make_pagination from crud.base import Crud, CrudListView, make_pagination
DISPOSITIVO_SELECT_RELATED = ( DISPOSITIVO_SELECT_RELATED = (
'tipo_dispositivo', 'tipo_dispositivo',
'ta_publicado', 'ta_publicado',
@ -162,7 +163,7 @@ class TipoTaListView(ListView):
class TipoTaCreateView(FormMessagesMixin, CreateView): class TipoTaCreateView(FormMessagesMixin, CreateView):
model = TipoTextoArticulado model = TipoTextoArticulado
form_class = TipoTaForm form_class = TipoTaForm
template_name = "compilacao/form.html" template_name = "crud/form.html"
form_valid_message = _('Registro criado com sucesso!') form_valid_message = _('Registro criado com sucesso!')
form_invalid_message = _('O registro não foi criado.') form_invalid_message = _('O registro não foi criado.')
@ -191,7 +192,7 @@ class TipoTaDetailView(CompMixin, DetailView):
class TipoTaUpdateView(CompMixin, UpdateView): class TipoTaUpdateView(CompMixin, UpdateView):
model = TipoTextoArticulado model = TipoTextoArticulado
form_class = TipoTaForm form_class = TipoTaForm
template_name = "compilacao/form.html" template_name = "crud/form.html"
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
self.object = self.get_object() self.object = self.get_object()
@ -264,7 +265,7 @@ class TaDetailView(DetailView):
class TaCreateView(FormMessagesMixin, CreateView): class TaCreateView(FormMessagesMixin, CreateView):
model = TextoArticulado model = TextoArticulado
form_class = TaForm form_class = TaForm
template_name = "compilacao/form.html" template_name = "crud/form.html"
form_valid_message = _('Registro criado com sucesso!') form_valid_message = _('Registro criado com sucesso!')
form_invalid_message = _('O registro não foi criado.') form_invalid_message = _('O registro não foi criado.')
@ -280,7 +281,7 @@ class TaCreateView(FormMessagesMixin, CreateView):
class TaUpdateView(CompMixin, UpdateView): class TaUpdateView(CompMixin, UpdateView):
model = TextoArticulado model = TextoArticulado
form_class = TaForm form_class = TaForm
template_name = "compilacao/form.html" template_name = "crud/form.html"
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
self.object = self.get_object() self.object = self.get_object()
@ -662,7 +663,7 @@ class TextEditView(ListView, CompMixin):
request.session['perfil_estrutural'] = perfis[0].pk request.session['perfil_estrutural'] = perfis[0].pk
class DispositivoEditView(TextEditView): class DispositivoSimpleEditView(TextEditView):
template_name = 'compilacao/text_edit_bloco.html' template_name = 'compilacao/text_edit_bloco.html'
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
@ -1012,6 +1013,9 @@ class ActionsEditMixin:
action = getattr(self, context['action']) action = getattr(self, context['action'])
return JsonResponse(action(context), safe=False) return JsonResponse(action(context), safe=False)
def set_dvt(self, context):
return {}
def delete_item_dispositivo(self, context): def delete_item_dispositivo(self, context):
return self.delete_bloco_dispositivo(context, bloco=False) return self.delete_bloco_dispositivo(context, bloco=False)
@ -1911,7 +1915,7 @@ class PublicacaoListView(ListView):
class PublicacaoCreateView(FormMessagesMixin, CreateView): class PublicacaoCreateView(FormMessagesMixin, CreateView):
model = Publicacao model = Publicacao
form_class = PublicacaoForm form_class = PublicacaoForm
template_name = "compilacao/form.html" template_name = "crud/form.html"
form_valid_message = _('Registro criado com sucesso!') form_valid_message = _('Registro criado com sucesso!')
form_invalid_message = _('O registro não foi criado.') form_invalid_message = _('O registro não foi criado.')
@ -1939,7 +1943,7 @@ class PublicacaoDetailView(CompMixin, DetailView):
class PublicacaoUpdateView(CompMixin, UpdateView): class PublicacaoUpdateView(CompMixin, UpdateView):
model = Publicacao model = Publicacao
form_class = PublicacaoForm form_class = PublicacaoForm
template_name = "compilacao/form.html" template_name = "crud/form.html"
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
self.object = self.get_object() self.object = self.get_object()
@ -1974,3 +1978,9 @@ class PublicacaoDeleteView(CompMixin, DeleteView):
def get_success_url(self): def get_success_url(self):
return reverse_lazy('compilacao:ta_pub_list', return reverse_lazy('compilacao:ta_pub_list',
kwargs={'ta_id': self.kwargs['ta_id']}) kwargs={'ta_id': self.kwargs['ta_id']})
class DispositivoEditView(CompMixin, UpdateView):
model = Dispositivo
form_class = DispositivoForm
template_name = "crud/form.html"

7
static/js/compilacao_edit.js

@ -105,6 +105,13 @@ var clickUpdateDispositivo = function(event, __pk_refresh, __pk_edit, __action,
$("#message_block").css("display", "block"); $("#message_block").css("display", "block");
}
else if (_action.startsWith('set_')) {
url = pk_refresh+'/actions?action='+_action;
$("#message_block").css("display", "block");
} }
else if (_action.startsWith('delete_')) { else if (_action.startsWith('delete_')) {
var r = confirm("Confirma Exclusão deste dispositivo?"); var r = confirm("Confirma Exclusão deste dispositivo?");

3
templates/compilacao/publicacao_list.html

@ -9,9 +9,6 @@
<a href="{{ view.create_url }}" class="btn btn-default"> <a href="{{ view.create_url }}" class="btn btn-default">
{% trans 'Adicionar'%} {%model_verbose_name 'compilacao.models.Publicacao'%} {% trans 'Adicionar'%} {%model_verbose_name 'compilacao.models.Publicacao'%}
</a> </a>
<a href="{% url 'compilacao:ta_text' view.kwargs.ta_id %}" class="btn btn-default">
{% trans 'Voltar' %}
</a>
</div> </div>
{% if not object_list %} {% if not object_list %}

11
templates/compilacao/text_edit_bloco.html

@ -9,7 +9,7 @@
{% close_div view.flag_nivel_old dpt.nivel 0 %} {% close_div view.flag_nivel_old dpt.nivel 0 %}
{% endif%} {% endif%}
{% if forloop.first and view|isinst:'DispositivoEditView' %} {% if forloop.first and view|isinst:'DispositivoSimpleEditView' %}
{% else %} {% else %}
<div class="dpt" id="dpt{{dpt.pk}}" pk="{{dpt.pk}}"> <div class="dpt" id="dpt{{dpt.pk}}" pk="{{dpt.pk}}">
{% endif%} {% endif%}
@ -25,13 +25,18 @@
<li class="edt-detail"><a class="btn-top btn-action" pk="{{dpt.pk}}" action="refresh:detail" title="{% trans 'TODO: Edição detalhada'%}">E*</a></li> <li class="edt-detail"><a class="btn-top btn-action" pk="{{dpt.pk}}" action="refresh:detail" title="{% trans 'TODO: Edição detalhada'%}">E*</a></li>
<li class="edt-construct"><a class="btn-top btn-action" pk="{{dpt.pk}}" action="refresh:construct" title="{% trans 'Construçao da estrutura do Texto Articulado'%}">C</a></li> <li class="edt-construct"><a class="btn-top btn-action" pk="{{dpt.pk}}" action="refresh:construct" title="{% trans 'Construçao da estrutura do Texto Articulado'%}">C</a></li>
</ul> </ul>
<ul class="btns-action actions_right"> <ul class="btns-action actions_right">
<li><a class="btn-right btn-action" pk="{{dpt.pk}}" action="set_dvt" title="{% trans 'Definir como Dispositivo de Vigência para todos os Dispositivos deste Texto.'%}">DVt</a></li>
{% comment %}
<li><a class="btn-right btn-action" pk="{{dpt.pk}}" action="refresh" title="{% trans 'TODO: Reduzir nível do Dispositivo'%}">&#10092;</a></li> <li><a class="btn-right btn-action" pk="{{dpt.pk}}" action="refresh" title="{% trans 'TODO: Reduzir nível do Dispositivo'%}">&#10092;</a></li>
<li><a class="btn-right btn-action" pk="{{dpt.pk}}" action="refresh" title="{% trans 'TODO: Aumentar nível do Dispositivo'%}">&#10093;</a></li> <li><a class="btn-right btn-action" pk="{{dpt.pk}}" action="refresh" title="{% trans 'TODO: Aumentar nível do Dispositivo'%}">&#10093;</a></li>
<li><a class="btn-right btn-action" pk="{{dpt.pk}}" action="refresh" title="{% trans 'TODO: Subir uma posição'%}">&#8593;</a></li> <li><a class="btn-right btn-action" pk="{{dpt.pk}}" action="refresh" title="{% trans 'TODO: Subir uma posição'%}">&#8593;</a></li>
<li><a class="btn-right btn-action" pk="{{dpt.pk}}" action="refresh" title="{% trans 'TODO: Descer uma posição'%}">&#8595;</a></li> <li><a class="btn-right btn-action" pk="{{dpt.pk}}" action="refresh" title="{% trans 'TODO: Descer uma posição'%}">&#8595;</a></li>
<li><a class="btn-right btn-action" pk="{{dpt.pk}}" action="refresh" title="{% trans 'TODO: Subir uma posição com todos os subniveis'%}">&#8648;</a></li> <li><a class="btn-right btn-action" pk="{{dpt.pk}}" action="refresh" title="{% trans 'TODO: Subir uma posição com todos os subniveis'%}">&#8648;</a></li>
<li><a class="btn-right btn-action" pk="{{dpt.pk}}" action="refresh" title="{% trans 'TODO: Descer uma posição com todos os subniveis'%}">&#8650;</a></li> <li><a class="btn-right btn-action" pk="{{dpt.pk}}" action="refresh" title="{% trans 'TODO: Descer uma posição com todos os subniveis'%}">&#8650;</a></li>
{% endcomment %}
</ul> </ul>
<ul class="btns-action actions_left"> <ul class="btns-action actions_left">
@ -50,7 +55,7 @@
<li class="{{inserts.action}}"><a class="btn-inserts" action="" pk="{{dpt.pk}}">{{inserts.icone|safe}}<span>{{inserts.tipo_insert}}</span></a> <li class="{{inserts.action}}"><a class="btn-inserts" action="" pk="{{dpt.pk}}">{{inserts.icone|safe}}<span>{{inserts.tipo_insert}}</span></a>
<ul id="afe{{dpt.id}}" > <ul id="afe{{dpt.id}}" >
{% for item in inserts.itens %} {% for item in inserts.itens %}
<li><a class="btn-inserts btn-action" action="{{inserts|lookup:'action'}}" pk="{{item.dispositivo_base}}" variacao="{{item.variacao}}" tipo_pk="{{item.tipo_pk}}">{{item.provavel}}</a></li> <li><a class="btn-inserts btn-action" action="{{inserts.action}}" pk="{{item.dispositivo_base}}" variacao="{{item.variacao}}" tipo_pk="{{item.tipo_pk}}">{{item.provavel}}</a></li>
{% endfor %} {% endfor %}
</ul> </ul>
</li> </li>
@ -126,7 +131,7 @@
{% endfor %} {% endfor %}
{% if view|isinst:'DispositivoEditView' %} {% if view|isinst:'DispositivoSimpleEditView' %}
{% close_div view.flag_nivel_old view.flag_nivel_ini -1 %} {% close_div view.flag_nivel_old view.flag_nivel_ini -1 %}
{% else %} {% else %}
{% close_div view.flag_nivel_old view.flag_nivel_ini 0 %} {% close_div view.flag_nivel_old view.flag_nivel_ini 0 %}

2
templates/compilacao/textoarticulado_detail.html

@ -14,7 +14,7 @@
{%endif%} {%endif%}
</li> </li>
<li><a href="{% url 'compilacao:ta_pub_list' object.pk %}">{% model_verbose_name_plural 'compilacao.models.Publicacao' %}</a></li> <li><a href="{% url 'compilacao:ta_pub_list' object.pk %}">{% model_verbose_name_plural 'compilacao.models.Publicacao' %}</a></li>
<li><a href="{% url 'compilacao:ta_text' object.pk %}">{% trans 'Texto da Norma' %}</a></li> <li><a href="{% url 'compilacao:ta_text' object.pk %}">{% trans 'Texto' %}</a></li>
{%endif %} {%endif %}
</ul> </ul>
{% endblock %} {% endblock %}

Loading…
Cancel
Save