@ -1,6 +1,6 @@
from datetime import datetime
import json
import json
import logging
import logging
from datetime import datetime
from django . contrib import messages
from django . contrib import messages
from django . contrib . contenttypes . models import ContentType
from django . contrib . contenttypes . models import ContentType
@ -35,6 +35,7 @@ from .models import (CargoMesa, Coligacao, ComposicaoColigacao, ComposicaoMesa,
NivelInstrucao , Parlamentar , Partido , SessaoLegislativa ,
NivelInstrucao , Parlamentar , Partido , SessaoLegislativa ,
SituacaoMilitar , TipoAfastamento , TipoDependente , Votante )
SituacaoMilitar , TipoAfastamento , TipoDependente , Votante )
CargoMesaCrud = CrudAux . build ( CargoMesa , ' cargo_mesa ' )
CargoMesaCrud = CrudAux . build ( CargoMesa , ' cargo_mesa ' )
PartidoCrud = CrudAux . build ( Partido , ' partidos ' )
PartidoCrud = CrudAux . build ( Partido , ' partidos ' )
TipoDependenteCrud = CrudAux . build ( TipoDependente , ' tipo_dependente ' )
TipoDependenteCrud = CrudAux . build ( TipoDependente , ' tipo_dependente ' )
@ -45,6 +46,7 @@ TipoMilitarCrud = CrudAux.build(SituacaoMilitar, 'tipo_situa_militar')
DependenteCrud = MasterDetailCrud . build (
DependenteCrud = MasterDetailCrud . build (
Dependente , ' parlamentar ' , ' dependente ' )
Dependente , ' parlamentar ' , ' dependente ' )
class SessaoLegislativaCrud ( CrudAux ) :
class SessaoLegislativaCrud ( CrudAux ) :
model = SessaoLegislativa
model = SessaoLegislativa
@ -54,6 +56,7 @@ class SessaoLegislativaCrud(CrudAux):
class UpdateView ( CrudAux . UpdateView ) :
class UpdateView ( CrudAux . UpdateView ) :
form_class = SessaoLegislativaForm
form_class = SessaoLegislativaForm
class VotanteView ( MasterDetailCrud ) :
class VotanteView ( MasterDetailCrud ) :
model = Votante
model = Votante
parent_field = ' parlamentar '
parent_field = ' parlamentar '
@ -89,6 +92,7 @@ class FrenteList(MasterDetailCrud):
class BaseMixin ( Crud . PublicMixin , MasterDetailCrud . BaseMixin ) :
class BaseMixin ( Crud . PublicMixin , MasterDetailCrud . BaseMixin ) :
list_field_names = [ ' nome ' , ' data_criacao ' , ' data_extincao ' ]
list_field_names = [ ' nome ' , ' data_criacao ' , ' data_extincao ' ]
@classmethod
@classmethod
def url_name ( cls , suffix ) :
def url_name ( cls , suffix ) :
return ' %s _parlamentar_ %s ' % ( cls . model . _meta . model_name , suffix )
return ' %s _parlamentar_ %s ' % ( cls . model . _meta . model_name , suffix )
@ -276,13 +280,16 @@ def parlamentares_frente_selected(request):
logger = logging . getLogger ( __name__ )
logger = logging . getLogger ( __name__ )
username = request . user . username
username = request . user . username
try :
try :
logger . info ( " user= " + username + " . Tentando objet objeto Frente com id= {} . " . format ( request . GET [ ' frente_id ' ] ) )
logger . info ( " user= " + username +
" . Tentando objet objeto Frente com id= {} . " . format ( request . GET [ ' frente_id ' ] ) )
frente = Frente . objects . get ( id = int ( request . GET [ ' frente_id ' ] ) )
frente = Frente . objects . get ( id = int ( request . GET [ ' frente_id ' ] ) )
except ObjectDoesNotExist :
except ObjectDoesNotExist :
logger . error ( " user= " + username + " . Frente buscada (id= {} ) não existe. Retornada lista vazia. " . format ( request . GET [ ' frente_id ' ] ) )
logger . error ( " user= " + username +
" . Frente buscada (id= {} ) não existe. Retornada lista vazia. " . format ( request . GET [ ' frente_id ' ] ) )
lista_parlamentar_id = [ ]
lista_parlamentar_id = [ ]
else :
else :
logger . info ( " user= " + username + " . Frente (id= {} ) encontrada com sucesso. " . format ( request . GET [ ' frente_id ' ] ) )
logger . info ( " user= " + username +
" . Frente (id= {} ) encontrada com sucesso. " . format ( request . GET [ ' frente_id ' ] ) )
lista_parlamentar_id = frente . parlamentares . all ( ) . values_list (
lista_parlamentar_id = frente . parlamentares . all ( ) . values_list (
' id ' , flat = True )
' id ' , flat = True )
return JsonResponse ( { ' id_list ' : list ( lista_parlamentar_id ) } )
return JsonResponse ( { ' id_list ' : list ( lista_parlamentar_id ) } )
@ -292,8 +299,14 @@ class FrenteCrud(Crud):
model = Frente
model = Frente
help_topic = ' tipo_situa_militar '
help_topic = ' tipo_situa_militar '
public = [ RP_DETAIL , RP_LIST ]
public = [ RP_DETAIL , RP_LIST ]
list_field_names = [ ' nome ' , ' data_criacao ' , ' data_extincao ' , ' parlamentares ' ]
list_field_names = [ ' nome ' , ' data_criacao ' ,
' data_extincao ' , ' parlamentares ' ]
class BaseMixin ( Crud . BaseMixin ) :
def get_context_data ( self , * * kwargs ) :
context = super ( ) . get_context_data ( * * kwargs )
context [ ' subnav_template_name ' ] = ' '
return context
class CreateView ( Crud . CreateView ) :
class CreateView ( Crud . CreateView ) :
form_class = FrenteForm
form_class = FrenteForm
@ -305,7 +318,6 @@ class FrenteCrud(Crud):
form_class = FrenteForm
form_class = FrenteForm
class MandatoCrud ( MasterDetailCrud ) :
class MandatoCrud ( MasterDetailCrud ) :
model = Mandato
model = Mandato
parent_field = ' parlamentar '
parent_field = ' parlamentar '
@ -360,7 +372,7 @@ class ComposicaoColigacaoCrud(MasterDetailCrud):
class LegislaturaCrud ( CrudAux ) :
class LegislaturaCrud ( CrudAux ) :
model = Legislatura
model = Legislatura
help_topic = ' legislatura '
help_topic = ' legislatura '
@ -371,11 +383,13 @@ class LegislaturaCrud(CrudAux):
def get_initial ( self ) :
def get_initial ( self ) :
username = self . request . user . username
username = self . request . user . username
try :
try :
self . logger . error ( " user= " + username + " . Tentando obter última Legislatura. " )
self . logger . error ( " user= " + username +
" . Tentando obter última Legislatura. " )
ultima_legislatura = Legislatura . objects . latest ( ' numero ' )
ultima_legislatura = Legislatura . objects . latest ( ' numero ' )
numero = ultima_legislatura . numero + 1
numero = ultima_legislatura . numero + 1
except Legislatura . DoesNotExist :
except Legislatura . DoesNotExist :
self . logger . error ( " user= " + username + " . Legislatura não encontrada. Número definido como 1. " )
self . logger . error (
" user= " + username + " . Legislatura não encontrada. Número definido como 1. " )
numero = 1
numero = 1
return { ' numero ' : numero }
return { ' numero ' : numero }
@ -476,10 +490,12 @@ class ParlamentarCrud(Crud):
def take_legislatura_id ( self ) :
def take_legislatura_id ( self ) :
username = self . request . user . username
username = self . request . user . username
try :
try :
self . logger . debug ( " user= " + username + " . Tentando obter id da legislatura. " )
self . logger . debug ( " user= " + username +
" . Tentando obter id da legislatura. " )
return int ( self . request . GET [ ' pk ' ] )
return int ( self . request . GET [ ' pk ' ] )
except :
except :
self . logger . error ( " user= " + username + " . Legislatura não possui ID. Buscando em todas as entradas. " )
self . logger . error (
" user= " + username + " . Legislatura não possui ID. Buscando em todas as entradas. " )
legislaturas = Legislatura . objects . all ( )
legislaturas = Legislatura . objects . all ( )
for l in legislaturas :
for l in legislaturas :
if l . atual ( ) :
if l . atual ( ) :
@ -501,14 +517,17 @@ class ParlamentarCrud(Crud):
mandato_titular = F ( ' mandato__titular ' ) ) . distinct ( )
mandato_titular = F ( ' mandato__titular ' ) ) . distinct ( )
else :
else :
try :
try :
self . logger . debug ( " user= " + username + " . Tentando obter o mais recente registro do objeto Legislatura. " )
self . logger . debug (
" user= " + username + " . Tentando obter o mais recente registro do objeto Legislatura. " )
l = Legislatura . objects . all ( ) . order_by (
l = Legislatura . objects . all ( ) . order_by (
' -data_inicio ' ) . first ( )
' -data_inicio ' ) . first ( )
except ObjectDoesNotExist :
except ObjectDoesNotExist :
self . logger . error ( " user= " + username + " . Objeto não encontrado. Retornando todos os registros. " )
self . logger . error (
" user= " + username + " . Objeto não encontrado. Retornando todos os registros. " )
return Legislatura . objects . all ( )
return Legislatura . objects . all ( )
else :
else :
self . logger . info ( " user= " + username + " . Objeto encontrado com sucesso. " )
self . logger . info ( " user= " + username +
" . Objeto encontrado com sucesso. " )
if l is None :
if l is None :
return Legislatura . objects . all ( )
return Legislatura . objects . all ( )
return queryset . filter ( mandato__legislatura_id = l ) . annotate (
return queryset . filter ( mandato__legislatura_id = l ) . annotate (
@ -547,8 +566,8 @@ class ParlamentarCrud(Crud):
# ou igual a data de fim da legislatura
# ou igual a data de fim da legislatura
try :
try :
self . logger . debug ( " user= " + username + " . Tentando obter filiação do parlamentar com (data<= {} e data_desfiliacao>= {} ) "
self . logger . debug ( " user= " + username + " . Tentando obter filiação do parlamentar com (data<= {} e data_desfiliacao>= {} ) "
" ou (data<= {} e data_desfiliacao=Null)). "
" ou (data<= {} e data_desfiliacao=Null)). "
. format ( legislatura . data_fim , legislatura . data_fim , legislatura . data_fim ) )
. format ( legislatura . data_fim , legislatura . data_fim , legislatura . data_fim ) )
filiacao = parlamentar . filiacao_set . get ( Q (
filiacao = parlamentar . filiacao_set . get ( Q (
data__lte = legislatura . data_fim ,
data__lte = legislatura . data_fim ,
data_desfiliacao__gte = legislatura . data_fim ) | Q (
data_desfiliacao__gte = legislatura . data_fim ) | Q (
@ -574,7 +593,8 @@ class ParlamentarCrud(Crud):
# Caso encontre UMA filiação nessas condições
# Caso encontre UMA filiação nessas condições
else :
else :
self . logger . debug ( " user= " + username + " . Filiação encontrada com sucesso. " )
self . logger . debug ( " user= " + username +
" . Filiação encontrada com sucesso. " )
row [ 1 ] = ( filiacao . partido . sigla , None , None )
row [ 1 ] = ( filiacao . partido . sigla , None , None )
return context
return context
@ -606,13 +626,16 @@ class ParlamentarMateriasView(FormView):
parlamentar_pk = kwargs [ ' pk ' ]
parlamentar_pk = kwargs [ ' pk ' ]
username = request . user . username
username = request . user . username
try :
try :
self . logger . debug ( " user= " + username + " . Tentando obter Autor (object_id= {} ). " . format ( parlamentar_pk ) )
self . logger . debug (
" user= " + username + " . Tentando obter Autor (object_id= {} ). " . format ( parlamentar_pk ) )
autor = Autor . objects . get (
autor = Autor . objects . get (
content_type = ContentType . objects . get_for_model ( Parlamentar ) ,
content_type = ContentType . objects . get_for_model ( Parlamentar ) ,
object_id = parlamentar_pk )
object_id = parlamentar_pk )
except ObjectDoesNotExist :
except ObjectDoesNotExist :
mensagem = _ ( ' Este Parlamentar (pk= {} ) não é Autor de matéria. ' . format ( parlamentar_pk ) )
mensagem = _ (
self . logger . error ( " user= " + username + " . Este Parlamentar (pk= {} ) não é Autor de matéria. " . format ( parlamentar_pk ) )
' Este Parlamentar (pk= {} ) não é Autor de matéria. ' . format ( parlamentar_pk ) )
self . logger . error (
" user= " + username + " . Este Parlamentar (pk= {} ) não é Autor de matéria. " . format ( parlamentar_pk ) )
messages . add_message ( request , messages . ERROR , mensagem )
messages . add_message ( request , messages . ERROR , mensagem )
return HttpResponseRedirect (
return HttpResponseRedirect (
reverse (
reverse (
@ -700,7 +723,8 @@ class MesaDiretoraView(FormView):
sessao_atual = sessoes . filter ( data_inicio__year__lte = year ) . exclude (
sessao_atual = sessoes . filter ( data_inicio__year__lte = year ) . exclude (
data_inicio__gt = timezone . now ( ) ) . order_by ( ' -data_inicio ' ) . first ( )
data_inicio__gt = timezone . now ( ) ) . order_by ( ' -data_inicio ' ) . first ( )
mesa = sessao_atual . composicaomesa_set . all ( ) . order_by ( ' cargo_id ' ) if sessao_atual else [ ]
mesa = sessao_atual . composicaomesa_set . all ( ) . order_by (
' cargo_id ' ) if sessao_atual else [ ]
cargos_ocupados = [ m . cargo for m in mesa ]
cargos_ocupados = [ m . cargo for m in mesa ]
cargos = CargoMesa . objects . all ( )
cargos = CargoMesa . objects . all ( )
@ -756,7 +780,8 @@ def altera_field_mesa(request):
else :
else :
year = timezone . now ( ) . year
year = timezone . now ( ) . year
try :
try :
logger . debug ( " user= " + username + " . Tentando obter id de sessoes com data_inicio.ano= {} . " . format ( year ) )
logger . debug (
" user= " + username + " . Tentando obter id de sessoes com data_inicio.ano= {} . " . format ( year ) )
sessao_selecionada = sessoes . get ( data_inicio__year = year ) . id
sessao_selecionada = sessoes . get ( data_inicio__year = year ) . id
except ObjectDoesNotExist :
except ObjectDoesNotExist :
logger . error ( " user= " + username + " . Id de sessoes com data_inicio.ano= {} não encontrado. "
logger . error ( " user= " + username + " . Id de sessoes com data_inicio.ano= {} não encontrado. "
@ -809,24 +834,29 @@ def insere_parlamentar_composicao(request):
composicao = ComposicaoMesa ( )
composicao = ComposicaoMesa ( )
try :
try :
logger . debug ( " user= " + username + " . Tentando obter SessaoLegislativa com id= {} . " . format ( request . POST [ ' sessao ' ] ) )
logger . debug (
" user= " + username + " . Tentando obter SessaoLegislativa com id= {} . " . format ( request . POST [ ' sessao ' ] ) )
composicao . sessao_legislativa = SessaoLegislativa . objects . get (
composicao . sessao_legislativa = SessaoLegislativa . objects . get (
id = int ( request . POST [ ' sessao ' ] ) )
id = int ( request . POST [ ' sessao ' ] ) )
except MultiValueDictKeyError :
except MultiValueDictKeyError :
logger . error ( " user= " + username + " . ' MultiValueDictKeyError ' , nenhuma sessão foi inserida! " )
logger . error (
" user= " + username + " . ' MultiValueDictKeyError ' , nenhuma sessão foi inserida! " )
return JsonResponse ( { ' msg ' : ( ' Nenhuma sessão foi inserida! ' , 0 ) } )
return JsonResponse ( { ' msg ' : ( ' Nenhuma sessão foi inserida! ' , 0 ) } )
try :
try :
logger . debug ( " user= " + username + " . Tentando obter Parlamentar com id= {} . " . format ( request . POST [ ' parlamentar ' ] ) )
logger . debug (
" user= " + username + " . Tentando obter Parlamentar com id= {} . " . format ( request . POST [ ' parlamentar ' ] ) )
composicao . parlamentar = Parlamentar . objects . get (
composicao . parlamentar = Parlamentar . objects . get (
id = int ( request . POST [ ' parlamentar ' ] ) )
id = int ( request . POST [ ' parlamentar ' ] ) )
except MultiValueDictKeyError :
except MultiValueDictKeyError :
logger . error ( " user= " + username + " . ' MultiValueDictKeyError ' , nenhum parlamentar foi inserido! " )
logger . error (
" user= " + username + " . ' MultiValueDictKeyError ' , nenhum parlamentar foi inserido! " )
return JsonResponse ( {
return JsonResponse ( {
' msg ' : ( ' Nenhum parlamentar foi inserido! ' , 0 ) } )
' msg ' : ( ' Nenhum parlamentar foi inserido! ' , 0 ) } )
try :
try :
logger . info ( " user= " + username + " . Tentando obter CargoMesa com id= {} . " . format ( request . POST [ ' cargo ' ] ) )
logger . info ( " user= " + username +
" . Tentando obter CargoMesa com id= {} . " . format ( request . POST [ ' cargo ' ] ) )
composicao . cargo = CargoMesa . objects . get (
composicao . cargo = CargoMesa . objects . get (
id = int ( request . POST [ ' cargo ' ] ) )
id = int ( request . POST [ ' cargo ' ] ) )
parlamentar_ja_inserido = ComposicaoMesa . objects . filter (
parlamentar_ja_inserido = ComposicaoMesa . objects . filter (
@ -839,14 +869,16 @@ def insere_parlamentar_composicao(request):
composicao . save ( )
composicao . save ( )
except MultiValueDictKeyError :
except MultiValueDictKeyError :
logger . error ( " user= " + username + " . ' MultiValueDictKeyError ' , nenhum cargo foi inserido! " )
logger . error ( " user= " + username +
" . ' MultiValueDictKeyError ' , nenhum cargo foi inserido! " )
return JsonResponse ( { ' msg ' : ( ' Nenhum cargo foi inserido! ' , 0 ) } )
return JsonResponse ( { ' msg ' : ( ' Nenhum cargo foi inserido! ' , 0 ) } )
logger . info ( " user= " + username + " . Parlamentar inserido com sucesso! " )
logger . info ( " user= " + username + " . Parlamentar inserido com sucesso! " )
return JsonResponse ( { ' msg ' : ( ' Parlamentar inserido com sucesso! ' , 1 ) } )
return JsonResponse ( { ' msg ' : ( ' Parlamentar inserido com sucesso! ' , 1 ) } )
else :
else :
logger . error ( " user= " + username + " não tem permissão para esta operação! " )
logger . error ( " user= " + username +
" não tem permissão para esta operação! " )
return JsonResponse (
return JsonResponse (
{ ' msg ' : ( ' Você não tem permissão para esta operação! ' , 0 ) } )
{ ' msg ' : ( ' Você não tem permissão para esta operação! ' , 0 ) } )
@ -864,7 +896,8 @@ def remove_parlamentar_composicao(request):
if ' composicao_mesa ' in request . POST :
if ' composicao_mesa ' in request . POST :
try :
try :
logger . debug ( " user= " + username + " . Tentando obter ComposicaoMesa com id= {} . " . format ( request . POST [ ' composicao_mesa ' ] ) )
logger . debug ( " user= " + username + " . Tentando obter ComposicaoMesa com id= {} . " . format (
request . POST [ ' composicao_mesa ' ] ) )
composicao = ComposicaoMesa . objects . get (
composicao = ComposicaoMesa . objects . get (
id = request . POST [ ' composicao_mesa ' ] )
id = request . POST [ ' composicao_mesa ' ] )
except ObjectDoesNotExist :
except ObjectDoesNotExist :
@ -876,12 +909,14 @@ def remove_parlamentar_composicao(request):
composicao . delete ( )
composicao . delete ( )
logger . info ( " user= " + username + " . ComposicaoMesa com id= {} excluido com sucesso! " . format ( request . POST [ ' composicao_mesa ' ] ) )
logger . info ( " user= " + username + " . ComposicaoMesa com id= {} excluido com sucesso! " . format (
request . POST [ ' composicao_mesa ' ] ) )
return JsonResponse (
return JsonResponse (
{ ' msg ' : (
{ ' msg ' : (
' Parlamentar excluido com sucesso! ' , 1 ) } )
' Parlamentar excluido com sucesso! ' , 1 ) } )
else :
else :
logger . info ( " user= " + username + " . Nenhum parlamentar escolhido para ser excluído. " )
logger . info ( " user= " + username +
" . Nenhum parlamentar escolhido para ser excluído. " )
return JsonResponse (
return JsonResponse (
{ ' msg ' : (
{ ' msg ' : (
' Selecione algum parlamentar para ser excluido! ' , 0 ) } )
' Selecione algum parlamentar para ser excluido! ' , 0 ) } )
@ -900,8 +935,8 @@ def partido_parlamentar_sessao_legislativa(sessao, parlamentar):
logger = logging . getLogger ( __name__ )
logger = logging . getLogger ( __name__ )
try :
try :
logger . debug ( " Tentando obter filiação do parlamentar com (data<= {} e data_desfiliacao>= {} ) "
logger . debug ( " Tentando obter filiação do parlamentar com (data<= {} e data_desfiliacao>= {} ) "
" ou (data<= {} e data_desfiliacao=Null)). "
" ou (data<= {} e data_desfiliacao=Null)). "
. format ( sessao . data_fim , sessao . data_fim , sessao . data_fim ) )
. format ( sessao . data_fim , sessao . data_fim , sessao . data_fim ) )
logger . info ( " Tentando obter filiação correspondente. " )
logger . info ( " Tentando obter filiação correspondente. " )
filiacao = parlamentar . filiacao_set . get ( Q (
filiacao = parlamentar . filiacao_set . get ( Q (
@ -957,7 +992,8 @@ def altera_field_mesa_public_view(request):
else :
else :
try :
try :
year = timezone . now ( ) . year
year = timezone . now ( ) . year
logger . info ( " user= " + username + " . Tentando obter sessões com data_inicio.ano = {} . " . format ( year ) )
logger . info ( " user= " + username +
" . Tentando obter sessões com data_inicio.ano = {} . " . format ( year ) )
sessao_selecionada = sessoes . get ( data_inicio__year = year ) . id
sessao_selecionada = sessoes . get ( data_inicio__year = year ) . id
except ObjectDoesNotExist :
except ObjectDoesNotExist :
logger . error ( " user= " + username + " . Sessões não encontradas com com data_inicio.ano = {} . "
logger . error ( " user= " + username + " . Sessões não encontradas com com data_inicio.ano = {} . "