Browse Source

adicionada votacao em bloco nominal no expediente

pull/2416/head
Cesar Carvalho 7 years ago
parent
commit
a81f7869c5
  1. 4
      sapl/sessao/urls.py
  2. 164
      sapl/sessao/views.py
  3. 75
      sapl/templates/sessao/votacao/votacao_bloco_expediente.html
  4. 184
      sapl/templates/sessao/votacao/votacao_bloco_ordem.html
  5. 12
      sapl/templates/sessao/votacao/votacao_votacaoembloco.html

4
sapl/sessao/urls.py

@ -119,8 +119,8 @@ urlpatterns = [
name='votacao_bloco_ordemdia'), name='votacao_bloco_ordemdia'),
# url(r'^sessao/(?P<pk>\d+)/votacao_bloco_ordem_dia/votnom$', # url(r'^sessao/(?P<pk>\d+)/votacao_bloco_ordem_dia/votnom$',
# VotacaoNominalView.as_view(), name='votacaobloconomod'), # VotacaoNominalView.as_view(), name='votacaobloconomod'),
url(r'^sessao/(?P<pk>\d+)/votacao_bloco_ordem_dia/votsimb$', url(r'^sessao/(?P<pk>\d+)/votacao_bloco/votsimb$',
VotacaoEmBlocoView.as_view(), name='votacaoblocosimbod'), VotacaoEmBlocoView.as_view(), name='votacaoblocosimb'),
url(r'^sessao/(?P<pk>\d+)/votacao_bloco_expediente$', url(r'^sessao/(?P<pk>\d+)/votacao_bloco_expediente$',
VotacaoEmBlocoExpediente.as_view(), VotacaoEmBlocoExpediente.as_view(),
name='votacao_bloco_expediente'), name='votacao_bloco_expediente'),

164
sapl/sessao/views.py

