Browse Source

HOT-FIX: Corrige problema de PrimeiroAutor em AutoriaMultiCreate

pull/2832/head
Cesar Carvalho 7 years ago
parent
commit
cff0c5b590
  1. 20
      sapl/materia/forms.py
  2. 5
      sapl/materia/views.py

20
sapl/materia/forms.py

@ -1168,7 +1168,7 @@ class DespachoInicialForm(ModelForm):
class AutoriaForm(ModelForm):
tipo_autor = ModelChoiceField(label=_('Tipo Autor'),
required=False,
required=True,
queryset=TipoAutor.objects.all(),
empty_label=_('Selecione'),)
@ -1180,6 +1180,10 @@ class AutoriaForm(ModelForm):
def __init__(self, *args, **kwargs):
super(AutoriaForm, self).__init__(*args, **kwargs)
self.fields['primeiro_autor'].required = True
materia = kwargs['initial']['materia']
self.fields['primeiro_autor'].initial = Autoria.objects.filter(materia=materia).count() == 0
row1 = to_row([('tipo_autor', 4),
('autor', 4),
('primeiro_autor', 4)])
@ -1220,7 +1224,7 @@ class AutoriaMultiCreateForm(Form):
logger = logging.getLogger(__name__)
tipo_autor = ModelChoiceField(label=_('Tipo Autor'),
required=False,
required=True,
queryset=TipoAutor.objects.all(),
empty_label=_('Selecione'),)
@ -1230,7 +1234,7 @@ class AutoriaMultiCreateForm(Form):
autor = ModelMultipleChoiceField(
queryset=Autor.objects.all(),
label=_('Possiveis Autores'),
required=False,
required=True,
widget=CheckboxSelectMultiple)
autores = ModelMultipleChoiceField(
@ -1238,10 +1242,18 @@ class AutoriaMultiCreateForm(Form):
required=False,
widget=HiddenInput)
primeiro_autor = forms.ChoiceField(
required=True,
choices=YES_NO_CHOICES,
label="Primeiro Autor?"
)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
row1 = to_row([('tipo_autor', 12), ])
self.fields['primeiro_autor'].initial = kwargs['initial']['autores'].count() == 0
row1 = to_row([('tipo_autor', 10), ('primeiro_autor', 2)])
row2 = to_row([('autor', 12), ])

5
sapl/materia/views.py

@ -1432,6 +1432,7 @@ class AutoriaCrud(MasterDetailCrud):
materia = MateriaLegislativa.objects.get(id=self.kwargs['pk'])
initial['data_relativa'] = materia.data_apresentacao
initial['autor'] = []
initial['materia'] = materia
return initial
class UpdateView(LocalBaseMixin, MasterDetailCrud.UpdateView):
@ -1441,6 +1442,7 @@ class AutoriaCrud(MasterDetailCrud):
initial.update({
'data_relativa': self.object.materia.data_apresentacao,
'tipo_autor': self.object.autor.tipo.id,
'materia': self.object.materia
})
return initial
@ -1480,8 +1482,9 @@ class AutoriaMultiCreateView(PermissionRequiredForAppCrudMixin, FormView):
def form_valid(self, form):
autores_selecionados = form.cleaned_data['autor']
primeiro_autor = form.cleaned_data['primeiro_autor']
for autor in autores_selecionados:
Autoria.objects.create(materia=self.materia, autor=autor)
Autoria.objects.create(materia=self.materia, autor=autor, primeiro_autor=primeiro_autor)
return FormView.form_valid(self, form)

Loading…
Cancel
Save