Browse Source

Add bts de incl com front-end bootstrap

pull/590/head
LeandroRoberto 8 years ago
parent
commit
7e012650fc
  1. 8
      sapl/compilacao/forms.py
  2. 4
      sapl/compilacao/models.py
  3. 43
      sapl/compilacao/views.py
  4. 51
      sapl/static/js/compilacao_edit.js
  5. 20
      sapl/static/styles/compilacao.scss

8
sapl/compilacao/forms.py

@ -640,8 +640,10 @@ class DispositivoEdicaoBasicaForm(ModelForm):
btns_excluir = [
HTML('<a class="btn btn-danger btn-action btn-excluir" '
'action="json_delete_item_dispositivo" '
'title="%s"'
'title="%s" '
'pk="%s" '
'>%s</a>' % (_('Excluir apenas este dispositivo.'),
inst.pk,
_('Excluir Dispositivo')))]
if inst.dispositivos_filhos_set.exists():
@ -649,9 +651,11 @@ class DispositivoEdicaoBasicaForm(ModelForm):
HTML(
'<a class="btn btn-danger btn-action btn-excluir" '
'action="json_delete_bloco_dispositivo" '
'title="%s"'
'title="%s" '
'pk="%s" '
'>%s</a>' % (_('Excluir este dispositivo '
'e toda sua estrutura.'),
inst.pk,
_('Excluir Bloco de Dispositivo.'))))
if btns_excluir:

4
sapl/compilacao/models.py

