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: class Meta:
verbose_name = _('Matéria Legislativa') verbose_name = _('Matéria Legislativa')
verbose_name_plural = _('Matérias Legislativas') verbose_name_plural = _('Matérias Legislativas')
unique_together = (("tipo", "numero", "ano"),)
def __str__(self): def __str__(self):
return _('%(tipo)s%(numero)s de %(ano)s') % { 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 re import sub
from django import forms from django import forms
from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.utils.html import strip_tags from django.utils.html import strip_tags
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
@ -286,7 +287,7 @@ class MateriaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView):
now = datetime.now() now = datetime.now()
tipo_materia = TipoMateriaLegislativa.objects.all() 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_sessao = TipoSessaoPlenaria.objects.all()
tipo_votacao = ExpedienteMateria.TIPO_VOTACAO_CHOICES tipo_votacao = ExpedienteMateria.TIPO_VOTACAO_CHOICES
ano_materia = now.year ano_materia = now.year
@ -306,29 +307,27 @@ class MateriaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView):
form = MateriaOrdemDiaForm(request.POST) form = MateriaOrdemDiaForm(request.POST)
if form.is_valid(): 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 matérias não existentes
# TODO: barrar criação de ordemdia para materias já incluídas # 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 = OrdemDia()
ordemdia.sessao_plenaria_id = self.object.id 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.numero_ordem = request.POST['numero_ordem']
ordemdia.data_ordem = datetime.now() ordemdia.data_ordem = datetime.now()
ordemdia.observacao = sub( ordemdia.observacao = sub(' ', ' ',
' ', ' ', strip_tags(request.POST['observacao'])) strip_tags(request.POST['observacao']))
ordemdia.tipo_votacao = request.POST['tipo_votacao'] ordemdia.tipo_votacao = request.POST['tipo_votacao']
ordemdia.save() ordemdia.save()
return self.form_valid(form) return self.form_valid(form)
@ -346,21 +345,19 @@ class EditMateriaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView):
self.object = self.get_object() self.object = self.get_object()
context = self.get_context_data(object=self.object) context = self.get_context_data(object=self.object)
current_url = request.get_full_path() pk = kwargs['pk']
words = current_url.split('/') oid = kwargs['oid']
ordem = OrdemDia.objects.get(sessao_plenaria_id=pk, materia_id=oid)
ordem = OrdemDia.objects.get(
sessao_plenaria_id=self.object.id,
materia_id=words[-1])
materia = MateriaLegislativa.objects.get( materia = MateriaLegislativa.objects.get(
id=ordem.materia_id) id=ordem.materia_id)
data_ordem = ordem.data_ordem
tipo_votacao = ExpedienteMateria.TIPO_VOTACAO_CHOICES tipo_votacao = ExpedienteMateria.TIPO_VOTACAO_CHOICES
tipo_sessao = TipoSessaoPlenaria.objects.all() tipo_sessao = TipoSessaoPlenaria.objects.all()
tipo_materia = TipoMateriaLegislativa.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': tipo_sessao,
'tipo_sessao_selected': self.object.tipo, 'tipo_sessao_selected': self.object.tipo,
'tipo_materia': tipo_materia, 'tipo_materia': tipo_materia,
@ -370,11 +367,50 @@ class EditMateriaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView):
'ano_materia': materia.ano, 'ano_materia': materia.ano,
'numero_ordem': ordem.numero_ordem, 'numero_ordem': ordem.numero_ordem,
'numero_materia': materia.numero, 'numero_materia': materia.numero,
'ordem_id': oid,
'oid': '',
'observacao': sub( 'observacao': sub(
' ', ' ', strip_tags(ordem.observacao)), ' ', ' ', strip_tags(ordem.observacao)),
'error_message': '', }) 'error_message': '', })
return self.render_to_response(context) 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): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:materiaordemdia_list', return reverse('sessaoplenaria:materiaordemdia_list',

4
templates/sessao/materia_ordemdia.html

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

8
templates/sessao/materia_ordemdia_edit.html

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

7
templates/sessao/materia_ordemdia_list.html

@ -28,4 +28,11 @@ Matérias da Ordem do Dia
{% trans 'Adicionar Matérias' %} {% trans 'Adicionar Matérias' %}
</a></dd> </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 %} {% endblock detail_content %}
Loading…
Cancel
Save