Browse Source

Conclusão da issue #188

- Ajustar compilação para bootstrap concluído
  - Refatorar "block title" em base.html para customização sem view.title
  - Refatorar template/crud/confirm_delete.html
  - Corrigir identação de templates e scss para 2 espaços
  - fix qa check
pull/213/head
LeandroRoberto 9 years ago
parent
commit
c67614990a
  1. 13
      compilacao/forms.py
  2. 9
      compilacao/templatetags/compilacao_filters.py
  3. 19
      compilacao/urls.py
  4. 70
      compilacao/views.py
  5. 1
      norma/views.py
  6. 56
      static/js/compilacao.js
  7. 436
      static/js/compilacao_edit.js
  8. 340
      static/js/compilacao_notas.js
  9. 106
      static/js/compilacao_view.js
  10. 2222
      static/styles/compilacao.scss
  11. 16
      templates/base.html
  12. 20
      templates/compilacao/confirm_delete.html
  13. 61
      templates/compilacao/dispositivo_search_fragment_form.html
  14. 156
      templates/compilacao/publicacao_detail.html
  15. 58
      templates/compilacao/publicacao_list.html
  16. 36
      templates/compilacao/text_edit.html
  17. 238
      templates/compilacao/text_edit_bloco.html
  18. 14
      templates/compilacao/text_edit_blocoalteracao.html
  19. 142
      templates/compilacao/text_list.html
  20. 309
      templates/compilacao/text_list_bloco.html
  21. 10
      templates/compilacao/text_list_blocoalteracao.html
  22. 111
      templates/compilacao/textoarticulado_detail.html
  23. 54
      templates/compilacao/textoarticulado_list.html
  24. 21
      templates/compilacao/textoarticulado_menu_config.html
  25. 91
      templates/compilacao/tipotextoarticulado_detail.html
  26. 62
      templates/compilacao/tipotextoarticulado_list.html
  27. 35
      templates/crud/confirm_delete.html
  28. 11
      templates/norma/normajuridica_detail.html

13
compilacao/forms.py