@ -924,12 +924,12 @@ class Dispositivo(BaseModel, TimestampedMixin):
def criar_espaco(self, espaco_a_criar, local):
if local == 'add_next':
if local == 'json_add_next':
proximo_bloco = Dispositivo.objects.filter(
ordem__gt=self.ordem,
nivel__lte=self.nivel,
ta_id=self.ta_id)[:1]
elif local == 'add_in':
elif local == 'json_add_in':
proximo_bloco = Dispositivo.objects.filter(
ordem__gt=self.ordem,
nivel__lte=self.nivel + 1,

43
sapl/compilacao/views.py

@ -1487,15 +1487,15 @@ class ActionDispositivoCreateMixin(ActionsCommonsMixin):
result = [{'tipo_insert': force_text(_('Inserir Depois')),
'icone': '&#8631;&nbsp;',
'action': 'add_next',
'action': 'json_add_next',
'itens': []},
{'tipo_insert': force_text(_('Inserir Dentro')),
'icone': '&#8690;&nbsp;',
'action': 'add_in',
'action': 'json_add_in',
'itens': []},
{'tipo_insert': force_text(_('Inserir Antes')),
'icone': '&#8630;&nbsp;',
'action': 'add_prior',
'action': 'json_add_prior',
'itens': []}
]
@ -1694,7 +1694,7 @@ class ActionDispositivoCreateMixin(ActionsCommonsMixin):
def set_dvt(self, context):
# Dispositivo de Vigência do Texto Original e de Dpts Alterados
dvt = Dispositivo.objects.get(pk=context['dispositivo_id'])
dvt = Dispositivo.objects.get(pk=self.kwargs['dispositivo_id'])
if dvt.is_relative_auto_insert():
dvt = dvt.dispositivo_pai
@ -1730,17 +1730,17 @@ class ActionDispositivoCreateMixin(ActionsCommonsMixin):
return {'message': str(_('Ocorreu um erro na atualização do '
'Dispositivo de Vigência'))}
def add_prior(self, context):
def json_add_prior(self, context):
return {}
def add_in(self, context):
return self.add_next(context, local_add='add_in')
def json_add_in(self, context):
return self.json_add_next(context, local_add='json_add_in')
def add_next(self, context, local_add='add_next'):
def json_add_next(self, context, local_add='json_add_next'):
try:
dp_auto_insert = None
base = Dispositivo.objects.get(pk=context['dispositivo_id'])
base = Dispositivo.objects.get(pk=self.kwargs['dispositivo_id'])
tipo = TipoDispositivo.objects.get(pk=context['tipo_pk'])
pub_last = Publicacao.objects.order_by(
'data', 'hora').filter(ta=base.ta).last()
@ -1979,15 +1979,16 @@ class ActionDispositivoCreateMixin(ActionsCommonsMixin):
not dp.tipo_dispositivo.dispositivo_de_articulacao:
dp.dispositivo_pai.ordenar_bloco_alteracao()
except Exception as e:
print(e)
if dp_auto_insert is None:
data = self.get_json_for_refresh(dp)
else:
data = self.get_json_for_refresh(dp=dp, dpauto=dp_auto_insert)
if dp_auto_insert is None:
data = self.get_json_for_refresh(dp)
else:
data = self.get_json_for_refresh(dp=dp, dpauto=dp_auto_insert)
# data['action'] = 'get_form_base'
return data
return data
except Exception as e:
print(e)
class ActionsEditMixin(ActionDragAndMoveDispositivoAlteradoMixin,
@ -1997,6 +1998,16 @@ class ActionsEditMixin(ActionDragAndMoveDispositivoAlteradoMixin,
def render_to_json_response(self, context, **response_kwargs):
action = getattr(self, context['action'])
if 'tipo_pk' in self.request.GET:
context['tipo_pk'] = self.request.GET['tipo_pk']
if 'variacao' in self.request.GET:
context['variacao'] = self.request.GET['variacao']
if 'perfil_estrutural' in self.request.session:
context['perfil_pk'] = self.request.session['perfil_estrutural']
data = action(context)
if 'message' in context and 'message' not in data:

51
sapl/static/js/compilacao_edit.js

@ -15,6 +15,34 @@ function DispositivoEdit() {
return instance;
};
instance.bindActionClick = function(event) {
var pk = this.getAttribute('pk');
var form_data = {
'action' : this.getAttribute('action'),
'tipo_pk' : this.getAttribute('tipo_pk'),
'variacao' : this.getAttribute('variacao'),
};
if (pk !== undefined) {
var url = pk+'/refresh';
instance.waitShow();
$.get(url, form_data).done(function(data) {
instance.clearEditSelected();
instance.waitHide();
if (data.pk != null) {
if (data.message === undefined)
instance.refreshScreenFocusPk(data);
else if (instance.modalMessage(data.message.value, 'alert-'+data.message.type, function() {
//instance.waitHide();
}))
instance.refreshScreenFocusPk(data);
}
});
}
}
instance.clearEditSelected = function() {
$('.dpt-selected .dpt-form').html('');
$('.dpt-actions, .dpt-actions-bottom').html('');
@ -44,7 +72,6 @@ function DispositivoEdit() {
dpt.on('get_form_base', function () {
var _this = $(this);
_this.addClass('dpt-selected');
var pk = _this.attr('pk');
instance.scrollTo(_this);
_this.off('get_form_base')
@ -56,24 +83,7 @@ function DispositivoEdit() {
var btns_excluir = _this.find('.btns-excluir');
_this.find('.dpt-actions-bottom').last().append(btns_excluir);
btns_excluir.find('.btn-excluir').on('click', function() {
var action = this.getAttribute('action');
if (pk !== undefined) {
var url = pk+'/refresh?action='+action;
instance.waitShow();
$.get(url).done(function(data) {
instance.clearEditSelected();
instance.waitHide();
if (data.pk != null) {
if (instance.modalMessage(data.message.value, 'alert-'+data.message.type, function() {
//instance.waitHide();
}))
instance.refreshScreenFocusPk(data);
}
});
}
});
btns_excluir.find('.btn-excluir').on('click', instance.bindActionClick);
});
instance.loadForm(dpt, 'get_form_base');
}
@ -81,9 +91,9 @@ function DispositivoEdit() {
instance.loadActionsEdit = function(dpt) {
var pk = dpt.attr('pk');
var url = pk+'/refresh?action=get_actions';
$.get(url).done(function(data) {
dpt.find('.dpt-actions').first().html(data);
dpt.find('.btn-inserts').on('click', instance.bindActionClick);
});
}
@ -215,6 +225,7 @@ function DispositivoEdit() {
}
var pk = pais.shift();
var url = pk+'/refresh';
$.get(url).done(function(data) {
var dpt = $('#id'+pk).closest('.dpt');
dpt = $('#'+dpt.replaceWith(data).attr('id'));

20
sapl/static/styles/compilacao.scss

@ -527,7 +527,7 @@ a:link:after, a:visited:after {
& > .dpt-actions-fixed {
position: absolute;
right: 0px;
z-index: 2;
z-index: 3;
opacity: 0;
}
& > .dpt-actions, & > .dpt-actions-bottom {
@ -672,6 +672,10 @@ a:link:after, a:visited:after {
}
.dpt-block {
border-top: 1px solid #e5e5e5 !important;
opacity: 0.3;
&:hover {
opacity: 1;
}
}
.dpt {
&:only-child {
@ -690,9 +694,8 @@ a:link:after, a:visited:after {
background-color: #f5f5f5;
}
}
& > .dpt-alts {
margin: 0;
border: 0px;
.dpt-alts {
margin: 1em;
.dpt {
box-shadow: 0 0 0;
}
@ -701,6 +704,7 @@ a:link:after, a:visited:after {
}
& > .dpt-actions-fixed {
display: none;
}
.dropdown-menu {
@ -719,6 +723,14 @@ a:link:after, a:visited:after {
}
}
}
&:hover {
.dpt-actions-fixed {
margin-top: 1em;
margin-right: 1em;
}
}
}
}

Loading…
Cancel
Save