mirror of https://github.com/interlegis/sapl.git
5 changed files with 4 additions and 873 deletions
@ -1,312 +0,0 @@ |
|||||
{% extends "crud/detail.html" %} |
|
||||
{% load i18n %} |
|
||||
{% block actions %} {% endblock %} |
|
||||
|
|
||||
{% block detail_content %} |
|
||||
{% if sessoes|length == 0 %} |
|
||||
<div class="alert alert-danger alert-dismissible" role="alert"> |
|
||||
<b>{{legislatura_selecionada}}</b> não possui nenhuma Sessão Legislativa cadastrada.<br /> |
|
||||
Clique <a href="{% url 'sapl.parlamentares:sessaolegislativa_create' %}">aqui</a> para cadastrar uma nova. |
|
||||
</div> |
|
||||
|
|
||||
{% else %} |
|
||||
<div class="alert alert-danger alert-dismissible" id="div-error" role="alert" style="display: none"> |
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"> |
|
||||
<span aria-hidden="true">×</span> |
|
||||
</button> |
|
||||
<b><span id="error-message"></span></b> |
|
||||
</div> |
|
||||
|
|
||||
<div class="alert alert-success alert-dismissible" id="div-success" style="display: none" role="alert"> |
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"> |
|
||||
<span aria-hidden="true">×</span> |
|
||||
</button> |
|
||||
<b><span id="success-message"></span></b> |
|
||||
</div> |
|
||||
|
|
||||
<fieldset class="form-group"> |
|
||||
<legend>Escolha da Legislatura e da Sessão Legislativa</legend> |
|
||||
<div class="row"> |
|
||||
<div class="col-md-6"> |
|
||||
<label>Escolha uma Legislatura</label> |
|
||||
<select name="legislatura" id="id_legislatura" class="form-control"> |
|
||||
{% for l in legislaturas %} |
|
||||
<option value="{{l.id}}" {% if l == legislatura_selecionada %} selected {% endif %}> |
|
||||
{{l}} |
|
||||
</option> |
|
||||
{% endfor %} |
|
||||
</select> |
|
||||
</div> |
|
||||
<div class="col-md-6"> |
|
||||
<label>Escolha uma Sessão Legislativa</label> |
|
||||
<select name="sessao" id="id_sessao_legislativa" class="form-control"> |
|
||||
{% for s in sessoes %} |
|
||||
<option value="{{s.id}}" {% if s == sessao_selecionada %} selected {% endif %}> |
|
||||
{{s}} |
|
||||
</option> |
|
||||
{% endfor %} |
|
||||
</select> |
|
||||
</div> |
|
||||
</div> |
|
||||
</fieldset> |
|
||||
<br /> |
|
||||
<fieldset class="form-group"> |
|
||||
<legend>Escolha da Composição da Mesa Diretora</legend> |
|
||||
<div class="row"> |
|
||||
<div class="col-md-4"> |
|
||||
<label>Composição da Mesa Diretora</label> |
|
||||
<select multiple size="5" class="form-control" id="id_composicao_mesa" name="composicao_mesa"> |
|
||||
{% for p in composicao_mesa %} |
|
||||
<option value="{{p.id}}"> |
|
||||
{{p.parlamentar}} || {{p.cargo}} |
|
||||
</option> |
|
||||
{% endfor %} |
|
||||
</select> |
|
||||
</div> |
|
||||
|
|
||||
<div class="col-md-4" align="center"> |
|
||||
<br /><br /> |
|
||||
{% if perms.parlamentares.add_cargomesa %} |
|
||||
<input type="submit" style="display: none" name="Incluir" id="id_incluir" Value="Incluir" class="btn btn-primary" /> |
|
||||
{% endif %} |
|
||||
<br /> |
|
||||
<br /> |
|
||||
{% if perms.parlamentares.add_composicaomesa %} |
|
||||
<input type="submit" style="display: none" name="Excluir" id="id_excluir" Value="Excluir" class="btn btn-danger" /> |
|
||||
{% endif %} |
|
||||
</div> |
|
||||
|
|
||||
<div class="col-md-4"> |
|
||||
<label id='parlamentar-cargo-title' style="display: none">Parlamentar | Cargo</label> |
|
||||
<select class="form-control" name="parlamentar" id="id_parlamentar" style="display: none"> |
|
||||
{% for p in parlamentares %} |
|
||||
<option value="{{p.id}}">{{p.nome_parlamentar}}</option> |
|
||||
{% endfor %} |
|
||||
</select> |
|
||||
<br /> |
|
||||
<select class="form-control" name="cargo" id="id_cargo" style="display: none"> |
|
||||
{% for c in cargos_vagos %} |
|
||||
<option value="{{c.id}}">{{c}}</option> |
|
||||
{% endfor %} |
|
||||
</select> |
|
||||
</div> |
|
||||
|
|
||||
</div> |
|
||||
</fieldset> |
|
||||
{% endif %} |
|
||||
{% endblock detail_content %} |
|
||||
|
|
||||
|
|
||||
{% block extra_js %} |
|
||||
|
|
||||
<script language="Javascript"> |
|
||||
|
|
||||
//############################################################## |
|
||||
// Inicialização da View # |
|
||||
//############################################################## |
|
||||
|
|
||||
// Se a composicao estiver completa, deve-se esconder o botão e os |
|
||||
// campos de inserção |
|
||||
$(document).ready(function(){ |
|
||||
if($("#id_parlamentar").val() == null || $("#id_cargo").val() == null){ |
|
||||
$("#id_parlamentar").hide(); |
|
||||
$("#id_cargo").hide(); |
|
||||
$("#parlamentar-cargo-title").hide(); |
|
||||
$('#id_incluir').hide(); |
|
||||
} |
|
||||
else{ |
|
||||
$("#id_parlamentar").show(); |
|
||||
$("#id_cargo").show(); |
|
||||
$("#parlamentar-cargo-title").show(); |
|
||||
$('#id_incluir').show(); |
|
||||
} |
|
||||
|
|
||||
// Se a composição estiver vazia, deve-se esconder |
|
||||
// de Excluir |
|
||||
if (!$("#id_composicao_mesa option").val()){ |
|
||||
$("#id_excluir").hide() |
|
||||
} |
|
||||
else{ |
|
||||
$("#id_excluir").show() |
|
||||
} |
|
||||
}); |
|
||||
|
|
||||
//############################################################## |
|
||||
//# EVENT HANDLERS # |
|
||||
//############################################################## |
|
||||
|
|
||||
function errors_handler(msg){ |
|
||||
if (msg == null){ |
|
||||
$("#div-success").hide() |
|
||||
$("#div-error").hide() |
|
||||
$("#success-message").html('') |
|
||||
$("#error-message").html('') |
|
||||
} |
|
||||
else{ |
|
||||
if (msg[1] == 0){ |
|
||||
$("#div-error").show() |
|
||||
$("#error-message").html(msg[0]) |
|
||||
} |
|
||||
else{ |
|
||||
$("#div-success").show() |
|
||||
$("#success-message").html(msg[0]) |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
} |
|
||||
|
|
||||
// Atualiza os campos após alguma operação de mudança da Legislatura/Sessao ou |
|
||||
// Inserção/Remoção |
|
||||
function altera_field(id_legislatura, id_sessao=null, msg=null){ |
|
||||
// Pega o novo valor dos campos modificados |
|
||||
var sessao_value = id_sessao |
|
||||
var legislatura_value = id_legislatura |
|
||||
|
|
||||
// Limpa os campos que serão atualizados |
|
||||
$("#id_sessao_legislativa option").remove(); |
|
||||
$("#id_composicao_mesa option").remove(); |
|
||||
$("#id_parlamentar option").remove(); |
|
||||
$("#id_cargo option").remove(); |
|
||||
|
|
||||
|
|
||||
$.get("{% url 'sapl.parlamentares:altera_field_mesa' %}", |
|
||||
{legislatura: legislatura_value, sessao: sessao_value}, |
|
||||
function(data) { |
|
||||
// Caso não venha nenhum dado da requisição, retorna null |
|
||||
if ($.isEmptyObject(data)){ |
|
||||
return null |
|
||||
} |
|
||||
|
|
||||
lista_sessoes = data['lista_sessoes']; |
|
||||
lista_composicao = data['lista_composicao']; |
|
||||
lista_parlamentares = data['lista_parlamentares']; |
|
||||
lista_cargos = data['lista_cargos']; |
|
||||
|
|
||||
// Atualiza a listagem dos campos |
|
||||
if (lista_sessoes != undefined) { |
|
||||
for (i = 0; i < lista_sessoes.length; i++) { |
|
||||
$('#id_sessao_legislativa').append('<option value="' + lista_sessoes[i][0] + '">' + lista_sessoes[i][1] + '</option>'); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
if (lista_composicao != null) { |
|
||||
for (i = 0; i < lista_composicao.length; i++) { |
|
||||
$('#id_composicao_mesa').append('<option value="' + lista_composicao[i][0] + '">' + lista_composicao[i][1] + ' || ' + lista_composicao[i][2] + '</option>'); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
// Caso ainda tenha parlamentares/cargos a serem inseridos, preenche a listagem com |
|
||||
// os disponíveis e garante que as ferramentas de inserção estejam disponíveis |
|
||||
if (lista_parlamentares != null && lista_parlamentares.length != 0 && lista_cargos.length != 0){ |
|
||||
$('#id_incluir').show() |
|
||||
$('#id_cargo').show(); |
|
||||
$('#id_parlamentar').show(); |
|
||||
$("#parlamentar-cargo-title").show(); |
|
||||
|
|
||||
for (i = 0; i < lista_parlamentares.length; i++) { |
|
||||
$('#id_parlamentar').append('<option value="' + lista_parlamentares[i][0] + '">' + lista_parlamentares[i][1] + '</option>'); |
|
||||
} |
|
||||
|
|
||||
for (i = 0; i < lista_cargos.length; i++) { |
|
||||
$('#id_cargo').append('<option value="' + lista_cargos[i][0] + '">' + lista_cargos[i][1] + '</option>'); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
// Caso contrário, esconde do usuário essas opções |
|
||||
else{ |
|
||||
$('#id_incluir').hide(); |
|
||||
$('#id_cargo').hide(); |
|
||||
$('#id_parlamentar').hide(); |
|
||||
$("#parlamentar-cargo-title").hide(); |
|
||||
} |
|
||||
|
|
||||
// Garante que o botão de remoção aparecerá, caso tenha |
|
||||
// algum parlamentar na composição |
|
||||
if (lista_composicao != null && lista_composicao.length != 0){ |
|
||||
$("#id_excluir").show() |
|
||||
} |
|
||||
else{ |
|
||||
$("#id_excluir").hide() |
|
||||
} |
|
||||
|
|
||||
// Garante que a Sessão atual será a selecionada previamente e, no caso em que |
|
||||
// o campo modificado seja o de Legislatura, que a Sessão seja a última daquela |
|
||||
// legislatura |
|
||||
$("#id_sessao_legislativa").val(data['sessao_selecionada']) |
|
||||
|
|
||||
// Caso haja algum erro que venha após a alteração da legislatura/sessao |
|
||||
// Essa mensagem de erro é prioridade |
|
||||
if (data['msg'][1] == 0){ |
|
||||
msg = data['msg'] |
|
||||
} |
|
||||
|
|
||||
errors_handler(msg) |
|
||||
|
|
||||
}); |
|
||||
} |
|
||||
|
|
||||
//############################################################# |
|
||||
//# EVENTS CATCH # |
|
||||
//############################################################# |
|
||||
$("#id_legislatura").change(function(){ |
|
||||
legislatura = $("#id_legislatura").val(); |
|
||||
altera_field(legislatura); |
|
||||
}); |
|
||||
|
|
||||
$("#id_sessao_legislativa").change(function(){ |
|
||||
legislatura = $("#id_legislatura").val(); |
|
||||
sessao = $("#id_sessao_legislativa").val(); |
|
||||
altera_field(legislatura, sessao); |
|
||||
}); |
|
||||
|
|
||||
$('#id_incluir').click(function(){ |
|
||||
$.ajax({ |
|
||||
data: {sessao: $("#id_sessao_legislativa").val(), |
|
||||
parlamentar: $("#id_parlamentar").val(), |
|
||||
cargo: $("#id_cargo").val()}, |
|
||||
type: 'POST', |
|
||||
url: "{% url 'sapl.parlamentares:insere_parlamentar_composicao' %}", |
|
||||
headers: { |
|
||||
'X-CSRFToken': getCookie('csrftoken') |
|
||||
}, |
|
||||
success: function(data){ |
|
||||
var msg = data['msg']; |
|
||||
legislatura = $("#id_legislatura").val(); |
|
||||
sessao = $("#id_sessao_legislativa").val(); |
|
||||
setTimeout(function(data){ |
|
||||
// Atualiza os campos após a inserção |
|
||||
altera_field(legislatura, sessao, msg) |
|
||||
}, 500) |
|
||||
}, |
|
||||
}); |
|
||||
}) |
|
||||
|
|
||||
$('#id_excluir').click(function(){ |
|
||||
// Pega o id do parlamentar que foi selecionado |
|
||||
selecionado = $("#id_composicao_mesa option:selected").val() |
|
||||
|
|
||||
if (selecionado){ |
|
||||
$.ajax({ |
|
||||
data: {composicao_mesa: selecionado}, |
|
||||
type: 'POST', |
|
||||
url: "{% url 'sapl.parlamentares:remove_parlamentar_composicao' %}", |
|
||||
headers: { |
|
||||
'X-CSRFToken': getCookie('csrftoken') |
|
||||
}, |
|
||||
success: function(data){ |
|
||||
var msg = data['msg']; |
|
||||
legislatura = $("#id_legislatura").val(); |
|
||||
sessao = $("#id_sessao_legislativa").val(); |
|
||||
|
|
||||
setTimeout(function(data){ |
|
||||
// Atualiza os campos após a remoção |
|
||||
altera_field(legislatura, sessao, msg) |
|
||||
}, 500) |
|
||||
}, |
|
||||
}); |
|
||||
} |
|
||||
}); |
|
||||
|
|
||||
</script> |
|
||||
|
|
||||
{% endblock %} |
|
||||
@ -1,146 +0,0 @@ |
|||||
{% extends "crud/detail.html" %} |
|
||||
{% load i18n cropping%} |
|
||||
{% block actions %} {% endblock %} |
|
||||
|
|
||||
{% block detail_content %} |
|
||||
<form method="POST"> |
|
||||
{% csrf_token %} |
|
||||
<fieldset class="form-group"> |
|
||||
<legend>Escolha da Legislatura e da Sessão Legislativa</legend> |
|
||||
<div class="row"> |
|
||||
<div class="col-md-6"> |
|
||||
<label>Escolha uma Legislatura</label> |
|
||||
<select name="legislatura" id="id_legislatura" class="form-control"> |
|
||||
{% for l in legislaturas %} |
|
||||
<option value="{{l.id}}" {% if l == legislatura_selecionada %} selected {% endif %}> |
|
||||
{{l}} |
|
||||
</option> |
|
||||
{% endfor %} |
|
||||
</select> |
|
||||
</div> |
|
||||
<div class="col-md-6"> |
|
||||
<label>Escolha uma Sessão Legislativa</label> |
|
||||
<select name="sessao" id="id_sessao_legislativa" class="form-control"> |
|
||||
{% for s in sessoes %} |
|
||||
<option value="{{s.id}}" {% if s == sessao_selecionada %} selected {% endif %}> |
|
||||
{{s}} |
|
||||
</option> |
|
||||
{% endfor %} |
|
||||
</select> |
|
||||
</div> |
|
||||
</div> |
|
||||
</fieldset> |
|
||||
<br /> |
|
||||
<fieldset class="form-group lista-parlamentares"> |
|
||||
<legend>Composição da Mesa Diretora</legend> |
|
||||
<table id="tabela-composicao" class="table table-striped table-hover table-link-ordering"> |
|
||||
<thead> |
|
||||
<tr> |
|
||||
<th></th> |
|
||||
<th>Nome do Parlamentar</th> |
|
||||
<th>Partido</th> |
|
||||
<th>Cargo</th> |
|
||||
</tr> |
|
||||
</thead> |
|
||||
<tbody> |
|
||||
{% for p in composicao_mesa %} |
|
||||
<tr> |
|
||||
{% if p.parlamentar.fotografia %} |
|
||||
<td> |
|
||||
<div id="w-100"> |
|
||||
<img class="img-fluid img-thumbnail" src="{% cropped_thumbnail p.parlamentar "cropping"%}"> |
|
||||
</div> |
|
||||
{% else %} |
|
||||
<td></td> |
|
||||
{% endif %} |
|
||||
<td><a href="{% url 'sapl.parlamentares:parlamentar_detail' p.parlamentar.pk %}">{{p.parlamentar.nome_parlamentar}}</a></td> |
|
||||
<td>{{p.parlamentar.filiacao_atual}}</td> |
|
||||
<td>{{p.cargo}}</td> |
|
||||
</tr> |
|
||||
{% endfor %} |
|
||||
</tbody> |
|
||||
</table> |
|
||||
</fieldset> |
|
||||
</form> |
|
||||
{% endblock detail_content %} |
|
||||
|
|
||||
{% block extra_js %} |
|
||||
|
|
||||
<script language="Javascript"> |
|
||||
|
|
||||
//############################################################## |
|
||||
//# USEFUL FUNCTIONS # |
|
||||
//############################################################## |
|
||||
function retorna_imagem(url){ |
|
||||
if (url != null){ |
|
||||
image_component = '<img class="img-fluid img-thumbnail" src="' + url + '">' |
|
||||
return image_component |
|
||||
} |
|
||||
|
|
||||
else{ |
|
||||
return '' |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
//############################################################## |
|
||||
//# EVENT HANDLERS # |
|
||||
//############################################################## |
|
||||
|
|
||||
function altera_field(id_legislatura, id_sessao=null){ |
|
||||
// Pega o novo valor do campo que foi modificado (Sessao/Legislatura) |
|
||||
var sessao_value = id_sessao |
|
||||
var legislatura_value = id_legislatura |
|
||||
|
|
||||
// Limpa o campo que será atualizado |
|
||||
$("#id_sessao_legislativa option").remove(); |
|
||||
$("#tabela-composicao tbody").empty(); |
|
||||
|
|
||||
$.get("/mesa-diretora/altera-field-mesa-public-view", |
|
||||
{legislatura: legislatura_value, sessao: sessao_value}, |
|
||||
function(data) { |
|
||||
// Caso não venha nenhum dado da requisição, retorna null |
|
||||
if ($.isEmptyObject(data)){ |
|
||||
return null |
|
||||
} |
|
||||
|
|
||||
lista_sessoes = data['lista_sessoes']; |
|
||||
lista_parlamentares = data['lista_parlamentares']; |
|
||||
lista_cargos = data['lista_cargos']; |
|
||||
lista_fotos = data['lista_fotos'] |
|
||||
lista_partidos = data['lista_partidos'] |
|
||||
|
|
||||
// Atualiza a listagem de sessões |
|
||||
for (i = 0; i < lista_sessoes.length; i++) { |
|
||||
$('#id_sessao_legislativa').append('<option value="' + lista_sessoes[i][0] + '">' + lista_sessoes[i][1] + '</option>'); |
|
||||
} |
|
||||
|
|
||||
// Atualiza a tabela de composição |
|
||||
for (i = 0; i < lista_parlamentares.length; i++) { |
|
||||
$("#tabela-composicao tbody").append('<tr> <td> <div class="w-100">' + retorna_imagem(lista_fotos[i]) +' </div> </td> <td><a href="/parlamentar/' + lista_parlamentares[i][0] + '">' + lista_parlamentares[i][1] + '</a></td> <td>' + lista_partidos[i] + '</td> <td>'+ lista_cargos[i][1] + '</td> </tr>'); |
|
||||
} |
|
||||
|
|
||||
// Garante que a Sessão atual será a selecionada previamente e, no caso em que |
|
||||
// o campo modificado seja o de Legislatura, que a Sessão seja a última daquela |
|
||||
// legislatura |
|
||||
$("#id_sessao_legislativa").val(data['sessao_selecionada']) |
|
||||
|
|
||||
}); |
|
||||
} |
|
||||
|
|
||||
//############################################################# |
|
||||
//# EVENTS CATCH # |
|
||||
//############################################################# |
|
||||
$("#id_legislatura").change(function(){ |
|
||||
legislatura = $("#id_legislatura").val(); |
|
||||
altera_field(legislatura); |
|
||||
}); |
|
||||
|
|
||||
$("#id_sessao_legislativa").change(function(){ |
|
||||
legislatura = $("#id_legislatura").val(); |
|
||||
sessao = $("#id_sessao_legislativa").val(); |
|
||||
altera_field(legislatura, sessao); |
|
||||
}); |
|
||||
|
|
||||
</script> |
|
||||
|
|
||||
{% endblock %} |
|
||||
Loading…
Reference in new issue