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. 25
      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): def get_form(self, form_class=None):
form = super(MasterDetailCrud.CreateView, 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) field = self.model._meta.get_field(self.crud.parent_field)
parent = field.related_model.objects.get(pk=self.kwargs['pk']) parent = field.related_model.objects.get(pk=self.kwargs['pk'])
setattr(form.instance, self.crud.parent_field, parent) setattr(form.instance, self.crud.parent_field, parent)

4
materia/forms.py

@ -130,10 +130,6 @@ class DocumentoAcessorioForm(ModelForm):
if autor_field: if autor_field:
return str(Autor.objects.get(id=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): class RelatoriaForm(ModelForm):

25
materia/views.py

@ -134,9 +134,8 @@ class DocumentoAcessorioCrud(MasterDetailCrud):
class CreateView(MasterDetailCrud.CreateView): class CreateView(MasterDetailCrud.CreateView):
form_class = DocumentoAcessorioForm form_class = DocumentoAcessorioForm
def get_form(self, form_class=None): def __init__(self, *args, **kwargs):
form = super(CreateView, self).get_form(form_class) super(CreateView, self).__init__(*args, **kwargs)
form.helper.layout = self.get_layout()
autor_row = crispy_layout_mixin.to_row( autor_row = crispy_layout_mixin.to_row(
[('autor', 0), [('autor', 0),
@ -147,11 +146,21 @@ class DocumentoAcessorioCrud(MasterDetailCrud):
'Limpar Autor', 'Limpar Autor',
css_class='btn btn-primary btn-sm'), 10)]) css_class='btn btn-primary btn-sm'), 10)])
form.helper.layout[0][2][0] = autor_row self.helper = FormHelper()
form.helper.layout[0][1].append(HTML(sapl.utils.autor_label)) self.helper.layout = Layout(
form.helper.layout[0][1].append(HTML(sapl.utils.autor_modal)) crispy_layout_mixin.to_row(self.get_layout()[0][1]),
HTML(sapl.utils.autor_label),
return form 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): class UpdateView(MasterDetailCrud.UpdateView):
form_class = DocumentoAcessorioForm 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