diff --git a/sapl/materia/forms.py b/sapl/materia/forms.py index e12c7493b..e5f66a37c 100644 --- a/sapl/materia/forms.py +++ b/sapl/materia/forms.py @@ -1,5 +1,6 @@ from datetime import datetime +import django_filters from crispy_forms.helper import FormHelper from crispy_forms.layout import HTML, Button, Column, Fieldset, Layout from django import forms @@ -11,7 +12,6 @@ from django.db import models, transaction from django.db.models import Max from django.forms import ModelForm from django.utils.translation import ugettext_lazy as _ -import django_filters from sapl.comissoes.models import Comissao from sapl.crispy_layout_mixin import form_actions, to_row @@ -26,7 +26,6 @@ from .models import (AcompanhamentoMateria, Anexada, Autor, Autoria, Numeracao, Proposicao, Relatoria, TipoMateriaLegislativa, Tramitacao, UnidadeTramitacao) - ANO_CHOICES = [('', '---------')] + RANGE_ANOS @@ -662,9 +661,8 @@ class AutorForm(ModelForm): 'email', 'nome', 'tipo', - 'cargo', - 'parlamentar', - 'comissao'] + 'cargo'] + widgets = {'nome': forms.HiddenInput()} def valida_igualdade(self, texto1, texto2, msg): if texto1 != texto2: diff --git a/sapl/materia/views.py b/sapl/materia/views.py index 4d0bcd5e2..afc1f091f 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -118,21 +118,64 @@ class TipoAutorCrud(Crud): return permissao_tb_aux(self) +def montar_helper_autor(self): + autor_row = montar_row_autor('nome') + self.helper = FormHelper() + self.helper.layout = SaplFormLayout(*self.get_layout()) + + # Adiciona o novo campo 'autor' e mecanismo de busca + self.helper.layout[0][0].append(HTML(autor_label)) + self.helper.layout[0][0].append(HTML(autor_modal)) + self.helper.layout[0][1] = autor_row + + # Adiciona espaço entre o novo campo e os botões + # self.helper.layout[0][4][1].append(HTML('

')) + + # Remove botões que estão fora do form + self.helper.layout[1].pop() + + # Adiciona novos botões dentro do form + self.helper.layout[0][4][0].insert(2, form_actions(more=[ + HTML('Cancelar')])) + + class AutorCrud(Crud): model = Autor help_path = 'autor' class BaseMixin(PermissionRequiredMixin, CrudBaseMixin): - list_field_names = ['tipo', 'nome', - 'username', 'cargo'] + list_field_names = ['tipo', 'nome'] def has_permission(self): return permissao_tb_aux(self) + class UpdateView(CrudUpdateView): + form_class = AutorForm + layout_key = 'AutorCreate' + + def __init__(self, *args, **kwargs): + montar_helper_autor(self) + super(UpdateView, self).__init__(*args, **kwargs) + + def get_context_data(self, **kwargs): + context = super(UpdateView, self).get_context_data(**kwargs) + context['helper'] = self.helper + return context + class CreateView(CrudCreateView): form_class = AutorForm layout_key = 'AutorCreate' + def __init__(self, *args, **kwargs): + montar_helper_autor(self) + super(CreateView, self).__init__(*args, **kwargs) + + def get_context_data(self, **kwargs): + context = super(CreateView, self).get_context_data(**kwargs) + context['helper'] = self.helper + return context + def get_success_url(self): pk_autor = Autor.objects.get( email=self.request.POST.get('email')).id @@ -663,9 +706,9 @@ class TramitacaoCrud(MasterDetailCrud): return HttpResponseRedirect(url) -def montar_row_autor(): +def montar_row_autor(name): autor_row = to_row( - [('autor', 0), + [(name, 0), (Button('pesquisar', 'Pesquisar Autor', css_class='btn btn-primary btn-sm'), 2), @@ -677,7 +720,7 @@ def montar_row_autor(): def montar_helper_documento_acessorio(self): - autor_row = montar_row_autor() + autor_row = montar_row_autor('autor') self.helper = FormHelper() self.helper.layout = SaplFormLayout(*self.get_layout()) diff --git a/sapl/templates/materia/autor_form.html b/sapl/templates/materia/autor_form.html new file mode 100644 index 000000000..fb5810653 --- /dev/null +++ b/sapl/templates/materia/autor_form.html @@ -0,0 +1,6 @@ +{% extends "base.html" %} +{% load i18n crispy_forms_tags %} + +{% block base_content %} + {% crispy form helper %} +{% endblock %} diff --git a/sapl/templates/materia/layouts.yaml b/sapl/templates/materia/layouts.yaml index d5ade5b8c..c61375b58 100644 --- a/sapl/templates/materia/layouts.yaml +++ b/sapl/templates/materia/layouts.yaml @@ -58,10 +58,11 @@ Autor: AutorCreate: Autor: - - tipo:3 nome + - tipo + - nome - username:4 senha:4 senha_confirma:4 - email:6 confirma_email:6 - - cargo:4 parlamentar:4 comissao:4 + - cargo Autoria: {% trans 'Autoria' %}: