mirror of https://github.com/interlegis/sapl.git
Browse Source
* Fix #3106 - Cópia de Matérias entre Sessões Plenárias Adiciona novos botões e Adiciona novos endpoints Adiciona novos templates Implementa cópia de matérias Correção de permissão e refatoração Captura de erro Correções e Alterações Update sapl/sessao/views.py Co-Authored-By: Edward Ribeiro <eribeiro@users.noreply.github.com> Retirar comentários Refatoração Correção template Altera posição botão Aplica subnav nas telas Corrigir apresentação de erro Implementa materias_sessao_plenaria_ajax Refatora template Exclui cód. não utilizado Refatoração url Correções Refatoração Refatoração Refatoração Correção Correção e Refatoração * Refatoração Co-authored-by: Edward <9326037+edwardoliveira@users.noreply.github.com> * Refatoração Co-authored-by: Edward <9326037+edwardoliveira@users.noreply.github.com> * Altera verif. categoria materia * Refatoração * Refatoração * Refatoração * Altera label botão * Evita duplo clique no submit * Altera label opção menu * Altera títulos * Adiciona nome sessão atual no título da pág. Co-authored-by: Edward <9326037+edwardoliveira@users.noreply.github.com>pull/3244/head
João Rodrigues
4 years ago
committed by
GitHub
6 changed files with 443 additions and 102 deletions
@ -0,0 +1,144 @@ |
|||
{% extends "crud/list.html" %} |
|||
{% load i18n %} |
|||
{% load common_tags %} |
|||
|
|||
{% block base_content %} |
|||
{% if materias_sessao %} |
|||
{% if sessoes_destino %} |
|||
<div id="numero_resultados" style="text-align: right;"></div> |
|||
<form method="POST" enctype="multipart/form-data"> |
|||
{% csrf_token %} |
|||
<fieldset> |
|||
<legend><b>Sessão Plenária Destino</b></legend> |
|||
<div class="row"> |
|||
<div class="col-md-12"> |
|||
<div class="form-group"> |
|||
<label>Sessão Plenária*</label> |
|||
<select id="id_sessao_plenaria" class="select form-control" name="sessao_plenaria" required="True"> |
|||
{% for sessao in sessoes_destino %} |
|||
<option value="{{ sessao.pk }}">{{ sessao }}</option> |
|||
{% endfor %} |
|||
</select> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<br/> |
|||
<legend><b>Matérias Disponíveis para Cópia na Sessão Atual</b></legend> |
|||
<div id="tabela_materias"></div> |
|||
</fieldset> |
|||
<div id="submit_button"></div> |
|||
</form> |
|||
{% else %} |
|||
<br/> |
|||
<tr><td><h3 style="text-align: center;">Nenhuma sessão plenária está apta a receber a(s) cópia(s).</h3></td></tr> |
|||
{% endif %} |
|||
{% else %} |
|||
<br/> |
|||
<tr><td><h3 style="text-align: center;">Nenhuma máteria está disponível para cópia.</h3></td></tr> |
|||
{% endif %} |
|||
{% endblock base_content %} |
|||
|
|||
{% block extra_js %} |
|||
<script language="Javascript"> |
|||
function checkAll(elem) { |
|||
let checkboxes = document.getElementsByName('opcao_id'); |
|||
for (let i=0; i<checkboxes.length; i++){ |
|||
if (checkboxes[i].type == 'checkbox') |
|||
checkboxes[i].checked = elem.checked; |
|||
} |
|||
} |
|||
|
|||
function buscar_materias_sessao() { |
|||
let categoria_materia = "{{ categoria_materia }}" |
|||
let pk_sessao_plenaria_atual = "{{ root_pk }}" |
|||
let id_sessao_plenaria = $("#id_sessao_plenaria").val(); |
|||
|
|||
$.get("{% url 'sapl.sessao:filtra_materias_copia_sessao_ajax_view' %}", |
|||
{ |
|||
sessao_plenaria_atual: pk_sessao_plenaria_atual, |
|||
sessao_plenaria_destino: id_sessao_plenaria, |
|||
categoria_materia: categoria_materia |
|||
}, |
|||
function(data) { |
|||
lista_materias = data['materias']; |
|||
|
|||
numero_resultados = lista_materias.length; |
|||
if (numero_resultados == 0){ |
|||
$("#numero_resultados").html( |
|||
"<h3>Existem " + numero_resultados + " matérias disponíveis para cópia.</h3>" |
|||
); |
|||
|
|||
$("#tabela_materias").html( |
|||
'<table class="table table-striped table-hover">'+ |
|||
'<div class="controls">'+ |
|||
'<div class="checkbox">'+ |
|||
'<label for="id_check_all">'+ |
|||
'<input type="checkbox" id="id_check_all" onchange="checkAll(this)"/>Marcar/Desmarcar Todos'+ |
|||
'</label>'+ |
|||
'</div>'+ |
|||
'</div>'+ |
|||
'<thead><tr><td>Matéria</td></tr></thead>'+ |
|||
'<tbody>'+ |
|||
'<tr><td><h3 style="text-align: center;">Nenhuma máteria está disponível para cópia.</h3></td></tr>'+ |
|||
'</tbody>'+ |
|||
'</table>' |
|||
); |
|||
|
|||
$("#submit_button").html(""); |
|||
} else { |
|||
|
|||
if (numero_resultados == 1){ |
|||
$("#numero_resultados").html( |
|||
"<h3>{% trans 'Existe 1 matéria disponível para cópia.' %}</h3>" |
|||
); |
|||
} else { |
|||
$("#numero_resultados").html( |
|||
"<h3>Existem " + numero_resultados + " matérias disponíveis para cópia.</h3>" |
|||
); |
|||
} |
|||
|
|||
var opcoes = ""; |
|||
for (let i=0; i < lista_materias.length; i++){ |
|||
opcoes += '<tr><td>'+ |
|||
'<label for="' + lista_materias[i].materia_id + '">' + |
|||
'<input type="checkbox" id="' + lista_materias[i].materia_id + '" name="opcao_id" value="' + lista_materias[i].id + '" {% if check %} checked {% endif %}/> '+ |
|||
lista_materias[i].materia_tipo_sigla + ' ' + lista_materias[i].materia_numero + '/' + lista_materias[i].materia_ano + ' - ' + lista_materias[i].materia_tipo_descricao + |
|||
'</label>'+ |
|||
'</td></tr>' |
|||
} |
|||
|
|||
$("#tabela_materias").html( |
|||
'<table class="table table-striped table-hover">'+ |
|||
'<div class="controls">'+ |
|||
'<div class="checkbox">'+ |
|||
'<label for="id_check_all">'+ |
|||
'<input type="checkbox" id="id_check_all" onchange="checkAll(this)"/>Marcar/Desmarcar Todos'+ |
|||
'</label>'+ |
|||
'</div>'+ |
|||
'</div>'+ |
|||
'<thead><tr><td>Matéria</td></tr></thead>'+ |
|||
'<tbody>'+ |
|||
opcoes + |
|||
'</tbody>'+ |
|||
'</table>' |
|||
); |
|||
|
|||
$("#submit_button").html( |
|||
'<input type="submit" value="Copiar" class="btn btn-primary"S>' |
|||
); |
|||
} |
|||
} |
|||
); |
|||
} |
|||
|
|||
$(document).ready( function() { |
|||
// Identifica as matérias que já estão adicionadas na sessão destino |
|||
$("#id_sessao_plenaria").ready(buscar_materias_sessao); |
|||
$("#id_sessao_plenaria").change(buscar_materias_sessao); |
|||
|
|||
$(window).on('beforeunload', function () { |
|||
$("input[type=submit]").prop("disabled", "disabled"); |
|||
}); |
|||
}); |
|||
</script> |
|||
{% endblock %} |
Loading…
Reference in new issue