From 7afef484d6870544b19d6ca2a4b5f67e85a85f4f Mon Sep 17 00:00:00 2001 From: Cesar Carvalho Date: Wed, 3 Jul 2019 14:14:31 -0300 Subject: [PATCH] Quase funcionando --- sapl/materia/forms.py | 28 +++++++++++++++++-- .../migrations/0051_auto_20190703_1414.py | 21 ++++++++++++++ sapl/materia/models.py | 2 +- sapl/materia/views.py | 8 ++---- .../materia/despachoinicial_detail.html | 10 +++++++ .../materia/despachoinicial_list.html | 3 -- 6 files changed, 61 insertions(+), 11 deletions(-) create mode 100644 sapl/materia/migrations/0051_auto_20190703_1414.py create mode 100644 sapl/templates/materia/despachoinicial_detail.html diff --git a/sapl/materia/forms.py b/sapl/materia/forms.py index 431934870..644d6d465 100644 --- a/sapl/materia/forms.py +++ b/sapl/materia/forms.py @@ -1115,7 +1115,7 @@ def filtra_tramitacao_destino_and_status(status, destino): 'materia_id', flat=True) -class DespachoInicialForm(forms.Form): +class DespachoInicialCreateForm(forms.Form): comissao = forms.ModelMultipleChoiceField( queryset=Comissao.objects.filter(ativa=True), widget=forms.CheckboxSelectMultiple()) @@ -1144,7 +1144,7 @@ class DespachoInicialForm(forms.Form): )) def clean(self): - super(DespachoInicialForm, self).clean() + super().clean() comissoes = self.cleaned_data.get('comissao') if not comissoes: @@ -1169,6 +1169,30 @@ class DespachoInicialForm(forms.Form): return self.cleaned_data +class DespachoInicialForm(ModelForm): + comissao = forms.ModelChoiceField( + queryset=Comissao.objects.filter(ativa=True), label=_('Comissão')) + + class Meta: + model = DespachoInicial + fields = ['comissao'] + + def clean(self): + super(DespachoInicialForm, self).clean() + + if not self.is_valid(): + return self.cleaned_data + + if DespachoInicial.objects.filter( + materia=self.instance.materia, + comissao=self.cleaned_data['comissao'], + ).exclude(pk=self.instance.pk).exists(): + msg = _('Já existe um Despacho cadastrado para %s' % + self.cleaned_data['comissao']) + raise ValidationError(msg) + + return self.cleaned_data + class AutoriaForm(ModelForm): tipo_autor = ModelChoiceField(label=_('Tipo Autor'), diff --git a/sapl/materia/migrations/0051_auto_20190703_1414.py b/sapl/materia/migrations/0051_auto_20190703_1414.py new file mode 100644 index 000000000..fad0e1933 --- /dev/null +++ b/sapl/materia/migrations/0051_auto_20190703_1414.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-07-03 17:14 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('materia', '0050_auto_20190521_1148'), + ] + + operations = [ + migrations.AlterField( + model_name='despachoinicial', + name='comissao', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='comissoes.Comissao', verbose_name='Comissão'), + ), + ] diff --git a/sapl/materia/models.py b/sapl/materia/models.py index 096aabc97..d9a5e344a 100644 --- a/sapl/materia/models.py +++ b/sapl/materia/models.py @@ -485,7 +485,7 @@ class AssuntoMateria(models.Model): @reversion.register() class DespachoInicial(models.Model): materia = models.ForeignKey(MateriaLegislativa, on_delete=models.CASCADE) - comissao = models.ForeignKey(Comissao, on_delete=models.CASCADE) + comissao = models.ForeignKey(Comissao, on_delete=models.CASCADE, verbose_name="Comissão") class Meta: verbose_name = _('Despacho Inicial') diff --git a/sapl/materia/views.py b/sapl/materia/views.py index 8d9ddffa5..5a6db4c1c 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -47,7 +47,8 @@ from sapl.materia.forms import (AnexadaForm, AutoriaForm, ConfirmarProposicaoForm, DevolverProposicaoForm, LegislacaoCitadaForm, OrgaoForm, ProposicaoForm, TipoProposicaoForm, - TramitacaoForm, TramitacaoUpdateForm, MateriaPesquisaSimplesForm) + TramitacaoForm, TramitacaoUpdateForm, MateriaPesquisaSimplesForm, + DespachoInicialCreateForm) from sapl.norma.models import LegislacaoCitada from sapl.parlamentares.models import Legislatura from sapl.protocoloadm.models import Protocolo @@ -1492,7 +1493,7 @@ class AutoriaMultiCreateView(PermissionRequiredForAppCrudMixin, FormView): class DespachoInicialMultiCreateView(PermissionRequiredForAppCrudMixin, FormView): app_label = sapl.materia.apps.AppConfig.label - form_class = DespachoInicialForm + form_class = DespachoInicialCreateForm template_name = 'materia/despachoinicial_multicreate_form.html' # @classmethod @@ -1538,9 +1539,6 @@ class DespachoInicialCrud(MasterDetailCrud): help_topic = 'despacho_autoria' public = [RP_LIST, RP_DETAIL] - # class CreateView(MasterDetailCrud.CreateView): - # form_class = DespachoInicialForm - class UpdateView(MasterDetailCrud.UpdateView): form_class = DespachoInicialForm diff --git a/sapl/templates/materia/despachoinicial_detail.html b/sapl/templates/materia/despachoinicial_detail.html new file mode 100644 index 000000000..d3b177e72 --- /dev/null +++ b/sapl/templates/materia/despachoinicial_detail.html @@ -0,0 +1,10 @@ +{% extends "crud/detail_detail.html" %} +{% load i18n common_tags crispy_forms_tags%} + +{% block extra_js %} + +{% endblock extra_js %} \ No newline at end of file diff --git a/sapl/templates/materia/despachoinicial_list.html b/sapl/templates/materia/despachoinicial_list.html index 97fba619f..2ac524d4c 100644 --- a/sapl/templates/materia/despachoinicial_list.html +++ b/sapl/templates/materia/despachoinicial_list.html @@ -10,9 +10,6 @@ let new_url = '/materia/' + materia_id + '/despachoinicialmulti/create'; console.log(new_url); href = botao_add.attr('href', new_url); - - let tittle = $(".result-count").children().first().children().first().children().first().children().first().attr('tittle'); - console.log(title); }); {% endblock %} \ No newline at end of file