Browse Source

Melhora a dinamicidade do formulario de criacao de sessao

pull/713/head
Eduardo Calil 8 years ago
parent
commit
95798a8a28
  1. 1
      sapl/sessao/forms.py
  2. 5
      sapl/sessao/urls.py
  3. 21
      sapl/sessao/views.py
  4. 2
      sapl/templates/sessao/layouts.yaml
  5. 47
      sapl/templates/sessao/sessaoplenaria_form.html

1
sapl/sessao/forms.py

@ -26,6 +26,7 @@ def pega_anos():
except:
return []
ANO_CHOICES = [('', '---------')] + pega_anos()
MES_CHOICES = [('', '---------')] + RANGE_MESES
DIA_CHOICES = [('', '---------')] + RANGE_DIAS_MES

5
sapl/sessao/urls.py

@ -23,7 +23,8 @@ from sapl.sessao.views import (AdicionarVariasMateriasExpediente,
abrir_votacao_ordem_view, recuperar_materia,
recuperar_numero_sessao,
reordernar_materias_expediente,
reordernar_materias_ordem)
reordernar_materias_ordem,
sessao_legislativa_legislatura_ajax)
from .apps import AppConfig
@ -43,6 +44,8 @@ urlpatterns = [
url(r'^recuperar-materia/', recuperar_materia),
url(r'^recuperar-numero-sessao/', recuperar_numero_sessao),
url(r'^sessao-legislativa-legislatura-ajax/',
sessao_legislativa_legislatura_ajax),
url(r'^(?P<pk>\d+)/(?P<spk>\d+)/abrir-votacao-expediente$',
abrir_votacao_expediente_view,

21
sapl/sessao/views.py

@ -369,16 +369,31 @@ class OradorCrud(OradorCrud):
def recuperar_numero_sessao(request):
try:
numero = SessaoPlenaria.objects.filter(
tipo__pk=request.GET['tipo']).last().numero
sessao = SessaoPlenaria.objects.filter(
tipo__pk=request.GET['tipo']).last()
except ObjectDoesNotExist:
response = JsonResponse({'numero': 1})
else:
response = JsonResponse({'numero': numero + 1})
if sessao:
response = JsonResponse({'numero': sessao.numero + 1})
else:
response = JsonResponse({'numero': 1})
return response
def sessao_legislativa_legislatura_ajax(request):
try:
sessao = SessaoLegislativa.objects.filter(
legislatura=request.GET['legislatura']).order_by('-data_inicio')
except ObjectDoesNotExist:
sessao = SessaoLegislativa.objects.all().order_by('-data_inicio')
lista_sessoes = [(s.id, s.__str__()) for s in sessao]
return JsonResponse({'sessao_legislativa': lista_sessoes})
class SessaoCrud(Crud):
model = SessaoPlenaria
help_path = 'sessao_plenaria'

2
sapl/templates/sessao/layouts.yaml

@ -5,7 +5,7 @@ TipoSessaoPlenaria:
SessaoPlenaria:
{% trans 'Dados Básicos' %}:
- numero:1 tipo:3 legislatura sessao_legislativa
- tipo:3 numero:1 legislatura sessao_legislativa
- data_inicio:5 hora_inicio:5 iniciada
- data_fim:5 hora_fim:5 finalizada
- upload_pauta upload_ata

47
sapl/templates/sessao/sessaoplenaria_form.html

@ -7,6 +7,7 @@
<script language="Javascript">
// Seleciona o numero de acordo com o tipo
function recuperar_numero_sessao() {
var tipo = $("#id_tipo").val()
@ -17,8 +18,54 @@
console.log(data)
});
}
else{
$("#id_numero").val('');
}
}
$("#id_tipo").change(recuperar_numero_sessao);
// Filtra as choices de sessao legislativa pela legislatura
$(function() {
$("#id_legislatura").ready(function(){
var id_legislatura = $("#id_legislatura").val();
$("#id_sessao_legislativa option").remove();
if (id_legislatura) {
$.get("/sessao-legislativa-legislatura-ajax", {legislatura: id_legislatura}, function(data) {
lista_sessoes = data['sessao_legislativa'];
for (i = 0; i < lista_sessoes.length; i++) {
$('#id_sessao_legislativa').append('<option value="' + lista_sessoes[i][0] + '">' + lista_sessoes[i][1] + '</option>');
}
});
}
else{
$("#id_sessao_legislativa option").remove();
}
});
$("#id_legislatura").change(function(){
var id_legislatura = $("#id_legislatura").val();
$("#id_sessao_legislativa option").remove();
if (id_legislatura) {
$.get("/sessao-legislativa-legislatura-ajax", {legislatura: id_legislatura}, function(data) {
lista_sessoes = data['sessao_legislativa'];
for (i = 0; i < lista_sessoes.length; i++) {
$('#id_sessao_legislativa').append('<option value="' + lista_sessoes[i][0] + '">' + lista_sessoes[i][1] + '</option>');
}
});
}
else{
$("#id_sessao_legislativa option").remove();
}
});
})
</script>
{% endblock %}

Loading…
Cancel
Save