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'), ExplicacaoDelete.as_view(), name='explicacaoexcluir'),
url(r'^(?P<pk>\d+)/explicacao/editar/(?P<oid>\d+)$', url(r'^(?P<pk>\d+)/explicacao/editar/(?P<oid>\d+)$',
ExplicacaoEdit.as_view(), name='explicacaoeditar'), 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'), VotacaoSimbolicaView.as_view(), name='votacaosimbolica'),
url(r'^(?P<pk>\d+)/materiaordemdia/votacaonominal/(?P<oid>\d+)$', url(r'^(?P<pk>\d+)/materiaordemdia/votacaonominal/(?P<oid>\d+)$',
VotacaoNomimalView.as_view(), name='votacaonominal'), VotacaoNomimalView.as_view(), name='votacaonominal'),

84
sessao/views.py

@ -239,6 +239,7 @@ class ListMateriaOrdemDiaView(sessao_crud.CrudDetailView):
mat = {'pk': pk, mat = {'pk': pk,
'oid': o.materia_id, 'oid': o.materia_id,
'ordem_id': o.id,
'ementa': ementa, 'ementa': ementa,
'titulo': titulo, 'titulo': titulo,
'numero': numero, 'numero': numero,
@ -1222,9 +1223,92 @@ class ExplicacaoEdit(FormMixin, sessao_crud.CrudDetailView):
return self.render_to_response(context) 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): class VotacaoSimbolicaView(FormMixin, sessao_crud.CrudDetailView):
template_name = 'sessao/votacao/simbolica.html' 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): class VotacaoNomimalView(FormMixin, sessao_crud.CrudDetailView):
template_name = 'sessao/votacao/nominal.html' template_name = 'sessao/votacao/nominal.html'

2
templates/sessao/materia_ordemdia_list.html

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

127
templates/sessao/votacao/simbolica.html

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

Loading…
Cancel
Save