Browse Source

Adicona busca de autor na criação de documento acessório

pull/410/head
Eduardo Edson Batista Cordeiro Alves 10 years ago
parent
commit
f5cf039677
  1. 2
      crud/masterdetail.py
  2. 4
      materia/forms.py
  3. 23
      materia/views.py
  4. 6
      templates/materia/documentoacessorio_form.html

2
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)

4
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):

23
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))
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()
return form
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

6
templates/materia/documentoacessorio_form.html

@ -0,0 +1,6 @@
{% extends "base.html" %}
{% load i18n crispy_forms_tags %}
{% block base_content %}
{% crispy form helper %}
{% endblock %}
Loading…
Cancel
Save