@ -3217,97 +3217,28 @@ class JustificativaAusenciaCrud(MasterDetailCrud):
pass pass
class VotacaoEmBlocoExpediente(PermissionRequiredForAppCrudMixin, class VotacaoEmBlocoExpediente(ListView):
ListView):
model = OrdemDia model = ExpedienteMateria
template_name = 'sessao/votacao/votacao_bloco_expediente.html' template_name = 'sessao/votacao/votacao_bloco_expediente.html'
app_label = AppConfig.label app_label = AppConfig.label
context_object_name = 'expedientes'
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
def get_filterset_kwargs(self, filterset_class): def get_queryset(self):
super(VotacaoEmBlocoExpediente, kwargs = self.kwargs
self).get_filterset_kwargs(filterset_class) return ExpedienteMateria.objects.filter(sessao_plenaria_id=kwargs['pk'],
resultado='')
kwargs = {'data': self.request.GET or None}
qs = self.get_queryset()
if 'tramitacao__status' in self.request.GET:
if self.request.GET['tramitacao__status']:
lista_status = filtra_tramitacao_status(
self.request.GET['tramitacao__status'])
lista_materias_adicionadas = retira_materias_ja_adicionadas(
self.kwargs['pk'], ExpedienteMateria)
qs = qs.filter(id__in=lista_status).exclude(
id__in=lista_materias_adicionadas).distinct()
kwargs.update({
'queryset': qs,
})
return kwargs
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(MateriaLegislativaPesquisaView, context = super(VotacaoEmBlocoExpediente, self).get_context_data(**kwargs)
self).get_context_data(**kwargs) context['turno_choices'] = Tramitacao.TURNO_CHOICES
context['pk'] = self.kwargs['pk']
context['title'] = _('Pesquisar Matéria Legislativa')
self.filterset.form.fields['o'].label = _('Ordenação')
qr = self.request.GET.copy()
context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else ''
context['pk_sessao'] = self.kwargs['pk']
return context return context
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
marcadas = request.POST.getlist('materia_id')
username = request.user.username
for m in marcadas:
try:
tipo_votacao = request.POST['tipo_votacao_%s' % m]
msg = _('%s adicionado(a) com sucesso!'
% MateriaLegislativa.objects.get(id=m))
messages.add_message(request, messages.SUCCESS, msg)
self.logger.info("user=" + username + ". MateriaLegislativa de id={} adicionado(a) com sucesso!".format(m))
except MultiValueDictKeyError:
msg = _('Formulário Inválido. Você esqueceu de selecionar ' +
'%s' %
MateriaLegislativa.objects.get(id=m))
messages.add_message(request, messages.ERROR, msg)
self.logger.error("user=" + username + '. Formulário Inválido. Você esqueceu de ' +
'selecionar o tipo de votação de MateriaLegislativa de id={}.'.format(m))
return self.get(request, self.kwargs)
if tipo_votacao:
lista_materias_expediente = ExpedienteMateria.objects.filter(
sessao_plenaria_id=self.kwargs[
'pk'])
materia = MateriaLegislativa.objects.get(id=m)
expediente = ExpedienteMateria()
expediente.sessao_plenaria_id = self.kwargs['pk']
expediente.materia_id = materia.id
if lista_materias_expediente:
posicao = lista_materias_expediente.last().numero_ordem + 1
expediente.numero_ordem = posicao
else:
expediente.numero_ordem = 1
expediente.data_ordem = timezone.now()
expediente.tipo_votacao = request.POST['tipo_votacao_%s' % m]
expediente.save()
pk = self.kwargs['pk']
return HttpResponseRedirect( return HttpResponseRedirect(
reverse('sapl.sessao:expedientemateria_list', kwargs={'pk': pk})) reverse('sapl.sessao:votacaoblocosimb', kwargs=self.kwargs))
class VotacaoEmBlocoOrdemDia(ListView): class VotacaoEmBlocoOrdemDia(ListView):
@ -3330,7 +3261,7 @@ class VotacaoEmBlocoOrdemDia(ListView):
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
return HttpResponseRedirect( return HttpResponseRedirect(
reverse('sapl.sessao:votacaoblocosimbod', kwargs=self.kwargs)) reverse('sapl.sessao:votacaoblocosimb', kwargs=self.kwargs))
class VotacaoEmBlocoView(TemplateView): class VotacaoEmBlocoView(TemplateView):
@ -3352,36 +3283,44 @@ class VotacaoEmBlocoView(TemplateView):
if not 'context' in locals(): if not 'context' in locals():
context = {} context = {}
if ('ordem_id_1' in request.POST) or ('ordem_id_2' in request.POST): if 'origem' in request.POST:
tipo_votacao = request.POST.get('tipo_votacao') tipo_votacao = request.POST.get('tipo_votacao')
if tipo_votacao == '1': if tipo_votacao == '1':
marcadas = request.POST.getlist('ordem_id_1') marcadas = request.POST.getlist('marcadas_id_1')
titulo = "Votação Simbólica" titulo = "Votação Simbólica"
elif tipo_votacao == '2': elif tipo_votacao == '2':
marcadas = request.POST.getlist('ordem_id_2') marcadas = request.POST.getlist('marcadas_id_2')
titulo = "Votação Nominal" titulo = "Votação Nominal"
ordens = OrdemDia.objects.filter(id__in=marcadas)
qtde_presentes = PresencaOrdemDia.objects.filter( qtde_presentes = PresencaOrdemDia.objects.filter(
sessao_plenaria_id=self.kwargs['pk']).count() sessao_plenaria_id=self.kwargs['pk']).count()
origem = request.POST['origem']
# import ipdb; ipdb.set_trace()
context.update({'tipo_votacao': tipo_votacao, context.update({'tipo_votacao': tipo_votacao,
'votacao_titulo': titulo, 'votacao_titulo': titulo,
'ordens': ordens,
'total_presentes': qtde_presentes, 'total_presentes': qtde_presentes,
'resultado_votacao': TipoResultadoVotacao.objects.all()}) 'resultado_votacao': TipoResultadoVotacao.objects.all(),
'origem': origem})
if origem == 'ordem':
ordens = OrdemDia.objects.filter(id__in=marcadas)
context.update({'ordens':ordens})
else:
expedientes = ExpedienteMateria.objects.filter(id__in=marcadas)
context.update({'expedientes':expedientes})
if 'salvar-votacao' in request.POST: if 'salvar-votacao' in request.POST:
form = VotacaoForm(request.POST) form = VotacaoForm(request.POST)
ordens = OrdemDia.objects.filter(id__in=request.POST.getlist('ordens'))
qtde_presentes = int(request.POST['total_presentes'])
if form.is_valid(): if form.is_valid():
qtde_votos = (int(request.POST['votos_sim']) + qtde_votos = (int(request.POST['votos_sim']) +
int(request.POST['votos_nao']) + int(request.POST['votos_nao']) +
int(request.POST['abstencoes'])) int(request.POST['abstencoes']))
qtde_presentes = int(request.POST['total_presentes'])
if (request.POST['voto_presidente'] == '0'): if (request.POST['voto_presidente'] == '0'):
qtde_presentes -= 1 qtde_presentes -= 1
@ -3389,6 +3328,11 @@ class VotacaoEmBlocoView(TemplateView):
form._errors["total_votos"] = ErrorList([u""]) form._errors["total_votos"] = ErrorList([u""])
return self.render_to_response(context) return self.render_to_response(context)
origem = request.POST['origem2']
if origem == 'ordem':
ordens = OrdemDia.objects.filter(id__in=request.POST.getlist('ordens'))
import ipdb; ipdb.set_trace()
for ordem in ordens: for ordem in ordens:
try: try:
votacao = RegistroVotacao() votacao = RegistroVotacao()
@ -3411,13 +3355,45 @@ class VotacaoEmBlocoView(TemplateView):
ordem.resultado = resultado.nome ordem.resultado = resultado.nome
ordem.votacao_aberta = False ordem.votacao_aberta = False
ordem.save() ordem.save()
return HttpResponseRedirect(self.get_success_url())
else:
expedientes = ExpedienteMateria.objects.filter(id__in=request.POST.getlist('expedientes'))
for expediente in expedientes:
try:
votacao = RegistroVotacao()
votacao.numero_votos_sim = int(request.POST['votos_sim'])
votacao.numero_votos_nao = int(request.POST['votos_nao'])
votacao.numero_abstencoes = int(request.POST['abstencoes'])
votacao.observacao = request.POST['observacao']
votacao.materia = expediente.materia
votacao.expediente = expediente
resultado = TipoResultadoVotacao.objects.get(
id=request.POST['resultado_votacao'])
votacao.tipo_resultado_votacao = resultado
votacao.save()
except Exception as e:
username = request.user.username
self.logger.error('user=' + username + '. Problemas ao salvar RegistroVotacao da materia de id={} '
'e da ordem de id={}. '.format(expediente.materia.id, expediente.id) + str(e))
return self.form_invalid(form)
else:
expediente.resultado = resultado.nome
expediente.votacao_aberta = False
expediente.save()
return HttpResponseRedirect(self.get_success_url(origem))
if 'cancelar-votacao' in request.POST: if 'cancelar-votacao' in request.POST:
if request.POST['origem2'] == 'ordem':
ordens = OrdemDia.objects.filter(id__in=request.POST['ordens']) ordens = OrdemDia.objects.filter(id__in=request.POST['ordens'])
for ordem in ordens: for ordem in ordens:
ordem.votacao_aberta = False ordem.votacao_aberta = False
ordem.save() ordem.save()
else:
expedientes = ExpedienteMateria.objects.filter(id__in=request.POST['expedientes'])
for expediente in expedientes:
expediente.votacao_aberta = False
expediente.save()
return self.render_to_response(context) return self.render_to_response(context)
@ -3426,8 +3402,12 @@ class VotacaoEmBlocoView(TemplateView):
for tipo in TipoResultadoVotacao.objects.all(): for tipo in TipoResultadoVotacao.objects.all():
yield tipo yield tipo
def get_success_url(self): def get_success_url(self, origem):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
if origem=='ordem':
return reverse('sapl.sessao:ordemdia_list', return reverse('sapl.sessao:ordemdia_list',
kwargs={'pk': pk}) kwargs={'pk': pk})
else:
return reverse('sapl.sessao:expedientemateria_list',
kwargs={'pk': pk})

