Browse Source

Conserta e refatora adição de autoria de matéria que estava dando erro de validação

pull/285/head
Edward Ribeiro 9 years ago
parent
commit
553ff8639a
  1. 16
      materia/forms.py
  2. 73
      materia/views.py

16
materia/forms.py

@ -1,7 +1,7 @@
from crispy_forms.helper import FormHelper
from crispy_forms.layout import HTML, Button, Column, Fieldset, Layout, Submit
from django import forms
from django.core.exceptions import ValidationError
from django.core.exceptions import ObjectDoesNotExist, ValidationError
from django.forms import ModelForm
from django.utils.translation import ugettext_lazy as _
@ -537,11 +537,23 @@ class AutoriaForm(ModelForm):
choices=[(True, _('Sim')), (False, _('Não'))],
)
materia_id = forms.CharField(widget=forms.HiddenInput(), required=False)
class Meta:
model = Autoria
fields = ['autor',
'primeiro_autor',
'partido']
'partido',
'materia_id']
def clean(self):
materia = MateriaLegislativa.objects.get(id=self.data['materia_id'])
try:
Autoria.objects.get(autor=self.data['autor'],
materia=materia)
raise forms.ValidationError(_('Essa autoria já foi adicionada!'))
except ObjectDoesNotExist:
pass
def __init__(self, excluir=False, *args, **kwargs):

73
materia/views.py

@ -1089,58 +1089,41 @@ class AutoriaView(CreateView):
template_name = "materia/autoria.html"
form_class = AutoriaForm
form_valid_message = _('Autoria cadastrada com sucesso!')
model = Autoria
def get(self, request, *args, **kwargs):
materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
autorias = Autoria.objects.filter(materia=materia)
form = AutoriaForm()
def get_initial(self):
initial = super(AutoriaView, self).get_initial()
initial['materia_id'] = self.kwargs['pk']
return initial
return self.render_to_response(
{'object': materia,
'form': form,
'autorias': autorias})
def get_context_data(self, **kwargs):
context = super(AutoriaView, self).get_context_data(**kwargs)
def post(self, request, *args, **kwargs):
materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
# import ipdb; ipdb.set_trace
materia = MateriaLegislativa.objects.get(id=self.kwargs['pk'])
autorias = Autoria.objects.filter(materia=materia)
form = self.get_form()
if 'salvar' in request.POST:
if 'partido' in form.data:
filiacao_autor = Partido.objects.get(
id=form.data['partido'])
context.update({'object': materia,
'autorias': autorias})
return context
try:
autoria = Autoria.objects.get(
autor=form.data['autor'],
materia=materia
)
except ObjectDoesNotExist:
autoria = Autoria()
autoria.autor = Autor.objects.get(id=form.data['autor'])
autoria.materia = materia
primeiro = form.data['primeiro_autor']
if 'partido' in form.data:
autoria.partido = filiacao_autor
autoria.primeiro_autor = primeiro
def form_valid(self, form):
materia = MateriaLegislativa.objects.get(id=form.data['materia_id'])
autoria.save()
return self.render_to_response(
{'object': materia,
'form': form,
'autorias': autorias})
else:
msg = _('Essa autoria já foi adicionada!')
messages.add_message(request, messages.INFO, msg)
return self.render_to_response(
{'object': materia,
'form': form,
'autorias': autorias})
else:
return self.render_to_response(
{'object': materia,
'form': form,
'autorias': autorias})
if 'salvar' in self.request.POST:
import ipdb; ipdb.set_trace()
autoria = Autoria()
autoria.autor = Autor.objects.get(id=form.data['autor'])
autoria.materia = materia
autoria.primeiro_autor = form.data['primeiro_autor']
if form.data['partido']:
filiacao_autor = Partido.objects.get(id=form.data['partido'])
autoria.partido = filiacao_autor
autoria.save()
return redirect(self.get_success_url())
def get_success_url(self):
pk = self.kwargs['pk']

Loading…
Cancel
Save