Browse Source

Merge branch '3.1.x' of https://github.com/interlegis/sapl into 1968-resumo-sessao

pull/2017/head
Mariana Mendes 8 years ago
parent
commit
860e706901
  1. 2
      docker-compose.yml
  2. 20
      sapl/audiencia/views.py
  3. 21
      sapl/materia/forms.py
  4. 46
      sapl/materia/views.py
  5. 13
      sapl/norma/forms.py
  6. 22
      sapl/norma/views.py
  7. 2
      sapl/parlamentares/forms.py
  8. 11
      sapl/protocoloadm/views.py
  9. 8
      sapl/sessao/forms.py
  10. 41
      sapl/sessao/views.py
  11. 2
      sapl/templates/materia/layouts.yaml
  12. 38
      sapl/templates/materia/materialegislativa_form.html
  13. 10
      sapl/templates/protocoloadm/comprovante.html
  14. 2
      setup.py

2
docker-compose.yml

@ -11,7 +11,7 @@ sapldb:
ports: ports:
- "5432:5432" - "5432:5432"
sapl: sapl:
image: interlegis/sapl:3.1.81 image: interlegis/sapl:3.1.83
restart: always restart: always
environment: environment:
ADMIN_PASSWORD: interlegis ADMIN_PASSWORD: interlegis

20
sapl/audiencia/views.py

@ -1,15 +1,10 @@
from django.shortcuts import render
from django.http import HttpResponse from django.http import HttpResponse
from django.core.urlresolvers import reverse
from django.db.models import F
from django.views.decorators.clickjacking import xframe_options_exempt from django.views.decorators.clickjacking import xframe_options_exempt
from django.views.generic import ListView from django.views.generic import UpdateView
from sapl.comissoes.forms import ParticipacaoCreateForm, ParticipacaoEditForm from sapl.crud.base import RP_DETAIL, RP_LIST, Crud
from sapl.crud.base import RP_DETAIL, RP_LIST, Crud, CrudAux, MasterDetailCrud
from sapl.materia.models import MateriaLegislativa
from .forms import AudienciaForm from .forms import AudienciaForm
from .models import (AudienciaPublica, TipoAudienciaPublica) from .models import AudienciaPublica
def index(request): def index(request):
return HttpResponse("Audiência Pública") return HttpResponse("Audiência Pública")
@ -36,10 +31,11 @@ class AudienciaCrud(Crud):
form_class = AudienciaForm form_class = AudienciaForm
def get_initial(self): def get_initial(self):
self.initial['tipo_materia'] = self.object.materia.tipo.id initial = super(UpdateView, self).get_initial()
self.initial['numero_materia'] = self.object.materia.numero initial['tipo_materia'] = self.object.materia.tipo.id
self.initial['ano_materia'] = self.object.materia.ano initial['numero_materia'] = self.object.materia.numero
return self.initial initial['ano_materia'] = self.object.materia.ano
return initial
class DeleteView(Crud.DeleteView): class DeleteView(Crud.DeleteView):
pass pass

21
sapl/materia/forms.py