75
sapl/templates/sessao/votacao/votacao_bloco_expediente.html

@ -9,7 +9,7 @@
{% block detail_content %} {% block detail_content %}
{% block buttons %} {% block buttons %}
{% comment %} {% if filter_url and not filter.form.errors %} {% if filter_url and not filter.form.errors %}
<div class="actions btn-group pull-right" role="group"> <div class="actions btn-group pull-right" role="group">
<a href="{% url 'sapl.sessao:votacao_bloco_expediente' pk_sessao %}" class="btn btn-default">{% trans 'Fazer nova pesquisa' %}</a> <a href="{% url 'sapl.sessao:votacao_bloco_expediente' pk_sessao %}" class="btn btn-default">{% trans 'Fazer nova pesquisa' %}</a>
</div> </div>
@ -18,14 +18,13 @@
<a href="{% url 'sapl.sessao:expedientemateria_list' pk_sessao %}" class="btn btn-default">{% trans 'Matérias do Expediente' %}</a> <a href="{% url 'sapl.sessao:expedientemateria_list' pk_sessao %}" class="btn btn-default">{% trans 'Matérias do Expediente' %}</a>
</div> </div>
{% endif %} {% endcomment %} {% endif %}
{% endblock %} {% endblock %}
<p></p> <p></p>
{% comment %} {% if paginator.count %} {% endcomment %} <form method="POST" enctype="application/x-www-form-urlencoded" action="{% url 'sapl.sessao:votacaoblocosimb' pk %}">
<form method="POST" enctype="application/x-www-form-urlencoded" action="{% url 'sapl.sessao:votacaoblocosimbod' pk %}">
{% csrf_token %} {% csrf_token %}
<br><br> <br><br>
<table class="table table-striped table-bordered"> <table class="table table-striped table-bordered">
@ -36,33 +35,35 @@
</thead> </thead>
<tr> <tr>
<td class="col-md-12"> <td class="col-md-12">
<input type="radio" name="tipo_votacao" id="tipo_votacao" value="1" checked="checked" onchange="alteraTipoVotacao()" > <label for="tipo">Simbólica</label> <fieldset id="tipo_votacao" name="tipo">
<input type="radio" name="tipo_votacao" id="tipo_votacao1" value="1" onchange="alteraTipoVotacao()" checked="checked"> <label for="tipo">Simbólica</label>
</br> </br>
<input type="radio" name="tipo_votacao" id="tipo_votacao" value="2" onchange="alteraTipoVotacao()" > <label for="tipo">Nominal</label> <input type="radio" name="tipo_votacao" id="tipo_votacao2" value="2" onchange="alteraTipoVotacao()" > <label for="tipo">Nominal</label>
</br> </br>
</fieldset>
</td> </td>
</tr> </tr>
</table> </table>
<br> <br>
<h3>Selecione a(s) ordem(s) do dia desejada(s).</h3> <h3 id='frase_selecione'>Selecione o(s) expediente(s) desejado(s).</h3>
<table class="table table-striped table-bordered"> <table id='tab_ordens' class="table table-striped table-bordered">
<thead class="thead-default"> <thead class="thead-default">
<tr> <tr>
<td><h3>{% trans "Ordem do dia" %}</h3></td> <td><h3>{% trans "Expediente" %}</h3></td>
</tr> </tr>
</thead> </thead>
<div class="checkbox"> <div class="checkbox" id="check_all">
<label for="id_check_all"> <label for="id_check_all">
<input type="checkbox" id="id_check_all" onchange="checkAll(this)" /> Marcar/Desmarcar Todos <input type="checkbox" id="id_check_all" onchange="checkAll(this)" /> Marcar/Desmarcar Todos
</label> </label>
</div> </div>
{% for o in ordem_dia %} {% for o in expedientes %}
<tr class="{% if o.tipo_votacao == 1 %}Simbolica{% else %}Nominal{% endif %}" {% if o.tipo_votacao == 2 %} style="display:none;" {% endif %}> <tr class="{% if o.tipo_votacao == 1 %}Simbolica{% else %}Nominal{% endif %}" {% if o.tipo_votacao == 2 %} style="display:none;" {% endif %}>
<td> <td>
<input type="checkbox" name="ordem_id_{{o.tipo_votacao}}" id="{{o.id}}" value="{{o.id}}" {% if check %} checked {% endif %}> <input type="checkbox" name="marcadas_id_{{o.tipo_votacao}}" id="{{o.id}}" value="{{o.id}}" {% if check %} checked {% endif %}>
<strong><a href="{% url 'sapl.materia:materialegislativa_detail' o.id %}">{{o.materia.tipo.sigla}} {{o.materia.numero}}/{{o.materia.ano}} - {{o.materia.tipo}}</strong></a></br> <strong><a href="{% url 'sapl.materia:materialegislativa_detail' o.id %}">{{o.materia.tipo.sigla}} {{o.materia.numero}}/{{o.materia.ano}} - {{o.materia.tipo}}</strong></a></br>
{% if o.materia.numeracao_set.last %} {% if o.materia.numeracao_set.last %}
<strong>Processo:</strong> &nbsp; {{o.materia.numeracao_set.last}}</br> <strong>Processo:</strong> &nbsp; {{o.materia.numeracao_set.last}}</br>
@ -95,23 +96,25 @@
</tr> </tr>
{% endfor %} {% endfor %}
</table> </table>
<input type="submit" value="Registrar votação" class="btn btn-primary"S> <input type="submit" value="Registrar votação" class="btn btn-primary" id="but_reg">
<input type="hidden" id="origem" name="origem" value="expediente">
</form> </form>
{% comment %} {% else %}
<table class="table table-striped table-bordered"> <table class="table table-striped table-bordered" style="display:none" id="nenhum_exp">
<tr> <tr>
<td> <td>
<h3>Nenhuma ordem do dia aberta.</h3> <h3>Nenhuma matéria do expediente aberta.</h3>
</td> </td>
</tr> </tr>
</table> </table>
{% endif %} {% endcomment %}
{% endblock detail_content %} {% endblock detail_content %}
{% block extra_js %} {% block extra_js %}
<script> <script>
$(document).ready(function(){
checa_tipo_votacao();
});
$(window).on('beforeunload', function () { $(window).on('beforeunload', function () {
$("input[type=submit], input[type=button]").prop("disabled", "disabled"); $("input[type=submit], input[type=button]").prop("disabled", "disabled");
@ -120,13 +123,9 @@
</script> </script>
<script language="JavaScript"> <script language="JavaScript">
function checkAll(ele) { function checkAll(elem) {
/* $('[name=ordem_id_1]').each(function() { let checkboxes = document.getElementsByName('marcadas_id_1');
$(this).prop('unchecked', event.target.checked ? 'checked': null); if (elem.checked) {
$(this).trigger('click');
}); */
let checkboxes = document.getElementsByName('ordem_id_1');
if (ele.checked) {
for (let i = 0; i < checkboxes.length; i++) { for (let i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].type == 'checkbox') { if (checkboxes[i].type == 'checkbox') {
checkboxes[i].checked = true; checkboxes[i].checked = true;
@ -140,8 +139,8 @@
} }
} }
checkboxes = document.getElementsByName('ordem_id_2'); checkboxes = document.getElementsByName('marcadas_id_2');
if (ele.checked) { if (elem.checked) {
for (let i = 0; i < checkboxes.length; i++) { for (let i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].type == 'checkbox') { if (checkboxes[i].type == 'checkbox') {
checkboxes[i].checked = true; checkboxes[i].checked = true;
@ -160,6 +159,28 @@
function alteraTipoVotacao() { function alteraTipoVotacao() {
$(".Simbolica").toggle(); $(".Simbolica").toggle();
$(".Nominal").toggle(); $(".Nominal").toggle();
checa_tipo_votacao();
}
function checa_tipo_votacao(){
tipo_votacao = document.querySelector('input[name="tipo_votacao"]:checked').value;
numero_ordens = document.getElementsByName('marcadas_id_'+tipo_votacao).length;
if(numero_ordens == 0){
document.getElementById('frase_selecione').style.display = 'none';
document.getElementById('tab_ordens').style.display = 'none';
document.getElementById('check_all').style.display = 'none';
document.getElementById('but_reg').style.display = 'none';
document.getElementById('nenhum_exp').style.display = '';
}
else{
document.getElementById('frase_selecione').style.display = '';
document.getElementById('tab_ordens').style.display = '';
document.getElementById('check_all').style.display = '';
document.getElementById('but_reg').style.display = '';
document.getElementById('nenhum_exp').style.display = 'none';
}
} }
</script> </script>
{% endblock extra_js%} {% endblock extra_js%}

184
sapl/templates/sessao/votacao/votacao_bloco_ordem.html

@ -1,19 +1,191 @@
{% extends "sessao/votacao/votacao_bloco_expediente.html" %} {% extends "crud/detail.html" %}
{% load i18n %} {% load i18n %}
{% load crispy_forms_tags %} {% load crispy_forms_tags %}
{% block actions %}{% endblock %}
{% block buttons %} {% block sections_nav %}
{% endblock %}
{% if filter_url and not filter.form.errors %} {% block detail_content %}
{% block buttons %}
{% comment %} {% if filter_url and not filter.form.errors %}
<div class="actions btn-group pull-right" role="group"> <div class="actions btn-group pull-right" role="group">
<a href="{% url 'sapl.sessao:votacao_bloco_ordemdia' pk_sessao %}" class="btn btn-default">{% trans 'Fazer nova pesquisa' %}</a> <a href="{% url 'sapl.sessao:votacao_bloco_expediente' pk_sessao %}" class="btn btn-default">{% trans 'Fazer nova pesquisa' %}</a>
</div> </div>
<div class="actions btn-group pull-right" role="group"> <div class="actions btn-group pull-right" role="group">
<a href="{% url 'sapl.sessao:ordemdia_list' pk_sessao %}" class="btn btn-default">{% trans 'Matérias da Ordem do Dia' %}</a> <a href="{% url 'sapl.sessao:expedientemateria_list' pk_sessao %}" class="btn btn-default">{% trans 'Matérias do Expediente' %}</a>
</div> </div>
{% endif %} {% endif %} {% endcomment %}
{% endblock %} {% endblock %}
<p></p>
<form method="POST" enctype="application/x-www-form-urlencoded" action="{% url 'sapl.sessao:votacaoblocosimb' pk %}">
{% csrf_token %}
<br><br>
<table class="table table-striped table-bordered">
<thead class="thead-default">
<tr>
<td><h3>{% trans "Tipo de Votação" %}</h3></td>
</tr>
</thead>
<tr>
<td class="col-md-12">
<fieldset id="tipo_votacao" name="tipo">
<input type="radio" name="tipo_votacao" id="tipo_votacao1" value="1" onchange="alteraTipoVotacao()" checked="checked"> <label for="tipo">Simbólica</label>
</br>
<input type="radio" name="tipo_votacao" id="tipo_votacao2" value="2" onchange="alteraTipoVotacao()" > <label for="tipo">Nominal</label>
</br>
</fieldset>
</td>
</tr>
</table>
<br>
<h3 id='frase_selecione'>Selecione a(s) ordem(s) do dia desejada(s).</h3>
<table id='tab_ordens' class="table table-striped table-bordered">
<thead class="thead-default">
<tr>
<td><h3>{% trans "Ordem do dia" %}</h3></td>
</tr>
</thead>
<div class="checkbox" id="check_all">
<label for="id_check_all">
<input type="checkbox" id="id_check_all" onchange="checkAll(this)" /> Marcar/Desmarcar Todos
</label>
</div>
{% for o in ordem_dia %}
<tr class="{% if o.tipo_votacao == 1 %}Simbolica{% else %}Nominal{% endif %}" {% if o.tipo_votacao == 2 %} style="display:none;" {% endif %}>
<td>
<input type="checkbox" name="marcadas_id_{{o.tipo_votacao}}" id="{{o.id}}" value="{{o.id}}" {% if check %} checked {% endif %}>
<strong><a href="{% url 'sapl.materia:materialegislativa_detail' o.id %}">{{o.materia.tipo.sigla}} {{o.materia.numero}}/{{o.materia.ano}} - {{o.materia.tipo}}</strong></a></br>
{% if o.materia.numeracao_set.last %}
<strong>Processo:</strong> &nbsp; {{o.materia.numeracao_set.last}}</br>
{% endif %}
<strong>Autor:</strong>
{% for a in o.materia.autoria_set.all %}
{% if not forloop.first %}
, &nbsp;&nbsp; {{a.autor|default_if_none:""}}
{% else %}
&nbsp;{{a.autor|default_if_none:""}}
{% endif %}
{% endfor %}
</br>
{% if o.materia.numero_protocolo %}
<strong>Protocolo:</strong> &nbsp; {{o.materia.numero_protocolo}}</br>
{% endif %}
{% if o.materia.tramitacao_set.last %}
{% if o.materia.tramitacao_set.last.turno %}
<strong>Turno:</strong>&nbsp;
{% for t in turno_choices %}
{% if t.0 == o.materia.tramitacao_set.last.turno %}
{{ t.1 }}
{% endif %}
{% endfor %}</br>
{% endif %}
{% endif %}
<strong>Ementa:</strong>&nbsp;{{ o.ementa|safe }}</br>
<p></p>
</td>
</tr>
{% endfor %}
</table>
<input type="submit" value="Registrar votação" class="btn btn-primary" id="but_reg">
<input type="hidden" id="origem" name="origem" value="ordem">
</form>
<table class="table table-striped table-bordered" style="display:none" id="nenhuma_ordem">
<tr>
<td>
<h3>Nenhuma ordem do dia aberta.</h3>
</td>
</tr>
</table>
{% endblock detail_content %}
{% block extra_js %}
<script>
$(document).ready(function(){
checa_tipo_votacao();
});
$(window).on('beforeunload', function () {
$("input[type=submit], input[type=button]").prop("disabled", "disabled");
});
</script>
<script language="JavaScript">
function checkAll(ele) {
/* $('[name=ordem_id_1]').each(function() {
$(this).prop('unchecked', event.target.checked ? 'checked': null);
$(this).trigger('click');
}); */
let checkboxes = document.getElementsByName('marcadas_id_1');
if (ele.checked) {
for (let i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].type == 'checkbox') {
checkboxes[i].checked = true;
}
}
} else {
for (let i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].type == 'checkbox') {
checkboxes[i].checked = false;
}
}
}
checkboxes = document.getElementsByName('marcadas_id_2');
if (ele.checked) {
for (let i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].type == 'checkbox') {
checkboxes[i].checked = true;
}
}
} else {
for (let i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].type == 'checkbox') {
checkboxes[i].checked = false;
}
}
}
}
function alteraTipoVotacao() {
$(".Simbolica").toggle();
$(".Nominal").toggle();
checa_tipo_votacao();
}
function checa_tipo_votacao(){
tipo_votacao = document.querySelector('input[name="tipo_votacao"]:checked').value;
numero_ordens = document.getElementsByName('marcadas_id_'+tipo_votacao).length;
if(numero_ordens == 0){
document.getElementById('frase_selecione').style.display = 'none';
document.getElementById('tab_ordens').style.display = 'none';
document.getElementById('check_all').style.display = 'none';
document.getElementById('but_reg').style.display = 'none';
document.getElementById('nenhuma_ordem').style.display = '';
}
else{
document.getElementById('frase_selecione').style.display = '';
document.getElementById('tab_ordens').style.display = '';
document.getElementById('check_all').style.display = '';
document.getElementById('but_reg').style.display = '';
document.getElementById('nenhuma_ordem').style.display = 'none';
}
}
</script>
{% endblock extra_js%}

12
sapl/templates/sessao/votacao/votacao_votacaoembloco.html

@ -27,6 +27,7 @@
<div> <div>
<input type="hidden" id="tipo_votacao" name="tipo_votacao" value="{{tipo_votacao}}"> <input type="hidden" id="tipo_votacao" name="tipo_votacao" value="{{tipo_votacao}}">
{% if ordens %}
{% for o in ordens %} {% for o in ordens %}
<input type="hidden" id="ordens" name="ordens" value="{{o.id}}"> <input type="hidden" id="ordens" name="ordens" value="{{o.id}}">
<b>Matéria:</b> {{o.materia|safe}} <b>Matéria:</b> {{o.materia|safe}}
@ -34,6 +35,15 @@
<b>Ementa:</b> {{o.materia.ementa|safe}} <b>Ementa:</b> {{o.materia.ementa|safe}}
<br /> <br /> <br /> <br />
{% endfor %} {% endfor %}
{% else %}
{% for e in expedientes %}
<input type="hidden" id="expedientes" name="expedientes" value="{{e.id}}">
<b>Matéria:</b> {{e.materia|safe}}
<br />
<b>Ementa:</b> {{e.materia.ementa|safe}}
<br /> <br />
{% endfor %}
{% endif %}
<b>Total presentes:</b> {{total_presentes}} (com presidente) <b>Total presentes:</b> {{total_presentes}} (com presidente)
<input type="hidden" id="total_presentes" name="total_presentes" value="{{total_presentes}}"> <input type="hidden" id="total_presentes" name="total_presentes" value="{{total_presentes}}">
</div> </div>
@ -71,6 +81,8 @@
</div> </div>
</div> </div>
<input type="hidden" id="origem2" name="origem2" value="{{origem}}">
<br /><br /> <br /><br />
<input type="submit" id="salvar-votacao" name="salvar-votacao" value="Salvar" class="btn btn-primary" /> <input type="submit" id="salvar-votacao" name="salvar-votacao" value="Salvar" class="btn btn-primary" />
<input type="submit" id="cancelar-votacao" name="cancelar-votacao" value="Cancelar Votação" class="btn btn-warning" /> <input type="submit" id="cancelar-votacao" name="cancelar-votacao" value="Cancelar Votação" class="btn btn-warning" />

Loading…
Cancel
Save