Browse Source

Merge 5ee4623e2f into 688be1d764

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

20
sapl/protocoloadm/forms.py

@ -333,7 +333,10 @@ class ProtocoloDocumentForm(ModelForm):
class ProtocoloMateriaForm(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( tipo_materia = forms.ModelChoiceField(
label=_('Tipo de Matéria'), label=_('Tipo de Matéria'),
@ -349,7 +352,7 @@ class ProtocoloMateriaForm(ModelForm):
assunto_ementa = forms.CharField(required=True, assunto_ementa = forms.CharField(required=True,
widget=forms.Textarea, label='Ementa') widget=forms.Textarea, label='Ementa')
def clean_autor(self): def clean_autor(self):
autor_field = self.cleaned_data['autor'] autor_field = self.cleaned_data['autor']
try: try:
@ -360,6 +363,7 @@ class ProtocoloMateriaForm(ModelForm):
autor_field = autor autor_field = autor
return autor_field return autor_field
class Meta: class Meta:
model = Protocolo model = Protocolo
fields = ['tipo_materia', fields = ['tipo_materia',
@ -374,13 +378,7 @@ class ProtocoloMateriaForm(ModelForm):
[('tipo_materia', 4), [('tipo_materia', 4),
('numero_paginas', 4)]) ('numero_paginas', 4)])
row2 = to_row( row2 = to_row(
[('autor', 0), [('autor', 4)])
(Button('pesquisar',
'Pesquisar Autor',
css_class='btn btn-primary btn-sm'), 2),
(Button('limpar',
'limpar Autor',
css_class='btn btn-primary btn-sm'), 10)])
row3 = to_row( row3 = to_row(
[('assunto_ementa', 12)]) [('assunto_ementa', 12)])
row4 = to_row( row4 = to_row(
@ -389,9 +387,9 @@ class ProtocoloMateriaForm(ModelForm):
self.helper = FormHelper() self.helper = FormHelper()
self.helper.layout = Layout( self.helper.layout = Layout(
Fieldset(_('Identificação da Matéria'), 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'))) row4, form_actions(save_label='Protocolar Matéria')))
super(ProtocoloMateriaForm, self).__init__( super(ProtocoloMateriaForm, self).__init__(
*args, **kwargs) *args, **kwargs)

35
sapl/protocoloadm/views.py

@ -1,8 +1,10 @@
from datetime import date, datetime from datetime import date, datetime
from braces.views import FormValidMessageMixin from braces.views import FormValidMessageMixin
from django.contrib import messages from django.contrib import messages
from django.contrib.auth.mixins import PermissionRequiredMixin from django.contrib.auth.mixins import PermissionRequiredMixin
from django.db.models import Q
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.db.models import Max from django.db.models import Max
@ -15,6 +17,7 @@ from django.views.generic.base import TemplateView
from django_filters.views import FilterView from django_filters.views import FilterView
import sapl import sapl
from sapl.base.models import Autor
from sapl.crud.base import Crud, CrudAux, MasterDetailCrud, make_pagination from sapl.crud.base import Crud, CrudAux, MasterDetailCrud, make_pagination
from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa
from sapl.utils import create_barcode, get_client_ip from sapl.utils import create_barcode, get_client_ip
@ -27,6 +30,10 @@ from .forms import (AnularProcoloAdmForm, DocumentoAcessorioAdministrativoForm,
from .models import (DocumentoAcessorioAdministrativo, DocumentoAdministrativo, from .models import (DocumentoAcessorioAdministrativo, DocumentoAdministrativo,
Protocolo, StatusTramitacaoAdministrativo, Protocolo, StatusTramitacaoAdministrativo,
TipoDocumentoAdministrativo, TramitacaoAdministrativo) 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( TipoDocumentoAdministrativoCrud = CrudAux.build(
TipoDocumentoAdministrativo, '') TipoDocumentoAdministrativo, '')
@ -427,8 +434,8 @@ class ProtocoloMateriaView(PermissionRequiredMixin, CreateView):
protocolo.tipo_processo = '1' # TODO validar o significado protocolo.tipo_processo = '1' # TODO validar o significado
protocolo.anulado = False protocolo.anulado = False
if form.cleaned_data['autor']: protocolo.autor = Autor.objects.get(
protocolo.autor = form.cleaned_data['autor'] id=self.request.POST['autor'])
protocolo.tipo_materia = TipoMateriaLegislativa.objects.get( protocolo.tipo_materia = TipoMateriaLegislativa.objects.get(
id=self.request.POST['tipo_materia']) id=self.request.POST['tipo_materia'])
protocolo.numero_paginas = self.request.POST['numero_paginas'] protocolo.numero_paginas = self.request.POST['numero_paginas']
@ -437,6 +444,30 @@ class ProtocoloMateriaView(PermissionRequiredMixin, CreateView):
protocolo.save() protocolo.save()
return redirect(self.get_success_url(protocolo)) 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): class ProtocoloMateriaTemplateView(PermissionRequiredMixin, TemplateView):

Loading…
Cancel
Save