@ -162,6 +162,11 @@ class MateriaSimplificadaForm(ModelForm):
class MateriaLegislativaForm(ModelForm): class MateriaLegislativaForm(ModelForm):
tipo_autor = ModelChoiceField(label=_('Tipo Autor'),
required=False,
queryset=TipoAutor.objects.all(),
empty_label=_('------'), )
autor = forms.ModelChoiceField(required=False, autor = forms.ModelChoiceField(required=False,
empty_label='------', empty_label='------',
queryset=Autor.objects.all() queryset=Autor.objects.all()
@ -172,6 +177,15 @@ class MateriaLegislativaForm(ModelForm):
exclude = ['texto_articulado', 'autores', 'proposicao', exclude = ['texto_articulado', 'autores', 'proposicao',
'anexadas', 'data_ultima_atualizacao'] 'anexadas', 'data_ultima_atualizacao']
def __init__(self, *args, **kwargs):
super(MateriaLegislativaForm, self).__init__(*args, **kwargs)
if self.instance and self.instance.pk:
self.fields['tipo_autor'] = forms.CharField(required=False,
widget=forms.TextInput(attrs={'disabled': 'disabled'}))
self.fields['autor'] = forms.CharField(required=False,
widget=forms.TextInput(attrs={'disabled': 'disabled'}))
def clean(self): def clean(self):
super(MateriaLegislativaForm, self).clean() super(MateriaLegislativaForm, self).clean()
@ -219,12 +233,17 @@ class MateriaLegislativaForm(ModelForm):
return cleaned_data return cleaned_data
def save(self, commit=False): def save(self, commit=False):
if not self.instance.pk:
primeiro_autor = True
else:
primeiro_autor = False
materia = super(MateriaLegislativaForm, self).save(commit) materia = super(MateriaLegislativaForm, self).save(commit)
materia.save() materia.save()
if self.cleaned_data['autor']: if self.cleaned_data['autor']:
autoria = Autoria() autoria = Autoria()
autoria.primeiro_autor = True autoria.primeiro_autor = primeiro_autor
autoria.materia = materia autoria.materia = materia
autoria.autor = self.cleaned_data['autor'] autoria.autor = self.cleaned_data['autor']
autoria.save() autoria.save()

46
sapl/materia/views.py

@ -17,7 +17,7 @@ from django.shortcuts import get_object_or_404, redirect
from django.template import RequestContext, loader from django.template import RequestContext, loader
from django.utils import formats, timezone from django.utils import formats, timezone
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.views.generic import CreateView, ListView, TemplateView, UpdateView from django.views.generic import FormView, ListView, TemplateView, CreateView, UpdateView
from django.views.generic.base import RedirectView from django.views.generic.base import RedirectView
from django.views.generic.edit import FormView from django.views.generic.edit import FormView
from django_filters.views import FilterView from django_filters.views import FilterView
@ -1013,18 +1013,19 @@ class TramitacaoCrud(MasterDetailCrud):
'pk': self.kwargs['pk']}) 'pk': self.kwargs['pk']})
def get_initial(self): def get_initial(self):
initial = super(CreateView, self).get_initial()
local = MateriaLegislativa.objects.get( local = MateriaLegislativa.objects.get(
pk=self.kwargs['pk']).tramitacao_set.order_by( pk=self.kwargs['pk']).tramitacao_set.order_by(
'-data_tramitacao', '-data_tramitacao',
'-id').first() '-id').first()
if local: if local:
self.initial['unidade_tramitacao_local' initial['unidade_tramitacao_local'
] = local.unidade_tramitacao_destino.pk ] = local.unidade_tramitacao_destino.pk
else: else:
self.initial['unidade_tramitacao_local'] = '' initial['unidade_tramitacao_local'] = ''
self.initial['data_tramitacao'] = timezone.now().date() initial['data_tramitacao'] = timezone.now().date()
return self.initial return initial
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
@ -1154,9 +1155,10 @@ class DocumentoAcessorioCrud(MasterDetailCrud):
super(MasterDetailCrud.CreateView, self).__init__(**kwargs) super(MasterDetailCrud.CreateView, self).__init__(**kwargs)
def get_initial(self): def get_initial(self):
self.initial['data'] = timezone.now().date() initial = super(CreateView, self).get_initial()
initial['data'] = timezone.now().date()
return self.initial return initial
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super( context = super(
@ -1283,10 +1285,11 @@ class LegislacaoCitadaCrud(MasterDetailCrud):
form_class = LegislacaoCitadaForm form_class = LegislacaoCitadaForm
def get_initial(self): def get_initial(self):
self.initial['tipo'] = self.object.norma.tipo.id initial = super(UpdateView, self).get_initial()
self.initial['numero'] = self.object.norma.numero initial['tipo'] = self.object.norma.tipo.id
self.initial['ano'] = self.object.norma.ano initial['numero'] = self.object.norma.numero
return self.initial initial['ano'] = self.object.norma.ano
return initial
class DetailView(MasterDetailCrud.DetailView): class DetailView(MasterDetailCrud.DetailView):
@ -1319,10 +1322,11 @@ class AnexadaCrud(MasterDetailCrud):
form_class = AnexadaForm form_class = AnexadaForm
def get_initial(self): def get_initial(self):
self.initial['tipo'] = self.object.materia_anexada.tipo.id initial = super(UpdateView, self).get_initial()
self.initial['numero'] = self.object.materia_anexada.numero initial['tipo'] = self.object.materia_anexada.tipo.id
self.initial['ano'] = self.object.materia_anexada.ano initial['numero'] = self.object.materia_anexada.numero
return self.initial initial['ano'] = self.object.materia_anexada.ano
return initial
class DetailView(MasterDetailCrud.DetailView): class DetailView(MasterDetailCrud.DetailView):
@ -1344,16 +1348,18 @@ class MateriaAssuntoCrud(MasterDetailCrud):
form_class = MateriaAssuntoForm form_class = MateriaAssuntoForm
def get_initial(self): def get_initial(self):
self.initial['materia'] = self.kwargs['pk'] initial = super(CreateView, self).get_initial()
return self.initial initial['materia'] = self.kwargs['pk']
return initial
class UpdateView(MasterDetailCrud.UpdateView): class UpdateView(MasterDetailCrud.UpdateView):
form_class = MateriaAssuntoForm form_class = MateriaAssuntoForm
def get_initial(self): def get_initial(self):
self.initial['materia'] = self.get_object().materia initial = super(UpdateView, self).get_initial()
self.initial['assunto'] = self.get_object().assunto initial['materia'] = self.get_object().materia
return self.initial initial['assunto'] = self.get_object().assunto
return initial
class MateriaLegislativaCrud(Crud): class MateriaLegislativaCrud(Crud):

13
sapl/norma/forms.py

@ -83,16 +83,19 @@ class NormaJuridicaForm(ModelForm):
label='Matéria', label='Matéria',
required=False, required=False,
queryset=TipoMateriaLegislativa.objects.all(), queryset=TipoMateriaLegislativa.objects.all(),
empty_label='Selecione' empty_label='Selecione',
widget=forms.Select(attrs={'autocomplete': 'off'})
) )
numero_materia = forms.CharField( numero_materia = forms.CharField(
label='Número Matéria', label='Número Matéria',
required=False required=False,
widget=forms.TextInput(attrs={'autocomplete': 'off'})
) )
ano_materia = forms.ChoiceField( ano_materia = forms.ChoiceField(
label='Ano Matéria', label='Ano Matéria',
required=False, required=False,
choices=ANO_CHOICES, choices=ANO_CHOICES,
widget=forms.Select(attrs={'autocomplete': 'off'})
) )
class Meta: class Meta:
@ -122,7 +125,11 @@ class NormaJuridicaForm(ModelForm):
if not self.is_valid(): if not self.is_valid():
return cleaned_data return cleaned_data
norma = NormaJuridica.objects.filter(ano=cleaned_data['ano'],
numero=cleaned_data['numero'],
tipo=cleaned_data['tipo']).exists()
if norma:
raise ValidationError("Já existe uma norma de mesmo Tipo, Ano e Número no sistema")
if (cleaned_data['tipo_materia'] and if (cleaned_data['tipo_materia'] and
cleaned_data['numero_materia'] and cleaned_data['numero_materia'] and
cleaned_data['ano_materia']): cleaned_data['ano_materia']):

