From 2cc2b2c707b2ab3bf0ae964abe84ec544abdc878 Mon Sep 17 00:00:00 2001 From: Cesar Carvalho Date: Wed, 3 Jul 2019 14:28:37 -0300 Subject: [PATCH] Nova tentativa inserindo no Crud --- sapl/materia/forms.py | 47 +++++++++++++++++++++++++------------------ sapl/materia/views.py | 41 +++++++++++++++++++++++++++++-------- 2 files changed, 60 insertions(+), 28 deletions(-) diff --git a/sapl/materia/forms.py b/sapl/materia/forms.py index 644d6d465..30086ea7d 100644 --- a/sapl/materia/forms.py +++ b/sapl/materia/forms.py @@ -2,9 +2,9 @@ import logging import os -from crispy_forms.bootstrap import Alert, InlineRadios +from crispy_forms.bootstrap import Alert, InlineRadios, FormActions from crispy_forms.layout import (HTML, Button, Column, Div, Field, Fieldset, - Layout, Row) + Layout, Row, Submit) from crispy_forms.helper import FormHelper from django import forms from django.contrib.contenttypes.models import ContentType @@ -1054,9 +1054,6 @@ class MateriaLegislativaFilterSet(django_filters.FilterSet): HTML(autor_modal), row4, row6, row7, row9, form_actions(label=_('Pesquisar'))) - - - ) @property @@ -1125,23 +1122,33 @@ class DespachoInicialCreateForm(forms.Form): fields = ['comissao'] def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - - from crispy_forms.layout import Submit, Layout, Field - from crispy_forms.bootstrap import FormActions + # import ipdb; ipdb.set_trace() + # kwargs.pop('instance') self.fields['comissao'].label = 'Comissões' - self.helper = FormHelper(self) - self.helper.form_method = 'POST' + # self.helper = FormHelper(self) + # self.helper.form_method = 'POST' + + # self.helper.layout = Layout( + # Div( + # Div('comissao', css_class="col-md-12"), + # Div(FormActions( + # Submit('salvar', 'Salvar', css_class='btn btn-primary ml-5 mt-3 float-left'), + # ) + # ), + # css_class='row', + # )) + + # super().__init__(*args, **kwargs) + # kwargs.pop('instance') + row1 = to_row( + [('comissao', 12),]) + + self.form.helper = SaplFormHelper() + self.form.helper.form_method = 'POST' + self.form.helper.layout = Layout( + Fieldset(_('Pesquisa Básica'), + row1)) - self.helper.layout = Layout( - Div( - Div('comissao', css_class="col-md-12"), - Div(FormActions( - Submit('salvar', 'Salvar', css_class='btn btn-primary ml-5 mt-3 float-left'), - ) - ), - css_class='row', - )) def clean(self): super().clean() diff --git a/sapl/materia/views.py b/sapl/materia/views.py index 5a6db4c1c..0295628ac 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -1496,14 +1496,6 @@ class DespachoInicialMultiCreateView(PermissionRequiredForAppCrudMixin, FormView form_class = DespachoInicialCreateForm template_name = 'materia/despachoinicial_multicreate_form.html' - # @classmethod - # def get_url_regex(cls): - # return r'^(?P\d+)/%s/multicreate' % cls.model._meta.model_name - - @property - def layout_key(self): - return None - def get_initial(self): initial = super().get_initial() self.materia = MateriaLegislativa.objects.get(id=self.kwargs['pk']) @@ -1542,6 +1534,39 @@ class DespachoInicialCrud(MasterDetailCrud): class UpdateView(MasterDetailCrud.UpdateView): form_class = DespachoInicialForm + class CreateView(MasterDetailCrud.CreateView): + form_class = DespachoInicialCreateForm + template_name = 'materia/despachoinicial_multicreate_form.html' + + def get_initial(self): + initial = super().get_initial() + self.materia = MateriaLegislativa.objects.get(id=self.kwargs['pk']) + initial['materia'] = self.materia + import ipdb; ipdb.set_trace() + return initial + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + context['title'] = '%s (%s)' % ( + _('Adicionar Vários Despachos'), self.materia) + context['root_pk']= self.kwargs['pk'] + context['subnav_template_name'] = 'materia/subnav.yaml' + return context + + def get_success_url(self): + messages.add_message( + self.request, messages.SUCCESS, + _('Despachos adicionados com sucesso.')) + return reverse( + 'sapl.materia:despachoinicial_list', kwargs={'pk': self.materia.pk}) + + def form_valid(self, form): + comissoes_selecionadas = form.cleaned_data['comissao'] + for comissao in comissoes_selecionadas: + DespachoInicial.objects.create(materia=self.materia, comissao=comissao) + + return FormView.form_valid(self, form) + class LegislacaoCitadaCrud(MasterDetailCrud): model = LegislacaoCitada