Browse Source

View da votacao simbolica, falta alguns detalhes ainda

pull/7/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
0d238079bc
  1. 2
      sessao/urls.py
  2. 84
      sessao/views.py
  3. 2
      templates/sessao/materia_ordemdia_list.html
  4. 127
      templates/sessao/votacao/simbolica.html

2
sessao/urls.py

@ -50,7 +50,7 @@ urlpatterns_sessao = sessao_crud.urlpatterns + [
ExplicacaoDelete.as_view(), name='explicacaoexcluir'),
url(r'^(?P<pk>\d+)/explicacao/editar/(?P<oid>\d+)$',
ExplicacaoEdit.as_view(), name='explicacaoeditar'),
url(r'^(?P<pk>\d+)/materiaordemdia/votacaosimbolica/(?P<oid>\d+)$',
url(r'^(?P<pk>\d+)/materiaordemdia/votacaosimbolica/(?P<oid>\d+)/(?P<mid>\d+)$',
VotacaoSimbolicaView.as_view(), name='votacaosimbolica'),
url(r'^(?P<pk>\d+)/materiaordemdia/votacaonominal/(?P<oid>\d+)$',
VotacaoNomimalView.as_view(), name='votacaonominal'),

84
sessao/views.py

@ -239,6 +239,7 @@ class ListMateriaOrdemDiaView(sessao_crud.CrudDetailView):
mat = {'pk': pk,
'oid': o.materia_id,
'ordem_id': o.id,
'ementa': ementa,
'titulo': titulo,
'numero': numero,
@ -1222,9 +1223,92 @@ class ExplicacaoEdit(FormMixin, sessao_crud.CrudDetailView):
return self.render_to_response(context)
class VotacaoForm(forms.Form):
votos_sim = forms.CharField(required=True)
votos_nao = forms.CharField(required=True)
abstencoes = forms.CharField(required=True)
class VotacaoSimbolicaView(FormMixin, sessao_crud.CrudDetailView):
template_name = 'sessao/votacao/simbolica.html'
def get_tipos_votacao(self):
for tipo in TipoResultadoVotacao.objects.all():
yield tipo
def get(self, request, *args, **kwargs):
self.object = self.get_object()
context = self.get_context_data(object=self.object)
current_url = self.request.get_full_path()
words = current_url.split('/')
materia_id = words[-2]
ordem_id = words[-1]
ordem = OrdemDia.objects.get(id=ordem_id)
materia = {'materia': ordem.materia, 'ementa': ordem.observacao}
context.update({'materia': materia})
try:
votacao = RegistroVotacao.objects.get(
materia_id=materia_id,
ordem_id=ordem_id)
except:
pass
else:
votacao_existente = {'materia': ordem.materia,
'ementa': ordem.observacao,
'votos_sim': votacao.numero_votos_sim,
'votos_nao': votacao.numero_votos_nao,
'abstencoes': votacao.numero_abstencoes,
'observacao': votacao.observacao,
'tipo_resultado':
votacao.tipo_resultado_votacao_id}
context.update({'votacao_existente': votacao_existente})
return self.render_to_response(context)
def post(self, request, *args, **kwargs):
self.object = self.get_object()
form = VotacaoForm(request.POST)
if form.is_valid():
current_url = request.get_full_path()
words = current_url.split('/')
materia_id = words[-2]
ordem_id = words[-1]
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_id = materia_id
votacao.ordem_id = ordem_id
votacao.tipo_resultado_votacao_id = int(
request.POST['resultado_votacao'])
votacao.save()
except:
return self.form_invalid(form)
else:
ordem = OrdemDia.objects.get(
sessao_plenaria_id=self.object.id,
materia_id=materia_id)
resultado = TipoResultadoVotacao.objects.get(
id=request.POST['resultado_votacao'])
ordem.resultado = resultado.nome
ordem.save()
return self.form_valid(form)
else:
return self.form_invalid(form)
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:materiaordemdia_list',
kwargs={'pk': pk})
class VotacaoNomimalView(FormMixin, sessao_crud.CrudDetailView):
template_name = 'sessao/votacao/nominal.html'

2
templates/sessao/materia_ordemdia_list.html

@ -25,7 +25,7 @@ Matérias da Ordem do Dia
{% else %}
Matéria não votada <br />
{% if m.tipo_votacao == 1 %}
<b><a href="{% url 'sessaoplenaria:votacaosimbolica' m.pk m.oid %}">Registrar Votação</a></b>
<b><a href="{% url 'sessaoplenaria:votacaosimbolica' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b>
{% elif m.tipo_votacao == 2 %}
<b><a href="{% url 'sessaoplenaria:votacaonominal' m.pk m.oid %}">Registrar Votação</a></b>
{% elif m.tipo_votacao == 3%}

127
templates/sessao/votacao/simbolica.html

@ -8,49 +8,92 @@
<fieldset>
<legend>Votação Simbólica</legend>
Matéria:
Matéria: {{materia.materia}}
<br />
Ementa:
<ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3">
<li>Sim: <input type="text" id="votos_sim" name="votos_sim" value=""/></li>
<li>Não: <input type="text" id="votos_nao" name="votos_nao" value=""/></li>
<li>Abstenções: <input type="text" id="abstencoes" name="abstencoes" value=""/></li>
</ul>
<ul class="small-block-grid-2 medium-block-grid-2 large-block-grid-2">
<li>
Anular Votação
<select id="anular_votacao" name="anular_votacao">
<option value="1">Sim</option>
<option value="0" selected>Não</option>
</select>
</li>
<li>
A totalização inclui o voto do Presidente?
<select id="voto_presidente" name="voto_presidente">
<option value="1">Sim</option>
<option value="0" selected>Não</option>
</select>
</li>
</ul>
<ul class="small-block-grid-1 medium-block-grid-1 large-block-grid-1">
<li>
Resultado da Votação
<select id="resultado_votacao" name="resultado_votacao">
<option value=""></option>
</select>
</li>
</ul>
<ul class="small-block-grid-1 medium-block-grid-1 large-block-grid-1">
<li>
Observações
<textarea id="observacao" name="observacao" cols="10" rows="10"></textarea>
</li>
</ul>
Ementa: {{materia.ementa}}
{% if votacao_existente %}
<ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3">
<li>Sim: <input type="text" id="votos_sim" name="votos_sim" value="{{votacao_existente.votos_sim}}"/></li>
<li>Não: <input type="text" id="votos_nao" name="votos_nao" value="{{votacao_existente.votos_nao}}"/></li>
<li>Abstenções: <input type="text" id="abstencoes" name="abstencoes" value="{{votacao_existente.abstencoes}}"/></li>
</ul>
<ul class="small-block-grid-1 medium-block-grid-1 large-block-grid-1">
<li>
Anular Votação
<select id="anular_votacao" name="anular_votacao">
<option value="1">Sim</option>
<option value="0" selected>Não</option>
</select>
</li>
</ul>
<ul class="small-block-grid-1 medium-block-grid-1 large-block-grid-1">
<li>
Resultado da Votação
<select id="resultado_votacao" name="resultado_votacao">
{% for tipo in view.get_tipos_votacao %}
<option value="{{tipo.id}}" {% if tipo == votacao_existente.tipo_resultado %} selected {% endif %}>{{tipo.nome}}</option>
{% endfor %}
</select>
</li>
</ul>
<ul class="small-block-grid-1 medium-block-grid-1 large-block-grid-1">
<li>
Observações
<textarea id="observacao" name="observacao" cols="10" rows="10">{{votacao_existente.observacao}}</textarea>
</li>
</ul>
{% else %}
<ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3">
<li>Sim: <input type="text" id="votos_sim" name="votos_sim" value=""/></li>
<li>Não: <input type="text" id="votos_nao" name="votos_nao" value=""/></li>
<li>Abstenções: <input type="text" id="abstencoes" name="abstencoes" value=""/></li>
</ul>
<ul class="small-block-grid-2 medium-block-grid-2 large-block-grid-2">
<li>
Anular Votação
<select id="anular_votacao" name="anular_votacao">
<option value="1">Sim</option>
<option value="0" selected>Não</option>
</select>
</li>
<li>
A totalização inclui o voto do Presidente?
<select id="voto_presidente" name="voto_presidente">
<option value="1">Sim</option>
<option value="0" selected>Não</option>
</select>
</li>
</ul>
<ul class="small-block-grid-1 medium-block-grid-1 large-block-grid-1">
<li>
Resultado da Votação
<select id="resultado_votacao" name="resultado_votacao">
<option value="" selected></option>
{% for tipo in view.get_tipos_votacao %}
<option value="{{tipo.id}}">{{tipo.nome}}</option>
{% endfor %}
</select>
</li>
</ul>
<ul class="small-block-grid-1 medium-block-grid-1 large-block-grid-1">
<li>
Observações
<textarea id="observacao" name="observacao" cols="10" rows="10"></textarea>
</li>
</ul>
{% endif %}
<br /><br />
<input type="submit" value="Salvar" />

Loading…
Cancel
Save