Browse Source

Fix #1354

pull/1374/merge
LeandroRoberto 7 years ago
parent
commit
4ee52610db
  1. 29
      sapl/protocoloadm/forms.py
  2. 41
      sapl/templates/protocoloadm/protocolar_materia.html

29
sapl/protocoloadm/forms.py

@ -1,6 +1,5 @@
from datetime import datetime from datetime import datetime
import django_filters
from crispy_forms.bootstrap import InlineRadios from crispy_forms.bootstrap import InlineRadios
from crispy_forms.helper import FormHelper from crispy_forms.helper import FormHelper
from crispy_forms.layout import HTML, Button, Fieldset, Layout, Submit from crispy_forms.layout import HTML, Button, Fieldset, Layout, Submit
@ -9,8 +8,9 @@ from django.core.exceptions import ObjectDoesNotExist, ValidationError
from django.db import models from django.db import models
from django.forms import ModelForm from django.forms import ModelForm
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
import django_filters
from sapl.base.models import Autor from sapl.base.models import Autor, TipoAutor
from sapl.crispy_layout_mixin import form_actions, to_row from sapl.crispy_layout_mixin import form_actions, to_row
from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa, UnidadeTramitacao from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa, UnidadeTramitacao
from sapl.utils import (RANGE_ANOS, AnoNumeroOrderingFilter, from sapl.utils import (RANGE_ANOS, AnoNumeroOrderingFilter,
@ -20,6 +20,7 @@ from .models import (DocumentoAcessorioAdministrativo, DocumentoAdministrativo,
Protocolo, TipoDocumentoAdministrativo, Protocolo, TipoDocumentoAdministrativo,
TramitacaoAdministrativo) TramitacaoAdministrativo)
TIPOS_PROTOCOLO = [('0', 'Recebido'), ('1', 'Enviado'), ('', 'Ambos')] TIPOS_PROTOCOLO = [('0', 'Recebido'), ('1', 'Enviado'), ('', 'Ambos')]
TIPOS_PROTOCOLO_CREATE = [('0', 'Recebido'), ('1', 'Enviado')] TIPOS_PROTOCOLO_CREATE = [('0', 'Recebido'), ('1', 'Enviado')]
@ -239,12 +240,13 @@ class AnularProcoloAdmForm(ModelForm):
numero_protocolo=protocolo.numero, ano=protocolo.ano).exists() numero_protocolo=protocolo.numero, ano=protocolo.ano).exists()
elif protocolo.tipo_documento: elif protocolo.tipo_documento:
exists = protocolo.documentoadministrativo_set.all( exists = protocolo.documentoadministrativo_set.all(
).order_by('-ano', '-numero').exists() ).order_by('-ano', '-numero').exists()
if exists: if exists:
raise forms.ValidationError( raise forms.ValidationError(
_("Protocolo %s/%s não pode ser removido pois existem" _("Protocolo %s/%s não pode ser removido pois existem"
"documentos vinculados a ele." % (numero, ano))) "documentos vinculados a ele." % (numero, ano)))
class Meta: class Meta:
model = Protocolo model = Protocolo
fields = ['numero', fields = ['numero',
@ -345,9 +347,14 @@ class ProtocoloDocumentForm(ModelForm):
class ProtocoloMateriaForm(ModelForm): class ProtocoloMateriaForm(ModelForm):
autor = forms.ModelChoiceField(required=True, autor = forms.ModelChoiceField(required=True,
empty_label='------', empty_label='------',
queryset=Autor.objects.all() queryset=Autor.objects.all()
) )
tipo_autor = forms.ModelChoiceField(required=True,
empty_label='------',
queryset=TipoAutor.objects.all()
)
tipo_materia = forms.ModelChoiceField( tipo_materia = forms.ModelChoiceField(
label=_('Tipo de Matéria'), label=_('Tipo de Matéria'),
@ -364,12 +371,12 @@ 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')
class Meta: class Meta:
model = Protocolo model = Protocolo
fields = ['tipo_materia', fields = ['tipo_materia',
'numero_paginas', 'numero_paginas',
'autor', 'autor',
'tipo_autor',
'assunto_ementa', 'assunto_ementa',
'observacao'] 'observacao']
@ -387,9 +394,9 @@ class ProtocoloMateriaForm(ModelForm):
row1 = to_row( row1 = to_row(
[('tipo_materia', 4), [('tipo_materia', 4),
('numero_paginas', 4)]) ('numero_paginas', 2),
row2 = to_row( ('tipo_autor', 3),
[('autor', 4)]) ('autor', 3)])
row3 = to_row( row3 = to_row(
[('assunto_ementa', 12)]) [('assunto_ementa', 12)])
row4 = to_row( row4 = to_row(
@ -398,7 +405,7 @@ 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, row2, row3, row1, 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__(

41
sapl/templates/protocoloadm/protocolar_materia.html

@ -13,3 +13,44 @@
{% block detail_content %} {% block detail_content %}
{% crispy form %} {% crispy form %}
{% endblock detail_content %} {% endblock detail_content %}
{% block extra_js %}
<script language="Javascript">
function compare(a, b) {
if (a.text < b.text)
return -1;
if (a.text > b.text)
return 1;
return 0;
}
$(document).ready(function() {
$("#id_tipo_autor").change(function() {
var tipo_selecionado = $("#id_tipo_autor").val();
var autor_selecionado = $("#id_autor").val();
$("#id_autor option").remove()
if (tipo_selecionado !== undefined && tipo_selecionado !== null) {
var json_data = {
tipo : tipo_selecionado
}
$.getJSON("/api/autor/possiveis", json_data, function(data){
if (data) {
var results = data.sort(compare);
if (results.length > 1) {
$("#id_autor").append("<option>-----</option>");
}
$.each(results, function(idx, obj) {
$("#id_autor")
.append($("<option></option>")
.attr("value", obj.value)
.text(obj.text));
});
$("#id_autor").prop("selectedIndex", 0);
}
});
}
});
});
</script>
{% endblock %}

Loading…
Cancel
Save