|
|
@ -2,6 +2,9 @@ import json |
|
|
|
from datetime import date, datetime |
|
|
|
|
|
|
|
from braces.views import FormValidMessageMixin |
|
|
|
from django.contrib.auth.mixins import PermissionRequiredMixin |
|
|
|
from django.contrib.auth.models import Permission |
|
|
|
from django.contrib.contenttypes.models import ContentType |
|
|
|
from django.core.exceptions import ObjectDoesNotExist |
|
|
|
from django.core.urlresolvers import reverse |
|
|
|
from django.db.models import Max, Q |
|
|
@ -12,7 +15,8 @@ from django.views.generic import CreateView, DetailView, FormView, ListView |
|
|
|
from django.views.generic.base import TemplateView |
|
|
|
from django_filters.views import FilterView |
|
|
|
|
|
|
|
from sapl.crud.base import Crud, CrudBaseMixin, CrudListView, make_pagination |
|
|
|
from sapl.crud.base import (Crud, CrudBaseMixin, CrudListView, make_pagination, |
|
|
|
CrudCreateView, CrudUpdateView, CrudDeleteView) |
|
|
|
from sapl.materia.models import Proposicao, TipoMateriaLegislativa |
|
|
|
from sapl.utils import create_barcode, get_client_ip |
|
|
|
|
|
|
@ -38,6 +42,24 @@ ProtocoloMateriaCrud = Crud.build(Protocolo, '') |
|
|
|
TipoInstituicaoCrud = Crud.build(TipoInstituicao, '') |
|
|
|
|
|
|
|
|
|
|
|
def permissoes_protocoloadm(): |
|
|
|
lista_permissoes = [] |
|
|
|
cts = ContentType.objects.filter(app_label='protocoloadm') |
|
|
|
perms_protocolo = list(Permission.objects.filter(content_type__in=cts)) |
|
|
|
for p in perms_protocolo: |
|
|
|
lista_permissoes.append('protocoloadm.' + p.codename) |
|
|
|
return set(lista_permissoes) |
|
|
|
|
|
|
|
|
|
|
|
def permissoes_adm(): |
|
|
|
lista_permissoes = [] |
|
|
|
perms_adm = Permission.objects.filter( |
|
|
|
group__name='Operador de Administração') |
|
|
|
for p in perms_adm: |
|
|
|
lista_permissoes.append('protocoloadm.' + p.codename) |
|
|
|
return set(lista_permissoes) |
|
|
|
|
|
|
|
|
|
|
|
class StatusTramitacaoAdministrativoCrud(Crud): |
|
|
|
model = StatusTramitacaoAdministrativo |
|
|
|
help_path = '' |
|
|
@ -48,11 +70,21 @@ class StatusTramitacaoAdministrativoCrud(Crud): |
|
|
|
class ListView(CrudListView): |
|
|
|
ordering = 'sigla' |
|
|
|
|
|
|
|
class CreateView(PermissionRequiredMixin, CrudCreateView): |
|
|
|
permission_required = permissoes_adm() |
|
|
|
|
|
|
|
class UpdateView(PermissionRequiredMixin, CrudUpdateView): |
|
|
|
permission_required = permissoes_adm() |
|
|
|
|
|
|
|
class DeleteView(PermissionRequiredMixin, CrudDeleteView): |
|
|
|
permission_required = permissoes_adm() |
|
|
|
|
|
|
|
|
|
|
|
class ProtocoloPesquisaView(FilterView): |
|
|
|
class ProtocoloPesquisaView(PermissionRequiredMixin, FilterView): |
|
|
|
model = Protocolo |
|
|
|
filterset_class = ProtocoloFilterSet |
|
|
|
paginate_by = 10 |
|
|
|
permission_required = permissoes_protocoloadm() |
|
|
|
|
|
|
|
def get_filterset_kwargs(self, filterset_class): |
|
|
|
super(ProtocoloPesquisaView, |
|
|
@ -108,11 +140,12 @@ class ProtocoloPesquisaView(FilterView): |
|
|
|
return self.render_to_response(context) |
|
|
|
|
|
|
|
|
|
|
|
class ProtocoloListView(ListView): |
|
|
|
class ProtocoloListView(PermissionRequiredMixin, ListView): |
|
|
|
template_name = 'protocoloadm/protocolo_list.html' |
|
|
|
context_object_name = 'protocolos' |
|
|
|
model = Protocolo |
|
|
|
paginate_by = 10 |
|
|
|
permission_required = permissoes_protocoloadm() |
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
kwargs = self.request.session['kwargs'] |
|
|
@ -131,10 +164,11 @@ class ProtocoloListView(ListView): |
|
|
|
return context |
|
|
|
|
|
|
|
|
|
|
|
class AnularProtocoloAdmView(CreateView): |
|
|
|
class AnularProtocoloAdmView(PermissionRequiredMixin, CreateView): |
|
|
|
template_name = 'protocoloadm/anular_protocoloadm.html' |
|
|
|
form_class = AnularProcoloAdmForm |
|
|
|
form_valid_message = _('Protocolo anulado com sucesso!') |
|
|
|
permission_required = permissoes_protocoloadm() |
|
|
|
|
|
|
|
def get_success_url(self): |
|
|
|
return reverse('sapl.protocoloadm:protocolo') |
|
|
@ -157,10 +191,11 @@ class AnularProtocoloAdmView(CreateView): |
|
|
|
return redirect(self.get_success_url()) |
|
|
|
|
|
|
|
|
|
|
|
class ProtocoloDocumentoView(FormValidMessageMixin, CreateView): |
|
|
|
class ProtocoloDocumentoView(PermissionRequiredMixin, FormValidMessageMixin, CreateView): |
|
|
|
template_name = "protocoloadm/protocolar_documento.html" |
|
|
|
form_class = ProtocoloDocumentForm |
|
|
|
form_valid_message = _('Protocolo cadastrado com sucesso!') |
|
|
|
permission_required = permissoes_protocoloadm() |
|
|
|
|
|
|
|
def get_success_url(self): |
|
|
|
return reverse('sapl.protocoloadm:protocolo') |
|
|
@ -189,9 +224,10 @@ class ProtocoloDocumentoView(FormValidMessageMixin, CreateView): |
|
|
|
return redirect(self.get_success_url()) |
|
|
|
|
|
|
|
|
|
|
|
class CriarDocumentoProtocolo(CreateView): |
|
|
|
class CriarDocumentoProtocolo(PermissionRequiredMixin, CreateView): |
|
|
|
template_name = "protocoloadm/criar_documento.html" |
|
|
|
form_class = DocumentoAdministrativoForm |
|
|
|
permission_required = permissoes_protocoloadm() |
|
|
|
|
|
|
|
def get_initial(self): |
|
|
|
numero = self.kwargs['pk'] |
|
|
@ -226,9 +262,10 @@ class CriarDocumentoProtocolo(CreateView): |
|
|
|
return doc |
|
|
|
|
|
|
|
|
|
|
|
class ProtocoloMostrarView(TemplateView): |
|
|
|
class ProtocoloMostrarView(PermissionRequiredMixin, TemplateView): |
|
|
|
|
|
|
|
template_name = "protocoloadm/protocolo_mostrar.html" |
|
|
|
permission_required = permissoes_protocoloadm() |
|
|
|
|
|
|
|
def get_context_data(self, **kwargs): |
|
|
|
context = super(ProtocoloMostrarView, self).get_context_data(**kwargs) |
|
|
@ -239,9 +276,10 @@ class ProtocoloMostrarView(TemplateView): |
|
|
|
return context |
|
|
|
|
|
|
|
|
|
|
|
class ComprovanteProtocoloView(TemplateView): |
|
|
|
class ComprovanteProtocoloView(PermissionRequiredMixin, TemplateView): |
|
|
|
|
|
|
|
template_name = "protocoloadm/comprovante.html" |
|
|
|
permission_required = permissoes_protocoloadm() |
|
|
|
|
|
|
|
def get_context_data(self, **kwargs): |
|
|
|
context = super(ComprovanteProtocoloView, self).get_context_data( |
|
|
@ -267,11 +305,12 @@ class ComprovanteProtocoloView(TemplateView): |
|
|
|
return context |
|
|
|
|
|
|
|
|
|
|
|
class ProtocoloMateriaView(CreateView): |
|
|
|
class ProtocoloMateriaView(PermissionRequiredMixin, CreateView): |
|
|
|
|
|
|
|
template_name = "protocoloadm/protocolar_materia.html" |
|
|
|
form_class = ProtocoloMateriaForm |
|
|
|
form_valid_message = _('Matéria cadastrada com sucesso!') |
|
|
|
permission_required = permissoes_protocoloadm() |
|
|
|
|
|
|
|
def get_success_url(self): |
|
|
|
return reverse('sapl.protocoloadm:protocolo') |
|
|
@ -368,10 +407,11 @@ class ProposicaoDetailView(DetailView): |
|
|
|
return context |
|
|
|
|
|
|
|
|
|
|
|
class PesquisarDocumentoAdministrativoView(FilterView): |
|
|
|
class PesquisarDocumentoAdministrativoView(PermissionRequiredMixin, FilterView): |
|
|
|
model = DocumentoAdministrativo |
|
|
|
filterset_class = DocumentoAdministrativoFilterSet |
|
|
|
paginate_by = 10 |
|
|
|
permission_required = permissoes_adm() |
|
|
|
|
|
|
|
def get_filterset_kwargs(self, filterset_class): |
|
|
|
super(PesquisarDocumentoAdministrativoView, |
|
|
@ -427,8 +467,9 @@ class PesquisarDocumentoAdministrativoView(FilterView): |
|
|
|
return self.render_to_response(context) |
|
|
|
|
|
|
|
|
|
|
|
class DetailDocumentoAdministrativo(DetailView): |
|
|
|
class DetailDocumentoAdministrativo(PermissionRequiredMixin, DetailView): |
|
|
|
template_name = "protocoloadm/detail_doc_adm.html" |
|
|
|
permission_required = permissoes_adm() |
|
|
|
|
|
|
|
def get(self, request, *args, **kwargs): |
|
|
|
documento = DocumentoAdministrativo.objects.get( |
|
|
@ -467,8 +508,9 @@ class DetailDocumentoAdministrativo(DetailView): |
|
|
|
'pk': self.kwargs['pk']}) |
|
|
|
|
|
|
|
|
|
|
|
class DocumentoAcessorioAdministrativoEditView(FormView): |
|
|
|
class DocumentoAcessorioAdministrativoEditView(PermissionRequiredMixin, FormView): |
|
|
|
template_name = "protocoloadm/documento_acessorio_administrativo_edit.html" |
|
|
|
permission_required = permissoes_adm() |
|
|
|
|
|
|
|
def get(self, request, *args, **kwargs): |
|
|
|
doc = DocumentoAdministrativo.objects.get( |
|
|
@ -514,8 +556,9 @@ class DocumentoAcessorioAdministrativoEditView(FormView): |
|
|
|
return reverse('sapl.protocoloadm:doc_ace_adm', kwargs={'pk': pk}) |
|
|
|
|
|
|
|
|
|
|
|
class DocumentoAcessorioAdministrativoView(FormView): |
|
|
|
class DocumentoAcessorioAdministrativoView(PermissionRequiredMixin, FormView): |
|
|
|
template_name = "protocoloadm/documento_acessorio_administrativo.html" |
|
|
|
permission_required = permissoes_adm() |
|
|
|
|
|
|
|
def get(self, request, *args, **kwargs): |
|
|
|
form = DocumentoAcessorioAdministrativoForm() |
|
|
@ -553,8 +596,9 @@ class DocumentoAcessorioAdministrativoView(FormView): |
|
|
|
return reverse('sapl.protocoloadm:doc_ace_adm', kwargs={'pk': pk}) |
|
|
|
|
|
|
|
|
|
|
|
class TramitacaoAdmView(FormView): |
|
|
|
class TramitacaoAdmView(PermissionRequiredMixin, FormView): |
|
|
|
template_name = "protocoloadm/tramitacao.html" |
|
|
|
permission_required = permissoes_adm() |
|
|
|
|
|
|
|
def get(self, request, *args, **kwargs): |
|
|
|
|
|
|
@ -567,8 +611,9 @@ class TramitacaoAdmView(FormView): |
|
|
|
'tramitacoes': tramitacoes}) |
|
|
|
|
|
|
|
|
|
|
|
class TramitacaoAdmIncluirView(FormView): |
|
|
|
class TramitacaoAdmIncluirView(PermissionRequiredMixin, FormView): |
|
|
|
template_name = "protocoloadm/tramitacao_incluir.html" |
|
|
|
permission_required = permissoes_adm() |
|
|
|
|
|
|
|
def get(self, request, *args, **kwargs): |
|
|
|
pk = kwargs['pk'] |
|
|
@ -592,9 +637,10 @@ class TramitacaoAdmIncluirView(FormView): |
|
|
|
return self.form_invalid(form) |
|
|
|
|
|
|
|
|
|
|
|
class TramitacaoAdmEditView(FormView): |
|
|
|
class TramitacaoAdmEditView(PermissionRequiredMixin, FormView): |
|
|
|
|
|
|
|
template_name = "protocoloadm/tramitacao_edit.html" |
|
|
|
permission_required = permissoes_adm() |
|
|
|
|
|
|
|
def get(self, request, *args, **kwargs): |
|
|
|
pk = kwargs['pk'] |
|
|
@ -620,9 +666,10 @@ class TramitacaoAdmEditView(FormView): |
|
|
|
return self.form_invalid(form) |
|
|
|
|
|
|
|
|
|
|
|
class TramitacaoAdmDeleteView(DetailView): |
|
|
|
class TramitacaoAdmDeleteView(PermissionRequiredMixin, DetailView): |
|
|
|
|
|
|
|
template_name = "protocoloadm/tramitacao.html" |
|
|
|
permission_required = permissoes_adm() |
|
|
|
|
|
|
|
def get(self, request, *args, **kwargs): |
|
|
|
pk = kwargs['pk'] |
|
|
|