Browse Source

Fix edit MateriaOrdemDia

pull/7/head
Edward Ribeiro 9 years ago
parent
commit
28e7b63bc1
  1. 1
      materia/models.py
  2. 80
      sessao/views.py
  3. 4
      templates/sessao/materia_ordemdia.html
  4. 8
      templates/sessao/materia_ordemdia_edit.html
  5. 7
      templates/sessao/materia_ordemdia_list.html

1
materia/models.py

@ -125,6 +125,7 @@ class MateriaLegislativa(models.Model):
class Meta:
verbose_name = _('Matéria Legislativa')
verbose_name_plural = _('Matérias Legislativas')
unique_together = (("tipo", "numero", "ano"),)
def __str__(self):
return _('%(tipo)s%(numero)s de %(ano)s') % {

80
sessao/views.py

@ -2,6 +2,7 @@ from datetime import datetime
from re import sub
from django import forms
from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse
from django.utils.html import strip_tags
from django.utils.translation import ugettext_lazy as _
@ -286,7 +287,7 @@ class MateriaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView):
now = datetime.now()
tipo_materia = TipoMateriaLegislativa.objects.all()
data_sessao = "%s/%s/%s" % (now.day, now.month, now.year)
data_sessao = now
tipo_sessao = TipoSessaoPlenaria.objects.all()
tipo_votacao = ExpedienteMateria.TIPO_VOTACAO_CHOICES
ano_materia = now.year
@ -306,29 +307,27 @@ class MateriaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView):
form = MateriaOrdemDiaForm(request.POST)
if form.is_valid():
try:
materia = MateriaLegislativa.objects.get(
numero=request.POST['numero_materia'],
tipo_id=request.POST['tipo_materia'],
ano=request.POST['ano_materia'])
except ObjectDoesNotExist:
context.update(
{'error_message': "Matéria inexistente!"})
return self.form_invalid(form)
# TODO: Pra que tipo_materia e tipo_sessao
# se já existem em seus respectivos objetos???
# TODO: barrar matérias não existentes
# TODO: barrar criação de ordemdia para materias já incluídas
# ordem = OrdemDia.objects.get(
# sessao_plenaria_id=self.object.id)
# # Verficar se matéria existe
# materia = MateriaLegislativa.objects.get(
# id=ordem.materia_id,
# tipo=request.POST['tipo_materia'])
ordemdia = OrdemDia()
ordemdia.sessao_plenaria_id = self.object.id
ordemdia.materia_id = ordem.materia_id
ordemdia.materia_id = materia.id
ordemdia.numero_ordem = request.POST['numero_ordem']
ordemdia.data_ordem = datetime.now()
ordemdia.observacao = sub(
' ', ' ', strip_tags(request.POST['observacao']))
ordemdia.observacao = sub(' ', ' ',
strip_tags(request.POST['observacao']))
ordemdia.tipo_votacao = request.POST['tipo_votacao']
ordemdia.save()
return self.form_valid(form)
@ -346,21 +345,19 @@ class EditMateriaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView):
self.object = self.get_object()
context = self.get_context_data(object=self.object)
current_url = request.get_full_path()
words = current_url.split('/')
ordem = OrdemDia.objects.get(
sessao_plenaria_id=self.object.id,
materia_id=words[-1])
pk = kwargs['pk']
oid = kwargs['oid']
ordem = OrdemDia.objects.get(sessao_plenaria_id=pk, materia_id=oid)
materia = MateriaLegislativa.objects.get(
id=ordem.materia_id)
data_ordem = ordem.data_ordem
tipo_votacao = ExpedienteMateria.TIPO_VOTACAO_CHOICES
tipo_sessao = TipoSessaoPlenaria.objects.all()
tipo_materia = TipoMateriaLegislativa.objects.all()
context.update({'data_sessao': self.object.data_fim,
context.update({'data_sessao': data_ordem,
'tipo_sessao': tipo_sessao,
'tipo_sessao_selected': self.object.tipo,
'tipo_materia': tipo_materia,
@ -370,11 +367,50 @@ class EditMateriaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView):
'ano_materia': materia.ano,
'numero_ordem': ordem.numero_ordem,
'numero_materia': materia.numero,
'ordem_id': oid,
'oid': '',
'observacao': sub(
' ', ' ', strip_tags(ordem.observacao)),
'error_message': '', })
return self.render_to_response(context)
def post(self, request, *args, **kwargs):
self.object = self.get_object()
context = self.get_context_data(object=self.object)
form = MateriaOrdemDiaForm(request.POST)
pk = kwargs['pk']
oid = kwargs['oid']
ordemdia = OrdemDia.objects.get(sessao_plenaria_id=pk, materia_id=oid)
if 'update-ordemdia' in request.POST:
if form.is_valid():
try:
materia = MateriaLegislativa.objects.get(
numero=request.POST['numero_materia'],
tipo_id=request.POST['tipo_materia'],
ano=request.POST['ano_materia'])
except ObjectDoesNotExist:
context.update(
{'error_message': "Matéria inexistente!"})
return self.form_invalid(form)
ordemdia.materia_id = materia.id
ordemdia.numero_ordem = request.POST['numero_ordem']
ordemdia.tipo_votacao = request.POST['tipo_votacao']
obs = strip_tags(request.POST['observacao'])
ordemdia.observacao = sub(' ', ' ', obs)
ordemdia.save()
return self.form_valid(form)
else:
context.update(
{'error_message': "Não foi possível salvar formulário!"})
return self.form_invalid(form)
elif 'delete-ordemdia' in request.POST:
ordemdia.delete()
return self.form_valid(form)
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:materiaordemdia_list',

4
templates/sessao/materia_ordemdia.html

@ -10,8 +10,8 @@
{% csrf_token %}
<ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3">
<li>Data da Sessão: <input type="text" value="{{data_sessao}}" disabled /></li>
<input type="hidden" id="data_sessao" name="data_sessao" length="10" maxlength="10" value="{{data_sessao}}" />
<li>Data da Sessão: <input type="text" value='{{data_sessao|date:"d/m/Y" }}' disabled /></li>
<input type="hidden" id="data_sessao" name="data_sessao" length="10" maxlength="10" value='{{data_sessao|date:"d/m/Y" }}' />
<li>
Tipo da Sessão: <select id="tipo_sessao" name="tipo_sessao" >
<option value=""></option>

8
templates/sessao/materia_ordemdia_edit.html

@ -10,8 +10,8 @@
{% csrf_token %}
<ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3">
<li>Data da Sessão: <input type="text" value="{{data_sessao}}" disabled /></li>
<input type="hidden" id="data_sessao" name="data_sessao" length="10" maxlength="10" value="{{data_sessao}}" />
<li>Data da Sessão: <input type="text" value='{{data_sessao|date:"d/m/Y" }}' disabled /></li>
<input type="hidden" id="data_sessao" name="data_sessao" length="10" maxlength="10" value='{{data_sessao|date:"d/m/Y" }}' />
<li>
Tipo da Sessão: <select id="tipo_sessao" name="tipo_sessao" >
<option value=""></option>
@ -53,7 +53,9 @@
<li> Ementa: <textarea id="observacao" name="observacao" cols="10" rows="10">{{observacao}}</textarea> </li>
</ul>
<input type="submit" value="Salvar" />
<input type="submit" id="update-ordemdia" name="update-ordemdia" value="Salvar" />
<input type="submit" id="delete-ordemdia" name="delete-ordemdia" value="Remover" />
</form>
{% endblock detail_content %}

7
templates/sessao/materia_ordemdia_list.html

@ -27,5 +27,12 @@ Matérias da Ordem do Dia
<a href="{% url 'sessaoplenaria:materiaordemdia_create' object.pk %}" class="button secondary">
{% trans 'Adicionar Matérias' %}
</a></dd>
<!-- TODO implment -->
<!--
<button>Incluir várias matérias</button>
<button>Reordenar Matérias na Ordem do Dia</button>
<button>Atualizar</button>
-->
{% endblock detail_content %}
Loading…
Cancel
Save