Browse Source

Merge d42b069b0f into e69d13a73a

pull/3294/merge
Ulysses Lara 3 years ago
committed by GitHub
parent
commit
7066ac30a1
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      sapl/sessao/urls.py
  2. 48
      sapl/sessao/views.py
  3. 74
      sapl/templates/sessao/votacao/votacao_bloco.html

6
sapl/sessao/urls.py

@ -36,7 +36,8 @@ from sapl.sessao.views import (AdicionarVariasMateriasExpediente,
OrdemDiaLeituraView, OrdemDiaLeituraView,
retirar_leitura, retirar_leitura,
TransferenciaMateriasExpediente, TransferenciaMateriasOrdemDia, TransferenciaMateriasExpediente, TransferenciaMateriasOrdemDia,
filtra_materias_copia_sessao_ajax, verifica_materia_sessao_plenaria_ajax) filtra_materias_copia_sessao_ajax, verifica_materia_sessao_plenaria_ajax,
LeituraEmBloco)
from .apps import AppConfig from .apps import AppConfig
@ -147,6 +148,9 @@ urlpatterns = [
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'),
url(r'^sessao/(?P<pk>\d+)/leitura_em_bloco$',
LeituraEmBloco.as_view(),
name='leitura_em_bloco'),
url(r'^sessao/(?P<pk>\d+)/resumo$', url(r'^sessao/(?P<pk>\d+)/resumo$',
ResumoView.as_view(), name='resumo'), ResumoView.as_view(), name='resumo'),
url(r'^sessao/(?P<pk>\d+)/resumo_ata$', url(r'^sessao/(?P<pk>\d+)/resumo_ata$',

48
sapl/sessao/views.py

@ -4304,6 +4304,54 @@ class VotacaoEmBlocoOrdemDia(VotacaoEmBlocoExpediente):
retiradapauta=None) retiradapauta=None)
class LeituraEmBloco(PermissionRequiredForAppCrudMixin, TemplateView):
app_label = AppConfig.label
logger = logging.getLogger(__name__)
def post(self, request, *args, **kwargs):
origem = self.request.POST['origem']
if origem == 'ordem':
model = OrdemDia
presenca_model = PresencaOrdemDia
elif origem == 'expediente':
model = ExpedienteMateria
presenca_model = SessaoPlenariaPresenca
spk = SessaoPlenaria.objects.get(pk=kwargs['pk'])
if not verifica_presenca(request, presenca_model, spk, True):
return HttpResponseRedirect(self.get_success_url())
leituras = model.objects.filter(
id__in=request.POST.getlist('marcadas_4'))
lista_registro_leitura = []
for ordem in leituras:
ordem.resultado = "Matéria lida em Bloco"
ordem.votacao_aberta = False
ordem.registro_aberto = False
if origem == 'ordem':
rl = RegistroLeitura(materia=ordem.materia,ordem=ordem,user=request.user,ip=get_client_ip(request))
elif origem == 'expediente':
rl = RegistroLeitura(materia=ordem.materia,expediente=ordem,user=request.user,ip=get_client_ip(request))
rl.observacao = self.request.POST.get('observacao',"")
lista_registro_leitura.append(rl)
RegistroLeitura.objects.bulk_create(lista_registro_leitura)
model.objects.bulk_update(leituras, ['resultado','votacao_aberta','registro_aberto'])
return HttpResponseRedirect(self.get_success_url())
def get_success_url(self):
if self.request.POST['origem'] == 'ordem':
return reverse('sapl.sessao:ordemdia_list',
kwargs={'pk': self.kwargs['pk']})
else:
return reverse('sapl.sessao:expedientemateria_list',
kwargs={'pk': self.kwargs['pk']})
class VotacaoEmBlocoSimbolicaView(PermissionRequiredForAppCrudMixin, TemplateView): class VotacaoEmBlocoSimbolicaView(PermissionRequiredForAppCrudMixin, TemplateView):
""" """

74
sapl/templates/sessao/votacao/votacao_bloco.html

@ -20,6 +20,7 @@
</br> </br>
<input type="radio" name="tipo_votacao" id="tipo_votacao_2" value="2" onchange="alteraTipoVotacao()" > <label for="tipo">Nominal</label> <input type="radio" name="tipo_votacao" id="tipo_votacao_2" value="2" onchange="alteraTipoVotacao()" > <label for="tipo">Nominal</label>
</br> </br>
<input type="radio" name="tipo_votacao" id="tipo_votacao_4" value="4" onchange="alteraTipoVotacao()" > <label for="tipo">Leitura</label><!--value=3 é pra votação secreta que não pode ser feita em bloco-->
</fieldset> </fieldset>
</td> </td>
</tr> </tr>
@ -43,8 +44,8 @@
</div> </div>
{% for o in object_list %} {% for o in object_list %}
{% if o.tipo_votacao == 1 or o.tipo_votacao == 2 %} {% if o.tipo_votacao == 1 or o.tipo_votacao == 2 or o.tipo_votacao == 4 %}
<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{% elif o.tipo_votacao == 2 %}Nominal{% else %}Leitura{% endif %}" {% if o.tipo_votacao == 2 %} style="display:none;" {% endif %} {% if o.tipo_votacao == 4 %} style="display:none;" {% endif %}>
<td> <td>
<input type="checkbox" name="marcadas_{{o.tipo_votacao}}" id="{{o.id}}" value="{{o.id}}" {% if check %} checked {% endif %}> <input type="checkbox" name="marcadas_{{o.tipo_votacao}}" id="{{o.id}}" value="{{o.id}}" {% if check %} checked {% endif %}>
<strong><a href="{% url 'sapl.materia:materialegislativa_detail' o.materia.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.materia.id %}">{{o.materia.tipo.sigla}} {{o.materia.numero}}/{{o.materia.ano}} - {{o.materia.tipo}}</strong></a></br>
@ -98,7 +99,30 @@
<a href="{% url 'sapl.sessao:ordemdia_list' pk %}" class="btn btn-warning mb-3" id="but_cancel">Voltar</a> <a href="{% url 'sapl.sessao:ordemdia_list' pk %}" class="btn btn-warning mb-3" id="but_cancel">Voltar</a>
<input type="hidden" id="origem" name="origem" value="ordem"> <input type="hidden" id="origem" name="origem" value="ordem">
{% endif %} {% endif %}
<input type="submit" value="Registrar votação" class="btn btn-primary mb-3 float-right" id="but_reg"> <a onclick="submit_button()" class="btn btn-primary mb-3 float-right" id="but_reg">Registrar votação</a>
<div class="modal fade" id="leituraModal" tabindex="-1" role="dialog" aria-labelledby="leituraModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="leituraModalLabel">Observação da Leitura</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="form-group">
<label for="message-text" class="col-form-label">Observação:</label>
<textarea class="form-control" id="observacao" name="observacao"></textarea>
</div>
</div>
<div class="modal-footer">
<a type="button" class="btn btn-secondary" data-dismiss="modal">Fechar</a>
<input type="submit" class="btn btn-primary mb-3 float-right" value="Salvar">
</div>
</div>
</div>
</div>
</form> </form>
{% endif %} {% endif %}
@ -118,22 +142,20 @@
<script language="JavaScript"> <script language="JavaScript">
function checkAll(elem) { function checkAll(elem) {
let checkboxes = document.getElementsByName('marcadas_1'); let checkbox_types = ['marcadas_1', 'marcadas_2', 'marcadas_4']
for (let i = 0; i < checkboxes.length; i++) { for (t in checkbox_types){
if (checkboxes[i].type == 'checkbox') let checkboxes = document.getElementsByName(checkbox_types[t]);
checkboxes[i].checked = elem.checked; for (let i = 0; i < checkboxes.length; i++) {
} if (checkboxes[i].type == 'checkbox')
checkboxes[i].checked = elem.checked;
checkboxes = document.getElementsByName('marcadas_2'); }
for (let i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].type == 'checkbox')
checkboxes[i].checked = elem.checked;
} }
} }
function alteraTipoVotacao() { function alteraTipoVotacao() {
$(".Simbolica").toggle(); $(".Simbolica").toggle();
$(".Nominal").toggle(); $(".Nominal").toggle();
$(".Leitura").toggle();
checa_tipo_votacao(); checa_tipo_votacao();
} }
@ -156,12 +178,34 @@
document.getElementById('but_reg').style.display = ''; document.getElementById('but_reg').style.display = '';
document.getElementById('nenhuma_mat').style.display = 'none'; document.getElementById('nenhuma_mat').style.display = 'none';
} }
$("#but_reg").text("Registrar Votação")
if(tipo_votacao == "1"){ if(tipo_votacao == "1"){
$('#form').attr("action", "{% url 'sapl.sessao:votacaoblocosimb' pk %}") $('#form').attr("action", "{% url 'sapl.sessao:votacaoblocosimb' pk %}")
//document.querySelectorAll('tr[class="Leitura"]').map((obj) -> {obj.style.display='none'});
Array.from(document.querySelectorAll('tr[class="Leitura"]')).map(function(obj){obj.style.display='none'});
Array.from(document.querySelectorAll('tr[class="Nominal"]')).map(function(obj){obj.style.display='none'});
} }
else{ else if(tipo_votacao == "2"){
$('#form').attr("action", "{% url 'sapl.sessao:votacaobloconom' pk %}") $('#form').attr("action", "{% url 'sapl.sessao:votacaobloconom' pk %}")
Array.from(document.querySelectorAll('tr[class="Simbolica"]')).map(function(obj){obj.style.display='none'});
Array.from(document.querySelectorAll('tr[class="Leitura"]')).map(function(obj){obj.style.display='none'});
}
else{
$("#but_reg").text("Registrar Leitura")
$('#form').attr("action", "{% url 'sapl.sessao:leitura_em_bloco' pk %}")
Array.from(document.querySelectorAll('tr[class="Simbolica"]')).map(function(obj){obj.style.display='none'});
Array.from(document.querySelectorAll('tr[class="Nominal"]')).map(function(obj){obj.style.display='none'});
}
}
function submit_button(){
var radioValue = $("input[name='tipo_votacao']:checked").val();
if (radioValue == 4){
$('#leituraModal').modal('show')
}
else{
$("#form").submit()
} }
} }
</script> </script>

Loading…
Cancel
Save