diff --git a/sapl/materia/forms.py b/sapl/materia/forms.py index 258765a2a..38df0eec4 100644 --- a/sapl/materia/forms.py +++ b/sapl/materia/forms.py @@ -60,6 +60,25 @@ def em_tramitacao(): (False, 'Não')] +class AdicionarVariasAutoriasFilterSet(django_filters.FilterSet): + + class Meta: + model = Autor + fields = ['nome'] + + def __init__(self, *args, **kwargs): + super(AdicionarVariasAutoriasFilterSet, self).__init__(*args, **kwargs) + + row1 = to_row([('nome', 12)]) + + self.form.helper = FormHelper() + self.form.helper.form_method = 'GET' + self.form.helper.layout = Layout( + Fieldset(_('Pesquisar Autores'), + row1, form_actions(save_label='Pesquisar')) + ) + + class ReceberProposicaoForm(Form): cod_hash = forms.CharField(label='Código do Documento', required=True) diff --git a/sapl/materia/views.py b/sapl/materia/views.py index 404186591..eb1d6521c 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -43,7 +43,7 @@ from sapl.utils import (TURNO_TRAMITACAO_CHOICES, YES_NO_CHOICES, autor_label, montar_row_autor) from .forms import (AcessorioEmLoteFilterSet, AcompanhamentoMateriaForm, - DespachoInicialForm, + AdicionarVariasAutoriasFilterSet, DespachoInicialForm, DocumentoAcessorioForm, MateriaLegislativaFilterSet, MateriaSimplificadaForm, PrimeiraTramitacaoEmLoteFilterSet, ReceberProposicaoForm, TramitacaoEmLoteFilterSet, @@ -72,6 +72,44 @@ TipoFimRelatoriaCrud = CrudAux.build( TipoFimRelatoria, 'fim_relatoria') +def retira_autores_ja_adicionados(id): + return [] + + +class AdicionarVariasAutorias(PermissionRequiredForAppCrudMixin, FilterView): + filterset_class = AdicionarVariasAutoriasFilterSet + template_name = 'sessao/adicionar_varias_autorias.html' + + def get_filterset_kwargs(self, filterset_class): + super(AdicionarVariasAutorias, self).get_filterset_kwargs( + filterset_class) + + kwargs = {'data': self.request.GET or None} + + qs = self.get_queryset() + + autores_adicionadas = retira_autores_ja_adicionados(self.kwargs['pk']) + + qs = qs.exclude(id__in=autores_adicionadas).distinct() + + kwargs.update({'queryset': qs}) + return kwargs + + def get_context_data(self, **kwargs): + context = super(MateriaLegislativaPesquisaView, + self).get_context_data(**kwargs) + + context['title'] = _('Pesquisar Autores') + qr = self.request.GET.copy() + context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else '' + context['pk_materia'] = self.kwargs['pk'] + return context + + def post(self, request, *args, **kwargs): + return HttpResponseRedirect( + reverse('sapl.materia:autoria_list', kwargs={'pk': pk})) + + class CriarProtocoloMateriaView(CreateView): template_name = "crud/form.html" form_class = MateriaSimplificadaForm diff --git a/sapl/templates/materia/adicionar_varias_autorias.html b/sapl/templates/materia/adicionar_varias_autorias.html new file mode 100644 index 000000000..e69de29bb