Browse Source

Merge 5ee4623e2f into 688be1d764

pull/1291/merge
Rogério Frá 9 years ago
committed by GitHub
parent
commit
0ae394a23b
  1. 16
      sapl/protocoloadm/forms.py
  2. 35
      sapl/protocoloadm/views.py

16
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'),
@ -360,6 +363,7 @@ class ProtocoloMateriaForm(ModelForm):
autor_field = autor
return autor_field
class Meta:
model = Protocolo
fields = ['tipo_materia',
@ -374,13 +378,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,7 +387,7 @@ 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__(

35
sapl/protocoloadm/views.py

@ -1,8 +1,10 @@
from datetime import date, datetime
from braces.views import FormValidMessageMixin
from django.contrib import messages
from django.contrib.auth.mixins import PermissionRequiredMixin
from django.db.models import Q
from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse
from django.db.models import Max
@ -15,6 +17,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
@ -27,6 +30,10 @@ from .forms import (AnularProcoloAdmForm, DocumentoAcessorioAdministrativoForm,
from .models import (DocumentoAcessorioAdministrativo, DocumentoAdministrativo,
Protocolo, StatusTramitacaoAdministrativo,
TipoDocumentoAdministrativo, TramitacaoAdministrativo)
from sapl.parlamentares.models import Parlamentar
from sapl.protocoloadm.models import Protocolo
from sapl.comissoes.models import Comissao
from django.contrib.contenttypes.models import ContentType
TipoDocumentoAdministrativoCrud = CrudAux.build(
TipoDocumentoAdministrativo, '')
@ -427,8 +434,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']
@ -438,6 +445,30 @@ class ProtocoloMateriaView(PermissionRequiredMixin, CreateView):
protocolo.save()
return redirect(self.get_success_url(protocolo))
def get_context_data(self, **kwargs):
context = super(CreateView, self).get_context_data(**kwargs)
autores_ativos = self.autores_ativos()
autores = []
for a in autores_ativos:
autores.append([a.id, a.__str__()])
context['form'].fields['autor'].choices = autores
return context
def autores_ativos(self):
lista_parlamentares = Parlamentar.objects.filter(ativo=True).values_list('id', flat=True)
model_parlamentar = ContentType.objects.get_for_model(Parlamentar)
autor_parlamentar = Autor.objects.filter(content_type=model_parlamentar, object_id__in=lista_parlamentares)
lista_comissoes = Comissao.objects.filter(Q(data_extincao__isnull=True)|Q(data_extincao__gt=date.today())).values_list('id', flat=True)
model_comissao = ContentType.objects.get_for_model(Comissao)
autor_comissoes = Autor.objects.filter(content_type=model_comissao, object_id__in=lista_comissoes)
autores_outros = Autor.objects.exclude(content_type__in=[model_parlamentar, model_comissao])
q = autor_parlamentar | autor_comissoes | autores_outros
return q
class ProtocoloMateriaTemplateView(PermissionRequiredMixin, TemplateView):

Loading…
Cancel
Save