@ -1,21 +1,20 @@
from crispy_forms.bootstrap import FormActions, StrictButton, FieldWithButtons from crispy_forms.bootstrap import FieldWithButtons, FormActions, StrictButton
from crispy_forms.helper import FormHelper from crispy_forms.helper import FormHelper
from crispy_forms.layout import Button, Field, Column, HTML, Layout, Div, Row,\ from crispy_forms.layout import (HTML, Button, Column, Div, Field, Fieldset,
Fieldset Layout, Row)
from django import forms from django import forms
from django.core.exceptions import NON_FIELD_ERRORS from django.core.exceptions import NON_FIELD_ERRORS
from django.forms.models import ModelForm from django.forms.models import ModelForm
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from compilacao.models import (PARTICIPACAO_SOCIAL_CHOICES, Dispositivo, Nota, from compilacao.models import (NOTAS_PUBLICIDADE_CHOICES,
PARTICIPACAO_SOCIAL_CHOICES, Dispositivo, Nota,
Publicacao, TextoArticulado, TipoNota, Publicacao, TextoArticulado, TipoNota,
TipoPublicacao, TipoTextoArticulado, TipoVide, TipoPublicacao, TipoTextoArticulado, TipoVide,
VeiculoPublicacao, Vide, VeiculoPublicacao, Vide)
NOTAS_PUBLICIDADE_CHOICES)
from sapl.layout import SaplFormLayout, to_column, to_row from sapl.layout import SaplFormLayout, to_column, to_row
from sapl.utils import YES_NO_CHOICES from sapl.utils import YES_NO_CHOICES
error_messages = { error_messages = {
'required': _('Este campo é obrigatório'), 'required': _('Este campo é obrigatório'),
'invalid': _('URL inválida.') 'invalid': _('URL inválida.')

9
compilacao/templatetags/compilacao_filters.py

@ -40,11 +40,14 @@ def nota_automatica(dispositivo, ta_pub_list):
if dispositivo.ta_publicado is not None: if dispositivo.ta_publicado is not None:
d = dispositivo.dispositivo_atualizador.dispositivo_pai d = dispositivo.dispositivo_atualizador.dispositivo_pai
if dispositivo.texto == Dispositivo.TEXTO_PADRAO_DISPOSITIVO_REVOGADO: if dispositivo.texto == Dispositivo.TEXTO_PADRAO_DISPOSITIVO_REVOGADO:
return 'Revogado pelo %s - %s.' % (d, ta_pub_list[dispositivo.ta_publicado_id]) return 'Revogado pelo %s - %s.' % (
d, ta_pub_list[dispositivo.ta_publicado_id])
elif not dispositivo.dispositivo_substituido_id: elif not dispositivo.dispositivo_substituido_id:
return 'Inclusão feita pelo %s - %s.' % (d, ta_pub_list[dispositivo.ta_publicado_id]) return 'Inclusão feita pelo %s - %s.' % (
d, ta_pub_list[dispositivo.ta_publicado_id])
else: else:
return 'Alteração feita pelo %s - %s.' % (d, ta_pub_list[dispositivo.ta_publicado_id]) return 'Alteração feita pelo %s - %s.' % (
d, ta_pub_list[dispositivo.ta_publicado_id])
return '' return ''

19
compilacao/urls.py

@ -16,6 +16,7 @@ urlpatterns_compilacao = [
url(r'^(?P<ta_id>[0-9]+)/text$', url(r'^(?P<ta_id>[0-9]+)/text$',
views.TextView.as_view(), name='ta_text'), views.TextView.as_view(), name='ta_text'),
url(r'^(?P<ta_id>[0-9]+)/text/vigencia/(?P<sign>.+)/$', url(r'^(?P<ta_id>[0-9]+)/text/vigencia/(?P<sign>.+)/$',
views.TextView.as_view(), name='ta_vigencia'), views.TextView.as_view(), name='ta_vigencia'),
@ -85,17 +86,19 @@ urlpatterns_compilacao = [
url(r'^config/tipo-textoarticulado/(?P<pk>[0-9]+)/delete$', url(r'^config/tipo-textoarticulado/(?P<pk>[0-9]+)/delete$',
views.TipoTaDeleteView.as_view(), name='tipo_ta_delete'), views.TipoTaDeleteView.as_view(), name='tipo_ta_delete'),
url(r'^config/tipo-nota/',
]
urlpatterns = [
url(r'^ta/', include(urlpatterns_compilacao, 'compilacao', 'compilacao')),
url(r'^ta/config/tipo-nota/',
include(tipo_nota_crud.urls)), include(tipo_nota_crud.urls)),
url(r'^config/tipo-vide/', url(r'^ta/config/tipo-vide/',
include(tipo_vide_crud.urls)), include(tipo_vide_crud.urls)),
url(r'^config/tipo-publicacao/', url(r'^ta/config/tipo-publicacao/',
include(tipo_publicacao_crud.urls)), include(tipo_publicacao_crud.urls)),
url(r'^config/veiculo-publicacao/', url(r'^ta/config/veiculo-publicacao/',
include(veiculo_publicacao_crud.urls)), include(veiculo_publicacao_crud.urls)),
] ]
urlpatterns = [
url(r'^ta/', include(urlpatterns_compilacao)),
]

70
compilacao/views.py

@ -1,13 +1,13 @@
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
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.core.signing import Signer from django.core.signing import Signer
from django.core.urlresolvers import reverse, reverse_lazy from django.core.urlresolvers import reverse_lazy
from django.db.models import Q from django.db.models import Q
from django.http.response import (HttpResponse, HttpResponseRedirect, from django.http.response import (HttpResponse, HttpResponseRedirect,
JsonResponse) JsonResponse)
@ -29,7 +29,6 @@ from compilacao.models import (Dispositivo, Nota,
VeiculoPublicacao, Vide) VeiculoPublicacao, Vide)
from sapl.crud import NO_ENTRIES_MSG, build_crud, make_pagination from sapl.crud import NO_ENTRIES_MSG, build_crud, make_pagination
DISPOSITIVO_SELECT_RELATED = ( DISPOSITIVO_SELECT_RELATED = (
'tipo_dispositivo', 'tipo_dispositivo',
'ta_publicado', 'ta_publicado',
@ -177,7 +176,8 @@ class IntegracaoTaView(TemplateView):
ta.save() ta.save()
return redirect(to=reverse_lazy('ta_text', kwargs={'ta_id': ta.pk})) return redirect(to=reverse_lazy('compilacao:ta_text',
kwargs={'ta_id': ta.pk}))
class Meta: class Meta:
abstract = True abstract = True
@ -232,7 +232,7 @@ class TipoTaListView(ListView):
@property @property
def create_url(self): def create_url(self):
return reverse_lazy('tipo_ta_create') return reverse_lazy('compilacao:tipo_ta_create')
class TipoTaCreateView(FormMessagesMixin, CreateView): class TipoTaCreateView(FormMessagesMixin, CreateView):
@ -252,11 +252,12 @@ class TipoTaCreateView(FormMessagesMixin, CreateView):
return self.render_to_response(self.get_context_data(form=form)) return self.render_to_response(self.get_context_data(form=form))
def get_success_url(self): def get_success_url(self):
return reverse_lazy('tipo_ta_detail', kwargs={'pk': self.object.id}) return reverse_lazy('compilacao:tipo_ta_detail',
kwargs={'pk': self.object.id})
@property @property
def cancel_url(self): def cancel_url(self):
return reverse_lazy('tipo_ta_list') return reverse_lazy('compilacao:tipo_ta_list')
class TipoTaDetailView(CompMixin, DetailView): class TipoTaDetailView(CompMixin, DetailView):
@ -277,23 +278,26 @@ class TipoTaUpdateView(CompMixin, UpdateView):
return self.render_to_response(self.get_context_data(form=form)) return self.render_to_response(self.get_context_data(form=form))
def get_success_url(self): def get_success_url(self):
return reverse_lazy('tipo_ta_detail', kwargs={'pk': self.kwargs['pk']}) return reverse_lazy('compilacao:tipo_ta_detail',
kwargs={'pk': self.kwargs['pk']})
@property @property
def cancel_url(self): def cancel_url(self):
return reverse_lazy('tipo_ta_detail', kwargs={'pk': self.kwargs['pk']}) return reverse_lazy('compilacao:tipo_ta_detail',
kwargs={'pk': self.kwargs['pk']})
class TipoTaDeleteView(CompMixin, DeleteView): class TipoTaDeleteView(CompMixin, DeleteView):
model = TipoTextoArticulado model = TipoTextoArticulado
template_name = "compilacao/confirm_delete.html" template_name = "crud/confirm_delete.html"
@property @property
def detail_url(self): def detail_url(self):
return reverse_lazy('tipo_ta_detail', kwargs={'pk': self.kwargs['pk']}) return reverse_lazy('compilacao:tipo_ta_detail',
kwargs={'pk': self.kwargs['pk']})
def get_success_url(self): def get_success_url(self):
return reverse_lazy('tipo_ta_list') return reverse_lazy('compilacao:tipo_ta_list')
class TaListView(ListView): class TaListView(ListView):
@ -307,7 +311,7 @@ class TaListView(ListView):
@property @property
def create_url(self): def create_url(self):
return reverse_lazy('ta_create') return reverse_lazy('compilacao:ta_create')
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(TaListView, self).get_context_data(**kwargs) context = super(TaListView, self).get_context_data(**kwargs)
@ -341,11 +345,12 @@ class TaCreateView(FormMessagesMixin, CreateView):
form_invalid_message = _('O registro não foi criado.') form_invalid_message = _('O registro não foi criado.')
def get_success_url(self): def get_success_url(self):
return reverse_lazy('ta_detail', kwargs={'pk': self.object.id}) return reverse_lazy('compilacao:ta_detail',
kwargs={'pk': self.object.id})
@property @property
def cancel_url(self): def cancel_url(self):
return reverse_lazy('ta_list') return reverse_lazy('compilacao:ta_list')
class TaUpdateView(CompMixin, UpdateView): class TaUpdateView(CompMixin, UpdateView):
@ -362,23 +367,26 @@ class TaUpdateView(CompMixin, UpdateView):
return self.render_to_response(self.get_context_data(form=form)) return self.render_to_response(self.get_context_data(form=form))
def get_success_url(self): def get_success_url(self):
return reverse_lazy('ta_detail', kwargs={'pk': self.kwargs['pk']}) return reverse_lazy('compilacao:ta_detail',
kwargs={'pk': self.kwargs['pk']})
@property @property
def cancel_url(self): def cancel_url(self):
return reverse_lazy('ta_detail', kwargs={'pk': self.kwargs['pk']}) return reverse_lazy('compilacao:ta_detail',
kwargs={'pk': self.kwargs['pk']})
class TaDeleteView(CompMixin, DeleteView): class TaDeleteView(CompMixin, DeleteView):
model = TextoArticulado model = TextoArticulado
template_name = "compilacao/confirm_delete.html" template_name = "crud/confirm_delete.html"
@property @property
def detail_url(self): def detail_url(self):
return reverse_lazy('ta_detail', kwargs={'pk': self.kwargs['pk']}) return reverse_lazy('compilacao:ta_detail',
kwargs={'pk': self.kwargs['pk']})
def get_success_url(self): def get_success_url(self):
return reverse_lazy('ta_list') return reverse_lazy('compilacao:ta_list')
class TextView(ListView, CompMixin): class TextView(ListView, CompMixin):
@ -750,7 +758,8 @@ class DispositivoEditView(TextEditView):
if not dnext.exists(): if not dnext.exists():
dnext = [] dnext = []
dnext[0] = d dnext.append(d)
pais = [d.dispositivo_pai_id, ]
else: else:
if dnext[0].nivel > d.nivel: if dnext[0].nivel > d.nivel:
@ -1413,8 +1422,8 @@ class ActionsEditView(ActionsEditMixin, TemplateView):
class DispositivoSuccessUrlMixin(object): class DispositivoSuccessUrlMixin(object):
def get_success_url(self): def get_success_url(self):
return reverse( return reverse_lazy(
'dispositivo', kwargs={ 'compilacao:dispositivo', kwargs={
'ta_id': self.kwargs[ 'ta_id': self.kwargs[
'ta_id'], 'ta_id'],
'dispositivo_id': self.kwargs[ 'dispositivo_id': self.kwargs[
@ -1456,6 +1465,7 @@ class NotasCreateView(NotaMixin, CreateView):
return super(NotasCreateView, self).get(request, *args, **kwargs) return super(NotasCreateView, self).get(request, *args, **kwargs)
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
self.object = None
try: try:
ta_id = kwargs.pop('ta_id') ta_id = kwargs.pop('ta_id')
dispositivo_id = kwargs.pop('dispositivo_id') dispositivo_id = kwargs.pop('dispositivo_id')
@ -1721,7 +1731,7 @@ class PublicacaoListView(ListView):
@property @property
def create_url(self): def create_url(self):
return reverse_lazy( return reverse_lazy(
'ta_pub_create', 'compilacao:ta_pub_create',
kwargs={'ta_id': self.kwargs['ta_id']}) kwargs={'ta_id': self.kwargs['ta_id']})
def get_queryset(self): def get_queryset(self):
@ -1743,7 +1753,7 @@ class PublicacaoCreateView(FormMessagesMixin, CreateView):
def get_success_url(self): def get_success_url(self):
return reverse_lazy( return reverse_lazy(
'ta_pub_detail', 'compilacao:ta_pub_detail',
kwargs={ kwargs={
'pk': self.object.id, 'pk': self.object.id,
'ta_id': self.kwargs['ta_id']}) 'ta_id': self.kwargs['ta_id']})
@ -1751,7 +1761,7 @@ class PublicacaoCreateView(FormMessagesMixin, CreateView):
@property @property
def cancel_url(self): def cancel_url(self):
return reverse_lazy( return reverse_lazy(
'ta_pub_list', 'compilacao:ta_pub_list',
kwargs={'ta_id': self.kwargs['ta_id']}) kwargs={'ta_id': self.kwargs['ta_id']})
def get_initial(self): def get_initial(self):
@ -1776,7 +1786,7 @@ class PublicacaoUpdateView(CompMixin, UpdateView):
return self.render_to_response(self.get_context_data(form=form)) return self.render_to_response(self.get_context_data(form=form))
def get_success_url(self): def get_success_url(self):
return reverse_lazy('ta_pub_detail', return reverse_lazy('compilacao:ta_pub_detail',
kwargs={ kwargs={
'pk': self.object.id, 'pk': self.object.id,
'ta_id': self.kwargs['ta_id']}) 'ta_id': self.kwargs['ta_id']})
@ -1788,15 +1798,15 @@ class PublicacaoUpdateView(CompMixin, UpdateView):
class PublicacaoDeleteView(CompMixin, DeleteView): class PublicacaoDeleteView(CompMixin, DeleteView):
model = Publicacao model = Publicacao
template_name = "compilacao/confirm_delete.html" template_name = "crud/confirm_delete.html"
@property @property
def detail_url(self): def detail_url(self):
return reverse_lazy('ta_pub_detail', return reverse_lazy('compilacao:ta_pub_detail',
kwargs={ kwargs={
'pk': self.object.id, 'pk': self.object.id,
'ta_id': self.kwargs['ta_id']}) 'ta_id': self.kwargs['ta_id']})
def get_success_url(self): def get_success_url(self):
return reverse_lazy('ta_pub_list', return reverse_lazy('compilacao:ta_pub_list',
kwargs={'ta_id': self.kwargs['ta_id']}) kwargs={'ta_id': self.kwargs['ta_id']})

1
norma/views.py

@ -15,7 +15,6 @@ from .forms import NormaJuridicaForm
from .models import (AssuntoNorma, LegislacaoCitada, NormaJuridica, from .models import (AssuntoNorma, LegislacaoCitada, NormaJuridica,
TipoNormaJuridica) TipoNormaJuridica)
assunto_norma_crud = build_crud( assunto_norma_crud = build_crud(
AssuntoNorma, 'assunto_norma_juridica', [ AssuntoNorma, 'assunto_norma_juridica', [

56
static/js/compilacao.js

@ -1,40 +1,40 @@
function initTinymce() { function initTinymce() {
tinymce.init({ tinymce.init({
mode : "textareas", mode : "textareas",
force_br_newlines : false, force_br_newlines : false,
force_p_newlines : false, force_p_newlines : false,
forced_root_block : '', forced_root_block : '',
plugins: ["table save code"], plugins: ["table save code"],
menubar: "edit format table tools", menubar: "edit format table tools",
toolbar: "save | undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent", toolbar: "save | undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent",
tools: "inserttable", tools: "inserttable",
save_onsavecallback: onSubmitEditForm, save_onsavecallback: onSubmitEditForm,
border_css: "/static/styles/compilacao_tinymce.css", border_css: "/static/styles/compilacao_tinymce.css",
content_css: "/static/styles/compilacao_tinymce.css" content_css: "/static/styles/compilacao_tinymce.css"
}); });
} }
function SetCookie(cookieName,cookieValue,nDays) { function SetCookie(cookieName,cookieValue,nDays) {
var today = new Date(); var today = new Date();
var expire = new Date(); var expire = new Date();
if (nDays==null || nDays==0) nDays=1; if (nDays==null || nDays==0) nDays=1;
expire.setTime(today.getTime() + 3600000*24*nDays); expire.setTime(today.getTime() + 3600000*24*nDays);
document.cookie = cookieName+"="+escape(cookieValue) document.cookie = cookieName+"="+escape(cookieValue)
+ ";expires="+expire.toGMTString(); + ";expires="+expire.toGMTString();
} }
function ReadCookie(cookieName) { function ReadCookie(cookieName) {
var theCookie=" "+document.cookie; var theCookie=" "+document.cookie;
var ind=theCookie.indexOf(" "+cookieName+"="); var ind=theCookie.indexOf(" "+cookieName+"=");
if (ind==-1) ind=theCookie.indexOf(";"+cookieName+"="); if (ind==-1) ind=theCookie.indexOf(";"+cookieName+"=");
if (ind==-1 || cookieName=="") return ""; if (ind==-1 || cookieName=="") return "";
var ind1=theCookie.indexOf(";",ind+1); var ind1=theCookie.indexOf(";",ind+1);
if (ind1==-1) ind1=theCookie.length; if (ind1==-1) ind1=theCookie.length;
return unescape(theCookie.substring(ind+cookieName.length+2,ind1)); return unescape(theCookie.substring(ind+cookieName.length+2,ind1));
} }
function insertWaitAjax(element) { function insertWaitAjax(element) {
//jQuery(element).append('<div style="text-align:center;"><img src="/static/img/ajax-loader.gif"></div>'); //jQuery(element).append('<div style="text-align:center;"><img src="/static/img/ajax-loader.gif"></div>');
jQuery(element).append('<div style="text-align:center;"><i style="font-size: 200%;"class="fa fa-refresh fa-spin"></i></div>'); jQuery(element).append('<div style="text-align:center;"><i style="font-size: 200%;"class="fa fa-refresh fa-spin"></i></div>');
} }

436
static/js/compilacao_edit.js

@ -3,255 +3,255 @@ var editortype = "textarea";
var gets = 0; var gets = 0;
var onSubmitEditForm = function(event) { var onSubmitEditForm = function(event) {
var texto = ''; var texto = '';
var editorTiny = tinymce.get('editdi_texto'); var editorTiny = tinymce.get('editdi_texto');
if (editorTiny != null) if (editorTiny != null)
texto = editorTiny.getContent(); texto = editorTiny.getContent();
else else
texto = $('#editdi_texto').val(); texto = $('#editdi_texto').val();
var formData = { var formData = {
'csrfmiddlewaretoken' : $('input[name=csrfmiddlewaretoken]').val(), 'csrfmiddlewaretoken' : $('input[name=csrfmiddlewaretoken]').val(),
'texto' : texto 'texto' : texto
}; };
var url = $('.csform form').attr( "action_ajax" ); var url = $('.csform form').attr( "action_ajax" );
$("#message_block").css("display", "block"); $("#message_block").css("display", "block");
$.post(url, formData) $.post(url, formData)
.done(function(data) { .done(function(data) {
if (typeof data == "string") { if (typeof data == "string") {
$('.dpt-selected').html(data); $('.dpt-selected').html(data);
clearEditSelected(); clearEditSelected();
reloadFunctionClicks(); reloadFunctionClicks();
return; return;
} }
clearEditSelected(); clearEditSelected();
if (data.pk != null) if (data.pk != null)
refreshScreenFocusPk(data); refreshScreenFocusPk(data);
else { else {
alert('Erro na inserção!'); alert('Erro na inserção!');
flag_refresh_all = false; flag_refresh_all = false;
} }
}).always(function() { }).always(function() {
$("#message_block").css("display", "none"); $("#message_block").css("display", "none");
}); });
if (event != null) if (event != null)
event.preventDefault(); event.preventDefault();
} }
var clickEditDispositivo = function(event) { var clickEditDispositivo = function(event) {
var _pk = event.currentTarget.getAttribute('pk'); var _pk = event.currentTarget.getAttribute('pk');
if ($('#dpt'+_pk).hasClass("dpt-selected")) { if ($('#dpt'+_pk).hasClass("dpt-selected")) {
clearEditSelected(); clearEditSelected();
return; return;
} }
clearEditSelected(); clearEditSelected();
clickUpdateDispositivo(event); clickUpdateDispositivo(event);
} }
var clickUpdateDispositivo = function(event, __pk_refresh, __pk_edit, __action, flag_actions_vibible, flag_refresh_all) { var clickUpdateDispositivo = function(event, __pk_refresh, __pk_edit, __action, flag_actions_vibible, flag_refresh_all) {
var pk_refresh = __pk_refresh; var pk_refresh = __pk_refresh;
var pk_edit = __pk_edit; var pk_edit = __pk_edit;
var _action = __action; var _action = __action;
var _variacao = ''; var _variacao = '';
var _tipo_pk = ''; var _tipo_pk = '';
var _perfil_pk = ''; var _perfil_pk = '';
if (event != null) { if (event != null) {
pk_refresh = event.currentTarget.getAttribute('pk'); pk_refresh = event.currentTarget.getAttribute('pk');
_action = $(this).attr('action'); _action = $(this).attr('action');
_variacao = $(this).attr('variacao'); _variacao = $(this).attr('variacao');
_tipo_pk = $(this).attr('tipo_pk'); _tipo_pk = $(this).attr('tipo_pk');
_perfil_pk = $(this).attr('perfil_pk'); _perfil_pk = $(this).attr('perfil_pk');
} }
if (pk_edit == null) if (pk_edit == null)
pk_edit = pk_refresh; pk_edit = pk_refresh;
var url = ''; var url = '';
if (_action == '') if (_action == '')
return; return;
else if ( _action == null) { else if ( _action == null) {
url = pk_refresh+'/refresh?edit='+pk_edit; url = pk_refresh+'/refresh?edit='+pk_edit;
} }
else if (_action.startsWith('refresh')) { else if (_action.startsWith('refresh')) {
var str = _action.split(':'); var str = _action.split(':');
if (str.length > 1) { if (str.length > 1) {
if(_action.endsWith('perfil')) { if(_action.endsWith('perfil')) {
url = '&perfil_pk='+_perfil_pk; url = '&perfil_pk='+_perfil_pk;
$("#message_block").css("display", "block"); $("#message_block").css("display", "block");
} }
else { else {
editortype = str[1]; editortype = str[1];
SetCookie("editortype", editortype, 30) SetCookie("editortype", editortype, 30)
} }
} }
url = pk_refresh+'/refresh?edit='+pk_edit+url; url = pk_refresh+'/refresh?edit='+pk_edit+url;
} }
else if (_action.startsWith('add_')) { else if (_action.startsWith('add_')) {
url = pk_refresh+'/actions?action='+_action; url = pk_refresh+'/actions?action='+_action;
url += '&tipo_pk='+_tipo_pk; url += '&tipo_pk='+_tipo_pk;
url += '&variacao='+_variacao; url += '&variacao='+_variacao;
$("#message_block").css("display", "block"); $("#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?");
if (r == true) { if (r == true) {
x = "You pressed OK!"; x = "You pressed OK!";
} else { } else {
return return
} }
url = pk_refresh+'/actions?action='+_action; url = pk_refresh+'/actions?action='+_action;
$("#message_block").css("display", "block"); $("#message_block").css("display", "block");
} }
$.get(url).done(function( data ) { $.get(url).done(function( data ) {
if ( _action == null || _action.startsWith('refresh')) { if ( _action == null || _action.startsWith('refresh')) {
if (flag_refresh_all) { if (flag_refresh_all) {
if (flag_actions_vibible) if (flag_actions_vibible)
clearEditSelected(); clearEditSelected();
$( '#dpt' + pk_refresh ).html( data); $( '#dpt' + pk_refresh ).html( data);
} }
else { else {
//console.log(pk_refresh + ' - '+pk_edit) //console.log(pk_refresh + ' - '+pk_edit)
if (flag_actions_vibible == null || flag_actions_vibible) if (flag_actions_vibible == null || flag_actions_vibible)
clearEditSelected(); clearEditSelected();
//$( '#dpt' + pk_refresh+' > .bloco' ).addClass('displaynone' ); //$( '#dpt' + pk_refresh+' > .bloco' ).addClass('displaynone' );
$( '#dpt' + pk_refresh ).prepend( data ); $( '#dpt' + pk_refresh ).prepend( data );
} }
reloadFunctionClicks(); reloadFunctionClicks();
var _editortype = editortype; var _editortype = editortype;
if ( $('.edt-'+_editortype).length == 0) { if ( $('.edt-'+_editortype).length == 0) {
_editortype = 'construct'; _editortype = 'construct';
} }
if ( _editortype == 'tinymce' ) { if ( _editortype == 'tinymce' ) {
initTinymce(); initTinymce();
} }
else if (_editortype == 'textarea') { else if (_editortype == 'textarea') {
$('.csform form').submit(onSubmitEditForm); $('.csform form').submit(onSubmitEditForm);
} }
else if (_editortype == 'construct') { else if (_editortype == 'construct') {
$('.csform .btn-salvar').parent().addClass("displaynone"); $('.csform .btn-salvar').parent().addClass("displaynone");
$('.csform .btn-salvar, .csform .fields').addClass("displaynone"); $('.csform .btn-salvar, .csform .fields').addClass("displaynone");
$('#dpt'+pk_refresh).css('min-height', $('.actions_right').height()*2); $('#dpt'+pk_refresh).css('min-height', $('.actions_right').height()*2);
$('.actions_inserts').removeClass('menu_flutuante'); $('.actions_inserts').removeClass('menu_flutuante');
} }
else if (_editortype == 'detail') { else if (_editortype == 'detail') {
$('.csform .btn-salvar').parent().removeClass("displaynone"); $('.csform .btn-salvar').parent().removeClass("displaynone");
$('.csform .btn-salvar, .csform .fields').removeClass("displaynone"); $('.csform .btn-salvar, .csform .fields').removeClass("displaynone");
$('#dpt'+pk_refresh).css('min-height', $('.actions_right').height()*2); $('#dpt'+pk_refresh).css('min-height', $('.actions_right').height()*2);
$('.actions_inserts').addClass('menu_flutuante'); $('.actions_inserts').addClass('menu_flutuante');
} }
$(".edt-"+_editortype).addClass('selected'); $(".edt-"+_editortype).addClass('selected');
//$(".container").addClass('class_color_container'); //$(".container").addClass('class_color_container');
if (flag_actions_vibible == null || flag_actions_vibible) { if (flag_actions_vibible == null || flag_actions_vibible) {
$('#dpt'+pk_edit).addClass('dpt-selected'); $('#dpt'+pk_edit).addClass('dpt-selected');
$('html, body').animate({ $('html, body').animate({
scrollTop: $('#dpt' + pk_edit ).offset().top - window.innerHeight / 9 scrollTop: $('#dpt' + pk_edit ).offset().top - window.innerHeight / 9
}, 0); }, 0);
} }
} }
else if (_action == 'add_next' || _action == 'add_in') { else if (_action == 'add_next' || _action == 'add_in') {
clearEditSelected(); clearEditSelected();
if (data.pk != null) { if (data.pk != null) {
if (data.alert != null) if (data.alert != null)
alert(data.alert) alert(data.alert)
refreshScreenFocusPk(data); refreshScreenFocusPk(data);
} }
else { else {
alert('Erro na inserção!'); alert('Erro na inserção!');
} }
} }
else if (_action.startsWith('delete_')) { else if (_action.startsWith('delete_')) {
$("#message_block").css("display", "block"); $("#message_block").css("display", "block");
clearEditSelected(); clearEditSelected();
if (data.pk != null) { if (data.pk != null) {
refreshScreenFocusPk(data); refreshScreenFocusPk(data);
} }
else { else {
alert('Erro exclusão!'); alert('Erro exclusão!');
} }
} }
else { else {
clearEditSelected(); clearEditSelected();
reloadFunctionClicks(); reloadFunctionClicks();
} }
}).always(function() { }).always(function() {
$("#message_block").css("display", "none"); $("#message_block").css("display", "none");
}); });
} }
function refreshScreenFocusPk(data) { function refreshScreenFocusPk(data) {
for (var pai = 0; pai < data.pai.length; pai++) for (var pai = 0; pai < data.pai.length; pai++)
if (data.pai[pai] != -1) { if (data.pai[pai] != -1) {
clickUpdateDispositivo(null, data.pai[pai], data.pk, 'refresh', pai == 0, true); clickUpdateDispositivo(null, data.pai[pai], data.pk, 'refresh', pai == 0, true);
} }
else { else {
href = location.href.split('#')[0] href = location.href.split('#')[0]
location.href = href+'#'+data.pk location.href = href+'#'+data.pk
location.reload(true) location.reload(true)
} }
} }
function clearEditSelected() { function clearEditSelected() {
$('.bloco' ).removeClass('displaynone' ); $('.bloco' ).removeClass('displaynone' );
$(".container").removeClass('class_color_container'); $(".container").removeClass('class_color_container');
tinymce.remove(); tinymce.remove();
$('.dpt-selected').removeClass('dpt-selected'); $('.dpt-selected').removeClass('dpt-selected');
$('.dpt').css('min-height', ''); $('.dpt').css('min-height', '');
$('.csform').remove(); $('.csform').remove();
} }
function reloadFunctionClicks() { function reloadFunctionClicks() {
$('.dpt .de, .btn-action, .btn-edit').off(); $('.dpt .de, .btn-action, .btn-edit').off();
$('.dpt .de, .btn-edit').on('click', clickEditDispositivo); $('.dpt .de, .btn-edit').on('click', clickEditDispositivo);
$('.btn-action').on('click', clickUpdateDispositivo); $('.btn-action').on('click', clickUpdateDispositivo);
$('#editdi_texto').focus(); $('#editdi_texto').focus();
} }
$(document).ready(function() { $(document).ready(function() {
editortype = ReadCookie("editortype") editortype = ReadCookie("editortype")
if (editortype == null || editortype == "") { if (editortype == null || editortype == "") {
editortype = "textarea" editortype = "textarea"
SetCookie("editortype", editortype, 30) SetCookie("editortype", editortype, 30)
} }
reloadFunctionClicks(); reloadFunctionClicks();
$("#message_block").css("display", "none"); $("#message_block").css("display", "none");
href = location.href.split('#') href = location.href.split('#')
if (href.length == 2) { if (href.length == 2) {
clickUpdateDispositivo(null, href[1], href[1], 'refresh', true); clickUpdateDispositivo(null, href[1], href[1], 'refresh', true);
} }
}); });

340
static/js/compilacao_notas.js

@ -1,196 +1,200 @@
function onEventsDneExec(pk, model) { function onEventsDneExec(pk, model) {
$('html, body').animate({ $('html, body').animate({
scrollTop: $('#dne' + pk ).offset().top - window.innerHeight / 5 scrollTop: $('#dne' + pk ).offset().top - window.innerHeight / 5
}, 300); }, 300);
refreshDatePicker() refreshDatePicker()
$('#dne'+pk+" #button-id-submit-form").click(onSubmitEditForm); $('#dne'+pk+" #button-id-submit-form").click(onSubmitEditForm);
$('#dne'+pk+" .btn-close-container").click(function(){ $('#dne'+pk+" .btn-close-container").click(function(){
$(this).closest('.dne-nota').removeClass('dne-nota'); $(this).closest('.dne-nota').removeClass('dne-nota');
$(this).closest('.dne-form').html(''); $(this).closest('.dne-form').html('');
}); });
if (model == 'nota') { if (model == 'nota') {
$('#dne'+pk+" select[name='tipo']").change(function(event) { $('#dne'+pk+" select[name='tipo']").change(function(event) {
var url = ''; var url = '';
url = 'text/'+pk+'/nota/create?action=modelo_nota&id_tipo='+this.value; url = 'text/'+pk+'/nota/create?action=modelo_nota&id_tipo='+this.value;
$.get(url).done(function( data ) { $.get(url).done(function( data ) {
$('#dne'+pk+" textarea[name='texto']").val(data); $('#dne'+pk+" textarea[name='texto']").val(data);
}); });
}); });
} }
else if (model == 'vide') { else if (model == 'vide') {
$('#dne'+pk+" select[name='tipo_ta']").change(function(event) { $('#dne'+pk+" select[name='tipo_ta']").change(function(event) {
var url = ''; var url = '';
url = 'text/'+pk+'/vide/create?action=get_tipos&tipo_ta='+this.value; url = 'text/'+pk+'/vide/create?action=get_tipos&tipo_ta='+this.value;
$('#dne'+pk+" label[for='id_tipo_model']").html('Tipos de ' + this.children[this.selectedIndex].innerHTML); $('#dne'+pk+" label[for='id_tipo_model']").html('Tipos de ' + this.children[this.selectedIndex].innerHTML);
var select = $('#dne'+pk+" select[name='tipo_model']"); var select = $('#dne'+pk+" select[name='tipo_model']");
select.empty(); select.empty();
$('<option value="">Carregando...</option>').appendTo(select); $('<option value="">Carregando...</option>').appendTo(select);
$.get(url).done(function( data ) { $.get(url).done(function( data ) {
select.empty(); select.empty();
for(var item in data) { for(var item in data) {
for (var i in data[item]) for (var i in data[item])
$('<option value="'+i+'">'+data[item][i]+'</option>').appendTo(select); $('<option value="'+i+'">'+data[item][i]+'</option>').appendTo(select);
} }
}); });
}); });
$('#dne'+pk+" input[name='num_norma'], " $('#dne'+pk+" input[name='num_norma'], "
+ '#dne'+pk+" input[name='ano_norma'], " + '#dne'+pk+" input[name='ano_norma'], "
+ '#dne'+pk+" input[name='busca_dispositivo']" + '#dne'+pk+" input[name='busca_dispositivo']"
).change(onChangeParamNorma); ).change(onChangeParamNorma);
$('#dne'+pk+" .btn-busca").click(onChangeParamNorma); $('#dne'+pk+" .btn-busca").click(onChangeParamNorma);
onChangeParamNorma(); onChangeParamNorma();
} }
} }
var onChangeParamNorma = function(event) { var onChangeParamNorma = function(event) {
var tipo_ta = $("select[name='tipo_ta']").val(); var tipo_ta = $("select[name='tipo_ta']").val();
var tipo_model = $("select[name='tipo_model']").val(); var tipo_model = $("select[name='tipo_model']").val();
var num_ta = $("input[name='num_ta']").val(); var num_ta = $("input[name='num_ta']").val();
var ano_ta = $("input[name='ano_ta']").val(); var ano_ta = $("input[name='ano_ta']").val();
var busca_dispositivo = $("input[name='busca_dispositivo']").val(); var busca_dispositivo = $("input[name='busca_dispositivo']").val();
var dispositivo_ref = $("#id_dispositivo_ref").val(); var dispositivo_ref = $("#id_dispositivo_ref").val();
$('#id_dispositivo_ref').remove(); $('#id_dispositivo_ref').remove();
if (dispositivo_ref == null) if (dispositivo_ref == null)
dispositivo_ref = '' dispositivo_ref = ''
var url = ''; var url = '';
var pk = $("select[name='tipo_ta']").closest('.dne').attr('pk') var pk = $("select[name='tipo_ta']").closest('.dne').attr('pk')
var formData = { var formData = {
'tipo_ta' : tipo_ta, 'tipo_ta' : tipo_ta,
'tipo_model' : tipo_model, 'tipo_model' : tipo_model,
'num_ta' : num_ta, 'num_ta' : num_ta,
'ano_ta' : ano_ta, 'ano_ta' : ano_ta,
'busca' : busca_dispositivo, 'busca' : busca_dispositivo,
'tipo_form' : 'radio', 'tipo_form' : 'radio',
'initial_ref' : dispositivo_ref 'initial_ref' : dispositivo_ref
}; };
url = 'text/search'; url = 'text/search';
$('.container-busca').html(''); $('.container-busca').html('');
insertWaitAjax('.container-busca') insertWaitAjax('.container-busca')
$.get(url, formData).done(function( data ) { $.get(url, formData).done(function( data ) {
$('.container-busca').html(data); $('.container-busca').html(data);
$("input[name='dispositivo_ref']").first().prop('checked', true); $("input[name='dispositivo_ref']").first().prop('checked', true);
}); });
} }
var onSubmitEditForm = function(event) { var onSubmitEditForm = function(event) {
var url = ''; var url = '';
var model = 'nota'; var model = 'nota';
var id_edit = null; var id_edit = null;
var id_dispositivo = $('#id_dispositivo').val(); var id_dispositivo = $('#id_dispositivo').val();
if (id_dispositivo == null) { // trata-se de um vide if (id_dispositivo == null) { // trata-se de um vide
$('#id_dispositivo_ref').remove(); $('#id_dispositivo_ref').remove();
id_dispositivo = $('#id_dispositivo_base').val(); id_dispositivo = $('#id_dispositivo_base').val();
model='vide'; model='vide';
} }
id_edit = $('#id_pk').val(); id_edit = $('#id_pk').val();
url = 'text/'+id_dispositivo+'/'+model+'/' url = 'text/'+id_dispositivo+'/'+model+'/'
if (id_edit == null || id_edit == '') if (id_edit == null || id_edit == '')
url += 'create'; url += 'create';
else else
url += id_edit+'/edit'; url += id_edit+'/edit';
console.log($('#dne'+id_dispositivo+" form").serialize()); console.log($('#dne'+id_dispositivo+" form").serialize());
$.post( url, $('#dne'+id_dispositivo+" form").serialize(), function(data) { $.post( url, $('#dne'+id_dispositivo+" form").serialize(), function(data) {
if (typeof data == "string") { if (typeof data == "string") {
if (data.indexOf('<form') >= 0) { if (data.indexOf('<form') >= 0) {
$('#dne'+id_dispositivo+' .dne-form').html(data); $('#dne'+id_dispositivo+' .dne-form').html(data);
onEventsDneExec(id_dispositivo, model); onEventsDneExec(id_dispositivo, model);
} }
else { else {
$('#dne'+id_dispositivo+' .dne-form').closest('.dpt').html(data) $('#dne'+id_dispositivo+' .dne-form').closest('.dpt').html(data)
onReadyNotasVides(); onReadyNotasVides();
try {
$('html, body').animate({ $('html, body').animate({
scrollTop: $('#dne' + id_dispositivo ).offset().top - window.innerHeight / 3 scrollTop: $('#dne' + id_dispositivo ).offset().top - window.innerHeight / 3
}, 300); }, 300);
}
} catch(err) {
} console.log(err.message);
} }
);
}
}
}
);
} }
var onDelete = function(event) { var onDelete = function(event) {
var model = $(event).attr('model'); var model = $(event).attr('model');
var id_dispositivo = $(event).closest('.dn').attr('pk'); var id_dispositivo = $(event).closest('.dn').attr('pk');
var id_delete = $(event).attr('pk'); var id_delete = $(event).attr('pk');
var url = 'text/'+id_dispositivo+'/'+model+'/'+id_delete+'/delete'; var url = 'text/'+id_dispositivo+'/'+model+'/'+id_delete+'/delete';
$.get( url, function(data) { $.get( url, function(data) {
$('#dne'+id_dispositivo+' .dne-form').closest('.dpt').html(data) $('#dne'+id_dispositivo+' .dne-form').closest('.dpt').html(data)
onReadyNotasVides(); onReadyNotasVides();
} }
); );
} }
function getForm(_this) { function getForm(_this) {
var url = ''; var url = '';
var model = $(_this).attr('model'); var model = $(_this).attr('model');
var id_dispositivo = $('.dne-nota .dne-form').closest('.dne').attr('pk'); var id_dispositivo = $('.dne-nota .dne-form').closest('.dne').attr('pk');
if (id_dispositivo != null) { if (id_dispositivo != null) {
$('#dne'+id_dispositivo).removeClass('dne-nota'); $('#dne'+id_dispositivo).removeClass('dne-nota');
$('#dne'+id_dispositivo+' .dne-form').html(''); $('#dne'+id_dispositivo+' .dne-form').html('');
} }
if (_this.className.indexOf('create') >= 0 ) { if (_this.className.indexOf('create') >= 0 ) {
id_dispositivo = $(_this).attr('pk'); id_dispositivo = $(_this).attr('pk');
url = 'text/'+id_dispositivo+'/'+model+'/create'; url = 'text/'+id_dispositivo+'/'+model+'/create';
} }
else if (_this.className.indexOf('edit') >= 0 ) { else if (_this.className.indexOf('edit') >= 0 ) {
var id_edit = $(_this).attr('pk'); var id_edit = $(_this).attr('pk');
id_dispositivo = $(_this).closest('.dn').attr('pk'); id_dispositivo = $(_this).closest('.dn').attr('pk');
url = 'text/'+id_dispositivo+'/'+model+'/'+id_edit+'/edit' url = 'text/'+id_dispositivo+'/'+model+'/'+id_edit+'/edit'
} }
$('#dne'+id_dispositivo).addClass('dne-nota'); $('#dne'+id_dispositivo).addClass('dne-nota');
$.get(url).done(function( data ) { $.get(url).done(function( data ) {
$('#dne'+id_dispositivo+' .dne-form').html(data); $('#dne'+id_dispositivo+' .dne-form').html(data);
onEventsDneExec(id_dispositivo, model); onEventsDneExec(id_dispositivo, model);
}).fail(function() { }).fail(function() {
onReadyNotasVides(); onReadyNotasVides();
}); });
} }
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()
}); });

106
static/js/compilacao_view.js

@ -24,27 +24,27 @@ function isElementInViewport (el) {
} }
function textoMultiVigente(item, diff) { function textoMultiVigente(item, diff) {
var elv = null; var elv = null;
var ldpts = $(".dptt") var ldpts = $(".dptt")
for (var i = 0; i < ldpts.length; i++) { for (var i = 0; i < ldpts.length; i++) {
if ($(ldpts[i]).hasClass('displaynone')) if ($(ldpts[i]).hasClass('displaynone'))
continue; continue;
if (isElementInViewport( ldpts[i])) { if (isElementInViewport( ldpts[i])) {
if (i+1 < ldpts.length) if (i+1 < ldpts.length)
elv = ldpts[i+1]; elv = ldpts[i+1];
else { else {
elv = ldpts[i]; elv = ldpts[i];
} }
break; break;
} }
} }
$(".cp .tipo-vigencias a").removeClass("selected") $(".cp .tipo-vigencias a").removeClass("selected")
$(item).addClass("selected") $(item).addClass("selected")
$(".dptt.desativado").removeClass("displaynone"); $(".dptt.desativado").removeClass("displaynone");
$(".dtxt").removeClass("displaynone"); $(".dtxt").removeClass("displaynone");
$(".dtxt.diff").remove(); $(".dtxt.diff").remove();
$(".link_alterador").removeClass("displaynone"); $(".link_alterador").removeClass("displaynone");
if (diff) { if (diff) {
$(".dtxt[id^='da'").each(function() { $(".dtxt[id^='da'").each(function() {
@ -103,65 +103,65 @@ function textoMultiVigente(item, diff) {
} }
if (elv) { if (elv) {
$('html, body').animate({ $('html, body').animate({
scrollTop: $(elv).parent().offset().top - 60 scrollTop: $(elv).parent().offset().top - 60
}, 0); }, 0);
} }
} }
function textoVigente(item, link) { function textoVigente(item, link) {
var elv = null; var elv = null;
var ldpts = $(".dptt") var ldpts = $(".dptt")
for (var i = 0; i < ldpts.length; i++) { for (var i = 0; i < ldpts.length; i++) {
if ($(ldpts[i]).hasClass('displaynone')) if ($(ldpts[i]).hasClass('displaynone'))
continue; continue;
if (isElementInViewport( ldpts[i])) { if (isElementInViewport( ldpts[i])) {
if (i+1 < ldpts.length) if (i+1 < ldpts.length)
elv = ldpts[i+1]; elv = ldpts[i+1];
else { else {
elv = ldpts[i]; elv = ldpts[i];
} }
break; break;
} }
} }
$(".cp .tipo-vigencias a").removeClass("selected") $(".cp .tipo-vigencias a").removeClass("selected")
$(item).addClass("selected") $(item).addClass("selected")
$(".dptt.desativado").addClass("displaynone"); $(".dptt.desativado").addClass("displaynone");
$(".link_alterador").removeClass("displaynone"); $(".link_alterador").removeClass("displaynone");
if (!link) if (!link)
$(".link_alterador").addClass("displaynone"); $(".link_alterador").addClass("displaynone");
if (elv) { if (elv) {
$('html, body').animate({ $('html, body').animate({
scrollTop: $(elv).parent().offset().top - 60 scrollTop: $(elv).parent().offset().top - 60
}, 0); }, 0);
} }
} }
$(document).ready(function() { $(document).ready(function() {
setTimeout(function() { setTimeout(function() {
var href = location.href.split('#') var href = location.href.split('#')
if (href.length == 2) { if (href.length == 2) {
$('html, body').animate({ $('html, body').animate({
scrollTop: $('#dptt' + href[1] ).offset().top - window.innerHeight / 9 scrollTop: $('#dptt' + href[1] ).offset().top - window.innerHeight / 9
}, 0); }, 0);
} }
}, 100); }, 100);
$("#btn_font_menos").click(function() { $("#btn_font_menos").click(function() {
$(".dpt").css("font-size", "-=1"); $(".dpt").css("font-size", "-=1");
}); });
$("#btn_font_mais").click(function() { $("#btn_font_mais").click(function() {
$(".dpt").css("font-size", "+=1"); $(".dpt").css("font-size", "+=1");
}); });
$(".dpt").each(function() { $(".dpt.bloco_alteracao .dpt").each(function() {
var nivel = parseInt($(this).attr('nivel')); var nivel = parseInt($(this).attr('nivel'));
$(this).css('z-index', 20-nivel) $(this).css('z-index', 15-nivel)
}); });
}); });

2222
static/styles/compilacao.scss

File diff suppressed because it is too large

16
templates/base.html

@ -154,9 +154,13 @@
{% endblock %} {% endblock %}
{% block title %} {% block title %}
{% if view.title %} <h1 class="page-header">
<h1 class="page-header">{{ view.title|safe|linebreaksbr }}</h1> {% if view.title %}
{% endif %} {{ view.title|safe|linebreaksbr }}
{% else %}
{{ title|safe|linebreaksbr }}
{% endif %}
</h1>
{% endblock %} {% endblock %}
</div> </div>
@ -219,14 +223,10 @@
<!-- Placed at the end of the document so the pages load faster --> <!-- Placed at the end of the document so the pages load faster -->
<script type="text/javascript" src="{% static 'jquery/dist/jquery.min.js' %}"></script> <script type="text/javascript" src="{% static 'jquery/dist/jquery.min.js' %}"></script>
<script type="text/javascript" src="{% static 'bootstrap-sass/assets/javascripts/bootstrap.min.js' %}"></script> <script type="text/javascript" src="{% static 'bootstrap-sass/assets/javascripts/bootstrap.min.js' %}"></script>
<script type="text/javascript" src="{% static 'jQuery-runner/build/jquery.runner.js' %}"></script>
<script type="text/javascript" src="{% static 'jquery-mask-plugin/dist/jquery.mask.js' %}"></script>
<script src="{% static 'jquery-ui/jquery-ui.min.js' %}"></script> <script type="text/javascript" src="{% static 'jquery-ui/jquery-ui.min.js' %}"></script>
<script type="text/javascript" src="{% static 'jquery-ui/ui/i18n/datepicker-pt-BR.js' %}"></script> <script type="text/javascript" src="{% static 'jquery-ui/ui/i18n/datepicker-pt-BR.js' %}"></script>
{# Scripts #}
{# modernizr must be in head (see http://modernizr.com/docs/#installing) #}
<script type="text/javascript" src="{% static 'jQuery-runner/build/jquery.runner.js' %}"></script> <script type="text/javascript" src="{% static 'jQuery-runner/build/jquery.runner.js' %}"></script>
<script type="text/javascript" src="{% static 'jquery-mask-plugin/dist/jquery.mask.js' %}"></script> <script type="text/javascript" src="{% static 'jquery-mask-plugin/dist/jquery.mask.js' %}"></script>

20
templates/compilacao/confirm_delete.html

@ -1,20 +0,0 @@
{% extends "base.html" %}
{% load i18n %}
{% block base_content %}
<form action="" method="post">{% csrf_token %}
<div class="callout panel text-center radius clearfix">
<p>
{% blocktrans %}
Confirma exclusão de <br/> "{{ object }}"?
{% endblocktrans %}
</p>
<div class="button-group">
<a href="{{ view.detail_url }}" class="button button radius alert">{% trans 'Cancelar' %}</a>
<input name="submit" value="{% trans 'Confirmar' %}" class="submit button button radius success" type="submit"></li>
</div>
</div>
</form>
{% endblock %}

61
templates/compilacao/dispositivo_search_fragment_form.html

@ -2,39 +2,38 @@
{% load compilacao_filters %} {% load compilacao_filters %}
{% if object_list.count >= 100 %} {% if object_list.count >= 100 %}
<div class="alert-box success radius"> <div class="alert-box success radius">
{% trans 'Use argumentos para simplificar listagem...' %} {% trans 'Use argumentos para simplificar listagem...' %}
</div> </div>
{% endif %} {% endif %}
{% for dpt in object_list %} {% for dpt in object_list %}
{% ifchanged dpt.ta%} {% ifchanged dpt.ta%}
{% if not forloop.first %}</ul>{% endif %} {% if not forloop.first %}</ul>{% endif %}
<div class="ta_title">{{dpt.ta}}</div> <div class="ta_title">{{dpt.ta}}</div>
<ul> <ul>
{% endifchanged %} {% endifchanged %}
{% if dpt.is_relative_auto_insert and dpt.dispositivo_pai.nivel != 0 %} {% if dpt.is_relative_auto_insert and dpt.dispositivo_pai.nivel != 0 %}
<li> <li>
<div class="iteminput"> <div class="iteminput">
<input type="{{request.GET.tipo_form}}" name="dispositivo_ref" id="r{{dpt.pk}}" value="{{dpt.pk}}"/> <input type="{{request.GET.tipo_form}}" name="dispositivo_ref" id="r{{dpt.pk}}" value="{{dpt.pk}}"/>
</div> </div>
<div class="itemlabel"> <div class="itemlabel">
<label for="r{{dpt.dispositivo_pai.pk}}">{{dpt.dispositivo_pai.rotulo|safe}} - {{dpt.texto|safe}}</label> <label for="r{{dpt.dispositivo_pai.pk}}">{{dpt.dispositivo_pai.rotulo|safe}} - {{dpt.texto|safe}}</label>
<a target="_blank" href="{% url 'ta_text' dpt.ta.pk%}#{{dpt.pk}}" class="nomenclatura_heranca">{% nomenclatura_heranca dpt 1 1 %}</a> <a target="_blank" href="{% url 'compilacao:ta_text' dpt.ta.pk%}#{{dpt.pk}}" class="nomenclatura_heranca">{% nomenclatura_heranca dpt 1 1 %}</a>
</div> </div>
</li> </li>
{% elif not dpt.tipo_dispositivo.dispositivo_de_articulacao %} {% elif not dpt.tipo_dispositivo.dispositivo_de_articulacao %}
<li> <li>
<div class="iteminput"> <div class="iteminput">
<input type="{{request.GET.tipo_form}}" name="dispositivo_ref" id="r{{dpt.pk}}" value="{{dpt.pk}}"/> <input type="{{request.GET.tipo_form}}" name="dispositivo_ref" id="r{{dpt.pk}}" value="{{dpt.pk}}"/>
</div> </div>
<div class="itemlabel"> <div class="itemlabel">
<label for="r{{dpt.pk}}">{{dpt.rotulo|safe}} - {{dpt.texto|safe}}</label> <label for="r{{dpt.pk}}">{{dpt.rotulo|safe}} - {{dpt.texto|safe}}</label>
<a target="_blank" href="{% url 'ta_text' dpt.ta.pk%}#{{dpt.pk}}" class="nomenclatura_heranca">{% nomenclatura_heranca dpt 1 1 %}</a> <a target="_blank" href="{% url 'compilacao:ta_text' dpt.ta.pk%}#{{dpt.pk}}" class="nomenclatura_heranca">{% nomenclatura_heranca dpt 1 1 %}</a>
</div> </div>
</li> </li>
{% endif%} {% endif%}
{% if forloop.last %}</ul>{% endif %}
{% if forloop.last %}</ul>{% endif %}
{% endfor %} {% endfor %}

156
templates/compilacao/publicacao_detail.html

@ -1,97 +1,91 @@
{% extends "base.html" %} {% load i18n %} {% load compilacao_filters %} {% extends "base.html" %}
{% load i18n %}
{% load compilacao_filters %}
{% load common_tags %} {% load common_tags %}
{% block base_content %} {% block base_content %}
<div class="clearfix"> <div class="clearfix">
{% block actions %} {% block actions %}
<div class="actions btn-group pull-right" role="group"> <div class="actions btn-group pull-right" role="group">
<a href="{% url 'ta_pub_edit' object.ta.pk object.pk %}" class="btn btn-default">{% trans 'Editar' %}</a> <a href="{% url 'compilacao:ta_pub_edit' object.ta.pk object.pk %}" class="btn btn-default">{% trans 'Editar' %}</a>
<a href="{% url 'ta_pub_delete' object.ta.pk object.pk %}" class="btn btn-default">{% trans 'Excluir' %}</a> <a href="{% url 'compilacao:ta_pub_delete' object.ta.pk object.pk %}" class="btn btn-default">{% trans 'Excluir' %}</a>
</div> </div>
{% endblock actions %} {% endblock actions %}
</div> </div>
<div class="actions btn-group pull-right" role="group">
{% block sections_nav %}
{% endblock %}
</div>
<div class="actions btn-group pull-right" role="group"> {% block detail_content %} {# TODO replace fieldset for something semantically correct, but with similar visual grouping style #}
{% block sections_nav %}
{% endblock %}
</div>
{% block detail_content %} {# TODO replace fieldset for something semantically correct, but with similar visual grouping style #}
<fieldset> <fieldset>
<legend>{%trans 'Identificação Básica'%}</legend> <legend>{%trans 'Identificação Básica'%}</legend>
<div class="row">
<div class="row"> <div class="col-md-4">
<div class="col-md-4"> <div id="div_id_tipo" class="holder">
<div id="div_id_tipo" class="holder"> <label>{% field_verbose_name object 'tipo_publicacao' %}</label>
<label>{% field_verbose_name object 'tipo_publicacao' %}</label> <p>{{ object.tipo_publicacao}}</p>
<p>{{ object.tipo_publicacao}}</p> </div>
</div>
</div>
<div class="col-md-6">
<div id="div_id_tipo" class="holder">
<label>{% field_verbose_name object 'veiculo_publicacao' %}</label>
<p>{{ object.veiculo_publicacao}}</p>
</div>
</div>
<div class="col-md-2">
<div id="div_id_tipo" class="holder">
<label>{% field_verbose_name object 'ano' %}</label>
<p>{{ object.ano}}</p>
</div>
</div>
</div> </div>
<div class="row"> <div class="col-md-6">
<div class="col-md-4"> <div id="div_id_tipo" class="holder">
<div id="div_id_tipo" class="holder"> <label>{% field_verbose_name object 'veiculo_publicacao' %}</label>
<label>{% field_verbose_name object 'data' %}</label> <p>{{ object.veiculo_publicacao}}</p>
<p>{{ object.data}}</p> </div>
</div>
</div>
<div class="col-md-4">
<div id="div_id_tipo" class="holder">
<label>{% field_verbose_name object 'hora' %}</label>
<p>{{ object.hora|time:"H:i:s"}}</p>
</div>
</div>
<div class="col-md-2">
<div id="div_id_tipo" class="holder">
<label>{% field_verbose_name object 'numero' %}</label>
<p>{{ object.numero|default:''}}</p>
</div>
</div>
<div class="col-md-2">
<div id="div_id_tipo" class="holder">
<label>{% field_verbose_name object 'edicao' %}</label>
<p>{{ object.edicao|default:''}}</p>
</div>
</div>
</div> </div>
<div class="row"> <div class="col-md-2">
<div class="col-md-2"> <div id="div_id_tipo" class="holder">
<div id="div_id_tipo" class="holder"> <label>{% field_verbose_name object 'ano' %}</label>
<label>{% field_verbose_name object 'pagina_inicio' %}</label> <p>{{ object.ano}}</p>
<p>{{ object.pagina_inicio|default:''}}</p> </div>
</div> </div>
</div> </div>
<div class="col-md-2"> <div class="row">
<div id="div_id_tipo" class="holder"> <div class="col-md-4">
<label>{% field_verbose_name object 'pagina_fim' %}</label> <div id="div_id_tipo" class="holder">
<p>{{ object.pagina_fim|default:''}}</p> <label>{% field_verbose_name object 'data' %}</label>
</div> <p>{{ object.data}}</p>
</div> </div>
<div class="col-md-8"> </div>
<div id="div_id_tipo" class="holder"> <div class="col-md-4">
<label>{% field_verbose_name object 'url_externa' %}</label> <div id="div_id_tipo" class="holder">
<p>{{ object.url_externa|default:''}}</p> <label>{% field_verbose_name object 'hora' %}</label>
</div> <p>{{ object.hora|time:"H:i:s"}}</p>
</div> </div>
</div>
<div class="col-md-2">
<div id="div_id_tipo" class="holder">
<label>{% field_verbose_name object 'numero' %}</label>
<p>{{ object.numero|default:''}}</p>
</div>
</div>
<div class="col-md-2">
<div id="div_id_tipo" class="holder">
<label>{% field_verbose_name object 'edicao' %}</label>
<p>{{ object.edicao|default:''}}</p>
</div>
</div> </div>
</div>
<div class="row">
<div class="col-md-2">
<div id="div_id_tipo" class="holder">
<label>{% field_verbose_name object 'pagina_inicio' %}</label>
<p>{{ object.pagina_inicio|default:''}}</p>
</div>
</div>
<div class="col-md-2">
<div id="div_id_tipo" class="holder">
<label>{% field_verbose_name object 'pagina_fim' %}</label>
<p>{{ object.pagina_fim|default:''}}</p>
</div>
</div>
<div class="col-md-8">
<div id="div_id_tipo" class="holder">
<label>{% field_verbose_name object 'url_externa' %}</label>
<p>{{ object.url_externa|default:''}}</p>
</div>
</div>
</div>
</fieldset> </fieldset>
{% endblock detail_content %} {% endblock detail_content %}
{% endblock base_content %} {% endblock base_content %}

58
templates/compilacao/publicacao_list.html

@ -5,44 +5,44 @@
{% block base_content %} {% block base_content %}
<div class="actions btn-group pull-right" role="group"> <div class="actions btn-group pull-right" role="group">
<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>
{% block more_buttons %} <a href="{% url 'compilacao:ta_text' view.kwargs.ta_id %}" class="btn btn-default">
<a href="{% url 'ta_text' view.kwargs.ta_id %}" class="btn btn-default">{% trans 'Voltar' %}</a> {% trans 'Voltar' %}
{% endblock more_buttons %} </a>
</div> </div>
{% if not object_list %} {% if not object_list %}
<p>{{ NO_ENTRIES_MSG }}</p> <p>{{ NO_ENTRIES_MSG }}</p>
{% else %} {% else %}
<table class="table"> <table class="table">
<thead> <thead>
<tr> <tr>
<th>{% fieldclass_verbose_name 'compilacao.models.Publicacao' 'data' %}</th> <th>{% fieldclass_verbose_name 'compilacao.models.Publicacao' 'data' %}</th>
<th>{% fieldclass_verbose_name 'compilacao.models.Publicacao' 'hora' %}</th> <th>{% fieldclass_verbose_name 'compilacao.models.Publicacao' 'hora' %}</th>
<th>{% fieldclass_verbose_name 'compilacao.models.Publicacao' 'numero' %}</th> <th>{% fieldclass_verbose_name 'compilacao.models.Publicacao' 'numero' %}</th>
<th>{% fieldclass_verbose_name 'compilacao.models.Publicacao' 'ano' %}</th> <th>{% fieldclass_verbose_name 'compilacao.models.Publicacao' 'ano' %}</th>
<th>{% fieldclass_verbose_name 'compilacao.models.Publicacao' 'edicao' %}</th> <th>{% fieldclass_verbose_name 'compilacao.models.Publicacao' 'edicao' %}</th>
<th>{% fieldclass_verbose_name 'compilacao.models.Publicacao' 'veiculo_publicacao' %}</th> <th>{% fieldclass_verbose_name 'compilacao.models.Publicacao' 'veiculo_publicacao' %}</th>
<th>{% fieldclass_verbose_name 'compilacao.models.Publicacao' 'tipo_publicacao' %}</th> <th>{% fieldclass_verbose_name 'compilacao.models.Publicacao' 'tipo_publicacao' %}</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% for pub in object_list %} {% for pub in object_list %}
<tr> <tr>
<td><a href="{% url 'ta_pub_detail' view.kwargs.ta_id pub.pk%}">{{ pub.data }}</a></td> <td><a href="{% url 'compilacao:ta_pub_detail' view.kwargs.ta_id pub.pk%}">{{ pub.data }}</a></td>
<td>{{ pub.hora|time:'H:i:s' }}</td> <td>{{ pub.hora|time:'H:i:s' }}</td>
<td>{{ pub.numero|default:'' }}</td> <td>{{ pub.numero|default:'' }}</td>
<td>{{ pub.ano|default:'' }}</td> <td>{{ pub.ano|default:'' }}</td>
<td>{{ pub.edicao|default:'' }}</td> <td>{{ pub.edicao|default:'' }}</td>
<td>{{ pub.veiculo_publicacao }}</td> <td>{{ pub.veiculo_publicacao }}</td>
<td>{{ pub.tipo_publicacao}}</td> <td>{{ pub.tipo_publicacao}}</td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
{%endif%} {%endif%}
{% include 'paginacao.html'%} {% include 'paginacao.html'%}
{% endblock %} {% endblock %}

36
templates/compilacao/text_edit.html

@ -7,7 +7,7 @@
{% load common_tags %} {% load common_tags %}
{% block head_content %}{{block.super}} {% block head_content %}{{block.super}}
<link rel="stylesheet" href="{% sass_src 'styles/compilacao.scss' %}" type="text/css"> <link rel="stylesheet" href="{% sass_src 'styles/compilacao.scss' %}" type="text/css">
{% endblock %} {% endblock %}
{% block title%} {% block title%}
@ -15,29 +15,27 @@
{% endblock %} {% endblock %}
<div id="message_block"><div id="msg">{% trans 'Aguarde... Atualizando informações!!!'%}</div></div> <div id="message_block"><div id="msg">{% trans 'Aguarde... Atualizando informações!!!'%}</div></div>
{% block actions %}
<div class="clearfix">
<div class="actions btn-toolbar pull-right" role="toolbar">
<div class="actions btn-group" role="group">
<a href="{% url 'compilacao:ta_edit' object.pk %}" class="btn btn-default">{% trans 'Editar Metadados do Texto Articulado' %}</a>
</div>
{% include 'compilacao/textoarticulado_menu_config.html' %}
</div>
</div>
{% endblock actions %}
{% block base_content %}{{block.super}} {% block base_content %}{{block.super}}
<div class="cp cpe"> <div class="cp cpe">
{% include 'compilacao/text_edit_bloco.html'%} {% include 'compilacao/text_edit_bloco.html'%}
</div> </div>
{% endblock base_content %} {% endblock base_content %}
{% block actions %}
<div class="clearfix">
<div class="actions btn-toolbar pull-right" role="toolbar">
<div class="actions btn-group" role="group">
<a href="{% url 'ta_edit' object.pk %}" class="btn btn-default">{% trans 'Editar Metadados do Texto Articulado' %}</a>
</div>
{% include 'compilacao/textoarticulado_menu_config.html' %}
</div>
</div>
{% endblock actions %}
{% block foot_js %} {% block foot_js %}
{{block.super}} {{block.super}}
<script type="text/javascript" src="{% static 'js/compilacao.js' %}"></script> <script type="text/javascript" src="{% static 'js/compilacao.js' %}"></script>
<script type="text/javascript" src="{% static 'js/compilacao_edit.js' %}"></script> <script type="text/javascript" src="{% static 'js/compilacao_edit.js' %}"></script>
{% endblock %} {% endblock %}

238
templates/compilacao/text_edit_bloco.html

@ -3,132 +3,128 @@
{% load common_tags %} {% load common_tags %}
{% for dpt in object_list %} {% for dpt in object_list %}
{% if dpt.nivel == view.flag_nivel_old %} {% if dpt.nivel == view.flag_nivel_old %}
</div> </div>
{% elif dpt.nivel < view.flag_nivel_old %} {% elif dpt.nivel < view.flag_nivel_old %}
{% 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:'DispositivoEditView' %}
{% else %} {% else %}
<div class="dpt" id="dpt{{dpt.pk}}" pk="{{dpt.pk}}"> <div class="dpt" id="dpt{{dpt.pk}}" pk="{{dpt.pk}}">
{% endif%} {% endif%}
{% if view|render_actions_head:dpt %} {% if view|render_actions_head:dpt %}
<div class="csform"> <div class="csform">
<form method="post" action="" action_ajax="{{dpt.pk}}/refresh"> <form method="post" action="" action_ajax="{{dpt.pk}}/refresh">
<ul class="btns-action actions_top"> <ul class="btns-action actions_top">
{% if not dpt.tipo_dispositivo.dispositivo_de_articulacao %} {% if not dpt.tipo_dispositivo.dispositivo_de_articulacao %}
<li class="edt-textarea"><a class="btn-top btn-action" pk="{{dpt.pk}}" action="refresh:textarea" title="{% trans 'Edição simples apenas do texto'%}">E</a></li> <li class="edt-textarea"><a class="btn-top btn-action" pk="{{dpt.pk}}" action="refresh:textarea" title="{% trans 'Edição simples apenas do texto'%}">E</a></li>
<li class="edt-tinymce"><a class="btn-top btn-action" pk="{{dpt.pk}}" action="refresh:tinymce" title="{% trans 'Editar o texto com TinyMCE'%}">E+</a></li> <li class="edt-tinymce"><a class="btn-top btn-action" pk="{{dpt.pk}}" action="refresh:tinymce" title="{% trans 'Editar o texto com TinyMCE'%}">E+</a></li>
{%endif%} {%endif%}
<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="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>
</ul> </ul>
<ul class="btns-action actions_left"> <ul class="btns-action actions_left">
<li><a href ="{% url 'ta_text' dpt.ta.pk%}#{{dpt.pk}}" class="btn-left btn-action" pk="{{dpt.pk}}" title="{% trans 'Ir para Texto'%}">T</a></li> <li><a href ="{% url 'compilacao:ta_text' dpt.ta.pk%}#{{dpt.pk}}" class="btn-left btn-action" pk="{{dpt.pk}}" title="{% trans 'Ir para Texto'%}">T</a></li>
</ul> </ul>
<ul class="btns-action actions_bottom"> <ul class="btns-action actions_bottom">
{% for perfil in perfil_estrutural_list%} {% for perfil in perfil_estrutural_list%}
<li class="{%if request.session.perfil_estrutural == perfil.pk%}selected{%endif%}"><a class="btn-bottom btn-action" pk="{{dpt.pk}}" perfil_pk="{{perfil.pk}}" action="refresh:perfil" title="{{perfil.nome}}">{{perfil.sigla}}</a></li> <li class="{%if request.session.perfil_estrutural == perfil.pk%}selected{%endif%}"><a class="btn-bottom btn-action" pk="{{dpt.pk}}" perfil_pk="{{perfil.pk}}" action="refresh:perfil" title="{{perfil.nome}}">{{perfil.sigla}}</a></li>
{% endfor %} {% endfor %}
</ul> </ul>
<ul class="actions_inserts {% if not dpt.tipo_dispositivo.dispositivo_de_articulacao %}menu_flutuante{%endif%}"> <ul class="actions_inserts {% if not dpt.tipo_dispositivo.dispositivo_de_articulacao %}menu_flutuante{%endif%}">
{% if dpt.dispositivo_subsequente == None %} {% if dpt.dispositivo_subsequente == None %}
{% for inserts in view|select_provaveis_inserts:request %} {% for inserts in view|select_provaveis_inserts:request %}
<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|lookup:'action'}}" pk="{{item.dispositivo_base}}" variacao="{{item.variacao}}" tipo_pk="{{item.tipo_pk}}">{{item.provavel}}</a></li>
{% endfor %} {% endfor %}
</ul> </ul>
</li> </li>
{% endfor %} {% endfor %}
{%endif%} {%endif%}
{% if not dpt|is_relative_auto_insert:request %}
{% if not dpt|is_relative_auto_insert:request %} <li class="menu_excluir"><a {% if not dpt.dispositivos_filhos_set.exists %}class="btn-excluir btn-action" action="delete_item_dispositivo" pk={{dpt.pk}}{%else%}class="btn-excluir"{%endif%}>&nbsp;<span>Excluir</span></a>
<li class="menu_excluir"><a {% if not dpt.dispositivos_filhos_set.exists %}class="btn-excluir btn-action" action="delete_item_dispositivo" pk={{dpt.pk}}{%else%}class="btn-excluir"{%endif%}>&nbsp;<span>Excluir</span></a> {% if dpt.dispositivos_filhos_set.exists %}
{% if dpt.dispositivos_filhos_set.exists %} <ul>
<ul> <li><a href="#" class="btn-excluir btn-action" action="delete_item_dispositivo_todo" pk={{dpt.pk}}>TODO: Excluir apenas este dispositivo</a></li>
<li><a href="#" class="btn-excluir btn-action" action="delete_item_dispositivo_todo" pk={{dpt.pk}}>TODO: Excluir apenas este dispositivo</a></li> <li><a href="#" class="btn-excluir btn-action" action="delete_bloco_dispositivo" pk={{dpt.pk}}>Excluir toda a estrutura deste dispositivo</a></li>
<li><a href="#" class="btn-excluir btn-action" action="delete_bloco_dispositivo" pk={{dpt.pk}}>Excluir toda a estrutura deste dispositivo</a></li> </ul>
</ul> {% endif %}
{% endif %} </li>
</li> {% endif %}
{% endif %}
<li><a onclick="onSubmitEditForm()" class="btn-salvar">&nbsp<span>Salvar</span></a></li>
<li><a onclick="onSubmitEditForm()" class="btn-salvar">&nbsp<span>Salvar</span></a></li> </ul>
</ul>
<div class="fields">
<div class="fields"> {% csrf_token %}
{% csrf_token %}
{% if not dpt.tipo_dispositivo.dispositivo_de_articulacao %}
<textarea id="editdi_texto" placeholder="{% trans "Insirir o texto do dispositivo aqui... Use, nos menus das bordas de edição, 'E+' ou 'E*' para outras opções de editores."%}" name="texto" rows="7">{{ dpt.texto|safe }}</textarea>
{% if not dpt.tipo_dispositivo.dispositivo_de_articulacao %} {%endif%}
<textarea id="editdi_texto" placeholder="{% trans "Insirir o texto do dispositivo aqui... Use, nos menus das bordas de edição, 'E+' ou 'E*' para outras opções de editores."%}" name="texto" rows="7">{{ dpt.texto|safe }}</textarea> </div>
{%endif%}
<ul class="label_status" >
</div> <li>Ordem: {{dpt.ordem}}, Nivel: {{dpt.nivel}}, Número: {{dpt.get_numero_completo}}</li>
<li><a>.</a></li>
<ul class="label_status" > </ul>
<li>Ordem: {{dpt.ordem}}, Nivel: {{dpt.nivel}}, Número: {{dpt.get_numero_completo}}</li>
<li><a>.</a></li> <ul class="btns-action actions_parents">
</ul> <div>Em Edição:</div>
{%for parent in dpt.get_parents_asc %}
<ul class="btns-action actions_parents"> <li><a action="refresh" pk="{{parent.pk}}" ordem="{{parent.ordem}}" name="{{parent.pk}}" title="{{parent.texto|short_string:50}}" class="btn-parents btn-action">{{parent|nomenclatura}}</a></li>
<div>Em Edição:</div> {%endfor %}
{%for parent in dpt.get_parents_asc %} <li class="selected"><a action="refresh" pk="{{dpt.pk}}" ordem="{{dpt.ordem}}" name="{{dpt.pk}}" title="{{dpt.texto|short_string:50}}" class="btn-parents btn-action">{{dpt|nomenclatura}}</a></li>
<li><a action="refresh" pk="{{parent.pk}}" ordem="{{parent.ordem}}" name="{{parent.pk}}" title="{{parent.texto|short_string:50}}" class="btn-parents btn-action">{{parent|nomenclatura}}</a></li> </ul>
{%endfor %} </form>
<li class="selected"><a action="refresh" pk="{{dpt.pk}}" ordem="{{dpt.ordem}}" name="{{dpt.pk}}" title="{{dpt.texto|short_string:50}}" class="btn-parents btn-action">{{dpt|nomenclatura}}</a></li>
</ul>
</form>
</div> </div>
{% endif%} {% endif%}
{% if view.pk_view == 0 and view.pk_edit == 0 or view.pk_edit != view.pk_view %} {% if view.pk_view == 0 and view.pk_edit == 0 or view.pk_edit != view.pk_view %}
{% if not dpt.rotulo and not dpt.texto %}
{% if not dpt.rotulo and not dpt.texto %} <div class="btns-action actions_left">
<div class="btns-action actions_left"> <a class="btn-edit" pk="{{dpt.pk}}" title="Edição do dispositivo: {{ dpt.tipo_dispositivo.nome }} {{ dpt.rotulo }}">E</a>
<a class="btn-edit" pk="{{dpt.pk}}" title="Edição do dispositivo: {{ dpt.tipo_dispositivo.nome }} {{ dpt.rotulo }}">E</a> </div>
</div> {% endif %}
{% endif %} <div class="bloco {% dispositivo_desativado dpt view.inicio_vigencia view.fim_vigencia %} {{ dpt.tipo_dispositivo.class_css }}">
<div class="bloco {% dispositivo_desativado dpt view.inicio_vigencia view.fim_vigencia %} {{ dpt.tipo_dispositivo.class_css }}"> {% spaceless %}
{% spaceless %} <div class="de" id="id{{dpt.id}}" pk="{{dpt.pk}}" ordem="{{dpt.ordem}}" name="{{dpt.pk}}" title="{{dpt.pk}}">{{ dpt.tipo_dispositivo.rotulo_prefixo_html|safe }}{{ dpt.rotulo }}{{ dpt.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ dpt.tipo_dispositivo.texto_prefixo_html|safe }}{% if dpt.texto == '' and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}<span class="semtexto">({{dpt.tipo_dispositivo}} sem texto)</span>{%else%}{{ dpt.texto|safe }}{%endif%}</div>
<div class="de" id="id{{dpt.id}}" pk="{{dpt.pk}}" ordem="{{dpt.ordem}}" name="{{dpt.pk}}" title="{{dpt.pk}}">{{ dpt.tipo_dispositivo.rotulo_prefixo_html|safe }}{{ dpt.rotulo }}{{ dpt.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ dpt.tipo_dispositivo.texto_prefixo_html|safe }}{% if dpt.texto == '' and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}<span class="semtexto">({{dpt.tipo_dispositivo}} sem texto)</span>{%else%}{{ dpt.texto|safe }}{%endif%}</div> {% if dpt.ta_publicado_id != None and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}
{% if dpt.ta_publicado_id != None and not dpt.tipo_dispositivo.dispositivo_de_articulacao %} <a class="link_alterador" href="compilacao:ta_text_edit' dpt.ta_publicado.pk %}#{{dpt.dispositivo_atualizador_id}}">
<a class="link_alterador" href="{%url 'ta_text_edit' dpt.ta_publicado.pk %}#{{dpt.dispositivo_atualizador_id}}"> {{ dpt.tipo_dispositivo.nota_automatica_prefixo_html|safe }}
{{ dpt.tipo_dispositivo.nota_automatica_prefixo_html|safe }} {% nota_automatica dpt ta_pub_list %}
{% nota_automatica dpt ta_pub_list %} {{ dpt.tipo_dispositivo.nota_automatica_sufixo_html|safe }}
{{ dpt.tipo_dispositivo.nota_automatica_sufixo_html|safe }} </a>
</a> {% endif %}
{% endif %} {% endspaceless %}
{% endspaceless %} {% if view.is_ta_alterador and dpt.tipo_dispositivo.class_css == 'bloco_alteracao'%}
{% if view.is_ta_alterador and dpt.tipo_dispositivo.class_css == 'bloco_alteracao'%} {%with node=dpt template_name='compilacao/text_edit_blocoalteracao.html' %}
{%with node=dpt template_name='compilacao/text_edit_blocoalteracao.html' %} {%include template_name%}
{%include template_name%} {%endwith%}
{%endwith%} {% endif%}
{% endif%} </div>
</div> {% endif%}
{% endif%}
{% set_nivel_old view dpt.nivel %} {% set_nivel_old view dpt.nivel %}
{% endfor %} {% endfor %}
{% if view|isinst:'DispositivoEditView' %} {% if view|isinst:'DispositivoEditView' %}
{% 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 %}
{% endif%} {% endif%}

14
templates/compilacao/text_edit_blocoalteracao.html

@ -1,11 +1,11 @@
{% load compilacao_filters %} {% load compilacao_filters %}
{% load common_tags %} {% load common_tags %}
{% for ch in dpt.pk|get_bloco_atualizador %} {% for ch in dpt.pk|get_bloco_atualizador %}
{% spaceless %} {% spaceless %}
<div class="dpt" id="d{{ch.id}}"> <div class="dpt" id="d{{ch.id}}">
<div class="{{ ch.tipo_dispositivo.class_css }}" id="id{{ch.id}}" nivel="{{ch.nivel}}"> <div class="{{ ch.tipo_dispositivo.class_css }}" id="id{{ch.id}}" nivel="{{ch.nivel}}">
{{ ch.tipo_dispositivo.rotulo_prefixo_html|safe }}<a name="{{ch.pk}}" href="{%url 'ta_text_edit' ch.ta.pk %}#{{ch.pk}}">{{ ch.rotulo }}</a>{{ ch.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ ch.tipo_dispositivo.texto_prefixo_html|safe }}{{ ch.texto|safe }} {{ ch.tipo_dispositivo.rotulo_prefixo_html|safe }}<a name="{{ch.pk}}" href="compilacao:ta_text_edit' ch.ta.pk %}#{{ch.pk}}">{{ ch.rotulo }}</a>{{ ch.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ ch.tipo_dispositivo.texto_prefixo_html|safe }}{{ ch.texto|safe }}
</div> </div>
</div> </div>
{% endspaceless %} {% endspaceless %}
{% endfor %} {% endfor %}

142
templates/compilacao/text_list.html

@ -6,89 +6,101 @@
{% load sass_tags %} {% load sass_tags %}
{% block head_content %} {% block head_content %}
{{block.super}} {{block.super}}
<link rel="stylesheet" href="{% sass_src 'styles/compilacao.scss' %}" type="text/css"> <link rel="stylesheet" href="{% sass_src 'styles/compilacao.scss' %}" type="text/css">
{% endblock %} {% endblock %}
{% block base_content %} {% block base_content %}
{% block actions %} {% block actions %}
<div class="clearfix"> <div class="clearfix">
<div class="actions btn-group pull-right" role="group"> <div class="actions btn-group pull-right" role="group">
<a href="{% url 'ta_text_edit' object.pk %}" class="btn btn-default">{% trans 'Editar Texto' %}</a> <a href="{% url 'compilacao:ta_text_edit' object.pk %}" class="btn btn-default">{% trans 'Editar Texto' %}</a>
</div> </div>
</div> </div>
{% endblock actions %} {% endblock actions %}
{% block detail_content %}{{block.super}} {% block detail_content %}
{% endblock %} {{block.super}}
{% endblock %}
<div class="cp"> <div class="cp">
{% if object_list %} {% if object_list %}
<div class="clearfix"> <div class="clearfix">
<div class="actions btn-group pull-right" role="group"> <div class="actions btn-group pull-right" role="group">
<a class="btn btn-default" id="btn_font_menos" title="Diminuir tamanho da letra">a</a> <a class="btn btn-default" id="btn_font_menos" title="Diminuir tamanho da letra">a</a>
<a class="btn btn-default" id="btn_font_mais" title="Aumentar tamanho da Letra">A</a> <a class="btn btn-default" id="btn_font_mais" title="Aumentar tamanho da Letra">A</a>
</div> </div>
</div> </div>
{% endif %} {% endif %}
{% for key, values in view.get_vigencias.items %} {% for key, values in view.get_vigencias.items %}
{% if forloop.first %} {% if forloop.first %}
<ul class="nav nav-pills"> <ul class="nav nav-pills cp-vigencias">
{% for dispositivo in values %}
<li class="{% if view.inicio_vigencia == dispositivo.inicio_vigencia %}active{%endif%}">
<a href="{%url '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 Original'%}</a>
</li>
{% endfor %}
{% elif forloop.last %}
{% for dispositivo in values %}
<li class="{% if not view.inicio_vigencia%}active{% endif %}">
<a href="{%url 'compilacao:ta_text' dispositivo.ta_id %}" title="{% trans 'Compilação atual'%}.&#013;{% trans 'Vigência a partir de'%} {{dispositivo.inicio_vigencia}}&#013;{% if dispositivo.ta_publicado_id in ta_pub_list %}{{ ta_pub_list|lookup:dispositivo.ta_publicado_id }}{%else%}{{dispositivo.ta_publicado}}{%endif%}">{% trans 'Texto Atual'%}</a>
</li>
{% if forloop.parentloop.last %}
</ul>
{% if view.inicio_vigencia and view.fim_vigencia %}
<span class="vigencia-active">
{% blocktrans with inicio_vigencia=view.inicio_vigencia fim_vigencia=view.fim_vigencia ta_publicado=dispositivo.ta_publicado%}
Vigência entre <b>{{inicio_vigencia}}</b> e <b>{{fim_vigencia}}</b>.
<br>
<small>Dada pela {{ta_publicado}}</small>
</span>
{% endblocktrans%}
{% else%}
<span class="vigencia-active">
{% blocktrans with inicio_vigencia=dispositivo.inicio_vigencia ta_publicado=dispositivo.ta_publicado%}
Vigência a partir de <b>{{inicio_vigencia}}</b>.
<br>
<small>Dada pela {{ta_publicado}}</small>
{% endblocktrans %}
</span>
{%endif%}
{% endif%}
{% endfor %}
{% else %}
<li class="{% if values.inicio_vigencia.year == key %}active{% endif %}"><a data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">{{ key }}</a>
<ul class="dropdown-menu">
{% for dispositivo in values %}
<li>
{% if not forloop.parentloop.first %}
<a href="{%url '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%}{{dispositivo.ta_publicado}}{%endif%}">{% trans 'Vigência entre'%} {{dispositivo.inicio_vigencia}} {% trans 'e'%} {{dispositivo.fim_vigencia}}</a>
{% endif %}
</li>
{% endfor %}
</ul>
</li>
{% endif %} {% endif %}
{% if forloop.first %} {% endfor %}
{% for dispositivo in values %}
<li class="{% if view.inicio_vigencia == dispositivo.inicio_vigencia %}active{%endif%}"><a href="{%url 'ta_vigencia' dispositivo.ta_id dispositivo|get_sign_vigencia %}" title="{% trans 'Vigência entre'%} {{dispositivo.inicio_vigencia}} {% trans 'e'%} {{dispositivo.fim_vigencia}}">{% trans 'Texto Original'%}</a>
{% endfor %}
{% elif forloop.last %}
{% for dispositivo in values %}
<li class="{% if not view.inicio_vigencia%}active{% endif %}"><a href="{%url 'ta_text' dispositivo.ta_id %}" title="{% trans 'Compilação atual'%}.&#013;{% trans 'Vigência a partir de'%} {{dispositivo.inicio_vigencia}}&#013;{% if dispositivo.ta_publicado_id in ta_pub_list %}{{ ta_pub_list|lookup:dispositivo.ta_publicado_id }}{%else%}{{dispositivo.ta_publicado}}{%endif%}">{% trans 'Texto Atual'%}</a>
{% if forloop.last %} <ul class="tipo-vigencias">
</ul> <li><a class="selected" onclick="textoMultiVigente(this, false);" title="{% trans 'Texto Multivigente Sequencial'%}">{% trans 'TMS'%}</a></li>
{% if view.inicio_vigencia and view.fim_vigencia %} <li><a onclick="textoMultiVigente(this, true);" title="{% trans 'Texto Multivigente Integrado com Realce de Alterações'%}">{% trans 'TMI'%}</a></li>
<span class="vigencia-active">{% trans 'Vigência entre'%} <b>{{view.inicio_vigencia}}</b> {% trans 'e'%} <b>{{view.fim_vigencia}}</b>.</span> <li><a onclick="textoVigente(this, true);" title="{% trans 'Texto Vigente COM Links para Textos Alteradores'%}">{% trans 'TVL'%}</a></li>
{% else%} <li><a onclick="textoVigente(this, false);" title="{% trans 'Texto Vigente'%}">{% trans 'TVT'%}</a></li>
<span class="vigencia-active">{% trans 'Vigência a partir de '%} <b>{{dispositivo.inicio_vigencia}}.</b></span> </ul>
{%endif%}
{% endif%}
{% endfor %}
{% else %}
<li class="{% if view.inicio_vigencia.year == key %}active{% endif %}"><a data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">{{ key }}</a>
{%endif%}
{% if not forloop.first and not forloop.last %}
<ul class="dropdown-menu">
{% for dispositivo in values %}
<li>
{% if not forloop.parentloop.first %}
<a href="{%url '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%}{{dispositivo.ta_publicado}}{%endif%}">{% trans 'Vigência entre'%} {{dispositivo.inicio_vigencia}} {% trans 'e'%} {{dispositivo.fim_vigencia}}</a>
{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
<ul class="tipo-vigencias"> {% include 'compilacao/text_list_bloco.html'%}
<li><a class="selected" onclick="textoMultiVigente(this, false);" title="{% trans 'Texto Multivigente Sequencial'%}">{% trans 'TMS'%}</a></li> </div>
<li><a onclick="textoMultiVigente(this, true);" title="{% trans 'Texto Multivigente Integrado com Realce de Alterações'%}">{% trans 'TMI'%}</a></li>
<li><a onclick="textoVigente(this, true);" title="{% trans 'Texto Vigente COM Links para Textos Alteradores'%}">{% trans 'TVL'%}</a></li>
<li><a onclick="textoVigente(this, false);" title="{% trans 'Texto Vigente'%}">{% trans 'TVT'%}</a></li>
</ul>
{% include 'compilacao/text_list_bloco.html'%}
</div>
{% endblock base_content %} {% endblock base_content %}
{% block foot_js %} {% block foot_js %}
{{block.super}} {{block.super}}
<script type="text/javascript" src="{% static 'js/compilacao.js' %}"></script> <script type="text/javascript" src="{% static 'js/compilacao.js' %}"></script>
<script type="text/javascript" src="{% static 'js/compilacao_view.js' %}"></script> <script type="text/javascript" src="{% static 'js/compilacao_view.js' %}"></script>
{% if perms.compilacao.add_nota %} {% if perms.compilacao.add_nota %}
<script type="text/javascript" src="{% static 'js/compilacao_notas.js' %}"></script> <script type="text/javascript" src="{% static 'js/compilacao_notas.js' %}"></script>
{% endif %} {% endif %}
{% endblock %} {% endblock %}

309
templates/compilacao/text_list_bloco.html

@ -2,170 +2,177 @@
{% load compilacao_filters %} {% load compilacao_filters %}
{% load common_tags %} {% load common_tags %}
<div class="display"></div>
{% for dpt in object_list %} {% for dpt in object_list %}
{% if dpt.nivel == view.flag_nivel_old %} {% if dpt.nivel == view.flag_nivel_old %}
</div> </div>
{% elif dpt.nivel < view.flag_nivel_old %} {% elif dpt.nivel < view.flag_nivel_old %}
{% 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:'DispositivoView' %} {% if forloop.first and view|isinst:'DispositivoView' %}
{% else %} {% else %}
<div class="dpt {%if dpt.tipo_dispositivo.class_css == 'bloco_alteracao'%}bloco_alteracao{%endif%}" nivel="{{dpt.nivel}}"> <div class="dpt {%if dpt.tipo_dispositivo.class_css == 'bloco_alteracao'%}bloco_alteracao{% endif %}" nivel="{{dpt.nivel}}">
{% endif%} {% endif%}
{% spaceless %} {% spaceless %}
<div class="{{ dpt.tipo_dispositivo.class_css }}"> <div class="{{ dpt.tipo_dispositivo.class_css }}">
<div class="dptt {% dispositivo_desativado dpt view.inicio_vigencia view.fim_vigencia %}" id="dptt{{dpt.pk}}" > <div class="dptt {% dispositivo_desativado dpt view.inicio_vigencia view.fim_vigencia %}" id="dptt{{dpt.pk}}" >
{{ dpt.tipo_dispositivo.rotulo_prefixo_html|safe }}
<a name="{{dpt.pk}}" title="{{dpt.pk}}">{{ dpt.rotulo }}</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>
{% if dpt.ta_publicado_id and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}
<a class="link_alterador" href="{%url 'compilacao:ta_text' dpt.ta_publicado.pk %}#{{dpt.dispositivo_atualizador_id}}">
{{ dpt.tipo_dispositivo.nota_automatica_prefixo_html|safe }}
{% nota_automatica dpt ta_pub_list %}
{{ dpt.tipo_dispositivo.nota_automatica_sufixo_html|safe }}
</a>
{% endif %}
{% if user.is_authenticated and not dpt.tipo_dispositivo.dispositivo_de_articulacao%}
{% if perms.compilacao.add_nota or perms.compilacao.add_vide or perms.compilacao.change_dispositivo%}
<div class="dne" id="dne{{dpt.pk}}" pk="{{dpt.pk}}">
<ul class="btns-action">
{% if perms.compilacao.change_dispositivo %}<li><a href = "{% url 'compilacao:ta_text_edit' dpt.ta.pk%}#{{dpt.pk}}" class="btn-action" title="{% trans 'Editar Dispositivo'%}">Ed</a></li>{% endif %}
{% if perms.compilacao.add_nota %}<li><a class="btn-action btn-nota-create" model="nota" pk="{{dpt.pk}}" title="{% trans 'Adicionar Nota'%}">N</a></li>{% endif %}
{% if perms.compilacao.add_vide %}<li><a class="btn-action btn-vide-create" model="vide" pk="{{dpt.pk}}" title="{% trans 'Adicionar Vide'%}">V</a></li>{% endif %}
</ul>
<div class="dne-form clearfix"></div>
</div>
{% endif %}
{% endif %}
</div>
{{ dpt.tipo_dispositivo.rotulo_prefixo_html|safe }} {% if not dpt.tipo_dispositivo.dispositivo_de_articulacao%}
<a name="{{dpt.pk}}" title="{{dpt.pk}}">{{ dpt.rotulo }}</a> <div class="dn" id="dn{{dpt.pk}}" pk="{{dpt.pk}}">{# Dispostivo Nota e Vides #}
{{ dpt.tipo_dispositivo.rotulo_sufixo_html|safe }} <ul class="dnl">{# Dispostivo Nota Lista#}
<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>
{% if dpt.ta_publicado_id and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}
<a class="link_alterador" href="{%url 'ta_text' dpt.ta_publicado.pk %}#{{dpt.dispositivo_atualizador_id}}">
{{ dpt.tipo_dispositivo.nota_automatica_prefixo_html|safe }}
{% nota_automatica dpt ta_pub_list %}
{{ dpt.tipo_dispositivo.nota_automatica_sufixo_html|safe }}
</a>
{% endif %}
{% if user.is_authenticated and not dpt.tipo_dispositivo.dispositivo_de_articulacao%}
{% if perms.compilacao.add_nota or perms.compilacao.add_vide or perms.compilacao.change_dispositivo%}
<div class="dne" id="dne{{dpt.pk}}" pk="{{dpt.pk}}">
<ul class="btns-action">
{% if perms.compilacao.change_dispositivo %}<li><a href = "{% url 'ta_text_edit' dpt.ta.pk%}#{{dpt.pk}}" class="btn-action" title="{% trans 'Editar Dispositivo'%}">Ed</a></li>{% endif %}
{% if perms.compilacao.add_nota %}<li><a class="btn-action btn-nota-create" model="nota" pk="{{dpt.pk}}" title="{% trans 'Adicionar Nota'%}">N</a></li>{% endif %}
{% if perms.compilacao.add_vide %}<li><a class="btn-action btn-vide-create" model="vide" pk="{{dpt.pk}}" title="{% trans 'Adicionar Vide'%}">V</a></li>{% endif %}
</ul>
<div class="dne-form clearfix"></div>
</div>
{% endif %}
{% endif%}
</div>
{% if not dpt.tipo_dispositivo.dispositivo_de_articulacao%} {% if cita and cita|lookup:dpt.pk %}
<div class="dn" id="dn{{dpt.pk}}" pk="{{dpt.pk}}">{# Dispostivo Nota e Vides #} {% for vide in cita|lookup:dpt.pk %}
<ul class="dnl">{# Dispostivo Nota Lista#}
{%if not forloop.first %}
<li class="bullet">&#8226;</li>
{% endif %}
<li class="dnli" id="nt{{vide.pk}}">
{% if cita and cita|lookup:dpt.pk %} <ul>
{% for vide in cita|lookup:dpt.pk %} {% if user.is_authenticated %}
{% if perms.compilacao.change_vide %}
<li><a class="btn-action btn-vide-edit" model="vide" pk="{{vide.pk}}">Editar</a></li>
<li class="bullet">&#8226;</li>
{% endif %}
{% if perms.compilacao.delete_vide %}
<li><a class="btn-action btn-vide-delete" model="vide" pk="{{vide.pk}}">Excluir</a></li>
<li class="bullet">&#8226;</li>
{% endif %}
{% endif %}
<li class="ntipo">{{vide.tipo.nome}}</li>
<li class="bullet">&#8226;</li>
<li class="npublicacao" title="{% trans 'Data de Criação'%}">{{vide.created|date:"d M Y"}}</li>
</ul>
<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>
{% else %}
<a href="{%url 'compilacao:ta_text' vide.dispositivo_ref.ta.pk%}#{{vide.dispositivo_ref.pk }}">{{ vide.dispositivo_ref}}</a>
{% endif %}
{% if vide.texto %} - {{vide.texto}}{% endif %}
</div>
</li>
{% endfor %}
{% endif %}
{%if not forloop.first %}<li class="bullet">&#8226;</li>{%endif%} {% if citado and citado|lookup:dpt.pk %}
<li class="dnli" id="nt{{vide.pk}}"> {% if cita and cita|lookup:dpt.pk %}
<li class="bullet">&#8226;</li>
{% endif %}
<ul> {% for vide in citado|lookup:dpt.pk %}
{% if user.is_authenticated %} {%if not forloop.first %}
{% if perms.compilacao.change_vide %} <li class="bullet">&#8226;</li>
<li><a class="btn-action btn-vide-edit" model="vide" pk="{{vide.pk}}">Editar</a></li> {% endif %}
<li class="bullet">&#8226;</li> <li class="dnli" id="nt{{vide.pk}}">
{%endif%} <ul>
{% if perms.compilacao.delete_vide %} <li class="ntipo">{{vide.tipo.nome}}</li>
<li><a class="btn-action btn-vide-delete" model="vide" pk="{{vide.pk}}">Excluir</a></li> <li class="bullet">&#8226;</li>
<li class="bullet">&#8226;</li> <li class="npublicacao" title="{% trans 'Data de Criação'%}">{{vide.created|date:"d M Y"}}</li>
{%endif%} </ul>
{% endif %} <div class="ntitulo">Citado em: </div>
<li class="ntipo">{{vide.tipo.nome}}</li> <div class="ntexto">
<li class="bullet">&#8226;</li> {% if vide.dispositivo_base.dispositivo_pai.nivel != 0 and vide.dispositivo_base.dispositivo_pai.tipo_dispositivo.dispositivo_de_articulacao%}
<li class="npublicacao" title="{% trans 'Data de Criação'%}">{{vide.created|date:"d M Y"}}</li> <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>
</ul> {% else %}
<div class="ntitulo">Vide: </div> <a href="{%url 'compilacao:ta_text' vide.dispositivo_base.ta.pk%}#{{vide.dispositivo_base.pk }}">{{ vide.dispositivo_base}}</a>
<div class="ntexto"> {% endif %}
{% if vide.dispositivo_ref.dispositivo_pai.nivel != 0 and vide.dispositivo_ref.dispositivo_pai.tipo_dispositivo.dispositivo_de_articulacao %} {% if vide.texto %} - {{vide.texto}}{% endif %}
<a href="{%url 'ta_text' vide.dispositivo_ref.dispositivo_pai.ta.pk%}#{{vide.dispositivo_ref.dispositivo_pai.pk }}">{{ vide.dispositivo_ref.dispositivo_pai}}</a> </div>
{% else %} </li>
<a href="{%url 'ta_text' vide.dispositivo_ref.ta.pk%}#{{vide.dispositivo_ref.pk }}">{{ vide.dispositivo_ref}}</a> {% endfor %}
{% endif %} {% endif %}
{% if vide.texto %} - {{vide.texto}}{% endif %} {%if notas and notas|lookup:dpt.pk and cita and cita|lookup:dpt.pk or notas and notas|lookup:dpt.pk and citado and citado|lookup:dpt.pk %}
</div> <li class="bullet">&#8226;</li>
</li> {% endif %}
{% endfor %} {% if notas and notas|lookup:dpt.pk %}
{% endif %} {% for nota in notas|lookup:dpt.pk %}
{% if citado and citado|lookup:dpt.pk %} {% if user.is_superuser or nota.publicidade == nota.NPUBL or nota.publicidade == nota.NINST and user.is_authenticated or nota.publicidade == nota.NPRIV and nota.owner == user %}
{% if cita and cita|lookup:dpt.pk %}<li class="bullet">&#8226;</li>{%endif%} {%if not forloop.first %}
{% for vide in citado|lookup:dpt.pk %} <li class="bullet">&#8226;</li>
{%if not forloop.first %}<li class="bullet">&#8226;</li>{%endif%} {% endif %}
<li class="dnli" id="nt{{vide.pk}}"> <li class="dnli" id="nt{{nota.pk}}">
<ul> <ul>
<li class="ntipo">{{vide.tipo.nome}}</li> {% if user.is_authenticated %}
<li class="bullet">&#8226;</li> {% if user == nota.owner and perms.compilacao.change_nota or user.is_superuser%}
<li class="npublicacao" title="{% trans 'Data de Criação'%}">{{vide.created|date:"d M Y"}}</li> <li><a class="btn-action btn-nota-edit" model="nota" pk="{{nota.pk}}">Editar</a></li>
</ul> <li class="bullet">&#8226;</li>
<div class="ntitulo">Citado em: </div> {% endif %}
<div class="ntexto"> {% if user == nota.owner and perms.compilacao.delete_nota or user.is_superuser %}
{% if vide.dispositivo_base.dispositivo_pai.nivel != 0 and vide.dispositivo_base.dispositivo_pai.tipo_dispositivo.dispositivo_de_articulacao%} <li><a class="btn-action btn-nota-delete" model="nota" pk="{{nota.pk}}">Excluir</a></li>
<a href="{%url 'ta_text' vide.dispositivo_base.dispositivo_pai.ta.pk%}#{{vide.dispositivo_base.dispositivo_pai.pk }}">{{ vide.dispositivo_base.dispositivo_pai}}</a> <li class="bullet">&#8226;</li>
{% else %} {% endif %}
<a href="{%url 'ta_text' vide.dispositivo_base.ta.pk%}#{{vide.dispositivo_base.pk }}">{{ vide.dispositivo_base}}</a> {% endif %}
{% endif %} <li class="ntipo">{{nota.tipo.nome}}</li>
{% if vide.texto %} - {{vide.texto}}{% endif %} <li class="bullet">&#8226;</li>
</div> <li class="nowner" title="{% trans 'Criado Por' %}">{%if nota.owner.first_name%}{{nota.owner.first_name}}{%else%}{{nota.owner}}{% endif %}</li>
</li> <li class="bullet">&#8226;</li>
{% endfor %} <li class="npublicacao" title="{% trans 'Data de Publicação'%}">{{nota.publicacao|date:"d M Y"}}</li>
{% endif %} </ul>
{%if notas and notas|lookup:dpt.pk and cita and cita|lookup:dpt.pk or notas and notas|lookup:dpt.pk and citado and citado|lookup:dpt.pk %}<li class="bullet">&#8226;</li>{%endif%}
{% if notas and notas|lookup:dpt.pk %}
{% for nota in notas|lookup:dpt.pk %}
{% if user.is_superuser or nota.publicidade == nota.NPUBL or nota.publicidade == nota.NINST and user.is_authenticated or nota.publicidade == nota.NPRIV and nota.owner == user %} {%if nota.titulo %}
{%if not forloop.first %}<li class="bullet">&#8226;</li>{%endif%} <div class="ntitulo">
<li class="dnli" id="nt{{nota.pk}}"> {%if nota.url_externa %}<a target="_blank" href="{{nota.url_externa}}">{% endif %}{{nota.titulo}} - {%if nota.url_externa %}</a>{% endif %}
<ul> </div>
{% if user.is_authenticated %} {% endif %}
{% if user == nota.owner and perms.compilacao.change_nota or user.is_superuser%} <div class="ntexto">
<li><a class="btn-action btn-nota-edit" model="nota" pk="{{nota.pk}}">Editar</a></li> {%if nota.url_externa %}<a target="_blank" href="{{nota.url_externa}}">{% endif %}{{ nota.texto}}{%if nota.url_externa %}</a>{% endif %}
<li class="bullet">&#8226;</li> </div>
{% endif %}
{% if user == nota.owner and perms.compilacao.delete_nota or user.is_superuser %}
<li><a class="btn-action btn-nota-delete" model="nota" pk="{{nota.pk}}">Excluir</a></li>
<li class="bullet">&#8226;</li>
{% endif %}
{% endif %}
<li class="ntipo">{{nota.tipo.nome}}</li>
<li class="bullet">&#8226;</li>
<li class="nowner" title="{% trans 'Criado Por' %}">{%if nota.owner.first_name%}{{nota.owner.first_name}}{%else%}{{nota.owner}}{%endif%}</li>
<li class="bullet">&#8226;</li>
<li class="npublicacao" title="{% trans 'Data de Publicação'%}">{{nota.publicacao|date:"d M Y"}}</li>
</ul>
{%if nota.titulo %} {%comment%}
<div class="ntitulo"> <ul>
{%if nota.url_externa %}<a target="_blank" href="{{nota.url_externa}}">{%endif%}{{nota.titulo}} - {%if nota.url_externa %}</a>{%endif%} <li class="nefetividade" title="{% trans 'Data de Efetividade'%}">{{nota.efetividade|date:"d M Y"}}</li>
</div> <li class="bullet">&#8226;</li>
{%endif%} <li class="npublicidade">{{nota.get_publicidade_display}}</li>
<div class="ntexto"> </ul>
{%if nota.url_externa %}<a target="_blank" href="{{nota.url_externa}}">{%endif%}{{ nota.texto}}{%if nota.url_externa %}</a>{%endif%} {%endcomment%}
</div> </li>
{% endif %}
{%comment%} {% endfor %}
<ul> {% endif %}
<li class="nefetividade" title="{% trans 'Data de Efetividade'%}">{{nota.efetividade|date:"d M Y"}}</li> </ul>
<li class="bullet">&#8226;</li> </div>
<li class="npublicidade">{{nota.get_publicidade_display}}</li> {% endif%}
</ul> </div>
{%endcomment%} {% endspaceless %}
</li> {% if dpt.tipo_dispositivo.class_css == 'bloco_alteracao'%}
{% endif %} {%with node=dpt template_name='compilacao/text_list_blocoalteracao.html' %}
{% endfor %} {%include template_name%}
{% endif %} {%endwith%}
</ul> {% endif%}
</div> {% set_nivel_old view dpt.nivel %}
{% endif%}
</div>
{% endspaceless %}
{% if ta_pub_list and dpt.tipo_dispositivo.class_css == 'bloco_alteracao'%}
{%with node=dpt template_name='compilacao/text_list_blocoalteracao.html' %}
{%include template_name%}
{%endwith%}
{% endif%}
{% set_nivel_old view dpt.nivel %}
{% endfor %} {% endfor %}
{% if view|isinst:'DispositivoView' %} {% if view|isinst:'DispositivoView' %}
{% 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 %}
{% endif%} {% endif%}

10
templates/compilacao/text_list_blocoalteracao.html

@ -1,13 +1,13 @@
{% load compilacao_filters %} {% load compilacao_filters %}
{% load common_tags %} {% load common_tags %}
{% for ch in dpt.pk|get_bloco_atualizador %} {% for ch in dpt.pk|get_bloco_atualizador %}
{% spaceless %} {% spaceless %}
{% if ch.visibilidade %} {% if ch.visibilidade %}
<div class="dpt" id="d{{ch.id}}" nivel="{{ch.nivel}}"> <div class="dpt" id="d{{ch.id}}" nivel="{{ch.nivel}}">
<div class="{{ ch.tipo_dispositivo.class_css }}" id="id{{ch.id}}" nivel="{{ch.nivel}}"> <div class="{{ ch.tipo_dispositivo.class_css }}" id="id{{ch.id}}" nivel="{{ch.nivel}}">
{{ ch.tipo_dispositivo.rotulo_prefixo_html|safe }}<a name="{{ch.pk}}" href="{%url 'ta_text' ch.ta.pk %}#{{ch.pk}}">{{ ch.rotulo }}</a>{{ ch.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ ch.tipo_dispositivo.texto_prefixo_html|safe }}{{ ch.texto|safe }} {{ ch.tipo_dispositivo.rotulo_prefixo_html|safe }}<a name="{{ch.pk}}" href="{%url 'compilacao:ta_text' ch.ta.pk %}#{{ch.pk}}">{{ ch.rotulo }}</a>{{ ch.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ ch.tipo_dispositivo.texto_prefixo_html|safe }}{{ ch.texto|safe }}
</div> </div>
</div> </div>
{%endif%} {%endif%}
{% endspaceless %} {% endspaceless %}
{% endfor %} {% endfor %}

111
templates/compilacao/textoarticulado_detail.html

@ -4,85 +4,82 @@
{% load common_tags %} {% load common_tags %}
{% block sections_nav %} {% block sections_nav %}
<ul class="nav nav-pills navbar-right"> <ul class="nav nav-pills navbar-right">
{%if object %} {%if object %}
<li> <li>
{% if object.content_object%} {% if object.content_object%}
<a href="{% url object|urldetail_content_type object.content_object.pk %}" title="{% trans 'Ir para '%}{{object.content_object}}">Início</a> <a href="{% url object|urldetail_content_type object.content_object.pk %}" title="{% trans 'Ir para '%}{{object.content_object}}">Início</a>
{%else%} {%else%}
<a href="{% url 'ta_detail' object.pk %}">{% trans 'Início' %}</a> <a href="{% url 'compilacao:ta_detail' object.pk %}">{% trans 'Início' %}</a>
{%endif%} {%endif%}
</li> </li>
<li><a href="{% url '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 'ta_text' object.pk %}">{% trans 'Texto da Norma' %}</a></li> <li><a href="{% url 'compilacao:ta_text' object.pk %}">{% trans 'Texto da Norma' %}</a></li>
{%endif %} {%endif %}
</ul> </ul>
{% endblock %} {% endblock %}
{% block base_content %} {% block base_content %}
{% block actions %} {% block actions %}
<div class="clearfix"> <div class="clearfix">
<div class="actions btn-group pull-right" role="group"> <div class="actions btn-group pull-right" role="group">
<a href="{% url 'ta_edit' object.pk %}" class="btn btn-default">{% trans 'Editar Metadados do Texto Articulado' %}</a> <a href="{% url 'compilacao:ta_edit' object.pk %}" class="btn btn-default">{% trans 'Editar Metadados do Texto Articulado' %}</a>
<a href="{% url 'ta_text_edit' object.pk %}" class="btn btn-default">{% trans 'Editar Texto' %}</a> <a href="{% url 'compilacao:ta_text_edit' object.pk %}" class="btn btn-default">{% trans 'Editar Texto' %}</a>
</div>
</div> </div>
</div> {% endblock actions %}
{% endblock actions %}
{% block detail_content %} {# TODO replace fieldset for something semantically correct, but with similar visual grouping style #}
<fieldset>
<legend>{%trans 'Identificação Básica'%}</legend>
<div class="row"> {% block detail_content %} {# TODO replace fieldset for something semantically correct, but with similar visual grouping style #}
<fieldset>
<div class="col-md-3"> <legend>{%trans 'Identificação Básica'%}</legend>
<div class="row">
<div class="col-md-3">
<div id="div_id_tipo" class="holder"> <div id="div_id_tipo" class="holder">
<label>{% field_verbose_name object 'tipo_ta' %}</label> <label>{% field_verbose_name object 'tipo_ta' %}</label>
<p>{{ object.tipo_ta}}</p> <p>{{ object.tipo_ta}}</p>
</div> </div>
</div> </div>
{% if object.content_object and object.content_object.tipo%} {% if object.content_object and object.content_object.tipo%}
<div class="col-md-3"> <div class="col-md-3">
<div id="div_id_tipo" class="holder"> <div id="div_id_tipo" class="holder">
<label>{% field_verbose_name object.content_object 'tipo' %}</label> <label>{% field_verbose_name object.content_object 'tipo' %}</label>
<p>{{ object.content_object.tipo}}</p> <p>{{ object.content_object.tipo}}</p>
</div>
</div> </div>
</div> {%endif%}
{%endif%}
<div class="col-md-2"> <div class="col-md-2">
<div id="div_id_numero" class="holder"> <div id="div_id_numero" class="holder">
<label>{% field_verbose_name object 'numero' %}</label> <label>{% field_verbose_name object 'numero' %}</label>
<p>{{ object.numero}}</p> <p>{{ object.numero}}</p>
</div> </div>
</div> </div>
<div class="col-md-2"> <div class="col-md-2">
<div id="div_id_ano" class="holder"> <div id="div_id_ano" class="holder">
<label>{% field_verbose_name object 'ano' %}</label> <label>{% field_verbose_name object 'ano' %}</label>
<p>{{ object.ano}}</p> <p>{{ object.ano}}</p>
</div> </div>
</div> </div>
<div class="col-md-2"> <div class="col-md-2">
<div id="div_id_data" class="holder"> <div id="div_id_data" class="holder">
<label>{% field_verbose_name object 'data' %}</label> <label>{% field_verbose_name object 'data' %}</label>
<p>{{ object.data}}</p> <p>{{ object.data}}</p>
</div> </div>
</div>
</div> </div>
</div> <br>
<br> <div class="row">
<div class="row"> <div class="col-md-12">
<div class="col-md-12">
<div id="div_id_ementa" class="holder"> <div id="div_id_ementa" class="holder">
<label>{% field_verbose_name object 'ementa' %}</label> <label>{% field_verbose_name object 'ementa' %}</label>
<p>{{ object.ementa|safe}}</p> <p>{{ object.ementa|safe}}</p>
</div> </div>
</div>
</div> </div>
</div> </fieldset>
</fieldset> {% endblock detail_content %}
{% endblock detail_content %} {% endblock base_content %} {% endblock base_content %}

54
templates/compilacao/textoarticulado_list.html

@ -4,43 +4,39 @@
{% load common_tags %} {% load common_tags %}
{% block base_content %} {% block base_content %}
{% block detail_content %} {% block detail_content %}
{% endblock detail_content %} {% endblock detail_content %}
{% block actions %} {% block actions %}
<div class="actions btn-group pull-right clearfix" role="group"> <div class="actions btn-group pull-right clearfix" role="group">
<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.TextoArticulado'%} {% trans 'Adicionar'%} {%model_verbose_name 'compilacao.models.TextoArticulado'%}
</a> </a>
{% include 'compilacao/textoarticulado_menu_config.html' %}
{% include 'compilacao/textoarticulado_menu_config.html' %}
</div> </div>
{% endblock actions %} {% endblock actions %}
<table class="table table-striped table-hover"> <table class="table table-striped table-hover">
<thead> <thead>
<tr> <tr>
<th>{% fieldclass_verbose_name 'compilacao.models.TextoArticulado' 'tipo_ta' %}</th> <th>{% fieldclass_verbose_name 'compilacao.models.TextoArticulado' 'tipo_ta' %}</th>
<th>{% fieldclass_verbose_name 'compilacao.models.TextoArticulado' 'numero' %}</th> <th>{% fieldclass_verbose_name 'compilacao.models.TextoArticulado' 'numero' %}</th>
<th>{% fieldclass_verbose_name 'compilacao.models.TextoArticulado' 'ano' %}</th> <th>{% fieldclass_verbose_name 'compilacao.models.TextoArticulado' 'ano' %}</th>
<th>{% fieldclass_verbose_name 'compilacao.models.TextoArticulado' 'data' %}</th> <th>{% fieldclass_verbose_name 'compilacao.models.TextoArticulado' 'data' %}</th>
<th>{% fieldclass_verbose_name 'compilacao.models.TextoArticulado' 'ementa' %}</th> <th>{% fieldclass_verbose_name 'compilacao.models.TextoArticulado' 'ementa' %}</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% for ta in object_list %} {% for ta in object_list %}
<tr> <tr>
<td><a href="{% url 'ta_detail' ta.pk %}">{{ ta.tipo_ta }}</a></td> <td><a href="{% url 'compilacao:ta_detail' ta.pk %}">{{ ta.tipo_ta }}</a></td>
<td>{{ ta.numero }}</td> <td>{{ ta.numero }}</td>
<td>{{ ta.ano }}</td> <td>{{ ta.ano }}</td>
<td>{{ ta.data }}</td> <td>{{ ta.data }}</td>
<td>{{ ta.ementa|safe }}</td> <td>{{ ta.ementa|safe }}</td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
{% include 'paginacao.html'%} {% include 'paginacao.html'%}
{% endblock %} {% endblock %}

21
templates/compilacao/textoarticulado_menu_config.html

@ -1,17 +1,16 @@
{% load i18n %} {% load i18n %}
{% load common_tags %} {% load common_tags %}
<div class="btn-group" role="group"> <div class="btn-group" role="group">
<button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fa fa-cog fa-1x fa-fw"></i> <i class="fa fa-cog fa-1x fa-fw"></i>
</button> </button>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li><a href="{% url 'tipo_ta_list' %}">{%model_verbose_name_plural 'compilacao.models.TipoTextoArticulado'%}</a></li> <li><a href="{% url 'compilacao:tipo_ta_list' %}">{%model_verbose_name_plural 'compilacao.models.TipoTextoArticulado'%}</a></li>
<li><a href="{% url 'tipopublicacao:list' %}">{%model_verbose_name_plural 'compilacao.models.TipoPublicacao'%}</a></li> <li><a href="{% url 'tipopublicacao:list' %}">{%model_verbose_name_plural 'compilacao.models.TipoPublicacao'%}</a></li>
<li><a href="{% url 'veiculopublicacao:list' %}">{%model_verbose_name_plural 'compilacao.models.VeiculoPublicacao'%}</a></li> <li><a href="{% url 'veiculopublicacao:list' %}">{%model_verbose_name_plural 'compilacao.models.VeiculoPublicacao'%}</a></li>
<li><a href="{% url 'tiponota:list' %}">{%model_verbose_name_plural 'compilacao.models.TipoNota'%}</a></li> <li><a href="{% url 'tiponota:list' %}">{%model_verbose_name_plural 'compilacao.models.TipoNota'%}</a></li>
<li><a href="{% url 'tipovide:list' %}">{%model_verbose_name_plural 'compilacao.models.TipoVide'%}</a></li> <li><a href="{% url 'tipovide:list' %}">{%model_verbose_name_plural 'compilacao.models.TipoVide'%}</a></li>
<li><a href="#">TODO: Tipo de Dispositivo</a></li> <li><a href="#">TODO: Tipo de Dispositivo</a></li>
<li><a href="#">TODO: Perfil Estrutural de Textos Articulados</a></li> <li><a href="#">TODO: Perfil Estrutural de Textos Articulados</a></li>
</ul> </ul>
</div> </div>

91
templates/compilacao/tipotextoarticulado_detail.html

@ -1,54 +1,51 @@
{% extends "base.html" %} {% load i18n %} {% load compilacao_filters %} {% extends "base.html" %} {% load i18n %} {% load compilacao_filters %}
{% load common_tags %} {% load common_tags %}
{% block base_content %} {# FIXME is this the best markup to use? #} {% block base_content %}
{% block sections_nav %} {% block sections_nav %}
{% endblock %} {% endblock %}
<div class="clearfix">
<div class="clearfix">
{% block actions %} {% block actions %}
<ul class="button-group right"> <div class="actions btn-group pull-right" role="group">
<li><a href="{% url 'tipo_ta_edit' object.pk %}" class="button tiny">{% trans 'Editar' %}</a></li> <a class="btn btn-default" href="{% url 'compilacao:tipo_ta_edit' object.pk %}">{% trans 'Editar' %}</a>
<li><a href="{% url 'tipo_ta_delete' object.pk %}" class="button alert tiny">{% trans 'Excluir' %}</a></li> <a class="btn btn-default" href="{% url 'compilacao:tipo_ta_delete' object.pk %}">{% trans 'Excluir' %}</a>
</ul> </div>
{% endblock actions %} {% endblock actions %}
</div>
</div>
{% block detail_content %} {# TODO replace fieldset for something semantically correct, but with similar visual grouping style #}
{% block detail_content %} {# TODO replace fieldset for something semantically correct, but with similar visual grouping style #} <fieldset>
<fieldset> <legend>{%trans 'Identificação Básica'%}</legend>
<legend>{%trans 'Identificação Básica'%}</legend> <div class="row">
<div class="col-md-2">
<div class="row"> <div id="div_id_tipo" class="holder">
<label>{% field_verbose_name object 'sigla' %}</label>
<div class="col-md-2"> <p>{{ object.sigla}}</p>
<div id="div_id_tipo" class="holder"> </div>
<label>{% field_verbose_name object 'sigla' %}</label> </div>
<p>{{ object.sigla}}</p>
</div> <div class="col-md-4">
</div> <div id="div_id_numero" class="holder">
<label>{% field_verbose_name object 'descricao' %}</label>
<div class="col-md-4"> <p>{{ object.descricao}}</p>
<div id="div_id_numero" class="holder"> </div>
<label>{% field_verbose_name object 'descricao' %}</label> </div>
<p>{{ object.descricao}}</p>
</div> <div class="col-md-3">
</div> <div id="div_id_ano" class="holder">
<label>{% field_verbose_name object 'content_type' %}</label>
<div class="col-md-3"> <p>{{ object.content_type|default:""}}</p>
<div id="div_id_ano" class="holder"> </div>
<label>{% field_verbose_name object 'content_type' %}</label> </div>
<p>{{ object.content_type|default:""}}</p> <div class="col-md-3">
</div> <div id="div_id_ano" class="holder">
</div> <label>{% field_verbose_name object 'participacao_social' %}</label>
<div class="col-md-3"> <p>{{ object.get_participacao_social_display}}</p>
<div id="div_id_ano" class="holder"> </div>
<label>{% field_verbose_name object 'participacao_social' %}</label> </div>
<p>{{ object.get_participacao_social_display}}</p> </div>
</div> </fieldset>
</div> {% endblock detail_content %}
</div>
</fieldset>
{% endblock detail_content %}
{% endblock base_content %} {% endblock base_content %}

62
templates/compilacao/tipotextoarticulado_list.html

@ -4,37 +4,35 @@
{% load common_tags %} {% load common_tags %}
{% block base_content %} {% block base_content %}
{% block actions %}
<div class="actions btn-group pull-right" role="group">
<a href="{{ view.create_url }}" class="btn btn-default">
{% trans 'Adicionar'%} {%model_verbose_name 'compilacao.models.TipoTextoArticulado'%}
</a>
</div>
{% endblock actions %}
<div class="actions btn-group pull-right" role="group"> {% if not object_list %}
<a href="{{ view.create_url }}" class="btn btn-default"> <p>{{ NO_ENTRIES_MSG }}</p>
{% trans 'Adicionar'%} {%model_verbose_name 'compilacao.models.TipoTextoArticulado'%} {% else %}
</a> <table class="table table-striped table-hover" width=100%>
{% block more_buttons %} <thead>
<tr>
{% endblock more_buttons %} <th>{% fieldclass_verbose_name 'compilacao.models.TipoTextoArticulado' 'sigla' %}</th>
</div> <th>{% fieldclass_verbose_name 'compilacao.models.TipoTextoArticulado' 'descricao' %}</th>
<th>{% fieldclass_verbose_name 'compilacao.models.TipoTextoArticulado' 'content_type' %}</th>
{% if not object_list %} </tr>
<p>{{ NO_ENTRIES_MSG }}</p> </thead>
{% else %} <tbody>
<table class="table table-striped table-hover" width=100%> {% for tipo_ta in object_list %}
<thead> <tr>
<tr> <td><a href="{% url 'compilacao:tipo_ta_detail' tipo_ta.pk %}">{{ tipo_ta.sigla }}</a></td>
<th>{% fieldclass_verbose_name 'compilacao.models.TipoTextoArticulado' 'sigla' %}</th> <td>{{ tipo_ta.descricao }}</td>
<th>{% fieldclass_verbose_name 'compilacao.models.TipoTextoArticulado' 'descricao' %}</th> <td>{{ tipo_ta.content_type }}</td>
<th>{% fieldclass_verbose_name 'compilacao.models.TipoTextoArticulado' 'content_type' %}</th> </tr>
</tr> {% endfor %}
</thead> </tbody>
<tbody> </table>
{% for tipo_ta in object_list %} {%endif%}
<tr> {% include 'paginacao.html'%}
<td><a href="{% url 'tipo_ta_detail' tipo_ta.pk %}">{{ tipo_ta.sigla }}</a></td>
<td>{{ tipo_ta.descricao }}</td>
<td>{{ tipo_ta.content_type }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{%endif%}
{% include 'paginacao.html'%}
{% endblock %} {% endblock %}

35
templates/crud/confirm_delete.html

@ -1,21 +1,24 @@
{% extends "base.html" %} {% extends "base.html" %}
{% load i18n %} {% load i18n %}
{% block base_content %} {% block title %}
<form action="" method="post">{% csrf_token %} {% with object as title %}
<div class="callout panel text-center radius clearfix"> {{ block.super }}
{% endwith %}
<p> {% endblock %}
{% blocktrans %}
Tem certeza que deseja apagar <br/> "{{ object }}"?
{% endblocktrans %}
</p>
<div class="button-group">
<a href="{{ view.detail_url }}" class="button button radius alert">{% trans 'Cancelar' %}</a>
<input name="submit" value="{% trans 'Confirmar' %}" class="submit button button radius success" type="submit"></li>
</div>
</div> {% block base_content %}
</form> <form action="" method="post">{% csrf_token %}
<div class="panel panel-danger">
<div class="panel-heading text-center">
{% blocktrans %}
Confirma exclusão de "{{ object }}"?
{% endblocktrans %}
</div>
<div class="panel-body text-center">
<a href="{{ view.detail_url }}" class="btn btn-inverse">{% trans 'Cancelar' %}</a>
<input name="submit" value="{% trans 'Confirmar' %}" class="btn btn-danger" type="submit"></li>
</div>
</div>
</form>
{% endblock %} {% endblock %}

11
templates/norma/normajuridica_detail.html

@ -1,8 +1,11 @@
{% extends "crud/detail.html" %} {% extends "crud/detail.html" %}
{% load i18n %} {% load i18n %}
{% block sections_nav %} {% block sections_nav %}
<div class="actions btn-group pull-right" role="group">
<a href="{% url 'normajuridica:detail' object.pk %}" class="btn btn-default">{% trans 'Início' %}</a> <ul class="nav nav-pills navbar-right">
<li>
<a href="{% url 'normajuridica:detail' object.pk %}">{% trans 'Início' %}</a>
</li>
{% comment %} {% comment %}
Opção adicionada para chamar o TextoArticulado da norma. Opção adicionada para chamar o TextoArticulado da norma.
@ -10,7 +13,7 @@
e a view NormaTa(IntegracaoTaView) em views.py e a view NormaTa(IntegracaoTaView) em views.py
Em nada mais a integração interfere em Norma Jurídica Em nada mais a integração interfere em Norma Jurídica
{% endcomment %} {% endcomment %}
<a href="{% url 'normajuridica:ta' object.pk %}" class="btn btn-default">{% trans 'Texto da Norma' %}</a> <li><a href="{% url 'normajuridica:ta' object.pk %}">{% trans 'Texto da Norma' %}</a></li>
</div> </ul>
{% endblock sections_nav %} {% endblock sections_nav %}

Loading…
Cancel
Save