From f5cf03967744b41c9bc951a5218d049a838e30de Mon Sep 17 00:00:00 2001 From: Eduardo Edson Batista Cordeiro Alves Date: Mon, 9 May 2016 10:37:21 -0300 Subject: [PATCH] =?UTF-8?q?Adicona=20busca=20de=20autor=20na=20cria=C3=A7?= =?UTF-8?q?=C3=A3o=20de=20documento=20acess=C3=B3rio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crud/masterdetail.py | 2 +- materia/forms.py | 4 --- materia/views.py | 25 +++++++++++++------ .../materia/documentoacessorio_form.html | 6 +++++ 4 files changed, 24 insertions(+), 13 deletions(-) create mode 100644 templates/materia/documentoacessorio_form.html diff --git a/crud/masterdetail.py b/crud/masterdetail.py index ad82261c7..2d0bf32d1 100644 --- a/crud/masterdetail.py +++ b/crud/masterdetail.py @@ -46,7 +46,7 @@ class MasterDetailCrud(Crud): def get_form(self, form_class=None): form = super(MasterDetailCrud.CreateView, - self).get_form(form_class) + self).get_form(self.form_class) field = self.model._meta.get_field(self.crud.parent_field) parent = field.related_model.objects.get(pk=self.kwargs['pk']) setattr(form.instance, self.crud.parent_field, parent) diff --git a/materia/forms.py b/materia/forms.py index af6a612f5..6c22e5daf 100644 --- a/materia/forms.py +++ b/materia/forms.py @@ -130,10 +130,6 @@ class DocumentoAcessorioForm(ModelForm): if autor_field: return str(Autor.objects.get(id=autor_field)) - def __init__(self, *args, **kwargs): - super(DocumentoAcessorioForm, self).__init__(*args, **kwargs) - self.helper = FormHelper() - class RelatoriaForm(ModelForm): diff --git a/materia/views.py b/materia/views.py index 788f93753..bc6d0a651 100644 --- a/materia/views.py +++ b/materia/views.py @@ -134,9 +134,8 @@ class DocumentoAcessorioCrud(MasterDetailCrud): class CreateView(MasterDetailCrud.CreateView): form_class = DocumentoAcessorioForm - def get_form(self, form_class=None): - form = super(CreateView, self).get_form(form_class) - form.helper.layout = self.get_layout() + def __init__(self, *args, **kwargs): + super(CreateView, self).__init__(*args, **kwargs) autor_row = crispy_layout_mixin.to_row( [('autor', 0), @@ -147,11 +146,21 @@ class DocumentoAcessorioCrud(MasterDetailCrud): 'Limpar Autor', css_class='btn btn-primary btn-sm'), 10)]) - form.helper.layout[0][2][0] = autor_row - form.helper.layout[0][1].append(HTML(sapl.utils.autor_label)) - form.helper.layout[0][1].append(HTML(sapl.utils.autor_modal)) - - return form + self.helper = FormHelper() + self.helper.layout = Layout( + crispy_layout_mixin.to_row(self.get_layout()[0][1]), + HTML(sapl.utils.autor_label), + HTML(sapl.utils.autor_modal), + crispy_layout_mixin.to_row(self.get_layout()[0][2]), + crispy_layout_mixin.to_row(self.get_layout()[0][3]), + ) + # self.helper.layout[3][0][0] = autor_row + # import ipdb; ipdb.set_trace() + + def get_context_data(self, **kwargs): + context = super(CreateView, self).get_context_data(**kwargs) + context['helper'] = self.helper + return context class UpdateView(MasterDetailCrud.UpdateView): form_class = DocumentoAcessorioForm diff --git a/templates/materia/documentoacessorio_form.html b/templates/materia/documentoacessorio_form.html new file mode 100644 index 000000000..fb5810653 --- /dev/null +++ b/templates/materia/documentoacessorio_form.html @@ -0,0 +1,6 @@ +{% extends "base.html" %} +{% load i18n crispy_forms_tags %} + +{% block base_content %} + {% crispy form helper %} +{% endblock %}