22
sapl/norma/views.py

@ -7,7 +7,7 @@ from django.http import HttpResponse, JsonResponse
from django.template import RequestContext, loader from django.template import RequestContext, loader
from django.utils import timezone from django.utils import timezone
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.views.generic import CreateView, ListView, TemplateView, UpdateView from django.views.generic import TemplateView, UpdateView
from django.views.generic.base import RedirectView from django.views.generic.base import RedirectView
from django.views.generic.edit import FormView from django.views.generic.edit import FormView
from django_filters.views import FilterView from django_filters.views import FilterView
@ -51,11 +51,12 @@ class NormaRelacionadaCrud(MasterDetailCrud):
form_class = NormaRelacionadaForm form_class = NormaRelacionadaForm
def get_initial(self): def get_initial(self):
self.initial['tipo'] = self.object.norma_relacionada.tipo.id initial = super(UpdateView, self).get_initial()
self.initial['numero'] = self.object.norma_relacionada.numero initial['tipo'] = self.object.norma_relacionada.tipo.id
self.initial['ano'] = self.object.norma_relacionada.ano initial['numero'] = self.object.norma_relacionada.numero
self.initial['ementa'] = self.object.norma_relacionada.ementa initial['ano'] = self.object.norma_relacionada.ano
return self.initial initial['ementa'] = self.object.norma_relacionada.ementa
return initial
class DetailView(MasterDetailCrud.DetailView): class DetailView(MasterDetailCrud.DetailView):
@ -171,12 +172,13 @@ class NormaCrud(Crud):
layout_key = 'NormaJuridicaCreate' layout_key = 'NormaJuridicaCreate'
def get_initial(self): def get_initial(self):
initial = super(UpdateView, self).get_initial()
norma = NormaJuridica.objects.get(id=self.kwargs['pk']) norma = NormaJuridica.objects.get(id=self.kwargs['pk'])
if norma.materia: if norma.materia:
self.initial['tipo_materia'] = norma.materia.tipo initial['tipo_materia'] = norma.materia.tipo
self.initial['ano_materia'] = norma.materia.ano initial['ano_materia'] = norma.materia.ano
self.initial['numero_materia'] = norma.materia.numero initial['numero_materia'] = norma.materia.numero
return self.initial.copy() return initial
def recuperar_norma(request): def recuperar_norma(request):

