Sistema de Apoio ao Processo Legislativo
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

199 lines
13 KiB

from django.db import models
from comissoes.models import Comissao
from parlamentares.models import Parlamentar, Partido
class TipoMateriaLegislativa(models.Model):
sigla_tipo_materia = models.CharField(max_length=5) # sgl_tipo_materia
descricao_tipo_materia = models.CharField(max_length=50) # des_tipo_materia
num_automatica = models.BooleanField() # ind_num_automatica
quorum_minimo_votacao = models.IntegerField() # quorum_minimo_votacao
class RegimeTramitacao(models.Model):
descricao_regime_tramitacao = models.CharField(max_length=50) # des_regime_tramitacao
class Origem(models.Model):
sigla_origem = models.CharField(max_length=10) # sgl_origem
nome_origem = models.CharField(max_length=50) # nom_origem
class MateriaLegislativa(models.Model):
tipo_id_basica = models.ForeignKey(TipoMateriaLegislativa) # tip_id_basica
numero_protocolo = models.IntegerField(blank=True, null=True) # num_protocolo
numero_ident_basica = models.IntegerField() # num_ident_basica
ano_ident_basica = models.SmallIntegerField() # ano_ident_basica
data_apresentacao = models.DateField(blank=True, null=True) # dat_apresentacao
tipo_apresentacao = models.CharField(max_length=1, blank=True, null=True) # tip_apresentacao
regime_tramitacao = models.ForeignKey(RegimeTramitacao) # cod_regime_tramitacao
data_publicacao = models.DateField(blank=True, null=True) # dat_publicacao
tipo_origem_externa = models.ForeignKey(TipoMateriaLegislativa, blank=True, null=True, related_name='+') # tip_origem_externa
numero_origem_externa = models.CharField(max_length=5, blank=True, null=True) # num_origem_externa
ano_origem_externa = models.SmallIntegerField(blank=True, null=True) # ano_origem_externa
data_origem_externa = models.DateField(blank=True, null=True) # dat_origem_externa
local_origem_externa = models.ForeignKey(Origem, blank=True, null=True) # cod_local_origem_externa
nome_apelido = models.CharField(max_length=50, blank=True, null=True) # nom_apelido
numero_dias_prazo = models.IntegerField(blank=True, null=True) # num_dias_prazo
data_fim_prazo = models.DateField(blank=True, null=True) # dat_fim_prazo
indicador_tramitacao = models.BooleanField() # ind_tramitacao
polemica = models.NullBooleanField(blank=True) # ind_polemica
descricao_objeto = models.CharField(max_length=150, blank=True, null=True) # des_objeto
complementar = models.NullBooleanField(blank=True) # ind_complementar
txt_ementa = models.TextField() # txt_ementa
txt_indexacao = models.TextField(blank=True, null=True) # txt_indexacao
txt_observacao = models.TextField(blank=True, null=True) # txt_observacao
txt_resultado = models.TextField(blank=True, null=True) # txt_resultado
# XXX novo
anexadas = models.ManyToManyField('self', through='Anexada',
symmetrical=False, related_name='anexo_de',
through_fields=('materia_principal', 'materia_anexada'))
class AcompMateria(models.Model):
materia = models.ForeignKey(MateriaLegislativa) # cod_materia
endereco_email = models.CharField(max_length=100) # end_email
txt_hash = models.CharField(max_length=8) # txt_hash
class Anexada(models.Model):
materia_principal = models.ForeignKey(MateriaLegislativa, related_name='+') # cod_materia_principal
materia_anexada = models.ForeignKey(MateriaLegislativa, related_name='+') # cod_materia_anexada
data_anexacao = models.DateField() # dat_anexacao
data_desanexacao = models.DateField(blank=True, null=True) # dat_desanexacao
class AssuntoMateria(models.Model):
descricao_assunto = models.CharField(max_length=200) # des_assunto
descricao_dispositivo = models.CharField(max_length=50) # des_dispositivo
class TipoAutor(models.Model):
descricao_tipo_autor = models.CharField(max_length=50) # des_tipo_autor
class Autor(models.Model):
partido = models.ForeignKey(Partido, blank=True, null=True) # cod_partido
comissao = models.ForeignKey(Comissao, blank=True, null=True) # cod_comissao
parlamentar = models.ForeignKey(Parlamentar, blank=True, null=True) # cod_parlamentar
tipo = models.ForeignKey(TipoAutor) # tip_autor
nome_autor = models.CharField(max_length=50, blank=True, null=True) # nom_autor
descricao_cargo = models.CharField(max_length=50, blank=True, null=True) # des_cargo
col_username = models.CharField(max_length=50, blank=True, null=True) # col_username
class Autoria(models.Model):
autor = models.ForeignKey(Autor) # cod_autor
materia = models.ForeignKey(MateriaLegislativa) # cod_materia
primeiro_autor = models.BooleanField() # ind_primeiro_autor
class DespachoInicial(models.Model):
materia = models.ForeignKey(MateriaLegislativa) # cod_materia
numero_ordem = models.IntegerField() # num_ordem
comissao = models.ForeignKey(Comissao) # cod_comissao
class TipoDocumento(models.Model):
descricao_tipo_documento = models.CharField(max_length=50) # des_tipo_documento
class DocumentoAcessorio(models.Model):
materia = models.ForeignKey(MateriaLegislativa) # cod_materia
tipo = models.ForeignKey(TipoDocumento) # tip_documento
nome_documento = models.CharField(max_length=30) # nom_documento
data_documento = models.DateField(blank=True, null=True) # dat_documento
nome_autor_documento = models.CharField(max_length=50, blank=True, null=True) # nom_autor_documento
txt_ementa = models.TextField(blank=True, null=True) # txt_ementa
txt_indexacao = models.TextField(blank=True, null=True) # txt_indexacao
class MateriaAssunto(models.Model):
assunto = models.ForeignKey(AssuntoMateria) # cod_assunto
materia = models.ForeignKey(MateriaLegislativa) # cod_materia
class Numeracao(models.Model):
materia = models.ForeignKey(MateriaLegislativa) # cod_materia
numero_ordem = models.IntegerField() # num_ordem
tipo_materia = models.ForeignKey(TipoMateriaLegislativa) # tip_materia
numero_materia = models.CharField(max_length=5) # num_materia
ano_materia = models.SmallIntegerField() # ano_materia
data_materia = models.DateField(blank=True, null=True) # dat_materia
class Orgao(models.Model):
nome_orgao = models.CharField(max_length=60) # nom_orgao
sigla_orgao = models.CharField(max_length=10) # sgl_orgao
unid_deliberativa = models.BooleanField() # ind_unid_deliberativa
endereco_orgao = models.CharField(max_length=100, blank=True, null=True) # end_orgao
numero_tel_orgao = models.CharField(max_length=50, blank=True, null=True) # num_tel_orgao
class TipoFimRelatoria(models.Model):
descricao_fim_relatoria = models.CharField(max_length=50) # des_fim_relatoria
class Relatoria(models.Model):
materia = models.ForeignKey(MateriaLegislativa) # cod_materia
parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar
tipo_fim_relatoria = models.ForeignKey(TipoFimRelatoria, blank=True, null=True) # tip_fim_relatoria
comissao = models.ForeignKey(Comissao, blank=True, null=True) # cod_comissao
data_desig_relator = models.DateField() # dat_desig_relator
data_destit_relator = models.DateField(blank=True, null=True) # dat_destit_relator
class Parecer(models.Model):
relatoria = models.ForeignKey(Relatoria) # cod_relatoria
materia = models.ForeignKey(MateriaLegislativa) # cod_materia
tipo_conclusao = models.CharField(max_length=3, blank=True, null=True) # tip_conclusao
tipo_apresentacao = models.CharField(max_length=1) # tip_apresentacao
txt_parecer = models.TextField(blank=True, null=True) # txt_parecer
class TipoProposicao(models.Model):
descricao_tipo_proposicao = models.CharField(max_length=50) # des_tipo_proposicao
mat_ou_doc = models.BooleanField() # ind_mat_ou_doc
tipo_mat_ou_doc = models.IntegerField() # tip_mat_ou_doc
nome_modelo = models.CharField(max_length=50) # nom_modelo
class Proposicao(models.Model):
materia = models.ForeignKey(MateriaLegislativa, blank=True, null=True) # cod_materia
autor = models.ForeignKey(Autor) # cod_autor
tipo = models.ForeignKey(TipoProposicao) # tip_proposicao
data_envio = models.DateTimeField() # dat_envio
data_recebimento = models.DateTimeField(blank=True, null=True) # dat_recebimento
txt_descricao = models.CharField(max_length=100) # txt_descricao
cod_mat_ou_doc = models.IntegerField(blank=True, null=True) # cod_mat_ou_doc
data_devolucao = models.DateTimeField(blank=True, null=True) # dat_devolucao
txt_justif_devolucao = models.CharField(max_length=200, blank=True, null=True) # txt_justif_devolucao
numero_proposicao = models.IntegerField(blank=True, null=True) # num_proposicao
class StatusTramitacao(models.Model):
sigla_status = models.CharField(max_length=10) # sgl_status
descricao_status = models.CharField(max_length=60) # des_status
fim_tramitacao = models.BooleanField() # ind_fim_tramitacao
retorno_tramitacao = models.BooleanField() # ind_retorno_tramitacao
class UnidadeTramitacao(models.Model):
comissao = models.ForeignKey(Comissao, blank=True, null=True) # cod_comissao
orgao = models.ForeignKey(Orgao, blank=True, null=True) # cod_orgao
parlamentar = models.ForeignKey(Parlamentar, blank=True, null=True) # cod_parlamentar
class Tramitacao(models.Model):
status = models.ForeignKey(StatusTramitacao, blank=True, null=True) # cod_status
materia = models.ForeignKey(MateriaLegislativa) # cod_materia
data_tramitacao = models.DateField(blank=True, null=True) # dat_tramitacao
unid_tram_local = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+') # cod_unid_tram_local
data_encaminha = models.DateField(blank=True, null=True) # dat_encaminha
unid_tram_dest = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+') # cod_unid_tram_dest
ult_tramitacao = models.BooleanField() # ind_ult_tramitacao
urgencia = models.BooleanField() # ind_urgencia
sigla_turno = models.CharField(max_length=1, blank=True, null=True) # sgl_turno
txt_tramitacao = models.TextField(blank=True, null=True) # txt_tramitacao
data_fim_prazo = models.DateField(blank=True, null=True) # dat_fim_prazo