Browse Source

Retira trava de ano e data de apresentação diferentes em Norma e Matéria (#2870)

* Retira trava de ano e apresentacao diferentes em Norma e Materia

* Adicina modal de aviso quando anos são diferentes
pull/2873/head
Cesar Augusto de Carvalho 6 years ago
committed by Edward
parent
commit
bb3b7439dd
  1. 26
      sapl/materia/forms.py
  2. 8
      sapl/norma/forms.py
  3. 114
      sapl/templates/materia/materialegislativa_form.html
  4. 48
      sapl/templates/norma/normajuridica_form.html

26
sapl/materia/forms.py

@ -156,25 +156,6 @@ class MateriaSimplificadaForm(FileFieldCheckMixin, ModelForm):
) )
super(MateriaSimplificadaForm, self).__init__(*args, **kwargs) super(MateriaSimplificadaForm, self).__init__(*args, **kwargs)
def clean(self):
super(MateriaSimplificadaForm, self).clean()
if not self.is_valid():
return self.cleaned_data
cleaned_data = self.cleaned_data
data_apresentacao = cleaned_data['data_apresentacao']
ano = cleaned_data['ano']
if data_apresentacao.year != ano:
self.logger.error("O ano da matéria ({}) é diferente"
" do ano na data de apresentação ({}).".format(ano, data_apresentacao.year))
raise ValidationError("O ano da matéria não pode ser "
"diferente do ano na data de apresentação")
return cleaned_data
class MateriaLegislativaForm(FileFieldCheckMixin, ModelForm): class MateriaLegislativaForm(FileFieldCheckMixin, ModelForm):
@ -256,13 +237,6 @@ class MateriaLegislativaForm(FileFieldCheckMixin, ModelForm):
raise ValidationError( raise ValidationError(
_('Tipo do Protocolo deve ser o mesmo do Tipo Matéria')) _('Tipo do Protocolo deve ser o mesmo do Tipo Matéria'))
if data_apresentacao.year != ano:
self.logger.error("O ano da matéria ({}) é diferente "
"do ano na data de apresentação ({})."
.format(ano, data_apresentacao.year))
raise ValidationError(_("O ano da matéria não pode ser "
"diferente do ano na data de apresentação"))
ano_origem_externa = cleaned_data['ano_origem_externa'] ano_origem_externa = cleaned_data['ano_origem_externa']
data_origem_externa = cleaned_data['data_origem_externa'] data_origem_externa = cleaned_data['data_origem_externa']

8
sapl/norma/forms.py

@ -189,14 +189,6 @@ class NormaJuridicaForm(FileFieldCheckMixin, ModelForm):
else: else:
cleaned_data['materia'] = None cleaned_data['materia'] = None
ano = cleaned_data['ano']
data = cleaned_data['data']
if data.year != ano:
self.logger.error("O ano da norma ({}) é diferente "
"do ano no campo data ({}).".format(ano, data.year))
raise ValidationError("O ano da norma não pode ser "
"diferente do ano no campo data")
return cleaned_data return cleaned_data
def clean_texto_integral(self): def clean_texto_integral(self):

114
sapl/templates/materia/materialegislativa_form.html