2
sapl/parlamentares/forms.py

@ -261,6 +261,8 @@ class FiliacaoForm(ModelForm):
fields = ['partido', fields = ['partido',
'data', 'data',
'data_desfiliacao'] 'data_desfiliacao']
widgets = {'data': forms.DateInput(attrs={'autocomplete': 'off'}),
'data_desfiliacao': forms.DateInput(attrs={'autocomplete': 'off'})}
def clean(self): def clean(self):
super(FiliacaoForm, self).clean() super(FiliacaoForm, self).clean()

11
sapl/protocoloadm/views.py

@ -11,7 +11,7 @@ from django.http.response import HttpResponseRedirect
from django.shortcuts import redirect from django.shortcuts import redirect
from django.utils import timezone from django.utils import timezone
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.views.generic import CreateView, ListView from django.views.generic import ListView, CreateView
from django.views.generic.base import RedirectView, TemplateView from django.views.generic.base import RedirectView, TemplateView
from django.views.generic.edit import FormView from django.views.generic.edit import FormView
from django_filters.views import FilterView from django_filters.views import FilterView
@ -610,18 +610,19 @@ class TramitacaoAdmCrud(MasterDetailCrud):
form_class = TramitacaoAdmForm form_class = TramitacaoAdmForm
def get_initial(self): def get_initial(self):
initial = super(CreateView, self).get_initial()
local = DocumentoAdministrativo.objects.get( local = DocumentoAdministrativo.objects.get(
pk=self.kwargs['pk']).tramitacaoadministrativo_set.order_by( pk=self.kwargs['pk']).tramitacaoadministrativo_set.order_by(
'-data_tramitacao', '-data_tramitacao',
'-id').first() '-id').first()
if local: if local:
self.initial['unidade_tramitacao_local' initial['unidade_tramitacao_local'
] = local.unidade_tramitacao_destino.pk ] = local.unidade_tramitacao_destino.pk
else: else:
self.initial['unidade_tramitacao_local'] = '' initial['unidade_tramitacao_local'] = ''
self.initial['data_tramitacao'] = timezone.now().date() initial['data_tramitacao'] = timezone.now().date()
return self.initial return initial
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)

8
sapl/sessao/forms.py

