Browse Source

Correções e Alterações

pull/3205/head
João Rodrigues 6 years ago
parent
commit
49fa9c8c37
  1. 14
      sapl/sessao/urls.py
  2. 326
      sapl/sessao/views.py
  3. 78
      sapl/templates/sessao/copiar_materias_expediente.html
  4. 78
      sapl/templates/sessao/copiar_materias_ordemdia.html
  5. 2
      sapl/templates/sessao/expedientemateria_list.html
  6. 2
      sapl/templates/sessao/ordemdia_list.html
  7. 73
      sapl/templates/sessao/transf_mat_sessao.html

14
sapl/sessao/urls.py

@ -35,7 +35,7 @@ from sapl.sessao.views import (AdicionarVariasMateriasExpediente,
ExpedienteLeituraView,
OrdemDiaLeituraView,
retirar_leitura,
CopiarMateriasExpediente, CopiarMateriasOrdemDia)
TransferenciaMateriasExpediente, TransferenciaMateriasOrdemDia)
from .apps import AppConfig
@ -106,12 +106,12 @@ urlpatterns = [
url(r'^sessao/(?P<pk>\d+)/adicionar-varias-materias-ordem-dia/',
AdicionarVariasMateriasOrdemDia.as_view(),
name='adicionar_varias_materias_ordem_dia'),
url(r'^sessao/(?P<pk>\d+)/copiar-materias-expediente/',
CopiarMateriasExpediente.as_view(),
name="copiar_materias_expediente"),
url(r'^sessao/(?P<pk>\d+)/copiar-materias-ordemdia/',
CopiarMateriasOrdemDia.as_view(),
name="copiar_materias_ordemdia"),
url(r'^sessao/(?P<pk>\d+)/transf-mat-exp/',
TransferenciaMateriasExpediente.as_view(),
name="transf_mat_exp"),
url(r'^sessao/(?P<pk>\d+)/transf-mat-ordemdia/',
TransferenciaMateriasOrdemDia.as_view(),
name="transf_mat_ordemdia"),
# PAUTA SESSÃO
url(r'^sessao/pauta-sessao$',

326
sapl/sessao/views.py

@ -529,156 +529,194 @@ def get_presencas_generic(model, sessao, legislatura):
yield (m.parlamentar, False)
class CopiarMateriasExpediente(PermissionRequiredMixin, ListView):
model = SessaoPlenaria
template_name = 'sessao/copiar_materias_expediente.html'
permission_required = ('sessao.change_expedientemateria')
class TransferenciaMateriasSessaoAbstract(PermissionRequiredMixin, ListView):
logger = logging.getLogger(__name__)
template_name = 'sessao/transf_mat_sessao.html'
def get(self, *args, **kwargs):
sessao_plenaria_atual = SessaoPlenaria.objects.get(pk=self.kwargs['pk'])
if not sessao_plenaria_atual.finalizada:
msg = _('A sessão plenária deve estar finalizada.')
messages.add_message(self.request, messages.ERROR, msg)
if self.expediente:
error_url = reverse(
'sapl.sessao:expedientemateria_list',
kwargs={'pk': sessao_plenaria_atual.id}
)
elif self.ordem:
error_url = reverse(
'sapl.sessao:ordemdia_list',
kwargs={'pk': sessao_plenaria_atual.id}
)
return HttpResponseRedirect(error_url)
return super().get(*args, **kwargs)
def get_context_data(self, **kwargs):
context = super(CopiarMateriasExpediente, self).get_context_data(**kwargs)
context = super(
TransferenciaMateriasSessaoAbstract, self
).get_context_data(**kwargs)
context["title"] = _("Cópia de Matérias do Expediente")
try:
sessao_plenaria_atual = SessaoPlenaria.objects.get(pk=self.kwargs['pk'])
lista_materias_expediente_disponiveis = []
expedientes = ExpedienteMateria.objects.filter(sessao_plenaria=sessao_plenaria_atual)
for expediente in expedientes:
if expediente.tipo_votacao == 4:
if not RegistroLeitura.objects.filter(expediente=expediente).exists():
lista_materias_expediente_disponiveis.append(expediente)
else:
if not RegistroVotacao.objects.filter(expediente=expediente).exists():
lista_materias_expediente_disponiveis.append(expediente)
sessao_plenaria_atual = SessaoPlenaria.objects.get(pk=self.kwargs['pk'])
context["lista_materias_expediente_disponiveis"] = lista_materias_expediente_disponiveis
context["numero_resultados"] = len(context["lista_materias_expediente_disponiveis"])
## O CÓDIGO COMENTADO RESTRINGI A CÓPIA DAS MATÉRIAS LIDAS OU VOTADAS
# LEITURA = 4
# lista_disponiveis = []
if context['numero_resultados']:
context['sessoes_disponiveis'] = SessaoPlenaria.objects.filter(
data_inicio__gte=sessao_plenaria_atual.data_inicio
).exclude(pk=sessao_plenaria_atual.pk).order_by("-data_inicio")
except:
context['ERROR'] = True
if self.expediente:
context["title"] = _("Cópia de Matérias do Expediente")
# for expediente in ExpedienteMateria.objects.filter(
# sessao_plenaria=sessao_plenaria_atual
# ):
# if expediente.tipo_votacao == LEITURA:
# if not RegistroLeitura.objects.filter(
# expediente=expediente
# ).exists():
# lista_disponiveis.append(expediente)
# else:
# if not RegistroVotacao.objects.filter(
# expediente=expediente
# ).exists():
# lista_disponiveis.append(expediente)
context['lista_disponiveis'] = ExpedienteMateria.objects.filter(
sessao_plenaria=sessao_plenaria_atual
)
elif self.ordem:
context["title"] = _("Cópia de Matérias da Ordem do Dia")
# for ordemdia in OrdemDia.objects.filter(
# sessao_plenaria=sessao_plenaria_atual
# ):
# if ordemdia.tipo_votacao == 4:
# if not RegistroLeitura.objects.filter(
# ordem=ordemdia
# ).exists():
# lista_disponiveis.append(ordemdia)
# else:
# if not RegistroVotacao.objects.filter(
# ordem=ordemdia
# ).exists():
# lista_disponiveis.append(ordemdia)
context['lista_disponiveis'] = OrdemDia.objects.filter(
sessao_plenaria=sessao_plenaria_atual
)
# context["lista_disponiveis"] = lista_disponiveis
context["numero_resultados"] = len(context["lista_disponiveis"])
if context['numero_resultados']:
context['sessoes'] = SessaoPlenaria.objects.filter(
data_inicio__gte=sessao_plenaria_atual.data_inicio
).exclude(pk=sessao_plenaria_atual.pk).order_by("-data_inicio")
return context
def post(self, request, *args, **kwargs):
marcadas = request.POST.getlist('expediente_id')
marcadas = request.POST.getlist('opcao_id')
if len(marcadas) == 0:
msg = _('Nenhuma matéria do expediente foi selecionada.')
msg = _('Nenhuma matéria foi selecionada.')
messages.add_message(request, messages.ERROR, msg)
return self.get(request, self.kwargs)
sessao_plenaria_destino_id = request.POST['sessao_plenaria']
if not sessao_plenaria_destino_id:
self.logger.error(
"A variável sessao_plenaria da requisição de cópia de " \
"matérias entre sessões plenárias não existe."
)
msg = _('Ocorreu um erro inesperado. Tente novamente.')
messages.add_message(request, messages.ERROR, msg)
msg_c = _('Se o problema persistir, entre em contato com o suporte do Interlegis.')
msg_c = _(
'Se o problema persistir, entre em contato com o suporte do ' \
'Interlegis.'
)
messages.add_message(request, messages.WARNING, msg_c)
return self.get(request, self.kwargs)
for expediente in ExpedienteMateria.objects.filter(id__in=marcadas):
novo_expediente = ExpedienteMateria()
novo_expediente.sessao_plenaria = SessaoPlenaria.objects.get(id=sessao_plenaria_destino_id)
novo_expediente.materia = expediente.materia
novo_expediente.data_ordem = expediente.data_ordem
novo_expediente.observacao = expediente.observacao
novo_expediente.numero_ordem = expediente.numero_ordem
novo_expediente.resultado = expediente.resultado
novo_expediente.tipo_votacao = expediente.tipo_votacao
novo_expediente.votacao_aberta = expediente.votacao_aberta
novo_expediente.registro_aberto = expediente.registro_aberto
novo_expediente.save()
sessao = SessaoPlenaria.objects.get(id=sessao_plenaria_destino_id)
if self.expediente:
numero_ordem = 0
lista_expediente = []
if ExpedienteMateria.objects.filter(sessao_plenaria=sessao).exists():
numero_ordem = ExpedienteMateria.objects.filter(
sessao_plenaria=sessao
).last().numero_ordem
for expediente in ExpedienteMateria.objects.filter(id__in=marcadas):
numero_ordem = numero_ordem + 1
lista_expediente.append(
ExpedienteMateria(
sessao_plenaria=sessao, materia=expediente.materia,
data_ordem=expediente.data_ordem,
observacao=expediente.observacao,
numero_ordem=numero_ordem,
tipo_votacao=expediente.tipo_votacao,
votacao_aberta=False, registro_aberto=False
)
)
ExpedienteMateria.objects.bulk_create(lista_expediente)
elif self.ordem:
numero_ordem = 0
lista_ordemdia = []
msg = _('Matéria(s) do Expediente copiada(s) com sucesso.')
if OrdemDia.objects.filter(sessao_plenaria=sessao).exists():
numero_ordem = OrdemDia.objects.filter(
sessao_plenaria=sessao
).last().numero_ordem
for ordemdia in OrdemDia.objects.filter(id__in=marcadas):
numero_ordem = numero_ordem + 1
lista_ordemdia.append(
OrdemDia(
sessao_plenaria=sessao, materia=ordemdia.materia,
data_ordem=ordemdia.data_ordem,
observacao=ordemdia.observacao,
numero_ordem=numero_ordem,
tipo_votacao=ordemdia.tipo_votacao,
votacao_aberta=False, registro_aberto=False
)
)
OrdemDia.objects.bulk_create(lista_ordemdia)
msg = _('Matéria(s) copiada(s) com sucesso.')
messages.add_message(request, messages.SUCCESS, msg)
success_url = reverse(
'sapl.sessao:expedientemateria_list', kwargs={'pk': sessao_plenaria_destino_id}
)
if self.expediente:
success_url = reverse(
'sapl.sessao:expedientemateria_list',
kwargs={'pk': sessao_plenaria_destino_id}
)
elif self.ordem:
success_url = reverse(
'sapl.sessao:ordemdia_list',
kwargs={'pk': sessao_plenaria_destino_id}
)
return HttpResponseRedirect(success_url)
class CopiarMateriasOrdemDia(PermissionRequiredMixin, ListView):
model = SessaoPlenaria
template_name = 'sessao/copiar_materias_ordemdia.html'
permission_required = ('sessao.change_ordemdia')
def get_context_data(self, **kwargs):
context = super(CopiarMateriasOrdemDia, self).get_context_data(**kwargs)
context["title"] = _("Cópia de Matérias da Ordem do Dia")
try:
sessao_plenaria_atual = SessaoPlenaria.objects.get(pk=self.kwargs['pk'])
lista_materias_ordemdia_disponiveis = []
ordens_dia = OrdemDia.objects.filter(sessao_plenaria=sessao_plenaria_atual)
for ordemdia in ordens_dia:
if ordemdia.tipo_votacao == 4:
if not RegistroLeitura.objects.filter(ordem=ordemdia).exists():
lista_materias_ordemdia_disponiveis.append(ordemdia)
else:
if not RegistroVotacao.objects.filter(ordem=ordemdia).exists():
lista_materias_ordemdia_disponiveis.append(ordemdia)
context["lista_materias_ordemdia_disponiveis"] = lista_materias_ordemdia_disponiveis
context["numero_resultados"] = len(context["lista_materias_ordemdia_disponiveis"])
if context['numero_resultados']:
context['sessoes_disponiveis'] = SessaoPlenaria.objects.filter(
data_inicio__gte=sessao_plenaria_atual.data_inicio
).exclude(pk=sessao_plenaria_atual.pk).order_by("-data_inicio")
except:
context['ERROR'] = True
return context
def post(self, request, *args, **kwargs):
marcadas = request.POST.getlist('ordemdia_id')
if len(marcadas) == 0:
msg = _('Nenhuma matéria da ordem do dia foi selecionada.')
messages.add_message(request, messages.ERROR, msg)
return self.get(request, self.kwargs)
sessao_plenaria_destino_id = request.POST['sessao_plenaria']
if not sessao_plenaria_destino_id:
msg = _('Ocorreu um erro inesperado. Tente novamente.')
messages.add_message(request, messages.ERROR, msg)
class TransferenciaMateriasExpediente(TransferenciaMateriasSessaoAbstract):
expediente = True
ordem = False
msg_c = _('Se o problema persistir, entre em contato com o suporte do Interlegis.')
messages.add_message(request, messages.WARNING, msg_c)
model = ExpedienteMateria
permission_required = ('sessao.change_expedientemateria', )
return self.get(request, self.kwargs)
for ordemdia in OrdemDia.objects.filter(id__in=marcadas):
nova_ordemdia = OrdemDia()
nova_ordemdia.sessao_plenaria = SessaoPlenaria.objects.get(id=sessao_plenaria_destino_id)
nova_ordemdia.materia = ordemdia.materia
nova_ordemdia.data_ordem = ordemdia.data_ordem
nova_ordemdia.observacao = ordemdia.observacao
nova_ordemdia.numero_ordem = ordemdia.numero_ordem
nova_ordemdia.resultado = ordemdia.resultado
nova_ordemdia.tipo_votacao = ordemdia.tipo_votacao
nova_ordemdia.votacao_aberta = ordemdia.votacao_aberta
nova_ordemdia.registro_aberto = ordemdia.registro_aberto
nova_ordemdia.save()
msg = _('Matéria(s) da Ordem do Dia copiada(s) com sucesso.')
messages.add_message(request, messages.SUCCESS, msg)
class TransferenciaMateriasOrdemDia(TransferenciaMateriasSessaoAbstract):
expediente = False
ordem = True
success_url = reverse(
'sapl.sessao:ordemdia_list', kwargs={'pk': sessao_plenaria_destino_id}
)
return HttpResponseRedirect(success_url)
model = OrdemDia
permission_required = ('sessao.change_ordemdia', )
class TipoExpedienteCrud(CrudAux):
@ -751,16 +789,19 @@ class MateriaOrdemDiaCrud(MasterDetailCrud):
context = super().get_context_data(**kwargs)
ordens_dia = OrdemDia.objects.filter(sessao_plenaria_id=self.kwargs['pk'])
for ordem_dia in ordens_dia:
if ordem_dia.tipo_votacao == 4:
if not RegistroLeitura.objects.filter(ordem=ordem_dia).exists():
context["enable_btn"] = True
break
else:
if not RegistroVotacao.objects.filter(ordem=ordem_dia).exists():
context['enable_btn'] = True
break
if OrdemDia.objects.filter(sessao_plenaria_id=self.kwargs['pk']).exists():
context["enable_btn"] = True
# ordens_dia = OrdemDia.objects.filter(sessao_plenaria_id=self.kwargs['pk'])
# for ordem_dia in ordens_dia:
# if ordem_dia.tipo_votacao == 4:
# if not RegistroLeitura.objects.filter(ordem=ordem_dia).exists():
# context["enable_btn"] = True
# break
# else:
# if not RegistroVotacao.objects.filter(ordem=ordem_dia).exists():
# context['enable_btn'] = True
# break
has_permition = self.request.user.has_module_perms(AppConfig.label)
return customize_link_materia(context, self.kwargs['pk'], has_permition, False)
@ -808,18 +849,27 @@ class ExpedienteMateriaCrud(MasterDetailCrud):
context = super().get_context_data(**kwargs)
expedientes = ExpedienteMateria.objects.filter(
if ExpedienteMateria.objects.filter(
sessao_plenaria_id=self.kwargs['pk']
)
for expediente in expedientes:
if expediente.tipo_votacao == 4:
if not RegistroLeitura.objects.filter(expediente=expediente).exists():
context["enable_btn"] = True
break
else:
if not RegistroVotacao.objects.filter(expediente=expediente).exists():
context["enable_btn"] = True
break
).exists():
context["enable_btn"] = True
# expedientes = ExpedienteMateria.objects.filter(
# sessao_plenaria_id=self.kwargs['pk']
# )
# for expediente in expedientes:
# if expediente.tipo_votacao == 4:
# if not RegistroLeitura.objects.filter(
# expediente=expediente
# ).exists():
# context["enable_btn"] = True
# break
# else:
# if not RegistroVotacao.objects.filter(
# expediente=expediente
# ).exists():
# context["enable_btn"] = True
# break
if self.request.GET.get('page'):
context['page'] = self.request.GET.get('page')

78
sapl/templates/sessao/copiar_materias_expediente.html

@ -1,78 +0,0 @@
{% extends "crud/list.html" %}
{% load i18n %}
{% load common_tags %}
{% block base_content %}
{% if ERROR %}
<br/>
<tr><td><h3 style="text-align: center;">Ocorreu um erro inesperado. Tente novamente.<br/>Se o problema persistir, entre em contato com o suporte do Interlegis.</h3></td></tr>
{% else %}
{% if lista_materias_expediente_disponiveis %}
{% if sessoes_disponiveis %}
{% if numero_resultados == 1 %}
<h3 style="text-align: right;">{% trans 'Existe 1 matéria do expediente disponível para cópia.' %}</h3>
{% else %}
<h3 style="text-align: right;">Existem {{ numero_resultados }} matérias do expediente disponíveis para cópia.</h3>
{% endif %}
<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_disponiveis %}
<option value="{{ sessao.pk }}">{{ sessao }}</option>
{% endfor %}
</select>
</div>
</div>
</div>
<br/>
<legend><b>Matérias Não Votadas ou Não Lidas</b></legend>
<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><th>Matéria do Expediente</th></tr></thead>
<tbody>
{% for expediente in lista_materias_expediente_disponiveis %}
<tr>
<td>
<input type="checkbox" name="expediente_id" value="{{ expediente.id }}" {% if check %} checked {% endif %}/>
{{ expediente.materia.tipo.sigla }} {{ expediente.materia.numero }}/{{ expediente.materia.ano }} - {{ expediente.materia.tipo.descricao }}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</fieldset>
<input type="submit" value="Salvar" class="btn btn-primary"S>
</form>
{% else %}
<br/>
<tr><td><h3 style="text-align: center;">Nenhuma sessão plenária está apta a receber a(s) cópia(s) de matéria do expediente.</h3></td></tr>
{% endif %}
{% else %}
<br/>
<tr><td><h3 style="text-align: center;">Nenhuma matéria do expediente dessa sessão plenária está disponível para cópia.</h3></td></tr>
{% endif %}
{% endif %}
{% endblock base_content %}
{% block extra_js %}
<script language="Javascript">
function checkAll(elem){
let checkboxes = document.getElementsByName('expediente_id');
for(let i=0; i<checkboxes.length; i++){
checkboxes[i].checked = elem.checked;
}
}
</script>
{% endblock %}

78
sapl/templates/sessao/copiar_materias_ordemdia.html

@ -1,78 +0,0 @@
{% extends "crud/list.html" %}
{% load i18n %}
{% load common_tags %}
{% block base_content %}
{% if ERROR %}
<br/>
<tr><td><h3 style="text-align: center;">Ocorreu um erro inesperado. Tente novamente.<br/>Se o problema persistir, entre em contato com o suporte do Interlegis.</h3></td></tr>
{% else %}
{% if lista_materias_ordemdia_disponiveis %}
{% if sessoes_disponiveis %}
{% if numero_resultados == 1 %}
<h3 style="text-align: right;">{% trans 'Existe 1 matéria da ordem do dia disponível para cópia.' %}</h3>
{% else %}
<h3 style="text-align: right;">Existem {{ numero_resultados }} matérias da ordem do dia disponíveis para cópia.</h3>
{% endif %}
<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_disponiveis %}
<option value="{{ sessao.pk }}">{{ sessao }}</option>
{% endfor %}
</select>
</div>
</div>
</div>
<br/>
<legend><b>Matérias Não Votadas ou Não Lidas</b></legend>
<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 da Ordem do Dia</td></tr></thead>
<tbody>
{% for ordemdia in lista_materias_ordemdia_disponiveis %}
<tr>
<td>
<input type="checkbox" name="ordemdia_id" value="{{ ordemdia.id }}" {% if check %} checked {% endif %}/>
{{ ordemdia.materia.tipo.sigla }} {{ ordemdia.materia.numero }}/{{ ordemdia.materia.ano }} - {{ ordemdia.materia.tipo.descricao }}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</fieldset>
<input type="submit" value="Salvar" class="btn btn-primary"S>
</form>
{% else %}
<br/>
<tr><td><h3 style="text-align: center;">Nenhuma sessão plenária está apta a receber a(s) cópia(s) de matéria do expediente.</h3></td></tr>
{% endif %}
{% else %}
<br/>
<tr><td><h3 style="text-align: center;">Nenhuma máteria da ordem do dia dessa sessão plenária está disponível para cópia.</h3></td></tr>
{% endif %}
{% endif %}
{% endblock base_content %}
{% block extra_js %}
<script language="Javascript">
function checkAll(elem){
let checkboxes = document.getElementsByName('ordemdia_id');
for(let i=0; i<checkboxes.length; i++){
checkboxes[i].checked = elem.checked;
}
}
</script>
{% endblock %}

