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 %}