@ -179,15 +179,17 @@ class ExpedienteMateriaForm(ModelForm):
required=True, required=True,
queryset=TipoMateriaLegislativa.objects.all(), queryset=TipoMateriaLegislativa.objects.all(),
empty_label='Selecione', empty_label='Selecione',
) widget=forms.Select(attrs={'autocomplete': 'off'}))
numero_materia = forms.CharField( numero_materia = forms.CharField(
label='Número Matéria', required=True) label='Número Matéria', required=True,
widget=forms.TextInput(attrs={'autocomplete': 'off'}))
ano_materia = forms.CharField( ano_materia = forms.CharField(
label='Ano Matéria', label='Ano Matéria',
initial=int(data_atual.year), initial=int(data_atual.year),
required=True) required=True,
widget=forms.TextInput(attrs={'autocomplete': 'off'}))
data_ordem = forms.CharField( data_ordem = forms.CharField(
label='Data Sessão', label='Data Sessão',

41
sapl/sessao/views.py

@ -18,7 +18,7 @@ from django.utils.decorators import method_decorator
from django.utils.html import strip_tags from django.utils.html import strip_tags
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.views.decorators.csrf import csrf_exempt from django.views.decorators.csrf import csrf_exempt
from django.views.generic import FormView, ListView, TemplateView from django.views.generic import FormView, ListView, TemplateView, CreateView, UpdateView
from django.views.generic.base import RedirectView from django.views.generic.base import RedirectView
from django.views.generic.detail import DetailView from django.views.generic.detail import DetailView
from django.views.generic.edit import FormMixin from django.views.generic.edit import FormMixin
@ -421,14 +421,15 @@ class MateriaOrdemDiaCrud(MasterDetailCrud):
form_class = OrdemDiaForm form_class = OrdemDiaForm
def get_initial(self): def get_initial(self):
self.initial['data_ordem'] = SessaoPlenaria.objects.get( initial = super(CreateView, self).get_inital()
initial['data_ordem'] = SessaoPlenaria.objects.get(
pk=self.kwargs['pk']).data_inicio.strftime('%d/%m/%Y') pk=self.kwargs['pk']).data_inicio.strftime('%d/%m/%Y')
max_numero_ordem = OrdemDia.objects.filter( max_numero_ordem = OrdemDia.objects.filter(
sessao_plenaria=self.kwargs['pk']).aggregate( sessao_plenaria=self.kwargs['pk']).aggregate(
Max('numero_ordem'))['numero_ordem__max'] Max('numero_ordem'))['numero_ordem__max']
self.initial['numero_ordem'] = ( initial['numero_ordem'] = (
max_numero_ordem if max_numero_ordem else 0) + 1 max_numero_ordem if max_numero_ordem else 0) + 1
return self.initial return initial
def get_success_url(self): def get_success_url(self):
return reverse('sapl.sessao:ordemdia_list', return reverse('sapl.sessao:ordemdia_list',
@ -438,10 +439,11 @@ class MateriaOrdemDiaCrud(MasterDetailCrud):
form_class = OrdemDiaForm form_class = OrdemDiaForm
def get_initial(self): def get_initial(self):
self.initial['tipo_materia'] = self.object.materia.tipo.id initial = super(UpdateView, self).get_initial()
self.initial['numero_materia'] = self.object.materia.numero initial['tipo_materia'] = self.object.materia.tipo.id
self.initial['ano_materia'] = self.object.materia.ano initial['numero_materia'] = self.object.materia.numero
return self.initial initial['ano_materia'] = self.object.materia.ano
return initial
class DetailView(MasterDetailCrud.DetailView): class DetailView(MasterDetailCrud.DetailView):
@ -495,14 +497,15 @@ class ExpedienteMateriaCrud(MasterDetailCrud):
form_class = ExpedienteMateriaForm form_class = ExpedienteMateriaForm
def get_initial(self): def get_initial(self):
self.initial['data_ordem'] = SessaoPlenaria.objects.get( initial = super(CreateView, self).get_initial()
initial['data_ordem'] = SessaoPlenaria.objects.get(
pk=self.kwargs['pk']).data_inicio.strftime('%d/%m/%Y') pk=self.kwargs['pk']).data_inicio.strftime('%d/%m/%Y')
max_numero_ordem = ExpedienteMateria.objects.filter( max_numero_ordem = ExpedienteMateria.objects.filter(
sessao_plenaria=self.kwargs['pk']).aggregate( sessao_plenaria=self.kwargs['pk']).aggregate(
Max('numero_ordem'))['numero_ordem__max'] Max('numero_ordem'))['numero_ordem__max']
self.initial['numero_ordem'] = ( initial['numero_ordem'] = (
max_numero_ordem if max_numero_ordem else 0) + 1 max_numero_ordem if max_numero_ordem else 0) + 1
return self.initial return initial
def get_success_url(self): def get_success_url(self):
return reverse('sapl.sessao:expedientemateria_list', return reverse('sapl.sessao:expedientemateria_list',
@ -512,10 +515,11 @@ class ExpedienteMateriaCrud(MasterDetailCrud):
form_class = ExpedienteMateriaForm form_class = ExpedienteMateriaForm
def get_initial(self): def get_initial(self):
self.initial['tipo_materia'] = self.object.materia.tipo.id initial = super(UpdateView, self).get_initial()
self.initial['numero_materia'] = self.object.materia.numero initial['tipo_materia'] = self.object.materia.tipo.id
self.initial['ano_materia'] = self.object.materia.ano initial['numero_materia'] = self.object.materia.numero
return self.initial initial['ano_materia'] = self.object.materia.ano
return initial
class DetailView(MasterDetailCrud.DetailView): class DetailView(MasterDetailCrud.DetailView):
@ -1149,9 +1153,10 @@ class ResumoOrdenacaoView(PermissionRequiredMixin, FormView):
return reverse('sapl.base:sistema') return reverse('sapl.base:sistema')
def get_initial(self): def get_initial(self):
initial = super(ResumoOrdenacaoView, self).get_initial()
ordenacao = ResumoOrdenacao.objects.first() ordenacao = ResumoOrdenacao.objects.first()
if ordenacao: if ordenacao:
return {'primeiro': ordenacao.primeiro, initial.update({'primeiro': ordenacao.primeiro,
'segundo': ordenacao.segundo, 'segundo': ordenacao.segundo,
'terceiro': ordenacao.terceiro, 'terceiro': ordenacao.terceiro,
'quarto': ordenacao.quarto, 'quarto': ordenacao.quarto,
@ -1160,8 +1165,8 @@ class ResumoOrdenacaoView(PermissionRequiredMixin, FormView):
'setimo': ordenacao.setimo, 'setimo': ordenacao.setimo,
'oitavo': ordenacao.oitavo, 'oitavo': ordenacao.oitavo,
'nono': ordenacao.nono, 'nono': ordenacao.nono,
'decimo': ordenacao.decimo} 'decimo': ordenacao.decimo})
return self.initial.copy() return initial
def form_valid(self, form): def form_valid(self, form):
ordenacao = ResumoOrdenacao.objects.get_or_create()[0] ordenacao = ResumoOrdenacao.objects.get_or_create()[0]

2
sapl/templates/materia/layouts.yaml

@ -23,7 +23,7 @@ MateriaLegislativa:
{% trans 'Identificação Básica' %}: {% trans 'Identificação Básica' %}:
- tipo ano numero - tipo ano numero
- data_apresentacao numero_protocolo tipo_apresentacao - data_apresentacao numero_protocolo tipo_apresentacao
- autor - tipo_autor autor
- texto_original - texto_original
{% trans 'Outras Informações' %}: {% trans 'Outras Informações' %}:
- apelido dias_prazo polemica - apelido dias_prazo polemica

38
sapl/templates/materia/materialegislativa_form.html

@ -22,6 +22,44 @@
} }
} }
$("#id_tipo, #id_ano").change(recuperar_numero_ano); $("#id_tipo, #id_ano").change(recuperar_numero_ano);
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,
data_relativa : $("#id_data_apresentacao").val()
}
$.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").val(autor_selecionado);
}
});
}
});
$("#id_tipo_autor").trigger('change');
});
</script> </script>
{% endblock %} {% endblock %}

