From dcb6820139c108d323038091b96ec2423a67904c Mon Sep 17 00:00:00 2001 From: Eduardo Edson Batista Cordeiro Alves Date: Thu, 5 May 2016 08:59:13 -0300 Subject: [PATCH] =?UTF-8?q?Valida=20localiza=C3=A7=C3=A3o=20atual?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- materia/forms.py | 14 +++++++++++++ materia/views.py | 53 ++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 65 insertions(+), 2 deletions(-) diff --git a/materia/forms.py b/materia/forms.py index 624c48f9d..9d2738218 100644 --- a/materia/forms.py +++ b/materia/forms.py @@ -159,8 +159,22 @@ class RelatoriaForm(ModelForm): model = Relatoria fields = ['data_designacao_relator', 'comissao', 'parlamentar', 'data_destituicao_relator', 'tipo_fim_relatoria'] + widgets = {'comissao': forms.Select(attrs={'disabled': 'disabled'})} + def clean(self): + cleaned_data = self.cleaned_data + + try: + comissao = Comissao.objects.get(id=self.initial['comissao']) + except ObjectDoesNotExist: + msg = _('A localização atual deve ser uma comissão.') + raise ValidationError(msg) + else: + cleaned_data['comissao'] = comissao + + return cleaned_data + class TramitacaoForm(ModelForm): diff --git a/materia/views.py b/materia/views.py index 5ff808576..f8db7131c 100644 --- a/materia/views.py +++ b/materia/views.py @@ -67,8 +67,21 @@ class RelatoriaCrud(MasterDetailCrud): form_class = RelatoriaForm def get_initial(self): - self.initial['comissao'] = 8 - return self.initial + materia = MateriaLegislativa.objects.get(id=self.kwargs['pk']) + + loc_atual = Tramitacao.objects.filter( + materia=materia).last() + + if loc_atual is None: + localizacao = 0 + else: + comissao = loc_atual.unidade_tramitacao_destino.comissao + if comissao: + localizacao = comissao.pk + else: + localizacao = 0 + + return {'comissao': localizacao} class UpdateView(MasterDetailCrud.UpdateView): form_class = RelatoriaForm @@ -400,6 +413,42 @@ class AcompanhamentoExcluirView(TemplateView): return HttpResponseRedirect(self.get_redirect_url()) +class DocumentoAcessorioEditView(CreateView): + template_name = "materia/documento_acessorio_edit.html" + form_class = DocumentoAcessorioForm + + def get(self, request, *args, **kwargs): + materia = MateriaLegislativa.objects.get(id=kwargs['pk']) + documento = DocumentoAcessorio.objects.get(id=kwargs['id']) + form = DocumentoAcessorioForm(instance=documento, excluir=True) + return self.render_to_response({'object': materia, 'form': form}) + + def post(self, request, *args, **kwargs): + form = self.get_form() + materia = MateriaLegislativa.objects.get(id=kwargs['pk']) + documento = DocumentoAcessorio.objects.get(id=kwargs['id']) + if form.is_valid(): + if 'Excluir' in request.POST: + documento.delete() + elif 'salvar' in request.POST: + documento.materia = materia + documento.tipo = form.cleaned_data['tipo'] + documento.data = form.cleaned_data['data'] + documento.nome = form.cleaned_data['nome'] + documento.autor = form.cleaned_data['autor'] + documento.ementa = form.cleaned_data['ementa'] + documento.save() + return redirect(self.get_success_url()) + else: + return self.render_to_response({'form': form, + 'object': materia, + 'doc': documento}) + + def get_success_url(self): + pk = self.kwargs['pk'] + return reverse('materia:documento_acessorio', kwargs={'pk': pk}) + + def load_email_templates(templates, context={}): emails = []