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.layout import Button, Field, Column, HTML, Layout, Div, Row,\
Fieldset
from crispy_forms.layout import (HTML, Button, Column, Div, Field, Fieldset,
Layout, Row)
from django import forms
from django.core.exceptions import NON_FIELD_ERRORS
from django.forms.models import ModelForm
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,
TipoPublicacao, TipoTextoArticulado, TipoVide,
VeiculoPublicacao, Vide,
NOTAS_PUBLICIDADE_CHOICES)
VeiculoPublicacao, Vide)
from sapl.layout import SaplFormLayout, to_column, to_row
from sapl.utils import YES_NO_CHOICES
error_messages = {
'required': _('Este campo é obrigatório'),
'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:
d = dispositivo.dispositivo_atualizador.dispositivo_pai
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:
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:
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 ''

19
compilacao/urls.py

@ -16,6 +16,7 @@ urlpatterns_compilacao = [
url(r'^(?P<ta_id>[0-9]+)/text$',
views.TextView.as_view(), name='ta_text'),
url(r'^(?P<ta_id>[0-9]+)/text/vigencia/(?P<sign>.+)/$',
views.TextView.as_view(), name='ta_vigencia'),
@ -85,17 +86,19 @@ urlpatterns_compilacao = [
url(r'^config/tipo-textoarticulado/(?P<pk>[0-9]+)/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)),
url(r'^config/tipo-vide/',
url(r'^ta/config/tipo-vide/',
include(tipo_vide_crud.urls)),
url(r'^config/tipo-publicacao/',
url(r'^ta/config/tipo-publicacao/',
include(tipo_publicacao_crud.urls)),
url(r'^config/veiculo-publicacao/',
url(r'^ta/config/veiculo-publicacao/',
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 datetime import datetime, timedelta
import sys
from braces.views import FormMessagesMixin
from django import forms
from django.contrib.auth.decorators import login_required
from django.contrib.contenttypes.models import ContentType
from django.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.http.response import (HttpResponse, HttpResponseRedirect,
JsonResponse)
@ -29,7 +29,6 @@ from compilacao.models import (Dispositivo, Nota,
VeiculoPublicacao, Vide)
from sapl.crud import NO_ENTRIES_MSG, build_crud, make_pagination
DISPOSITIVO_SELECT_RELATED = (
'tipo_dispositivo',
'ta_publicado',
@ -177,7 +176,8 @@ class IntegracaoTaView(TemplateView):
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:
abstract = True
@ -232,7 +232,7 @@ class TipoTaListView(ListView):
@property
def create_url(self):
return reverse_lazy('tipo_ta_create')
return reverse_lazy('compilacao:tipo_ta_create')
class TipoTaCreateView(FormMessagesMixin, CreateView):
@ -252,11 +252,12 @@ class TipoTaCreateView(FormMessagesMixin, CreateView):
return self.render_to_response(self.get_context_data(form=form))
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
def cancel_url(self):
return reverse_lazy('tipo_ta_list')
return reverse_lazy('compilacao:tipo_ta_list')
class TipoTaDetailView(CompMixin, DetailView):
@ -277,23 +278,26 @@ class TipoTaUpdateView(CompMixin, UpdateView):
return self.render_to_response(self.get_context_data(form=form))
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
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):
model = TipoTextoArticulado
template_name = "compilacao/confirm_delete.html"
template_name = "crud/confirm_delete.html"
@property
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):
return reverse_lazy('tipo_ta_list')
return reverse_lazy('compilacao:tipo_ta_list')
class TaListView(ListView):
@ -307,7 +311,7 @@ class TaListView(ListView):
@property
def create_url(self):
return reverse_lazy('ta_create')
return reverse_lazy('compilacao:ta_create')
def get_context_data(self, **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.')
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
def cancel_url(self):
return reverse_lazy('ta_list')
return reverse_lazy('compilacao:ta_list')
class TaUpdateView(CompMixin, UpdateView):
@ -362,23 +367,26 @@ class TaUpdateView(CompMixin, UpdateView):
return self.render_to_response(self.get_context_data(form=form))
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
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):
model = TextoArticulado
template_name = "compilacao/confirm_delete.html"
template_name = "crud/confirm_delete.html"
@property
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):
return reverse_lazy('ta_list')
return reverse_lazy('compilacao:ta_list')
class TextView(ListView, CompMixin):
@ -750,7 +758,8 @@ class DispositivoEditView(TextEditView):
if not dnext.exists():
dnext = []
dnext[0] = d
dnext.append(d)
pais = [d.dispositivo_pai_id, ]
else:
if dnext[0].nivel > d.nivel:
@ -1413,8 +1422,8 @@ class ActionsEditView(ActionsEditMixin, TemplateView):
class DispositivoSuccessUrlMixin(object):
def get_success_url(self):
return reverse(
'dispositivo', kwargs={
return reverse_lazy(
'compilacao:dispositivo', kwargs={
'ta_id': self.kwargs[
'ta_id'],
'dispositivo_id': self.kwargs[
@ -1456,6 +1465,7 @@ class NotasCreateView(NotaMixin, CreateView):
return super(NotasCreateView, self).get(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
self.object = None
try:
ta_id = kwargs.pop('ta_id')
dispositivo_id = kwargs.pop('dispositivo_id')
@ -1721,7 +1731,7 @@ class PublicacaoListView(ListView):
@property
def create_url(self):
return reverse_lazy(
'ta_pub_create',
'compilacao:ta_pub_create',
kwargs={'ta_id': self.kwargs['ta_id']})
def get_queryset(self):
@ -1743,7 +1753,7 @@ class PublicacaoCreateView(FormMessagesMixin, CreateView):
def get_success_url(self):
return reverse_lazy(
'ta_pub_detail',
'compilacao:ta_pub_detail',
kwargs={
'pk': self.object.id,
'ta_id': self.kwargs['ta_id']})
@ -1751,7 +1761,7 @@ class PublicacaoCreateView(FormMessagesMixin, CreateView):
@property
def cancel_url(self):
return reverse_lazy(
'ta_pub_list',
'compilacao:ta_pub_list',
kwargs={'ta_id': self.kwargs['ta_id']})
def get_initial(self):
@ -1776,7 +1786,7 @@ class PublicacaoUpdateView(CompMixin, UpdateView):
return self.render_to_response(self.get_context_data(form=form))
def get_success_url(self):
return reverse_lazy('ta_pub_detail',
return reverse_lazy('compilacao:ta_pub_detail',
kwargs={
'pk': self.object.id,
'ta_id': self.kwargs['ta_id']})
@ -1788,15 +1798,15 @@ class PublicacaoUpdateView(CompMixin, UpdateView):
class PublicacaoDeleteView(CompMixin, DeleteView):
model = Publicacao
template_name = "compilacao/confirm_delete.html"
template_name = "crud/confirm_delete.html"
@property
def detail_url(self):
return reverse_lazy('ta_pub_detail',
return reverse_lazy('compilacao:ta_pub_detail',
kwargs={
'pk': self.object.id,
'ta_id': self.kwargs['ta_id']})
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']})

1
norma/views.py

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

56
static/js/compilacao.js

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

436
static/js/compilacao_edit.js

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

340
static/js/compilacao_notas.js

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

106
static/js/compilacao_view.js

@ -24,27 +24,27 @@ function isElementInViewport (el) {
}
function textoMultiVigente(item, diff) {
var elv = null;
var ldpts = $(".dptt")
for (var i = 0; i < ldpts.length; i++) {
if ($(ldpts[i]).hasClass('displaynone'))
continue;
if (isElementInViewport( ldpts[i])) {
var elv = null;
var ldpts = $(".dptt")
for (var i = 0; i < ldpts.length; i++) {
if ($(ldpts[i]).hasClass('displaynone'))
continue;
if (isElementInViewport( ldpts[i])) {
if (i+1 < ldpts.length)
elv = ldpts[i+1];
elv = ldpts[i+1];
else {
elv = ldpts[i];
}
break;
}
}
break;
}
}
$(".cp .tipo-vigencias a").removeClass("selected")
$(item).addClass("selected")
$(".dptt.desativado").removeClass("displaynone");
$(".dtxt").removeClass("displaynone");
$(".dtxt.diff").remove();
$(".link_alterador").removeClass("displaynone");
$(".cp .tipo-vigencias a").removeClass("selected")
$(item).addClass("selected")
$(".dptt.desativado").removeClass("displaynone");
$(".dtxt").removeClass("displaynone");
$(".dtxt.diff").remove();
$(".link_alterador").removeClass("displaynone");
if (diff) {
$(".dtxt[id^='da'").each(function() {
@ -103,65 +103,65 @@ function textoMultiVigente(item, diff) {
}
if (elv) {
$('html, body').animate({
scrollTop: $(elv).parent().offset().top - 60
}, 0);
$('html, body').animate({
scrollTop: $(elv).parent().offset().top - 60
}, 0);
}
}
function textoVigente(item, link) {
var elv = null;
var ldpts = $(".dptt")
for (var i = 0; i < ldpts.length; i++) {
if ($(ldpts[i]).hasClass('displaynone'))
continue;
if (isElementInViewport( ldpts[i])) {
var elv = null;
var ldpts = $(".dptt")
for (var i = 0; i < ldpts.length; i++) {
if ($(ldpts[i]).hasClass('displaynone'))
continue;
if (isElementInViewport( ldpts[i])) {
if (i+1 < ldpts.length)
elv = ldpts[i+1];
elv = ldpts[i+1];
else {
elv = ldpts[i];
}
break;
}
}
$(".cp .tipo-vigencias a").removeClass("selected")
$(item).addClass("selected")
$(".dptt.desativado").addClass("displaynone");
$(".link_alterador").removeClass("displaynone");
if (!link)
$(".link_alterador").addClass("displaynone");
if (elv) {
$('html, body').animate({
scrollTop: $(elv).parent().offset().top - 60
}, 0);
break;
}
}
$(".cp .tipo-vigencias a").removeClass("selected")
$(item).addClass("selected")
$(".dptt.desativado").addClass("displaynone");
$(".link_alterador").removeClass("displaynone");
if (!link)
$(".link_alterador").addClass("displaynone");
if (elv) {
$('html, body').animate({
scrollTop: $(elv).parent().offset().top - 60
}, 0);
}
}
$(document).ready(function() {
setTimeout(function() {
var href = location.href.split('#')
if (href.length == 2) {
$('html, body').animate({
var href = location.href.split('#')
if (href.length == 2) {
$('html, body').animate({
scrollTop: $('#dptt' + href[1] ).offset().top - window.innerHeight / 9
}, 0);
}
}, 100);
$("#btn_font_menos").click(function() {
$(".dpt").css("font-size", "-=1");
});
$("#btn_font_mais").click(function() {
$(".dpt").css("font-size", "+=1");
});
$("#btn_font_menos").click(function() {
$(".dpt").css("font-size", "-=1");
});
$("#btn_font_mais").click(function() {
$(".dpt").css("font-size", "+=1");
});
$(".dpt").each(function() {
$(".dpt.bloco_alteracao .dpt").each(function() {
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 %}
{% block title %}
{% if view.title %}
<h1 class="page-header">{{ view.title|safe|linebreaksbr }}</h1>
{% endif %}
<h1 class="page-header">
{% if view.title %}
{{ view.title|safe|linebreaksbr }}
{% else %}
{{ title|safe|linebreaksbr }}
{% endif %}
</h1>
{% endblock %}
</div>
@ -219,14 +223,10 @@
<!-- 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 '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>
{# 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-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 %}
{% if object_list.count >= 100 %}
<div class="alert-box success radius">
{% trans 'Use argumentos para simplificar listagem...' %}
</div>
<div class="alert-box success radius">
{% trans 'Use argumentos para simplificar listagem...' %}
</div>
{% endif %}
{% for dpt in object_list %}
{% ifchanged dpt.ta%}
{% if not forloop.first %}</ul>{% endif %}
<div class="ta_title">{{dpt.ta}}</div>
<ul>
{% endifchanged %}
{% ifchanged dpt.ta%}
{% if not forloop.first %}</ul>{% endif %}
<div class="ta_title">{{dpt.ta}}</div>
<ul>
{% endifchanged %}
{% if dpt.is_relative_auto_insert and dpt.dispositivo_pai.nivel != 0 %}
<li>
<div class="iteminput">
<input type="{{request.GET.tipo_form}}" name="dispositivo_ref" id="r{{dpt.pk}}" value="{{dpt.pk}}"/>
</div>
<div class="itemlabel">
<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>
</div>
</li>
{% elif not dpt.tipo_dispositivo.dispositivo_de_articulacao %}
<li>
<div class="iteminput">
<input type="{{request.GET.tipo_form}}" name="dispositivo_ref" id="r{{dpt.pk}}" value="{{dpt.pk}}"/>
</div>
<div class="itemlabel">
<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>
</div>
</li>
{% endif%}
{% if forloop.last %}</ul>{% endif %}
{% if dpt.is_relative_auto_insert and dpt.dispositivo_pai.nivel != 0 %}
<li>
<div class="iteminput">
<input type="{{request.GET.tipo_form}}" name="dispositivo_ref" id="r{{dpt.pk}}" value="{{dpt.pk}}"/>
</div>
<div class="itemlabel">
<label for="r{{dpt.dispositivo_pai.pk}}">{{dpt.dispositivo_pai.rotulo|safe}} - {{dpt.texto|safe}}</label>
<a target="_blank" href="{% url 'compilacao:ta_text' dpt.ta.pk%}#{{dpt.pk}}" class="nomenclatura_heranca">{% nomenclatura_heranca dpt 1 1 %}</a>
</div>
</li>
{% elif not dpt.tipo_dispositivo.dispositivo_de_articulacao %}
<li>
<div class="iteminput">
<input type="{{request.GET.tipo_form}}" name="dispositivo_ref" id="r{{dpt.pk}}" value="{{dpt.pk}}"/>
</div>
<div class="itemlabel">
<label for="r{{dpt.pk}}">{{dpt.rotulo|safe}} - {{dpt.texto|safe}}</label>
<a target="_blank" href="{% url 'compilacao:ta_text' dpt.ta.pk%}#{{dpt.pk}}" class="nomenclatura_heranca">{% nomenclatura_heranca dpt 1 1 %}</a>
</div>
</li>
{% endif%}
{% if forloop.last %}</ul>{% endif %}
{% 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 %}
{% block base_content %}
<div class="clearfix">
{% block actions %}
<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 'ta_pub_delete' object.ta.pk object.pk %}" class="btn btn-default">{% trans 'Excluir' %}</a>
<a href="{% url 'compilacao:ta_pub_edit' object.ta.pk object.pk %}" class="btn btn-default">{% trans 'Editar' %}</a>
<a href="{% url 'compilacao:ta_pub_delete' object.ta.pk object.pk %}" class="btn btn-default">{% trans 'Excluir' %}</a>
</div>
{% endblock actions %}
</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 sections_nav %}
{% endblock %}
</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>
<legend>{%trans 'Identificação Básica'%}</legend>
<div class="row">
<div class="col-md-4">
<div id="div_id_tipo" class="holder">
<label>{% field_verbose_name object 'tipo_publicacao' %}</label>
<p>{{ object.tipo_publicacao}}</p>
</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>
<legend>{%trans 'Identificação Básica'%}</legend>
<div class="row">
<div class="col-md-4">
<div id="div_id_tipo" class="holder">
<label>{% field_verbose_name object 'tipo_publicacao' %}</label>
<p>{{ object.tipo_publicacao}}</p>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div id="div_id_tipo" class="holder">
<label>{% field_verbose_name object 'data' %}</label>
<p>{{ object.data}}</p>
</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 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="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 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 class="row">
<div class="col-md-4">
<div id="div_id_tipo" class="holder">
<label>{% field_verbose_name object 'data' %}</label>
<p>{{ object.data}}</p>
</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 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>
{% endblock detail_content %}
{% endblock detail_content %}
{% endblock base_content %}

58
templates/compilacao/publicacao_list.html

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

36
templates/compilacao/text_edit.html

@ -7,7 +7,7 @@
{% load common_tags %}
{% 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 %}
{% block title%}
@ -15,29 +15,27 @@
{% endblock %}
<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}}
<div class="cp cpe">
{% include 'compilacao/text_edit_bloco.html'%}
</div>
<div class="cp cpe">
{% include 'compilacao/text_edit_bloco.html'%}
</div>
{% 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.super}}
<script type="text/javascript" src="{% static 'js/compilacao.js' %}"></script>
<script type="text/javascript" src="{% static 'js/compilacao_edit.js' %}"></script>
{{block.super}}
<script type="text/javascript" src="{% static 'js/compilacao.js' %}"></script>
<script type="text/javascript" src="{% static 'js/compilacao_edit.js' %}"></script>
{% endblock %}

238
templates/compilacao/text_edit_bloco.html

@ -3,132 +3,128 @@
{% load common_tags %}
{% for dpt in object_list %}
{% if dpt.nivel == view.flag_nivel_old %}
</div>
{% elif dpt.nivel < view.flag_nivel_old %}
{% close_div view.flag_nivel_old dpt.nivel 0 %}
{% endif%}
{% if forloop.first and view|isinst:'DispositivoEditView' %}
{% else %}
<div class="dpt" id="dpt{{dpt.pk}}" pk="{{dpt.pk}}">
{% endif%}
{% if view|render_actions_head:dpt %}
<div class="csform">
<form method="post" action="" action_ajax="{{dpt.pk}}/refresh">
<ul class="btns-action actions_top">
{% 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-tinymce"><a class="btn-top btn-action" pk="{{dpt.pk}}" action="refresh:tinymce" title="{% trans 'Editar o texto com TinyMCE'%}">E+</a></li>
{%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-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 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: 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: 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: Descer uma posição com todos os subniveis'%}">&#8650;</a></li>
</ul>
<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>
</ul>
<ul class="btns-action actions_bottom">
{% 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>
{% endfor %}
</ul>
<ul class="actions_inserts {% if not dpt.tipo_dispositivo.dispositivo_de_articulacao %}menu_flutuante{%endif%}">
{% if dpt.dispositivo_subsequente == None %}
{% 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>
<ul id="afe{{dpt.id}}" >
{% 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>
{% endfor %}
</ul>
</li>
{% endfor %}
{%endif%}
{% 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>
{% if dpt.dispositivos_filhos_set.exists %}
<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_bloco_dispositivo" pk={{dpt.pk}}>Excluir toda a estrutura deste dispositivo</a></li>
</ul>
{% endif %}
</li>
{% endif %}
<li><a onclick="onSubmitEditForm()" class="btn-salvar">&nbsp<span>Salvar</span></a></li>
</ul>
<div class="fields">
{% 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>
{%endif%}
</div>
<ul class="label_status" >
<li>Ordem: {{dpt.ordem}}, Nivel: {{dpt.nivel}}, Número: {{dpt.get_numero_completo}}</li>
<li><a>.</a></li>
</ul>
<ul class="btns-action actions_parents">
<div>Em Edição:</div>
{%for parent in dpt.get_parents_asc %}
<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>
{%endfor %}
<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>
{% if dpt.nivel == view.flag_nivel_old %}
</div>
{% elif dpt.nivel < view.flag_nivel_old %}
{% close_div view.flag_nivel_old dpt.nivel 0 %}
{% endif%}
{% if forloop.first and view|isinst:'DispositivoEditView' %}
{% else %}
<div class="dpt" id="dpt{{dpt.pk}}" pk="{{dpt.pk}}">
{% endif%}
{% if view|render_actions_head:dpt %}
<div class="csform">
<form method="post" action="" action_ajax="{{dpt.pk}}/refresh">
<ul class="btns-action actions_top">
{% 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-tinymce"><a class="btn-top btn-action" pk="{{dpt.pk}}" action="refresh:tinymce" title="{% trans 'Editar o texto com TinyMCE'%}">E+</a></li>
{%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-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 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: 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: 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: Descer uma posição com todos os subniveis'%}">&#8650;</a></li>
</ul>
<ul class="btns-action actions_left">
<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 class="btns-action actions_bottom">
{% 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>
{% endfor %}
</ul>
<ul class="actions_inserts {% if not dpt.tipo_dispositivo.dispositivo_de_articulacao %}menu_flutuante{%endif%}">
{% if dpt.dispositivo_subsequente == None %}
{% 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>
<ul id="afe{{dpt.id}}" >
{% 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>
{% endfor %}
</ul>
</li>
{% endfor %}
{%endif%}
{% 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>
{% if dpt.dispositivos_filhos_set.exists %}
<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_bloco_dispositivo" pk={{dpt.pk}}>Excluir toda a estrutura deste dispositivo</a></li>
</ul>
{% endif %}
</li>
{% endif %}
<li><a onclick="onSubmitEditForm()" class="btn-salvar">&nbsp<span>Salvar</span></a></li>
</ul>
<div class="fields">
{% 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>
{%endif%}
</div>
<ul class="label_status" >
<li>Ordem: {{dpt.ordem}}, Nivel: {{dpt.nivel}}, Número: {{dpt.get_numero_completo}}</li>
<li><a>.</a></li>
</ul>
<ul class="btns-action actions_parents">
<div>Em Edição:</div>
{%for parent in dpt.get_parents_asc %}
<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>
{%endfor %}
<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>
{% endif%}
{% 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 %}
<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>
</div>
{% endif %}
<div class="bloco {% dispositivo_desativado dpt view.inicio_vigencia view.fim_vigencia %} {{ dpt.tipo_dispositivo.class_css }}">
{% 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>
{% if dpt.ta_publicado_id != None and not dpt.tipo_dispositivo.dispositivo_de_articulacao %}
<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 }}
{% nota_automatica dpt ta_pub_list %}
{{ dpt.tipo_dispositivo.nota_automatica_sufixo_html|safe }}
</a>
{% endif %}
{% endspaceless %}
{% if view.is_ta_alterador and dpt.tipo_dispositivo.class_css == 'bloco_alteracao'%}
{%with node=dpt template_name='compilacao/text_edit_blocoalteracao.html' %}
{%include template_name%}
{%endwith%}
{% endif%}
</div>
{% endif%}
{% endif%}
{% 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 %}
<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>
</div>
{% endif %}
<div class="bloco {% dispositivo_desativado dpt view.inicio_vigencia view.fim_vigencia %} {{ dpt.tipo_dispositivo.class_css }}">
{% 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>
{% 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}}">
{{ dpt.tipo_dispositivo.nota_automatica_prefixo_html|safe }}
{% nota_automatica dpt ta_pub_list %}
{{ dpt.tipo_dispositivo.nota_automatica_sufixo_html|safe }}
</a>
{% endif %}
{% endspaceless %}
{% if view.is_ta_alterador and dpt.tipo_dispositivo.class_css == 'bloco_alteracao'%}
{%with node=dpt template_name='compilacao/text_edit_blocoalteracao.html' %}
{%include template_name%}
{%endwith%}
{% endif%}
</div>
{% endif%}
{% set_nivel_old view dpt.nivel %}
{% set_nivel_old view dpt.nivel %}
{% endfor %}
{% 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 %}
{% close_div view.flag_nivel_old view.flag_nivel_ini 0 %}
{% close_div view.flag_nivel_old view.flag_nivel_ini 0 %}
{% endif%}

14
templates/compilacao/text_edit_blocoalteracao.html

@ -1,11 +1,11 @@
{% load compilacao_filters %}
{% load common_tags %}
{% for ch in dpt.pk|get_bloco_atualizador %}
{% spaceless %}
<div class="dpt" id="d{{ch.id}}">
<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 }}
</div>
</div>
{% endspaceless %}
{% spaceless %}
<div class="dpt" id="d{{ch.id}}">
<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="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>
{% endspaceless %}
{% endfor %}

142
templates/compilacao/text_list.html

@ -6,89 +6,101 @@
{% load sass_tags %}
{% block head_content %}
{{block.super}}
<link rel="stylesheet" href="{% sass_src 'styles/compilacao.scss' %}" type="text/css">
{{block.super}}
<link rel="stylesheet" href="{% sass_src 'styles/compilacao.scss' %}" type="text/css">
{% endblock %}
{% block base_content %}
{% block actions %}
{% block actions %}
<div class="clearfix">
<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>
</div>
<div class="actions btn-group pull-right" role="group">
<a href="{% url 'compilacao:ta_text_edit' object.pk %}" class="btn btn-default">{% trans 'Editar Texto' %}</a>
</div>
</div>
{% endblock actions %}
{% endblock actions %}
{% block detail_content %}{{block.super}}
{% endblock %}
{% block detail_content %}
{{block.super}}
{% endblock %}
<div class="cp">
<div class="cp">
{% if object_list %}
{% if object_list %}
<div class="clearfix">
<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_mais" title="Aumentar tamanho da Letra">A</a>
</div>
<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_mais" title="Aumentar tamanho da Letra">A</a>
</div>
</div>
{% endif %}
{% endif %}
{% for key, values in view.get_vigencias.items %}
{% for key, values in view.get_vigencias.items %}
{% 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 %}
{% if forloop.first %}
{% 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>
{% endfor %}
{% if forloop.last %}
</ul>
{% if view.inicio_vigencia and view.fim_vigencia %}
<span class="vigencia-active">{% trans 'Vigência entre'%} <b>{{view.inicio_vigencia}}</b> {% trans 'e'%} <b>{{view.fim_vigencia}}</b>.</span>
{% else%}
<span class="vigencia-active">{% trans 'Vigência a partir de '%} <b>{{dispositivo.inicio_vigencia}}.</b></span>
{%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">
<li><a class="selected" onclick="textoMultiVigente(this, false);" title="{% trans 'Texto Multivigente Sequencial'%}">{% trans 'TMS'%}</a></li>
<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>
<ul class="tipo-vigencias">
<li><a class="selected" onclick="textoMultiVigente(this, false);" title="{% trans 'Texto Multivigente Sequencial'%}">{% trans 'TMS'%}</a></li>
<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>
{% include 'compilacao/text_list_bloco.html'%}
</div>
{% endblock base_content %}
{% block foot_js %}
{{block.super}}
<script type="text/javascript" src="{% static 'js/compilacao.js' %}"></script>
<script type="text/javascript" src="{% static 'js/compilacao_view.js' %}"></script>
{% if perms.compilacao.add_nota %}
<script type="text/javascript" src="{% static 'js/compilacao_notas.js' %}"></script>
{% endif %}
{{block.super}}
<script type="text/javascript" src="{% static 'js/compilacao.js' %}"></script>
<script type="text/javascript" src="{% static 'js/compilacao_view.js' %}"></script>
{% if perms.compilacao.add_nota %}
<script type="text/javascript" src="{% static 'js/compilacao_notas.js' %}"></script>
{% endif %}
{% endblock %}

309
templates/compilacao/text_list_bloco.html

@ -2,170 +2,177 @@
{% load compilacao_filters %}
{% load common_tags %}
<div class="display"></div>
{% for dpt in object_list %}
{% if dpt.nivel == view.flag_nivel_old %}
</div>
{% elif dpt.nivel < view.flag_nivel_old %}
{% close_div view.flag_nivel_old dpt.nivel 0 %}
{% endif%}
{% if dpt.nivel == view.flag_nivel_old %}
</div>
{% elif dpt.nivel < view.flag_nivel_old %}
{% close_div view.flag_nivel_old dpt.nivel 0 %}
{% endif%}
{% if forloop.first and view|isinst:'DispositivoView' %}
{% else %}
<div class="dpt {%if dpt.tipo_dispositivo.class_css == 'bloco_alteracao'%}bloco_alteracao{%endif%}" nivel="{{dpt.nivel}}">
{% endif%}
{% if forloop.first and view|isinst:'DispositivoView' %}
{% else %}
<div class="dpt {%if dpt.tipo_dispositivo.class_css == 'bloco_alteracao'%}bloco_alteracao{% endif %}" nivel="{{dpt.nivel}}">
{% endif%}
{% spaceless %}
<div class="{{ dpt.tipo_dispositivo.class_css }}">
<div class="dptt {% dispositivo_desativado dpt view.inicio_vigencia view.fim_vigencia %}" id="dptt{{dpt.pk}}" >
{% spaceless %}
<div class="{{ dpt.tipo_dispositivo.class_css }}">
<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 }}
<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 '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%}
<div class="dn" id="dn{{dpt.pk}}" pk="{{dpt.pk}}">{# Dispostivo Nota e Vides #}
<ul class="dnl">{# Dispostivo Nota Lista#}
{% if not dpt.tipo_dispositivo.dispositivo_de_articulacao%}
<div class="dn" id="dn{{dpt.pk}}" pk="{{dpt.pk}}">{# Dispostivo Nota e Vides #}
<ul class="dnl">{# Dispostivo Nota Lista#}
{% if cita and cita|lookup:dpt.pk %}
{% for vide in cita|lookup:dpt.pk %}
{%if not forloop.first %}
<li class="bullet">&#8226;</li>
{% endif %}
<li class="dnli" id="nt{{vide.pk}}">
{% if cita and cita|lookup:dpt.pk %}
{% for vide in cita|lookup:dpt.pk %}
<ul>
{% 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%}
<li class="dnli" id="nt{{vide.pk}}">
{% if citado and citado|lookup:dpt.pk %}
{% if cita and cita|lookup:dpt.pk %}
<li class="bullet">&#8226;</li>
{% endif %}
<ul>
{% 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 '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 '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 %}
{% for vide in citado|lookup:dpt.pk %}
{%if not forloop.first %}
<li class="bullet">&#8226;</li>
{% endif %}
<li class="dnli" id="nt{{vide.pk}}">
<ul>
<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">Citado em: </div>
<div class="ntexto">
{% if vide.dispositivo_base.dispositivo_pai.nivel != 0 and vide.dispositivo_base.dispositivo_pai.tipo_dispositivo.dispositivo_de_articulacao%}
<a href="{%url 'compilacao:ta_text' vide.dispositivo_base.dispositivo_pai.ta.pk%}#{{vide.dispositivo_base.dispositivo_pai.pk }}">{{ vide.dispositivo_base.dispositivo_pai}}</a>
{% else %}
<a href="{%url 'compilacao:ta_text' vide.dispositivo_base.ta.pk%}#{{vide.dispositivo_base.pk }}">{{ vide.dispositivo_base}}</a>
{% endif %}
{% if vide.texto %} - {{vide.texto}}{% endif %}
</div>
</li>
{% endfor %}
{% 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 %}
<li class="bullet">&#8226;</li>
{% endif %}
{% if notas and notas|lookup:dpt.pk %}
{% for nota in notas|lookup:dpt.pk %}
{% if citado and citado|lookup:dpt.pk %}
{% if cita and cita|lookup:dpt.pk %}<li class="bullet">&#8226;</li>{%endif%}
{% for vide in citado|lookup:dpt.pk %}
{%if not forloop.first %}<li class="bullet">&#8226;</li>{%endif%}
<li class="dnli" id="nt{{vide.pk}}">
<ul>
<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">Citado em: </div>
<div class="ntexto">
{% if vide.dispositivo_base.dispositivo_pai.nivel != 0 and vide.dispositivo_base.dispositivo_pai.tipo_dispositivo.dispositivo_de_articulacao%}
<a href="{%url 'ta_text' vide.dispositivo_base.dispositivo_pai.ta.pk%}#{{vide.dispositivo_base.dispositivo_pai.pk }}">{{ vide.dispositivo_base.dispositivo_pai}}</a>
{% else %}
<a href="{%url 'ta_text' vide.dispositivo_base.ta.pk%}#{{vide.dispositivo_base.pk }}">{{ vide.dispositivo_base}}</a>
{% endif %}
{% if vide.texto %} - {{vide.texto}}{% endif %}
</div>
</li>
{% endfor %}
{% 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 %}<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 not forloop.first %}
<li class="bullet">&#8226;</li>
{% endif %}
<li class="dnli" id="nt{{nota.pk}}">
<ul>
{% if user.is_authenticated %}
{% if user == nota.owner and perms.compilacao.change_nota or user.is_superuser%}
<li><a class="btn-action btn-nota-edit" model="nota" pk="{{nota.pk}}">Editar</a></li>
<li class="bullet">&#8226;</li>
{% 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 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 not forloop.first %}<li class="bullet">&#8226;</li>{%endif%}
<li class="dnli" id="nt{{nota.pk}}">
<ul>
{% if user.is_authenticated %}
{% if user == nota.owner and perms.compilacao.change_nota or user.is_superuser%}
<li><a class="btn-action btn-nota-edit" model="nota" pk="{{nota.pk}}">Editar</a></li>
<li class="bullet">&#8226;</li>
{% 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 %}
<div class="ntitulo">
{%if nota.url_externa %}<a target="_blank" href="{{nota.url_externa}}">{% endif %}{{nota.titulo}} - {%if nota.url_externa %}</a>{% endif %}
</div>
{% endif %}
<div class="ntexto">
{%if nota.url_externa %}<a target="_blank" href="{{nota.url_externa}}">{% endif %}{{ nota.texto}}{%if nota.url_externa %}</a>{% endif %}
</div>
{%if nota.titulo %}
<div class="ntitulo">
{%if nota.url_externa %}<a target="_blank" href="{{nota.url_externa}}">{%endif%}{{nota.titulo}} - {%if nota.url_externa %}</a>{%endif%}
</div>
{%endif%}
<div class="ntexto">
{%if nota.url_externa %}<a target="_blank" href="{{nota.url_externa}}">{%endif%}{{ nota.texto}}{%if nota.url_externa %}</a>{%endif%}
</div>
{%comment%}
<ul>
<li class="nefetividade" title="{% trans 'Data de Efetividade'%}">{{nota.efetividade|date:"d M Y"}}</li>
<li class="bullet">&#8226;</li>
<li class="npublicidade">{{nota.get_publicidade_display}}</li>
</ul>
{%endcomment%}
</li>
{% endif %}
{% endfor %}
{% endif %}
</ul>
</div>
{% 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 %}
{%comment%}
<ul>
<li class="nefetividade" title="{% trans 'Data de Efetividade'%}">{{nota.efetividade|date:"d M Y"}}</li>
<li class="bullet">&#8226;</li>
<li class="npublicidade">{{nota.get_publicidade_display}}</li>
</ul>
{%endcomment%}
</li>
{% endif %}
{% endfor %}
{% endif %}
</ul>
</div>
{% endif%}
</div>
{% endspaceless %}
{% if 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 %}
{% 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 %}
{% close_div view.flag_nivel_old view.flag_nivel_ini 0 %}
{% close_div view.flag_nivel_old view.flag_nivel_ini 0 %}
{% endif%}

10
templates/compilacao/text_list_blocoalteracao.html

@ -1,13 +1,13 @@
{% load compilacao_filters %}
{% load common_tags %}
{% for ch in dpt.pk|get_bloco_atualizador %}
{% spaceless %}
{% spaceless %}
{% 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}}">
{{ 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>
{%endif%}
{% endspaceless %}
{% endspaceless %}
{% endfor %}

111
templates/compilacao/textoarticulado_detail.html

@ -4,85 +4,82 @@
{% load common_tags %}
{% block sections_nav %}
<ul class="nav nav-pills navbar-right">
{%if object %}
<li>
{% 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>
{%else%}
<a href="{% url 'ta_detail' object.pk %}">{% trans 'Início' %}</a>
{%endif%}
</li>
<li><a href="{% url '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>
{%endif %}
</ul>
<ul class="nav nav-pills navbar-right">
{%if object %}
<li>
{% 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>
{%else%}
<a href="{% url 'compilacao:ta_detail' object.pk %}">{% trans 'Início' %}</a>
{%endif%}
</li>
<li><a href="{% url 'compilacao:ta_pub_list' object.pk %}">{% model_verbose_name_plural 'compilacao.models.Publicacao' %}</a></li>
<li><a href="{% url 'compilacao:ta_text' object.pk %}">{% trans 'Texto da Norma' %}</a></li>
{%endif %}
</ul>
{% endblock %}
{% block base_content %}
{% block actions %}
<div class="clearfix">
<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 'ta_text_edit' object.pk %}" class="btn btn-default">{% trans 'Editar Texto' %}</a>
{% block actions %}
<div class="clearfix">
<div class="actions btn-group pull-right" role="group">
<a href="{% url 'compilacao:ta_edit' object.pk %}" class="btn btn-default">{% trans 'Editar Metadados do Texto Articulado' %}</a>
<a href="{% url 'compilacao:ta_text_edit' object.pk %}" class="btn btn-default">{% trans 'Editar Texto' %}</a>
</div>
</div>
</div>
{% 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>
{% endblock actions %}
<div class="row">
<div class="col-md-3">
{% 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">
<div class="col-md-3">
<div id="div_id_tipo" class="holder">
<label>{% field_verbose_name object 'tipo_ta' %}</label>
<p>{{ object.tipo_ta}}</p>
<label>{% field_verbose_name object 'tipo_ta' %}</label>
<p>{{ object.tipo_ta}}</p>
</div>
</div>
</div>
{% if object.content_object and object.content_object.tipo%}
<div class="col-md-3">
<div id="div_id_tipo" class="holder">
{% if object.content_object and object.content_object.tipo%}
<div class="col-md-3">
<div id="div_id_tipo" class="holder">
<label>{% field_verbose_name object.content_object 'tipo' %}</label>
<p>{{ object.content_object.tipo}}</p>
</div>
</div>
</div>
{%endif%}
{%endif%}
<div class="col-md-2">
<div class="col-md-2">
<div id="div_id_numero" class="holder">
<label>{% field_verbose_name object 'numero' %}</label>
<p>{{ object.numero}}</p>
<label>{% field_verbose_name object 'numero' %}</label>
<p>{{ object.numero}}</p>
</div>
</div>
</div>
<div class="col-md-2">
<div class="col-md-2">
<div id="div_id_ano" class="holder">
<label>{% field_verbose_name object 'ano' %}</label>
<p>{{ object.ano}}</p>
<label>{% field_verbose_name object 'ano' %}</label>
<p>{{ object.ano}}</p>
</div>
</div>
</div>
<div class="col-md-2">
<div class="col-md-2">
<div id="div_id_data" class="holder">
<label>{% field_verbose_name object 'data' %}</label>
<p>{{ object.data}}</p>
<label>{% field_verbose_name object 'data' %}</label>
<p>{{ object.data}}</p>
</div>
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-md-12">
<br>
<div class="row">
<div class="col-md-12">
<div id="div_id_ementa" class="holder">
<label>{% field_verbose_name object 'ementa' %}</label>
<p>{{ object.ementa|safe}}</p>
<label>{% field_verbose_name object 'ementa' %}</label>
<p>{{ object.ementa|safe}}</p>
</div>
</div>
</div>
</div>
</fieldset>
{% endblock detail_content %} {% endblock base_content %}
</fieldset>
{% endblock detail_content %}
{% endblock base_content %}

54
templates/compilacao/textoarticulado_list.html

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

21
templates/compilacao/textoarticulado_menu_config.html

@ -1,17 +1,16 @@
{% load i18n %}
{% load common_tags %}
<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>
</button>
<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 '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 '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="#">TODO: Tipo de Dispositivo</a></li>
<li><a href="#">TODO: Perfil Estrutural de Textos Articulados</a></li>
</ul>
<ul class="dropdown-menu" role="menu">
<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 '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 'tipovide:list' %}">{%model_verbose_name_plural 'compilacao.models.TipoVide'%}</a></li>
<li><a href="#">TODO: Tipo de Dispositivo</a></li>
<li><a href="#">TODO: Perfil Estrutural de Textos Articulados</a></li>
</ul>
</div>

91
templates/compilacao/tipotextoarticulado_detail.html

@ -1,54 +1,51 @@
{% extends "base.html" %} {% load i18n %} {% load compilacao_filters %}
{% load common_tags %}
{% block base_content %} {# FIXME is this the best markup to use? #}
{% block base_content %}
{% block sections_nav %}
{% endblock %}
<div class="clearfix">
{% block sections_nav %}
{% endblock %}
<div class="clearfix">
{% block actions %}
<ul class="button-group right">
<li><a href="{% url 'tipo_ta_edit' object.pk %}" class="button tiny">{% trans 'Editar' %}</a></li>
<li><a href="{% url 'tipo_ta_delete' object.pk %}" class="button alert tiny">{% trans 'Excluir' %}</a></li>
</ul>
<div class="actions btn-group pull-right" role="group">
<a class="btn btn-default" href="{% url 'compilacao:tipo_ta_edit' object.pk %}">{% trans 'Editar' %}</a>
<a class="btn btn-default" href="{% url 'compilacao:tipo_ta_delete' object.pk %}">{% trans 'Excluir' %}</a>
</div>
{% endblock actions %}
</div>
{% 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">
<div class="col-md-2">
<div id="div_id_tipo" class="holder">
<label>{% field_verbose_name object 'sigla' %}</label>
<p>{{ object.sigla}}</p>
</div>
</div>
<div class="col-md-4">
<div id="div_id_numero" class="holder">
<label>{% field_verbose_name object 'descricao' %}</label>
<p>{{ object.descricao}}</p>
</div>
</div>
<div class="col-md-3">
<div id="div_id_ano" class="holder">
<label>{% field_verbose_name object 'content_type' %}</label>
<p>{{ object.content_type|default:""}}</p>
</div>
</div>
<div class="col-md-3">
<div id="div_id_ano" class="holder">
<label>{% field_verbose_name object 'participacao_social' %}</label>
<p>{{ object.get_participacao_social_display}}</p>
</div>
</div>
</div>
</fieldset>
{% endblock detail_content %}
</div>
{% 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">
<div class="col-md-2">
<div id="div_id_tipo" class="holder">
<label>{% field_verbose_name object 'sigla' %}</label>
<p>{{ object.sigla}}</p>
</div>
</div>
<div class="col-md-4">
<div id="div_id_numero" class="holder">
<label>{% field_verbose_name object 'descricao' %}</label>
<p>{{ object.descricao}}</p>
</div>
</div>
<div class="col-md-3">
<div id="div_id_ano" class="holder">
<label>{% field_verbose_name object 'content_type' %}</label>
<p>{{ object.content_type|default:""}}</p>
</div>
</div>
<div class="col-md-3">
<div id="div_id_ano" class="holder">
<label>{% field_verbose_name object 'participacao_social' %}</label>
<p>{{ object.get_participacao_social_display}}</p>
</div>
</div>
</div>
</fieldset>
{% endblock detail_content %}
{% endblock base_content %}

62
templates/compilacao/tipotextoarticulado_list.html

@ -4,37 +4,35 @@
{% load common_tags %}
{% 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">
<a href="{{ view.create_url }}" class="btn btn-default">
{% trans 'Adicionar'%} {%model_verbose_name 'compilacao.models.TipoTextoArticulado'%}
</a>
{% block more_buttons %}
{% endblock more_buttons %}
</div>
{% if not object_list %}
<p>{{ NO_ENTRIES_MSG }}</p>
{% else %}
<table class="table table-striped table-hover" width=100%>
<thead>
<tr>
<th>{% fieldclass_verbose_name 'compilacao.models.TipoTextoArticulado' 'sigla' %}</th>
<th>{% fieldclass_verbose_name 'compilacao.models.TipoTextoArticulado' 'descricao' %}</th>
<th>{% fieldclass_verbose_name 'compilacao.models.TipoTextoArticulado' 'content_type' %}</th>
</tr>
</thead>
<tbody>
{% for tipo_ta in object_list %}
<tr>
<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'%}
{% if not object_list %}
<p>{{ NO_ENTRIES_MSG }}</p>
{% else %}
<table class="table table-striped table-hover" width=100%>
<thead>
<tr>
<th>{% fieldclass_verbose_name 'compilacao.models.TipoTextoArticulado' 'sigla' %}</th>
<th>{% fieldclass_verbose_name 'compilacao.models.TipoTextoArticulado' 'descricao' %}</th>
<th>{% fieldclass_verbose_name 'compilacao.models.TipoTextoArticulado' 'content_type' %}</th>
</tr>
</thead>
<tbody>
{% for tipo_ta in object_list %}
<tr>
<td><a href="{% url 'compilacao: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 %}

35
templates/crud/confirm_delete.html

@ -1,21 +1,24 @@
{% extends "base.html" %}
{% load i18n %}
{% block base_content %}
<form action="" method="post">{% csrf_token %}
<div class="callout panel text-center radius clearfix">
<p>
{% 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>
{% block title %}
{% with object as title %}
{{ block.super }}
{% endwith %}
{% endblock %}
</div>
</form>
{% block base_content %}
<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 %}

11
templates/norma/normajuridica_detail.html

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

Loading…
Cancel
Save