10
sapl/templates/protocoloadm/comprovante.html

@ -61,14 +61,14 @@
<th>Data / Horário</th> <th>Data / Horário</th>
<td>{{ protocolo.data|date:"d/m/Y" }} - {{ protocolo.timestamp|date:"H:i:s" }}</td> <td>{{ protocolo.data|date:"d/m/Y" }} - {{ protocolo.timestamp|date:"H:i:s" }}</td>
</tr> </tr>
{% if protocolo.tipo_processo == 0 %} {% if protocolo.tipo_processo == 1 %}
<tr> <tr>
<th>Ementa</th> <th>Ementa</th>
<td>{{ protocolo.assunto_ementa }}</td> <td>{{ protocolo.assunto_ementa }}</td>
</tr> </tr>
<tr> <tr>
<th>Interessado</th> <th>Autor</th>
<td>{{ protocolo.interessado }}</td> <td>{{ protocolo.autor }}</td>
</tr> </tr>
{% endif %} {% endif %}
<tr> <tr>
@ -85,5 +85,9 @@
<th>Número Páginas</th> <th>Número Páginas</th>
<td>{{ protocolo.numero_paginas }}</td> <td>{{ protocolo.numero_paginas }}</td>
</tr> </tr>
<tr>
<th>Comprovante emitido por</th>
<td>{{ request.user.username }}</td>
</tr>
</table> </table>
{% endblock detail_content %} {% endblock detail_content %}

2
setup.py

@ -49,7 +49,7 @@ install_requires = [
] ]
setup( setup(
name='interlegis-sapl', name='interlegis-sapl',
version='3.1.81', version='3.1.83',
packages=find_packages(), packages=find_packages(),
include_package_data=True, include_package_data=True,
license='GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007', license='GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007',

Loading…
Cancel
Save