2
sapl/templates/sessao/expedientemateria_list.html

@ -29,7 +29,7 @@
{% if perms|get_add_perm:view %}
{% if enable_btn %}
<div>
<a href="{% url 'sapl.sessao:copiar_materias_expediente' root_pk %}" class="btn btn-info">{% trans 'Copiar Matérias' %}</a>
<a href="{% url 'sapl.sessao:transf_mat_exp' root_pk %}" class="btn btn-info">{% trans 'Copiar Matérias' %}</a>
</div>
{% endif %}
{% endif %}

2
sapl/templates/sessao/ordemdia_list.html

@ -28,7 +28,7 @@
{% if perms|get_add_perm:view %}
{% if enable_btn %}
<div>
<a href="{% url 'sapl.sessao:copiar_materias_ordemdia' root_pk %}" class="btn btn-info">{% trans 'Copiar Matérias' %}</a>
<a href="{% url 'sapl.sessao:transf_mat_ordemdia' root_pk %}" class="btn btn-info">{% trans 'Copiar Matérias' %}</a>
</div>
{% endif %}
{% endif %}

73
sapl/templates/sessao/transf_mat_sessao.html

@ -0,0 +1,73 @@
{% extends "crud/list.html" %}
{% load i18n %}
{% load common_tags %}
{% block base_content %}
{% if lista_disponiveis %}
{% if sessoes %}
{% if numero_resultados == 1 %}
<h3 style="text-align: right;">{% trans 'Existe 1 matéria disponível para cópia.' %}</h3>
{% else %}
<h3 style="text-align: right;">Existem {{ numero_resultados }} matérias disponíveis para cópia.</h3>
{% endif %}
<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 %}
<option value="{{ sessao.pk }}">{{ sessao }}</option>
{% endfor %}
</select>
</div>
</div>
</div>
<br/>
<legend><b>Matérias Não Votadas ou Não Lidas</b></legend>
<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>
{% for opcao in lista_disponiveis %}
<tr>
<td>
<input type="checkbox" name="opcao_id" value="{{ opcao.id }}" {% if check %} checked {% endif %}/> {{ opcao.materia.tipo.sigla }} {{ opcao.materia.numero }}/{{ opcao.materia.ano }} - {{ opcao.materia.tipo.descricao }}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</fieldset>
<input type="submit" value="Salvar" class="btn btn-primary"S>
</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++){
checkboxes[i].checked = elem.checked;
}
}
</script>
{% endblock %}
Loading…
Cancel
Save