@ -24,42 +24,88 @@
$("#id_tipo, #id_ano").change(recuperar_numero_ano); $("#id_tipo, #id_ano").change(recuperar_numero_ano);
function compare(a, b) { function compare(a, b) {
if (a.text < b.text) if (a.text < b.text)
return -1; return -1;
if (a.text > b.text) if (a.text > b.text)
return 1; return 1;
return 0; return 0;
} }
var modal_estilos = 'display: block;'
+'width: 85%; max-width: 600px;'
+'background: #fff; padding: 15px;'
+'border-radius: 5px;'
+'-webkit-box-shadow: 0px 6px 14px -2px rgba(0,0,0,0.75);'
+'-moz-box-shadow: 0px 6px 14px -2px rgba(0,0,0,0.75);'
+'box-shadow: 0px 6px 14px -2px rgba(0,0,0,0.75);'
+'position: fixed;'
+'top: 50%; left: 50%;'
+'transform: translate(-50%,-50%);'
+'z-index: 99999999; text-align: center';
var fundo_modal_estilos = 'top: 0; right: 0;'
+'bottom: 0; left: 0; position: fixed;'
+'background-color: rgba(0, 0, 0, 0.6); z-index: 99999999;'
+'display: none;';
var meu_modal = '<div id="fundo_modal" style="'+fundo_modal_estilos+'">'
+'<div id="meu_modal" style="'+modal_estilos+'">'
+'<h2>Atenção! Ano de apresentação e ano da matéria são diferentes.</h2><br />'
+'<button id="close_model_btn" type="button" class="btn btn-warning" data-dismiss="modal">'
+'Compreendo e quero continuar</button>'
+'</div></div>';
function verifica_ano(){
let ano = $("select#id_ano.select").val();
let data_apresentacao = $("input#id_data_apresentacao.dateinput").val();
let ano_apresentacao = data_apresentacao.substr(data_apresentacao.length - 4);
if(ano && ano_apresentacao && ano_apresentacao != ano){
$('#fundo_modal').fadeIn();
}
}
$(document).ready(function() { $(document).ready(function() {
$("#id_tipo_autor").change(function() { $("#id_tipo_autor").change(function() {
var tipo_selecionado = $("#id_tipo_autor").val(); var tipo_selecionado = $("#id_tipo_autor").val();
var autor_selecionado = $("#id_autor").val(); var autor_selecionado = $("#id_autor").val();
$("#id_autor option").remove() $("#id_autor option").remove()
if (tipo_selecionado !== undefined && tipo_selecionado !== null) { if (tipo_selecionado !== undefined && tipo_selecionado !== null) {
var json_data = { var json_data = {
tipo : tipo_selecionado, tipo : tipo_selecionado,
data_relativa : $("#id_data_apresentacao").val() data_relativa : $("#id_data_apresentacao").val()
} }
$.getJSON("/api/autor/possiveis", json_data, function(data){ $.getJSON("/api/autor/possiveis", json_data, function(data){
if (data) { if (data) {
var results = data.sort(compare); var results = data.sort(compare);
if (results.length > 1) { if (results.length > 1) {
$("#id_autor").append("<option>-----</option>"); $("#id_autor").append("<option>-----</option>");
}
$.each(results, function(idx, obj) {
$("#id_autor")
.append($("<option></option>")
.attr("value", obj.value)
.text(obj.text));
});
$("#id_autor").val(autor_selecionado);
}
});
} }
}); $.each(results, function(idx, obj) {
$("#id_tipo_autor").trigger('change'); $("#id_autor")
}); .append($("<option></option>")
.attr("value", obj.value)
.text(obj.text));
});
$("#id_autor").val(autor_selecionado);
}
});
}
});
$("#id_tipo_autor").trigger('change');
$("body").append(meu_modal);
$("#fundo_modal, #close_model_btn").click(function(){ $("#fundo_modal").hide(); });
$("#meu_modal").click(function(e){ e.stopPropagation(); });
$("select#id_ano.select.form-control").blur(function(){
verifica_ano();
});
$("input#id_data_apresentacao.dateinput.form-control").blur(function(){
verifica_ano();
});
});
</script> </script>
{% endblock %} {% endblock %}

48
sapl/templates/norma/normajuridica_form.html

@ -57,6 +57,54 @@
numeroField.val(numero.replace(/^0+/, '')); numeroField.val(numero.replace(/^0+/, ''));
} }
}); });
var modal_estilos = 'display: block;'
+'width: 85%; max-width: 600px;'
+'background: #fff; padding: 15px;'
+'border-radius: 5px;'
+'-webkit-box-shadow: 0px 6px 14px -2px rgba(0,0,0,0.75);'
+'-moz-box-shadow: 0px 6px 14px -2px rgba(0,0,0,0.75);'
+'box-shadow: 0px 6px 14px -2px rgba(0,0,0,0.75);'
+'position: fixed;'
+'top: 50%; left: 50%;'
+'transform: translate(-50%,-50%);'
+'z-index: 99999999; text-align: center';
var fundo_modal_estilos = 'top: 0; right: 0;'
+'bottom: 0; left: 0; position: fixed;'
+'background-color: rgba(0, 0, 0, 0.6); z-index: 99999999;'
+'display: none;';
var meu_modal = '<div id="fundo_modal" style="'+fundo_modal_estilos+'">'
+'<div id="meu_modal" style="'+modal_estilos+'">'
+'<h2>Atenção! Ano de apresentação e ano da norma são diferentes.</h2><br />'
+'<button id="close_model_btn" type="button" class="btn btn-warning" data-dismiss="modal">'
+'Compreendo e quero continuar</button>'
+'</div></div>';
function verifica_ano(){
let ano = $("select#id_ano.select").val();
let data_apresentacao = $("input#id_data.dateinput").val();
let ano_apresentacao = data_apresentacao.substr(data_apresentacao.length - 4);
if(ano && ano_apresentacao && ano_apresentacao != ano){
$('#fundo_modal').fadeIn();
}
}
$(document).ready(function() {
$("body").append(meu_modal);
$("#fundo_modal, #close_model_btn").click(function(){ $("#fundo_modal").hide(); });
$("#meu_modal").click(function(e){ e.stopPropagation(); });
$("select#id_ano.select.form-control").blur(function(){
verifica_ano();
});
$("input#id_data.dateinput.form-control").blur(function(){
verifica_ano();
});
});
</script> </script>
{% endblock %} {% endblock %}

Loading…
Cancel
Save