Browse Source

Semi-merge

pull/529/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
d85778a941
  1. 4
      sapl/base/urls.py
  2. 16
      sapl/materia/migrations/0044_merge.py
  3. 9
      sapl/materia/urls.py
  4. 24
      sapl/materia/views.py
  5. 15
      sapl/protocoloadm/urls.py
  6. 81
      sapl/protocoloadm/views.py
  7. 183
      sapl/sessao/views.py
  8. 1
      sapl/utils.py

4
sapl/base/urls.py

@ -10,12 +10,8 @@ app_name = AppConfig.name
urlpatterns = [ urlpatterns = [
<<<<<<< HEAD
url(r'^sistema/', SistemaView.as_view()),
=======
url(r'^sistema/', TemplateView.as_view(template_name='sistema.html')), url(r'^sistema/', TemplateView.as_view(template_name='sistema.html')),
url(r'^ajuda/', TemplateView.as_view(template_name='ajuda.html')), url(r'^ajuda/', TemplateView.as_view(template_name='ajuda.html')),
>>>>>>> master
url(r'^ajuda/(?P<topic>\w+)$', HelpView.as_view(), name='help_topic'), url(r'^ajuda/(?P<topic>\w+)$', HelpView.as_view(), name='help_topic'),
url(r'^ajuda/', TemplateView.as_view(template_name='ajuda/index.html'), url(r'^ajuda/', TemplateView.as_view(template_name='ajuda/index.html'),
name='help_base'), name='help_base'),

16
sapl/materia/migrations/0044_merge.py

@ -0,0 +1,16 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.7 on 2016-08-22 20:18
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('materia', '0039_auto_20160628_1251'),
('materia', '0043_auto_20160810_1738'),
]
operations = [
]

9
sapl/materia/urls.py

@ -3,13 +3,10 @@ from django.conf.urls import include, url
from sapl.materia.views import (AcompanhamentoConfirmarView, from sapl.materia.views import (AcompanhamentoConfirmarView,
AcompanhamentoExcluirView, AcompanhamentoExcluirView,
AcompanhamentoMateriaView, AnexadaCrud, AcompanhamentoMateriaView, AnexadaCrud,
<<<<<<< HEAD
AutorCrud, AutoriaCrud, ConfirmarEmailView, AutorCrud, AutoriaCrud, ConfirmarEmailView,
======= ConfirmarProposicao, DespachoInicialCrud,
AutorCrud, AutoriaCrud, ConfirmarProposicao, DocumentoAcessorioCrud, LegislacaoCitadaCrud,
>>>>>>> master MateriaLegislativaCrud,
DespachoInicialCrud, DocumentoAcessorioCrud,
LegislacaoCitadaCrud, MateriaLegislativaCrud,
MateriaLegislativaPesquisaView, MateriaTaView, MateriaLegislativaPesquisaView, MateriaTaView,
NumeracaoCrud, OrgaoCrud, OrigemCrud, NumeracaoCrud, OrgaoCrud, OrigemCrud,
ProposicaoCrud, ProposicaoDevolvida, ProposicaoCrud, ProposicaoDevolvida,

24
sapl/materia/views.py

@ -29,27 +29,16 @@ from sapl.crud.base import (Crud, CrudBaseMixin, CrudCreateView,
CrudUpdateView, make_pagination) CrudUpdateView, make_pagination)
from sapl.crud.masterdetail import MasterDetailCrud from sapl.crud.masterdetail import MasterDetailCrud
from sapl.norma.models import LegislacaoCitada from sapl.norma.models import LegislacaoCitada
<<<<<<< HEAD
from sapl.utils import (autor_label, autor_modal, get_base_url,
permissao_tb_aux, permissoes_autor, permissoes_materia)
from .forms import (AcompanhamentoMateriaForm, AnexadaForm, AutorForm,
AutoriaForm, DespachoInicialForm, DocumentoAcessorioForm,
LegislacaoCitadaForm, MateriaLegislativaFilterSet,
NumeracaoForm, ProposicaoForm, RelatoriaForm,
TramitacaoForm, UnidadeTramitacaoForm,
filtra_tramitacao_destino,
=======
from sapl.utils import (autor_label, autor_modal, gerar_hash_arquivo, from sapl.utils import (autor_label, autor_modal, gerar_hash_arquivo,
get_base_url) get_base_url, permissao_tb_aux, permissoes_autor,
permissoes_materia)
from .forms import (AcompanhamentoMateriaForm, AnexadaForm, AutoriaForm, from .forms import (AcompanhamentoMateriaForm, AnexadaForm, AutorForm,
ConfirmarProposicaoForm, DespachoInicialForm, AutoriaForm, ConfirmarProposicaoForm, DespachoInicialForm,
DocumentoAcessorioForm, LegislacaoCitadaForm, DocumentoAcessorioForm, LegislacaoCitadaForm,
MateriaLegislativaFilterSet, NumeracaoForm, ProposicaoForm, MateriaLegislativaFilterSet, NumeracaoForm, ProposicaoForm,
ReceberProposicaoForm, RelatoriaForm, TramitacaoForm, ReceberProposicaoForm, RelatoriaForm, TramitacaoForm,
UnidadeTramitacaoForm, filtra_tramitacao_destino, UnidadeTramitacaoForm, filtra_tramitacao_destino,
>>>>>>> master
filtra_tramitacao_destino_and_status, filtra_tramitacao_destino_and_status,
filtra_tramitacao_status) filtra_tramitacao_status)
from .models import (AcompanhamentoMateria, Anexada, Autor, Autoria, from .models import (AcompanhamentoMateria, Anexada, Autor, Autoria,
@ -461,7 +450,6 @@ class ProposicaoCrud(Crud):
def layout_key(self): def layout_key(self):
return 'ProposicaoCreate' return 'ProposicaoCreate'
<<<<<<< HEAD
def has_permission(self): def has_permission(self):
perms = self.get_permission_required() perms = self.get_permission_required()
if self.request.user.has_perms(perms): if self.request.user.has_perms(perms):
@ -477,10 +465,6 @@ class ProposicaoCrud(Crud):
class ListView(PermissionRequiredMixin, CrudListView): class ListView(PermissionRequiredMixin, CrudListView):
ordering = ['-data_envio', 'descricao'] ordering = ['-data_envio', 'descricao']
permission_required = permissoes_autor() permission_required = permissoes_autor()
=======
class ListView(CrudListView):
ordering = ['-data_envio', '-descricao']
>>>>>>> master
def get_rows(self, object_list): def get_rows(self, object_list):

15
sapl/protocoloadm/urls.py

@ -17,17 +17,7 @@ from sapl.protocoloadm.views import (AnularProtocoloAdmView,
ProtocoloPesquisaView, ProtocoloPesquisaView,
StatusTramitacaoAdministrativoCrud, StatusTramitacaoAdministrativoCrud,
TipoDocumentoAdministrativoCrud, TipoDocumentoAdministrativoCrud,
<<<<<<< HEAD TipoInstituicaoCrud)
TipoInstituicaoCrud, TramitacaoAdmCrud,
get_nome_autor, pesquisa_autores)
=======
TipoInstituicaoCrud,
TramitacaoAdmDeleteView,
TramitacaoAdmEditView,
TramitacaoAdmIncluirView,
TramitacaoAdministrativoCrud,
TramitacaoAdmView)
>>>>>>> master
from .apps import AppConfig from .apps import AppConfig
@ -35,8 +25,7 @@ app_name = AppConfig.name
urlpatterns = [ urlpatterns = [
url(r'^protocoloadm/docadm/', url(r'^protocoloadm/docadm/',
include(DocumentoAdministrativoCrud.get_urls() + include(DocumentoAdministrativoCrud.get_urls())),
TramitacaoAdmCrud.get_urls())),
url(r'^protocoloadm/tipo-documento-adm/', url(r'^protocoloadm/tipo-documento-adm/',
include(TipoDocumentoAdministrativoCrud.get_urls())), include(TipoDocumentoAdministrativoCrud.get_urls())),
url(r'^protocoloadm/doc-acessorio/', url(r'^protocoloadm/doc-acessorio/',

81
sapl/protocoloadm/views.py

@ -13,31 +13,20 @@ from django.views.generic import CreateView, DetailView, FormView, ListView
from django.views.generic.base import TemplateView from django.views.generic.base import TemplateView
from django_filters.views import FilterView from django_filters.views import FilterView
<<<<<<< HEAD
import sapl.crud.base import sapl.crud.base
from sapl.crud.base import (Crud, CrudBaseMixin, CrudCreateView, from sapl.crud.base import (Crud, CrudBaseMixin, CrudCreateView,
CrudDeleteView, CrudListView, CrudUpdateView, CrudDeleteView, CrudListView, CrudUpdateView,
make_pagination) make_pagination)
from sapl.crud.masterdetail import MasterDetailCrud from sapl.crud.masterdetail import MasterDetailCrud
from sapl.materia.models import Proposicao, TipoMateriaLegislativa from sapl.materia.models import TipoMateriaLegislativa
from sapl.utils import (create_barcode, get_client_ip, permissoes_adm, from sapl.utils import (create_barcode, get_client_ip, permissoes_adm,
permissoes_protocoloadm) permissoes_protocoloadm)
from .forms import (AnularProcoloAdmForm, DocumentoAcessorioAdministrativoForm, from .forms import (AnularProcoloAdmForm, DocumentoAcessorioAdministrativoForm,
DocumentoAdministrativoFilterSet, DocumentoAdministrativoFilterSet,
DocumentoAdministrativoForm, ProposicaoSimpleForm, DocumentoAdministrativoForm,
ProtocoloDocumentForm, ProtocoloFilterSet, ProtocoloDocumentForm, ProtocoloFilterSet,
ProtocoloMateriaForm, TramitacaoAdmEditForm, ProtocoloMateriaForm, TramitacaoAdmEditForm,
=======
from sapl.crud.base import Crud, CrudBaseMixin, CrudListView, make_pagination
from sapl.materia.models import TipoMateriaLegislativa
from sapl.utils import create_barcode, get_client_ip
from .forms import (AnularProcoloAdmForm, DocumentoAcessorioAdministrativoForm,
DocumentoAdministrativoFilterSet,
DocumentoAdministrativoForm, ProtocoloDocumentForm,
ProtocoloFilterSet, ProtocoloMateriaForm,
>>>>>>> master
TramitacaoAdmForm) TramitacaoAdmForm)
from .models import (Autor, DocumentoAcessorioAdministrativo, from .models import (Autor, DocumentoAcessorioAdministrativo,
DocumentoAdministrativo, Protocolo, DocumentoAdministrativo, Protocolo,
@ -360,74 +349,8 @@ class ProtocoloMateriaView(PermissionRequiredMixin, CreateView):
return redirect(self.get_success_url()) return redirect(self.get_success_url())
<<<<<<< HEAD
# TODO: move to Proposicao app
class ProposicaoReceberView(TemplateView):
template_name = "protocoloadm/proposicao_receber.html"
class ProposicoesNaoRecebidasView(ListView):
template_name = "protocoloadm/proposicao_naorecebidas.html"
model = Proposicao
paginate_by = 10
def get_queryset(self):
return Proposicao.objects.filter(data_envio__isnull=False, status='E')
class ProposicoesNaoIncorporadasView(ListView):
template_name = "protocoloadm/proposicao_naoincorporadas.html"
model = Proposicao
paginate_by = 10
def get_queryset(self):
return Proposicao.objects.filter(data_envio__isnull=False,
data_devolucao__isnull=False,
status='D')
class ProposicoesIncorporadasView(ListView):
template_name = "protocoloadm/proposicao_incorporadas.html"
model = Proposicao
paginate_by = 10
def get_queryset(self):
return Proposicao.objects.filter(data_envio__isnull=False,
data_recebimento__isnull=False,
status='I')
class ProposicaoView(TemplateView):
template_name = "protocoloadm/proposicoes.html"
class ProposicaoDetailView(DetailView):
template_name = "protocoloadm/proposicao_view.html"
model = Proposicao
def get(self, request, *args, **kwargs):
proposicao = Proposicao.objects.get(id=kwargs['pk'])
data = { # 'ano': proposicao.ano, # TODO: FIX
'tipo': proposicao.tipo.descricao, # TODO: FIX
'materia': proposicao.materia,
'numero_proposicao': proposicao.numero_proposicao,
'data_envio': proposicao.data_envio,
'data_recebimento': proposicao.data_recebimento,
'descricao': proposicao.descricao}
form = ProposicaoSimpleForm(initial=data)
return self.render_to_response({'form': form})
def get_context_data(self, **kwargs):
context = super(ProposicaoView, self).get_context_data(**kwargs)
context['form'] = ProposicaoSimpleForm
return context
class PesquisarDocumentoAdministrativoView(PermissionRequiredMixin, class PesquisarDocumentoAdministrativoView(PermissionRequiredMixin,
FilterView): FilterView):
=======
class PesquisarDocumentoAdministrativoView(FilterView):
>>>>>>> master
model = DocumentoAdministrativo model = DocumentoAdministrativo
filterset_class = DocumentoAdministrativoFilterSet filterset_class = DocumentoAdministrativoFilterSet
paginate_by = 10 paginate_by = 10

183
sapl/sessao/views.py

@ -91,7 +91,6 @@ class BancadaCrud(Crud):
form_class = BancadaForm form_class = BancadaForm
<<<<<<< HEAD
class TipoSessaoCrud(Crud): class TipoSessaoCrud(Crud):
model = TipoSessaoPlenaria model = TipoSessaoPlenaria
help_path = 'tipo_sessao_plenaria' help_path = 'tipo_sessao_plenaria'
@ -535,7 +534,6 @@ class PresencaOrdemDiaView(PermissionRequiredMixin,
return reverse('sapl.sessao:presencaordemdia', kwargs={'pk': pk}) return reverse('sapl.sessao:presencaordemdia', kwargs={'pk': pk})
<<<<<<< HEAD
class ListMateriaOrdemDiaView(FormMixin, SessaoCrud.CrudDetailView): class ListMateriaOrdemDiaView(FormMixin, SessaoCrud.CrudDetailView):
template_name = 'sessao/materia_ordemdia_list.html' template_name = 'sessao/materia_ordemdia_list.html'
form_class = ListMateriaForm form_class = ListMateriaForm
@ -639,187 +637,6 @@ class ListMateriaOrdemDiaView(FormMixin, SessaoCrud.CrudDetailView):
return self.get(self, request, args, kwargs) return self.get(self, request, args, kwargs)
class MateriaOrdemDiaView(PermissionRequiredMixin,
FormMixin,
SessaoCrud.CrudDetailView):
template_name = 'sessao/materia_ordemdia.html'
form_class = MateriaOrdemDiaForm
permission_required = permissoes_sessao()
def get(self, request, *args, **kwargs):
self.object = self.get_object()
context = self.get_context_data(object=self.object)
now = datetime.now()
tipo_materia = TipoMateriaLegislativa.objects.all()
data_sessao = now
tipo_sessao = TipoSessaoPlenaria.objects.all()
tipo_votacao = ExpedienteMateria.TIPO_VOTACAO_CHOICES
ano_materia = now.year
context.update({'data_sessao': data_sessao,
'tipo_sessao': tipo_sessao,
'tipo_materia': tipo_materia,
'tipo_votacao': tipo_votacao,
'ano_materia': ano_materia,
'error_message': '', })
return self.render_to_response(context)
def post(self, request, *args, **kwargs):
self.object = self.get_object()
context = self.get_context_data(object=self.object)
form = MateriaOrdemDiaForm(request.POST)
if form.is_valid():
try:
materia = MateriaLegislativa.objects.get(
numero=request.POST['numero_materia'],
tipo_id=request.POST['tipo_materia'],
ano=request.POST['ano_materia'])
except ObjectDoesNotExist:
form._errors["error_message"] = ErrorList([u""])
context.update({'form': form})
return self.render_to_response(context)
# TODO: barrar matérias não existentes
# TODO: barrar criação de ordemdia para materias já incluídas
ordemdia = OrdemDia()
ordemdia.sessao_plenaria_id = self.object.id
ordemdia.materia_id = materia.id
ordemdia.numero_ordem = request.POST['numero_ordem']
ordemdia.data_ordem = datetime.now()
ordemdia.observacao = sub('&nbsp;', ' ',
strip_tags(request.POST['observacao']))
ordemdia.tipo_votacao = request.POST['tipo_votacao']
ordemdia.save()
return self.form_valid(form)
else:
return self.form_invalid(form)
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sapl.sessao:materiaordemdia_list',
kwargs={'pk': pk})
class EditMateriaOrdemDiaView(PermissionRequiredMixin,
FormMixin,
SessaoCrud.CrudDetailView):
template_name = 'sessao/materia_ordemdia_edit.html'
form_class = MateriaOrdemDiaForm
permission_required = permissoes_sessao()
def get(self, request, *args, **kwargs):
self.object = self.get_object()
context = self.get_context_data(object=self.object)
pk = kwargs['pk']
oid = kwargs['oid']
ordem = OrdemDia.objects.get(sessao_plenaria_id=pk, materia_id=oid)
materia = MateriaLegislativa.objects.get(
id=ordem.materia_id)
data_ordem = ordem.data_ordem
tipo_votacao = ExpedienteMateria.TIPO_VOTACAO_CHOICES
tipo_sessao = TipoSessaoPlenaria.objects.all()
tipo_materia = TipoMateriaLegislativa.objects.all()
context.update({'data_sessao': data_ordem,
'tipo_sessao': tipo_sessao,
'tipo_sessao_selected': self.object.tipo,
'tipo_materia': tipo_materia,
'tipo_materia_selected': materia.tipo,
'tipo_votacao': tipo_votacao,
'tipo_votacao_selected': ordem.tipo_votacao,
'ano_materia': materia.ano,
'numero_ordem': ordem.numero_ordem,
'numero_materia': materia.numero,
'ordem_id': oid,
'oid': '',
'observacao': sub(
'&nbsp;', ' ', strip_tags(ordem.observacao)),
'error_message': '', })
return self.render_to_response(context)
def post(self, request, *args, **kwargs):
self.object = self.get_object()
context = self.get_context_data(object=self.object)
form = MateriaOrdemDiaForm(request.POST)
pk = kwargs['pk']
oid = kwargs['oid']
ordemdia = OrdemDia.objects.get(sessao_plenaria_id=pk, materia_id=oid)
if 'update-ordemdia' in request.POST:
if form.is_valid():
try:
materia = MateriaLegislativa.objects.get(
numero=request.POST['numero_materia'],
tipo_id=request.POST['tipo_materia'],
ano=request.POST['ano_materia'])
except ObjectDoesNotExist:
context.update(
{'error_message': _("Matéria inexistente!")})
return self.form_invalid(form)
ordemdia.materia_id = materia.id
ordemdia.numero_ordem = request.POST['numero_ordem']
ordemdia.tipo_votacao = request.POST['tipo_votacao']
obs = strip_tags(request.POST['observacao'])
ordemdia.observacao = sub('&nbsp;', ' ', obs)
ordemdia.save()
return self.form_valid(form)
else:
context = self.get_context_data(object=self.object)
pk = kwargs['pk']
oid = kwargs['oid']
ordem = OrdemDia.objects.get(
sessao_plenaria_id=pk,
materia_id=oid)
materia = MateriaLegislativa.objects.get(
id=ordem.materia_id)
data_ordem = ordem.data_ordem
tipo_votacao = ExpedienteMateria.TIPO_VOTACAO_CHOICES
tipo_sessao = TipoSessaoPlenaria.objects.all()
tipo_materia = TipoMateriaLegislativa.objects.all()
context.update({'data_sessao': data_ordem,
'tipo_sessao': tipo_sessao,
'tipo_sessao_selected': self.object.tipo,
'tipo_materia': tipo_materia,
'tipo_materia_selected': materia.tipo,
'tipo_votacao': tipo_votacao,
'tipo_votacao_selected': ordem.tipo_votacao,
'ano_materia': materia.ano,
'numero_ordem': ordem.numero_ordem,
'numero_materia': materia.numero,
'ordem_id': oid,
'oid': '',
'observacao': sub(
'&nbsp;', ' ',
strip_tags(ordem.observacao)),
'error_message': '', })
context.update({'form': form})
return self.render_to_response(context)
elif 'delete-ordemdia' in request.POST:
ordemdia.delete()
return self.form_valid(form)
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sapl.sessao:materiaordemdia_list',
kwargs={'pk': pk})
class MesaView(PermissionRequiredMixin, FormMixin, SessaoCrud.CrudDetailView): class MesaView(PermissionRequiredMixin, FormMixin, SessaoCrud.CrudDetailView):
template_name = 'sessao/mesa.html' template_name = 'sessao/mesa.html'
form_class = MesaForm form_class = MesaForm

1
sapl/utils.py

@ -222,7 +222,6 @@ def intervalos_tem_intersecao(a_inicio, a_fim, b_inicio, b_fim):
return maior_inicio <= menor_fim return maior_inicio <= menor_fim
<<<<<<< HEAD
def permissoes_materia(): def permissoes_materia():
lista_permissoes = [] lista_permissoes = []
cts = ContentType.objects.filter(app_label='materia') cts = ContentType.objects.filter(app_label='materia')

Loading…
Cancel
Save