mirror of https://github.com/interlegis/sapl.git
LeandroRoberto
9 years ago
9 changed files with 876 additions and 527 deletions
@ -0,0 +1,30 @@ |
|||
# -*- coding: utf-8 -*- |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('compilacao', '0009_auto_20151007_1635'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.CreateModel( |
|||
name='TipoDispositivoRelationship', |
|||
fields=[ |
|||
('id', models.AutoField(verbose_name='ID', auto_created=True, primary_key=True, serialize=False)), |
|||
('filho_permitido', models.ForeignKey(related_name='filho_permitido', to='compilacao.TipoDispositivo')), |
|||
('pai', models.ForeignKey(related_name='pai', to='compilacao.TipoDispositivo')), |
|||
], |
|||
options={ |
|||
'abstract': False, |
|||
}, |
|||
), |
|||
migrations.AddField( |
|||
model_name='tipodispositivo', |
|||
name='relacoes_diretas_pai_filho', |
|||
field=models.ManyToManyField(related_name='filhos_permitidos', through='compilacao.TipoDispositivoRelationship', to='compilacao.TipoDispositivo'), |
|||
), |
|||
] |
@ -0,0 +1,27 @@ |
|||
# -*- coding: utf-8 -*- |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('compilacao', '0010_auto_20151105_1532'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterModelOptions( |
|||
name='tipodispositivorelationship', |
|||
options={'verbose_name': 'Relação Direta Permitida', 'verbose_name_plural': 'Relaçõe Diretas Permitidas', 'ordering': ['pai', 'filho_permitido']}, |
|||
), |
|||
migrations.AlterField( |
|||
model_name='tipodispositivorelationship', |
|||
name='filho_permitido', |
|||
field=models.ForeignKey(null=True, to='compilacao.TipoDispositivo', blank=True, default=None, related_name='filho_permitido'), |
|||
), |
|||
migrations.AlterUniqueTogether( |
|||
name='tipodispositivorelationship', |
|||
unique_together=set([('pai', 'filho_permitido')]), |
|||
), |
|||
] |
@ -0,0 +1,34 @@ |
|||
# -*- coding: utf-8 -*- |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('compilacao', '0011_auto_20151105_1540'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AddField( |
|||
model_name='tipodispositivorelationship', |
|||
name='filho_de_insercao_automatica', |
|||
field=models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], default=False, verbose_name='Filho de Inserção Automática'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='tipodispositivo', |
|||
name='relacoes_diretas_pai_filho', |
|||
field=models.ManyToManyField(to='compilacao.TipoDispositivo', related_name='possiveis_pais', through='compilacao.TipoDispositivoRelationship'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='tipodispositivorelationship', |
|||
name='filho_permitido', |
|||
field=models.ForeignKey(blank=True, default=None, null=True, related_name='pais', to='compilacao.TipoDispositivo'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='tipodispositivorelationship', |
|||
name='pai', |
|||
field=models.ForeignKey(to='compilacao.TipoDispositivo', related_name='filhos_permitidos'), |
|||
), |
|||
] |
@ -0,0 +1,24 @@ |
|||
# -*- coding: utf-8 -*- |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('compilacao', '0012_auto_20151105_1658'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='tipodispositivo', |
|||
name='relacoes_diretas_pai_filho', |
|||
field=models.ManyToManyField(to='compilacao.TipoDispositivo', related_name='_relacoes_diretas_pai_filho_+', through='compilacao.TipoDispositivoRelationship'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='tipodispositivorelationship', |
|||
name='filho_permitido', |
|||
field=models.ForeignKey(null=True, blank=True, related_name='possiveis_pais', to='compilacao.TipoDispositivo', default=None), |
|||
), |
|||
] |
@ -1,210 +1,261 @@ |
|||
|
|||
var flag_add_next = false; |
|||
var flag_add_next_pk = 0; |
|||
var flag_add_next_pai = 0; |
|||
|
|||
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) { |
|||
$('.dpt-selected').html(data); |
|||
clearEditSelected(); |
|||
reloadFunctionClicks(); |
|||
}).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, __action, addeditselected) { |
|||
|
|||
var _pk = __pk; |
|||
var _action = __action; |
|||
var _variacao = ''; |
|||
var _tipo_pk = ''; |
|||
|
|||
if (event != null) { |
|||
_pk = event.currentTarget.getAttribute('pk'); |
|||
_action = $(this).attr('action'); |
|||
_variacao = $(this).attr('variacao'); |
|||
_tipo_pk = $(this).attr('tipo_pk'); |
|||
} |
|||
|
|||
if (flag_add_next_pk == 0) |
|||
flag_add_next_pk = _pk |
|||
|
|||
var url = '' |
|||
if (_action == '') |
|||
return |
|||
else if ( _action == null) |
|||
url = _pk+'/refresh?pkadd='+flag_add_next_pk; |
|||
else if (_action.startsWith('refresh')) { |
|||
|
|||
var str = _action.split(':'); |
|||
if (str.length > 1) { |
|||
editortype = str[1]; |
|||
} |
|||
|
|||
url = _pk+'/refresh?pkadd='+flag_add_next_pk+url; |
|||
} |
|||
else { |
|||
url = _pk+'/actions?action='+_action; |
|||
url += '&tipo_pk='+_tipo_pk; |
|||
url += '&variacao='+_variacao; |
|||
if (addeditselected == null || addeditselected) { |
|||
$("#message_block").css("display", "block"); |
|||
} |
|||
} |
|||
|
|||
$.get(url).done(function( data ) { |
|||
|
|||
if ( _action == null || _action.startsWith('refresh')) { |
|||
|
|||
if (flag_add_next) { |
|||
|
|||
if (addeditselected) |
|||
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 = ''; |
|||
|
|||
if (event != null) { |
|||
pk_refresh = event.currentTarget.getAttribute('pk'); |
|||
_action = $(this).attr('action'); |
|||
_variacao = $(this).attr('variacao'); |
|||
_tipo_pk = $(this).attr('tipo_pk'); |
|||
} |
|||
|
|||
if (pk_edit == null) |
|||
pk_edit = pk_refresh; |
|||
|
|||
var url = ''; |
|||
if (_action == '') |
|||
return; |
|||
else if ( _action == null) { |
|||
url = pk_refresh+'/refresh?pkadd='+pk_edit; |
|||
} |
|||
else if (_action.startsWith('refresh')) { |
|||
|
|||
var str = _action.split(':'); |
|||
if (str.length > 1) { |
|||
editortype = str[1]; |
|||
SetCookie("editortype", editortype, 30) |
|||
|
|||
} |
|||
url = pk_refresh+'/refresh?pkadd='+pk_edit+url; |
|||
} |
|||
else { |
|||
|
|||
url = pk_refresh+'/actions?action='+_action; |
|||
url += '&tipo_pk='+_tipo_pk; |
|||
url += '&variacao='+_variacao; |
|||
|
|||
$("#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 ).html( data); |
|||
flag_add_next = false |
|||
} |
|||
else { |
|||
clearEditSelected(); |
|||
$( '#dpt' + _pk ).prepend( data ); |
|||
} |
|||
reloadFunctionClicks(); |
|||
|
|||
if ( editortype == 'tinymce' ) { |
|||
initTinymce(); |
|||
} |
|||
else if (editortype == 'textarea') { |
|||
$('.csform form').submit(onSubmitEditForm); |
|||
} |
|||
else if (editortype == 'construct') { |
|||
$('.csform .btn-salvar').parent().remove(); |
|||
$('.csform .btn-salvar, .csform textarea').remove(); |
|||
$('#dpt'+flag_add_next_pk).css('min-height', $('.actions_right').height()*2); |
|||
$('.actions_inserts').removeClass('menu_flutuante'); |
|||
} |
|||
$(".edt-"+editortype).addClass('selected'); |
|||
//$(".container").addClass('class_color_container');
|
|||
|
|||
if (addeditselected == null || addeditselected) { |
|||
$('html, body').animate({ |
|||
scrollTop: $('#dpt' + flag_add_next_pk ).offset().top - window.innerHeight / 10 |
|||
}, 300); |
|||
$('#dpt'+flag_add_next_pk).addClass('dpt-selected'); |
|||
flag_add_next_pk = 0; |
|||
} |
|||
} |
|||
|
|||
else if (_action == 'add_next') { |
|||
|
|||
clearEditSelected(); |
|||
|
|||
flag_add_next_pk = data.pk; |
|||
flag_add_next_pai = data.pai; |
|||
|
|||
if (flag_add_next_pk != null) |
|||
for (var pai = 0; pai < flag_add_next_pai.length; pai++) |
|||
if (flag_add_next_pai[pai] != -1) { |
|||
flag_add_next = true; |
|||
flag_add_next_pk = data.pk; |
|||
clickUpdateDispositivo(null, flag_add_next_pai[pai], 'refresh', pai == 0); |
|||
} |
|||
else { |
|||
href = location.href.split('#')[0] |
|||
location.href = href+'#'+flag_add_next_pk |
|||
location.reload(true) |
|||
} |
|||
else { |
|||
alert('Erro na inserção!'); |
|||
flag_add_next_pk = 0; |
|||
flag_add_next = false; |
|||
} |
|||
} |
|||
else { |
|||
clearEditSelected(); |
|||
reloadFunctionClicks(); |
|||
flag_add_next_pk = 0; |
|||
} |
|||
}).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 ).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) { |
|||
$('html, body').animate({ |
|||
scrollTop: $('#dpt' + pk_edit ).offset().top - window.innerHeight / 10 |
|||
}, 300); |
|||
$('#dpt'+pk_edit).addClass('dpt-selected'); |
|||
} |
|||
} |
|||
|
|||
else if (_action == 'add_next' || _action == 'add_in') { |
|||
clearEditSelected(); |
|||
if (data.pk != null) { |
|||
refreshScreenFocusPk(data); |
|||
} |
|||
else { |
|||
alert('Erro na inserçã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) |
|||
} |
|||
} |
|||
|
|||
function clearEditSelected() { |
|||
$(".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-inserts, .btn-edit').off(); |
|||
|
|||
$('.dpt .de, .btn-edit').on('click', clickEditDispositivo); |
|||
$('.dpt .de, .btn-action, .btn-inserts, .btn-edit').off(); |
|||
|
|||
$('.btn-action, .btn-inserts').on( |
|||
'click', clickUpdateDispositivo); |
|||
$('.dpt .de, .btn-edit').on('click', clickEditDispositivo); |
|||
|
|||
$('.btn-action, .btn-inserts').on('click', clickUpdateDispositivo); |
|||
|
|||
$('#editdi_texto').focus(); |
|||
$('#editdi_texto').focus(); |
|||
} |
|||
|
|||
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" |
|||
}); |
|||
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" |
|||
}); |
|||
} |
|||
|
|||
//cookies
|
|||
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(); |
|||
} |
|||
|
|||
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)); |
|||
} |
|||
|
|||
$(document).ready(function() { |
|||
|
|||
editortype = ReadCookie("editortype") |
|||
|
|||
if (editortype == null || editortype == "") { |
|||
editortype = "construct" |
|||
SetCookie("editortype", editortype, 30) |
|||
} |
|||
|
|||
reloadFunctionClicks(); |
|||
$("#message_block").css("display", "none"); |
|||
|
|||
clickUpdateDispositivo(null, 60933, 'refresh', true); |
|||
href = location.href.split('#') |
|||
if (href.length == 2) { |
|||
clickUpdateDispositivo(null, href[1], href[1], 'refresh', true); |
|||
} |
|||
|
|||
}); |
|||
|
Loading…
Reference in new issue