diff --git a/sapl/protocoloadm/forms.py b/sapl/protocoloadm/forms.py index e513d4b1b..d453d8991 100644 --- a/sapl/protocoloadm/forms.py +++ b/sapl/protocoloadm/forms.py @@ -333,7 +333,10 @@ class ProtocoloDocumentForm(ModelForm): class ProtocoloMateriaForm(ModelForm): - autor = forms.IntegerField(widget=forms.HiddenInput(), required=False) + autor = forms.ModelChoiceField(required=True, + empty_label='Selecione', + queryset=Autor.objects.all() + ) tipo_materia = forms.ModelChoiceField( label=_('Tipo de Matéria'), @@ -350,15 +353,6 @@ class ProtocoloMateriaForm(ModelForm): assunto_ementa = forms.CharField(required=True, widget=forms.Textarea, label='Ementa') - def clean_autor(self): - autor_field = self.cleaned_data['autor'] - try: - autor = Autor.objects.get(id=autor_field) - except ObjectDoesNotExist: - autor_field = None - else: - autor_field = autor - return autor_field class Meta: model = Protocolo @@ -374,13 +368,7 @@ class ProtocoloMateriaForm(ModelForm): [('tipo_materia', 4), ('numero_paginas', 4)]) row2 = to_row( - [('autor', 0), - (Button('pesquisar', - 'Pesquisar Autor', - css_class='btn btn-primary btn-sm'), 2), - (Button('limpar', - 'limpar Autor', - css_class='btn btn-primary btn-sm'), 10)]) + [('autor', 4)]) row3 = to_row( [('assunto_ementa', 12)]) row4 = to_row( @@ -389,9 +377,9 @@ class ProtocoloMateriaForm(ModelForm): self.helper = FormHelper() self.helper.layout = Layout( Fieldset(_('Identificação da Matéria'), - row1, HTML(autor_label), HTML(autor_modal), row2, row3, + row1, row2, row3, row4, form_actions(save_label='Protocolar Matéria'))) - + super(ProtocoloMateriaForm, self).__init__( *args, **kwargs) diff --git a/sapl/protocoloadm/views.py b/sapl/protocoloadm/views.py index c478b6f62..a9fe486c2 100644 --- a/sapl/protocoloadm/views.py +++ b/sapl/protocoloadm/views.py @@ -15,6 +15,7 @@ from django.views.generic.base import TemplateView from django_filters.views import FilterView import sapl +from sapl.base.models import Autor from sapl.crud.base import Crud, CrudAux, MasterDetailCrud, make_pagination from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa from sapl.utils import create_barcode, get_client_ip @@ -429,8 +430,8 @@ class ProtocoloMateriaView(PermissionRequiredMixin, CreateView): protocolo.tipo_processo = '1' # TODO validar o significado protocolo.anulado = False - if form.cleaned_data['autor']: - protocolo.autor = form.cleaned_data['autor'] + protocolo.autor = Autor.objects.get( + id=self.request.POST['autor']) protocolo.tipo_materia = TipoMateriaLegislativa.objects.get( id=self.request.POST['tipo_materia']) protocolo.numero_paginas = self.request.POST['numero_paginas']