Browse Source

Port strings to python 3

pull/6/head
Marcio Mazza 10 years ago
parent
commit
7187c20a28
  1. 2
      base/apps.py
  2. 34
      base/models.py
  3. 2
      comissoes/apps.py
  4. 96
      comissoes/models.py
  5. 22
      legacy/scripts/scrap_original_forms.py
  6. 2
      lexml/apps.py
  7. 32
      lexml/models.py
  8. 2
      materia/apps.py
  9. 344
      materia/models.py
  10. 2
      norma/apps.py
  11. 100
      norma/models.py
  12. 2
      parlamentares/apps.py
  13. 268
      parlamentares/models.py
  14. 2
      protocoloadm/apps.py
  15. 100
      protocoloadm/models.py
  16. 2
      sessao/apps.py
  17. 126
      sessao/models.py

2
base/apps.py

@ -4,4 +4,4 @@ from django.apps import AppConfig
class BaseAppConfig(AppConfig): class BaseAppConfig(AppConfig):
name = 'base' name = 'base'
verbose_name = u'Dados Básicos' verbose_name = 'Dados Básicos'

34
base/models.py

@ -6,22 +6,22 @@ from django.utils.translation import ugettext as _
class CasaLegislativa(models.Model): class CasaLegislativa(models.Model):
# TODO ajustar todos os max_length !!!! # TODO ajustar todos os max_length !!!!
# cod_casa => id (pk) # cod_casa => id (pk)
nome = models.CharField(max_length=100, verbose_name=_(u'Nome')) nome = models.CharField(max_length=100, verbose_name=_('Nome'))
sigla = models.CharField(max_length=100, verbose_name=_(u'Sigla')) sigla = models.CharField(max_length=100, verbose_name=_('Sigla'))
endereco = models.CharField(max_length=100, verbose_name=_(u'Endereço')) endereco = models.CharField(max_length=100, verbose_name=_('Endereço'))
cep = models.CharField(max_length=100, verbose_name=_(u'CEP')) cep = models.CharField(max_length=100, verbose_name=_('CEP'))
municipio = models.CharField(max_length=100, verbose_name=_(u'Município')) municipio = models.CharField(max_length=100, verbose_name=_('Município'))
uf = models.CharField(max_length=100, verbose_name=_(u'UF')) uf = models.CharField(max_length=100, verbose_name=_('UF'))
telefone = models.CharField(max_length=100, verbose_name=_(u'Telefone')) telefone = models.CharField(max_length=100, verbose_name=_('Telefone'))
fax = models.CharField(max_length=100, verbose_name=_(u'Fax')) fax = models.CharField(max_length=100, verbose_name=_('Fax'))
cor_fundo = models.CharField(max_length=100, verbose_name=_(u'Cor de fundo')) cor_fundo = models.CharField(max_length=100, verbose_name=_('Cor de fundo'))
cor_borda = models.CharField(max_length=100, verbose_name=_(u'Cor da borda')) cor_borda = models.CharField(max_length=100, verbose_name=_('Cor da borda'))
cor_principal = models.CharField(max_length=100, verbose_name=_(u'Cor principal')) cor_principal = models.CharField(max_length=100, verbose_name=_('Cor principal'))
logotipo = models.CharField(max_length=100, verbose_name=_(u'Logotipo')) logotipo = models.CharField(max_length=100, verbose_name=_('Logotipo'))
endereco_web = models.CharField(max_length=100, verbose_name=_(u'HomePage')) endereco_web = models.CharField(max_length=100, verbose_name=_('HomePage'))
email = models.CharField(max_length=100, verbose_name=_(u'E-mail')) email = models.CharField(max_length=100, verbose_name=_('E-mail'))
informacao_geral = models.CharField(max_length=100, verbose_name=_(u'Informação Geral')) informacao_geral = models.CharField(max_length=100, verbose_name=_('Informação Geral'))
class Meta: class Meta:
verbose_name = _(u'Casa Legislativa') verbose_name = _('Casa Legislativa')
verbose_name_plural = _(u'Casas Legislativas') verbose_name_plural = _('Casas Legislativas')

2
comissoes/apps.py

@ -4,4 +4,4 @@ from django.apps import AppConfig
class ComissoesAppConfig(AppConfig): class ComissoesAppConfig(AppConfig):
name = 'comissoes' name = 'comissoes'
verbose_name = u'Comissões' verbose_name = 'Comissões'

96
comissoes/models.py

@ -8,82 +8,82 @@ from parlamentares.models import Parlamentar
class TipoComissao(models.Model): class TipoComissao(models.Model):
TEMPORARIA = 'T' TEMPORARIA = 'T'
PERMANENTE = 'P' PERMANENTE = 'P'
NATUREZA_CHOICES = ((TEMPORARIA, _(u'Temporária')), NATUREZA_CHOICES = ((TEMPORARIA, _('Temporária')),
(PERMANENTE, _(u'Permanente'))) (PERMANENTE, _('Permanente')))
nome = models.CharField(max_length=50, verbose_name=_(u'Nome')) nome = models.CharField(max_length=50, verbose_name=_('Nome'))
natureza = models.CharField(max_length=1, verbose_name=_(u'Natureza'), choices=NATUREZA_CHOICES) natureza = models.CharField(max_length=1, verbose_name=_('Natureza'), choices=NATUREZA_CHOICES)
sigla = models.CharField(max_length=10, verbose_name=_(u'Sigla')) sigla = models.CharField(max_length=10, verbose_name=_('Sigla'))
dispositivo_regimental = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Dispositivo Regimental')) dispositivo_regimental = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Dispositivo Regimental'))
class Meta: class Meta:
verbose_name = _(u'Tipo de Comissão') verbose_name = _('Tipo de Comissão')
verbose_name_plural = _(u'Tipos de Comissão') verbose_name_plural = _('Tipos de Comissão')
def __unicode__(self): def __unicode__(self):
return self.nome return self.nome
class Comissao(models.Model): class Comissao(models.Model):
tipo = models.ForeignKey(TipoComissao, verbose_name=_(u'Tipo')) tipo = models.ForeignKey(TipoComissao, verbose_name=_('Tipo'))
nome = models.CharField(max_length=60, verbose_name=_(u'Nome')) nome = models.CharField(max_length=60, verbose_name=_('Nome'))
sigla = models.CharField(max_length=10, verbose_name=_(u'Sigla')) sigla = models.CharField(max_length=10, verbose_name=_('Sigla'))
data_criacao = models.DateField(verbose_name=_(u'Data de Criação')) data_criacao = models.DateField(verbose_name=_('Data de Criação'))
data_extincao = models.DateField(blank=True, null=True, verbose_name=_(u'Data de Extinção')) data_extincao = models.DateField(blank=True, null=True, verbose_name=_('Data de Extinção'))
apelido_temp = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Apelido')) apelido_temp = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('Apelido'))
data_instalacao_temp = models.DateField(blank=True, null=True, verbose_name=_(u'Data Instalação')) data_instalacao_temp = models.DateField(blank=True, null=True, verbose_name=_('Data Instalação'))
data_final_prevista_temp = models.DateField(blank=True, null=True, verbose_name=_(u'Data Prevista Término')) data_final_prevista_temp = models.DateField(blank=True, null=True, verbose_name=_('Data Prevista Término'))
data_prorrogada_temp = models.DateField(blank=True, null=True, verbose_name=_(u'Novo Prazo')) data_prorrogada_temp = models.DateField(blank=True, null=True, verbose_name=_('Novo Prazo'))
data_fim_comissao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Término')) data_fim_comissao = models.DateField(blank=True, null=True, verbose_name=_('Data Término'))
secretario = models.CharField(max_length=30, blank=True, null=True, verbose_name=_(u'Secretário')) secretario = models.CharField(max_length=30, blank=True, null=True, verbose_name=_('Secretário'))
telefone_reuniao = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'Tel. Sala Reunião')) telefone_reuniao = models.CharField(max_length=15, blank=True, null=True, verbose_name=_('Tel. Sala Reunião'))
endereco_secretaria = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Endereço Secretaria')) endereco_secretaria = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('Endereço Secretaria'))
telefone_secretaria = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'Tel. Secretaria')) telefone_secretaria = models.CharField(max_length=15, blank=True, null=True, verbose_name=_('Tel. Secretaria'))
fax_secretaria = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'Fax Secretaria')) fax_secretaria = models.CharField(max_length=15, blank=True, null=True, verbose_name=_('Fax Secretaria'))
agenda_reuniao = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Data/Hora Reunião')) agenda_reuniao = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('Data/Hora Reunião'))
local_reuniao = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Local Reunião')) local_reuniao = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('Local Reunião'))
finalidade = models.TextField(blank=True, null=True, verbose_name=_(u'Finalidade')) finalidade = models.TextField(blank=True, null=True, verbose_name=_('Finalidade'))
email = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'E-mail')) email = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('E-mail'))
unidade_deliberativa = models.BooleanField() unidade_deliberativa = models.BooleanField()
class Meta: class Meta:
verbose_name = _(u'Comissão') verbose_name = _('Comissão')
verbose_name_plural = _(u'Comissões') verbose_name_plural = _('Comissões')
def __unicode__(self): def __unicode__(self):
return self.nome return self.nome
class Periodo(models.Model): # PeriodoCompComissao class Periodo(models.Model): # PeriodoCompComissao
data_inicio = models.DateField(verbose_name=_(u'Data Início')) data_inicio = models.DateField(verbose_name=_('Data Início'))
data_fim = models.DateField(blank=True, null=True, verbose_name=_(u'Data Fim')) data_fim = models.DateField(blank=True, null=True, verbose_name=_('Data Fim'))
class Meta: class Meta:
verbose_name = _(u'Período de composição de Comissão') verbose_name = _('Período de composição de Comissão')
verbose_name_plural = _(u'Períodos de composição de Comissão') verbose_name_plural = _('Períodos de composição de Comissão')
def __unicode__(self): def __unicode__(self):
return '%s - %s' % (self.data_inicio, self.data_fim) return '%s - %s' % (self.data_inicio, self.data_fim)
class CargoComissao(models.Model): class CargoComissao(models.Model):
nome = models.CharField(max_length=50, verbose_name=_(u'Cargo')) nome = models.CharField(max_length=50, verbose_name=_('Cargo'))
unico = models.BooleanField(verbose_name=_(u'Único')) unico = models.BooleanField(verbose_name=_('Único'))
class Meta: class Meta:
verbose_name = _(u'Cargo de Comissão') verbose_name = _('Cargo de Comissão')
verbose_name_plural = _(u'Cargos de Comissão') verbose_name_plural = _('Cargos de Comissão')
def __unicode__(self): def __unicode__(self):
return self.nome return self.nome
class Composicao(models.Model): # IGNORE class Composicao(models.Model): # IGNORE
comissao = models.ForeignKey(Comissao, verbose_name=_(u'Comissão')) comissao = models.ForeignKey(Comissao, verbose_name=_('Comissão'))
periodo = models.ForeignKey(Periodo, verbose_name=_(u'Período')) periodo = models.ForeignKey(Periodo, verbose_name=_('Período'))
class Meta: class Meta:
verbose_name = _(u'Composição de Comissão') verbose_name = _('Composição de Comissão')
verbose_name_plural = _(u'Composições de Comissão') verbose_name_plural = _('Composições de Comissão')
def __unicode__(self): def __unicode__(self):
return '%s: %s' % (self.comissao.sigla, self.periodo) return '%s: %s' % (self.comissao.sigla, self.periodo)
@ -93,15 +93,15 @@ class Participacao(models.Model): # ComposicaoComissao
composicao = models.ForeignKey(Composicao) composicao = models.ForeignKey(Composicao)
parlamentar = models.ForeignKey(Parlamentar) parlamentar = models.ForeignKey(Parlamentar)
cargo = models.ForeignKey(CargoComissao) cargo = models.ForeignKey(CargoComissao)
titular = models.BooleanField(verbose_name=_(u'Titular')) titular = models.BooleanField(verbose_name=_('Titular'))
data_designacao = models.DateField(verbose_name=_(u'Data Designação')) data_designacao = models.DateField(verbose_name=_('Data Designação'))
data_desligamento = models.DateField(blank=True, null=True, verbose_name=_(u'Data Desligamento')) data_desligamento = models.DateField(blank=True, null=True, verbose_name=_('Data Desligamento'))
motivo_desligamento = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'Motivo Desligamento')) motivo_desligamento = models.CharField(max_length=150, blank=True, null=True, verbose_name=_('Motivo Desligamento'))
observacao = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'Observação')) observacao = models.CharField(max_length=150, blank=True, null=True, verbose_name=_('Observação'))
class Meta: class Meta:
verbose_name = _(u'Participação em Comissão') verbose_name = _('Participação em Comissão')
verbose_name_plural = _(u'Participações em Comissão') verbose_name_plural = _('Participações em Comissão')
def __unicode__(self): def __unicode__(self):
return '%s : %s' % (self.cargo, self.parlamentar) return '%s : %s' % (self.cargo, self.parlamentar)

22
legacy/scripts/scrap_original_forms.py

@ -16,7 +16,7 @@ assert appconfs # to prevent removal by automatic organize imports on this file
def _read_line(tr): def _read_line(tr):
for td in tr.find_all('td'): for td in tr.find_all('td'):
label = td.text.strip().split('\n')[0].strip(u'\xa0' + string.whitespace) label = td.text.strip().split('\n')[0].strip('\xa0' + string.whitespace)
if label.endswith('(*)'): if label.endswith('(*)'):
label = label[:-3].strip() label = label[:-3].strip()
names = [c.attrs['name'] for c in td.findAll() if isinstance(c, Tag) and 'name' in c.attrs] names = [c.attrs['name'] for c in td.findAll() if isinstance(c, Tag) and 'name' in c.attrs]
@ -37,7 +37,7 @@ def extract_title_and_fieldsets(model):
html_doc = cont.decode('utf-8') html_doc = cont.decode('utf-8')
soup = BeautifulSoup(html_doc, 'html.parser') soup = BeautifulSoup(html_doc, 'html.parser')
forms = soup.find_all('form') forms = soup.find_all('form')
[form] = [f for f in forms if (u'method', u'post') in f.attrs.items()] [form] = [f for f in forms if ('method', 'post') in f.attrs.items()]
# children are either tags or strings... # children are either tags or strings...
assert set(type(c) for c in form.children) == {Tag, NavigableString} assert set(type(c) for c in form.children) == {Tag, NavigableString}
# ... and all strings are empty # ... and all strings are empty
@ -106,10 +106,10 @@ def source_with_verbose_names(model):
name, path, args, legacy_name = split(match.groups()) name, path, args, legacy_name = split(match.groups())
if name in labels and 'verbose_name' not in args: if name in labels and 'verbose_name' not in args:
args = [args] if args.strip() else [] args = [args] if args.strip() else []
args.append(u"verbose_name=_(u'%s')" % labels[name]) args.append("verbose_name=_(u'%s')" % labels[name])
args = u', '.join(args) args = ', '.join(args)
new_lines.append( new_lines.append(
(u' %s = %s(%s)' % (name, path, args), legacy_name)) (' %s = %s(%s)' % (name, path, args), legacy_name))
break break
else: else:
if 'class Meta:' in line: if 'class Meta:' in line:
@ -140,17 +140,17 @@ def source_with_verbose_names(model):
if not title: if not title:
# default title from model name # default title from model name
title_singular = u' '.join(re.findall('[A-Z][^A-Z]*', model.__name__)) title_singular = ' '.join(re.findall('[A-Z][^A-Z]*', model.__name__))
title_singular = re.sub('cao\\b', u'ção', title_singular) title_singular = re.sub('cao\\b', 'ção', title_singular)
title_singular = re.sub('ao\\b', u'ão', title_singular) title_singular = re.sub('ao\\b', 'ão', title_singular)
title_plural = add_s(title_singular.replace(u'ção', u'ções').replace(u'ão', u'ões')) title_plural = add_s(title_singular.replace('ção', 'ções').replace('ão', 'ões'))
elif title.endswith('s'): elif title.endswith('s'):
title_singular = remove_s(title.replace(u'ções', u'ção').replace(u'ões', u'ão')) title_singular = remove_s(title.replace('ções', 'ção').replace('ões', 'ão'))
title_plural = title title_plural = title
else: else:
title_singular = title title_singular = title
title_plural = add_s(title.replace(u'ção', u'ções').replace(u'ão', u'ões')) title_plural = add_s(title.replace('ção', 'ções').replace('ão', 'ões'))
yield """ yield """
class Meta: class Meta:

2
lexml/apps.py

@ -4,4 +4,4 @@ from django.apps import AppConfig
class LexmlAppConfig(AppConfig): class LexmlAppConfig(AppConfig):
name = 'lexml' name = 'lexml'
verbose_name = u'LexML' verbose_name = 'LexML'

32
lexml/models.py

@ -4,29 +4,29 @@ from django.utils.translation import ugettext as _
class LexmlProvedor(models.Model): # LexmlRegistroProvedor class LexmlProvedor(models.Model): # LexmlRegistroProvedor
id_provedor = models.IntegerField(verbose_name=_(u'Id do provedor')) id_provedor = models.IntegerField(verbose_name=_('Id do provedor'))
nome = models.CharField(max_length=255, verbose_name=_(u'Nome do provedor')) nome = models.CharField(max_length=255, verbose_name=_('Nome do provedor'))
sigla = models.CharField(max_length=15) sigla = models.CharField(max_length=15)
email_responsavel = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'E-mail do responsável')) email_responsavel = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('E-mail do responsável'))
nome_responsavel = models.CharField(max_length=255, blank=True, null=True, verbose_name=_(u'Nome do responsável')) nome_responsavel = models.CharField(max_length=255, blank=True, null=True, verbose_name=_('Nome do responsável'))
tipo = models.CharField(max_length=50) tipo = models.CharField(max_length=50)
id_responsavel = models.IntegerField(blank=True, null=True, verbose_name=_(u'Id do responsável')) id_responsavel = models.IntegerField(blank=True, null=True, verbose_name=_('Id do responsável'))
xml = models.TextField(blank=True, null=True, verbose_name=_(u'XML fornecido pela equipe do LexML:')) xml = models.TextField(blank=True, null=True, verbose_name=_('XML fornecido pela equipe do LexML:'))
class Meta: class Meta:
verbose_name = _(u'Provedor Lexml') verbose_name = _('Provedor Lexml')
verbose_name_plural = _(u'Provedores Lexml') verbose_name_plural = _('Provedores Lexml')
class LexmlPublicador(models.Model): class LexmlPublicador(models.Model):
id_publicador = models.IntegerField(verbose_name=_(u'Id do publicador')) id_publicador = models.IntegerField(verbose_name=_('Id do publicador'))
nome = models.CharField(max_length=255, verbose_name=_(u'Nome do publicador')) nome = models.CharField(max_length=255, verbose_name=_('Nome do publicador'))
email_responsavel = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'E-mail do responsável')) email_responsavel = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('E-mail do responsável'))
sigla = models.CharField(max_length=255, blank=True, null=True, verbose_name=_(u'Sigla do Publicador')) sigla = models.CharField(max_length=255, blank=True, null=True, verbose_name=_('Sigla do Publicador'))
nome_responsavel = models.CharField(max_length=255, blank=True, null=True, verbose_name=_(u'Nome do responsável')) nome_responsavel = models.CharField(max_length=255, blank=True, null=True, verbose_name=_('Nome do responsável'))
tipo = models.CharField(max_length=50) tipo = models.CharField(max_length=50)
id_responsavel = models.IntegerField(verbose_name=_(u'Id do responsável')) id_responsavel = models.IntegerField(verbose_name=_('Id do responsável'))
class Meta: class Meta:
verbose_name = _(u'Publicador Lexml') verbose_name = _('Publicador Lexml')
verbose_name_plural = _(u'Publicadores Lexml') verbose_name_plural = _('Publicadores Lexml')

2
materia/apps.py

@ -4,4 +4,4 @@ from django.apps import AppConfig
class MateriaAppConfig(AppConfig): class MateriaAppConfig(AppConfig):
name = 'materia' name = 'materia'
verbose_name = u'Matéria' verbose_name = 'Matéria'

344
materia/models.py

@ -7,16 +7,16 @@ from parlamentares.models import Parlamentar, Partido
class TipoMateriaLegislativa(models.Model): class TipoMateriaLegislativa(models.Model):
sigla = models.CharField(max_length=5, verbose_name=_(u'Sigla')) sigla = models.CharField(max_length=5, verbose_name=_('Sigla'))
descricao = models.CharField(max_length=50, verbose_name=_(u'Descrição ')) descricao = models.CharField(max_length=50, verbose_name=_('Descrição '))
# XXX o que é isso ? # XXX o que é isso ?
num_automatica = models.BooleanField() num_automatica = models.BooleanField()
# XXX o que é isso ? # XXX o que é isso ?
quorum_minimo_votacao = models.IntegerField() quorum_minimo_votacao = models.IntegerField()
class Meta: class Meta:
verbose_name = _(u'Tipo de Matéria Legislativa') verbose_name = _('Tipo de Matéria Legislativa')
verbose_name_plural = _(u'Tipos de Matérias Legislativas') verbose_name_plural = _('Tipos de Matérias Legislativas')
def __unicode__(self): def __unicode__(self):
return self.descricao return self.descricao
@ -26,20 +26,20 @@ class RegimeTramitacao(models.Model):
descricao = models.CharField(max_length=50) descricao = models.CharField(max_length=50)
class Meta: class Meta:
verbose_name = _(u'Regime Tramitação') verbose_name = _('Regime Tramitação')
verbose_name_plural = _(u'Regimes Tramitação') verbose_name_plural = _('Regimes Tramitação')
def __unicode__(self): def __unicode__(self):
return self.descricao return self.descricao
class Origem(models.Model): class Origem(models.Model):
sigla = models.CharField(max_length=10, verbose_name=_(u'Sigla')) sigla = models.CharField(max_length=10, verbose_name=_('Sigla'))
nome = models.CharField(max_length=50, verbose_name=_(u'Nome')) nome = models.CharField(max_length=50, verbose_name=_('Nome'))
class Meta: class Meta:
verbose_name = _(u'Origem') verbose_name = _('Origem')
verbose_name_plural = _(u'Origens') verbose_name_plural = _('Origens')
def __unicode__(self): def __unicode__(self):
return self.nome return self.nome
@ -47,32 +47,32 @@ class Origem(models.Model):
class MateriaLegislativa(models.Model): class MateriaLegislativa(models.Model):
ORAL, ESCRITA = 'O', 'E' ORAL, ESCRITA = 'O', 'E'
TIPO_APRESENTACAO_CHOICES = ((ORAL, _(u'Oral')), TIPO_APRESENTACAO_CHOICES = ((ORAL, _('Oral')),
(ESCRITA, _(u'Escrita'))) (ESCRITA, _('Escrita')))
tipo = models.ForeignKey(TipoMateriaLegislativa, verbose_name=_(u'Tipo')) tipo = models.ForeignKey(TipoMateriaLegislativa, verbose_name=_('Tipo'))
numero = models.IntegerField(verbose_name=_(u'Número')) numero = models.IntegerField(verbose_name=_('Número'))
ano = models.SmallIntegerField(verbose_name=_(u'Ano')) ano = models.SmallIntegerField(verbose_name=_('Ano'))
numero_protocolo = models.IntegerField(blank=True, null=True, verbose_name=_(u'Núm. Protocolo')) numero_protocolo = models.IntegerField(blank=True, null=True, verbose_name=_('Núm. Protocolo'))
data_apresentacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Apresentação')) data_apresentacao = models.DateField(blank=True, null=True, verbose_name=_('Data Apresentação'))
tipo_apresentacao = models.CharField(max_length=1, blank=True, null=True, verbose_name=_(u'Tipo de Apresentação'), choices=TIPO_APRESENTACAO_CHOICES) tipo_apresentacao = models.CharField(max_length=1, blank=True, null=True, verbose_name=_('Tipo de Apresentação'), choices=TIPO_APRESENTACAO_CHOICES)
regime_tramitacao = models.ForeignKey(RegimeTramitacao, verbose_name=_(u'Regime Tramitação')) regime_tramitacao = models.ForeignKey(RegimeTramitacao, verbose_name=_('Regime Tramitação'))
data_publicacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Publicação')) data_publicacao = models.DateField(blank=True, null=True, verbose_name=_('Data Publicação'))
tipo_origem_externa = models.ForeignKey(TipoMateriaLegislativa, blank=True, null=True, related_name='+', verbose_name=_(u'Tipo')) tipo_origem_externa = models.ForeignKey(TipoMateriaLegislativa, blank=True, null=True, related_name='+', verbose_name=_('Tipo'))
numero_origem_externa = models.CharField(max_length=5, blank=True, null=True, verbose_name=_(u'Número')) numero_origem_externa = models.CharField(max_length=5, blank=True, null=True, verbose_name=_('Número'))
ano_origem_externa = models.SmallIntegerField(blank=True, null=True, verbose_name=_(u'Ano')) ano_origem_externa = models.SmallIntegerField(blank=True, null=True, verbose_name=_('Ano'))
data_origem_externa = models.DateField(blank=True, null=True, verbose_name=_(u'Data')) data_origem_externa = models.DateField(blank=True, null=True, verbose_name=_('Data'))
local_origem_externa = models.ForeignKey(Origem, blank=True, null=True, verbose_name=_(u'Local Origem')) local_origem_externa = models.ForeignKey(Origem, blank=True, null=True, verbose_name=_('Local Origem'))
apelido = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Apelido')) apelido = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Apelido'))
dias_prazo = models.IntegerField(blank=True, null=True, verbose_name=_(u'Dias Prazo')) dias_prazo = models.IntegerField(blank=True, null=True, verbose_name=_('Dias Prazo'))
data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_(u'Data Fim Prazo')) data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_('Data Fim Prazo'))
em_tramitacao = models.BooleanField(verbose_name=_(u'Em Tramitação?')) em_tramitacao = models.BooleanField(verbose_name=_('Em Tramitação?'))
polemica = models.NullBooleanField(blank=True, verbose_name=_(u'Matéria Polêmica?')) polemica = models.NullBooleanField(blank=True, verbose_name=_('Matéria Polêmica?'))
objeto = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'Objeto')) objeto = models.CharField(max_length=150, blank=True, null=True, verbose_name=_('Objeto'))
complementar = models.NullBooleanField(blank=True, verbose_name=_(u'É Complementar?')) complementar = models.NullBooleanField(blank=True, verbose_name=_('É Complementar?'))
ementa = models.TextField(verbose_name=_(u'Ementa')) ementa = models.TextField(verbose_name=_('Ementa'))
indexacao = models.TextField(blank=True, null=True, verbose_name=_(u'Indexação')) indexacao = models.TextField(blank=True, null=True, verbose_name=_('Indexação'))
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observação')) observacao = models.TextField(blank=True, null=True, verbose_name=_('Observação'))
resultado = models.TextField(blank=True, null=True) resultado = models.TextField(blank=True, null=True)
# XXX novo # XXX novo
anexadas = models.ManyToManyField('self', through='Anexada', anexadas = models.ManyToManyField('self', through='Anexada',
@ -80,22 +80,22 @@ class MateriaLegislativa(models.Model):
through_fields=('materia_principal', 'materia_anexada')) through_fields=('materia_principal', 'materia_anexada'))
class Meta: class Meta:
verbose_name = _(u'Matéria Legislativa') verbose_name = _('Matéria Legislativa')
verbose_name_plural = _(u'Matérias Legislativas') verbose_name_plural = _('Matérias Legislativas')
def __unicode__(self): def __unicode__(self):
return _(u'%(tipo)s%(numero)s de %(ano)s') % { return _('%(tipo)s%(numero)s de %(ano)s') % {
'tipo': self.tipo, 'numero': self.numero, 'ano': self.ano} 'tipo': self.tipo, 'numero': self.numero, 'ano': self.ano}
class AcompanhamentoMateria(models.Model): # AcompMateria class AcompanhamentoMateria(models.Model): # AcompMateria
materia = models.ForeignKey(MateriaLegislativa) materia = models.ForeignKey(MateriaLegislativa)
email = models.CharField(max_length=100, verbose_name=_(u'Endereço de E-mail')) email = models.CharField(max_length=100, verbose_name=_('Endereço de E-mail'))
hash = models.CharField(max_length=8) hash = models.CharField(max_length=8)
class Meta: class Meta:
verbose_name = _(u'Acompanhamento de Matéria') verbose_name = _('Acompanhamento de Matéria')
verbose_name_plural = _(u'Acompanhamentos de Matéria') verbose_name_plural = _('Acompanhamentos de Matéria')
def __unicode__ (self): def __unicode__ (self):
return self.materia return self.materia
@ -103,15 +103,15 @@ class AcompanhamentoMateria(models.Model): # AcompMateria
class Anexada(models.Model): class Anexada(models.Model):
materia_principal = models.ForeignKey(MateriaLegislativa, related_name='+') materia_principal = models.ForeignKey(MateriaLegislativa, related_name='+')
materia_anexada = models.ForeignKey(MateriaLegislativa, related_name='+') materia_anexada = models.ForeignKey(MateriaLegislativa, related_name='+')
data_anexacao = models.DateField(verbose_name=_(u'Data Anexação')) data_anexacao = models.DateField(verbose_name=_('Data Anexação'))
data_desanexacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Desanexação')) data_desanexacao = models.DateField(blank=True, null=True, verbose_name=_('Data Desanexação'))
class Meta: class Meta:
verbose_name = _(u'Anexada') verbose_name = _('Anexada')
verbose_name_plural = _(u'Anexadas') verbose_name_plural = _('Anexadas')
def __unicode__(self): def __unicode__(self):
return _(u'Principal: %(materia_principal)s - Anexada: %(materia_anexada)s') % { return _('Principal: %(materia_principal)s - Anexada: %(materia_anexada)s') % {
'materia_principal': self.materia_principal, 'materia_anexada': self.materia_anexada} 'materia_principal': self.materia_principal, 'materia_anexada': self.materia_anexada}
@ -120,19 +120,19 @@ class AssuntoMateria(models.Model):
dispositivo = models.CharField(max_length=50) dispositivo = models.CharField(max_length=50)
class Meta: class Meta:
verbose_name = _(u'Assunto de Matéria') verbose_name = _('Assunto de Matéria')
verbose_name_plural = _(u'Assuntos de Matéria') verbose_name_plural = _('Assuntos de Matéria')
def __unicode__(self): def __unicode__(self):
return self.assunto return self.assunto
class TipoAutor(models.Model): class TipoAutor(models.Model):
descricao = models.CharField(max_length=50, verbose_name=_(u'Descrição')) descricao = models.CharField(max_length=50, verbose_name=_('Descrição'))
class Meta: class Meta:
verbose_name = _(u'Tipo de Autor') verbose_name = _('Tipo de Autor')
verbose_name_plural = _(u'Tipos de Autor') verbose_name_plural = _('Tipos de Autor')
def __unicode__(self): def __unicode__(self):
return self.descricao return self.descricao
@ -142,40 +142,40 @@ class Autor(models.Model):
partido = models.ForeignKey(Partido, blank=True, null=True) partido = models.ForeignKey(Partido, blank=True, null=True)
comissao = models.ForeignKey(Comissao, blank=True, null=True) comissao = models.ForeignKey(Comissao, blank=True, null=True)
parlamentar = models.ForeignKey(Parlamentar, blank=True, null=True) parlamentar = models.ForeignKey(Parlamentar, blank=True, null=True)
tipo = models.ForeignKey(TipoAutor, verbose_name=_(u'Tipo')) tipo = models.ForeignKey(TipoAutor, verbose_name=_('Tipo'))
nome = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Autor')) nome = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Autor'))
cargo = models.CharField(max_length=50, blank=True, null=True) cargo = models.CharField(max_length=50, blank=True, null=True)
username = models.CharField(max_length=50, blank=True, null=True) username = models.CharField(max_length=50, blank=True, null=True)
class Meta: class Meta:
verbose_name = _(u'Autor') verbose_name = _('Autor')
verbose_name_plural = _(u'Autores') verbose_name_plural = _('Autores')
def __unicode__(self): def __unicode__(self):
if unicode(self.tipo) == 'Parlamentar': if str(self.tipo) == 'Parlamentar':
return unicode(self.parlamentar) return str(self.parlamentar)
elif unicode(self.tipo) == 'Comissao': elif str(self.tipo) == 'Comissao':
return unicode(self.comissao) return str(self.comissao)
elif unicode(self.tipo) == 'Partido': elif str(self.tipo) == 'Partido':
return unicode(self.partido) return str(self.partido)
else: else:
if unicode(self.cargo): if str(self.cargo):
return _(u'%(nome)s - %(cargo)s') % {'nome': self.nome, 'cargo': self.cargo} return _('%(nome)s - %(cargo)s') % {'nome': self.nome, 'cargo': self.cargo}
else: else:
return unicode(self.nome) return str(self.nome)
class Autoria(models.Model): class Autoria(models.Model):
autor = models.ForeignKey(Autor) autor = models.ForeignKey(Autor)
materia = models.ForeignKey(MateriaLegislativa) materia = models.ForeignKey(MateriaLegislativa)
primeiro_autor = models.BooleanField(verbose_name=_(u'Primeiro Autor')) primeiro_autor = models.BooleanField(verbose_name=_('Primeiro Autor'))
class Meta: class Meta:
verbose_name = _(u'Autoria') verbose_name = _('Autoria')
verbose_name_plural = _(u'Autorias') verbose_name_plural = _('Autorias')
def __unicode__(self): def __unicode__(self):
return _(u'%(autor)s - %(materia)s') % {'autor': self.autor, 'materia': self.materia} return _('%(autor)s - %(materia)s') % {'autor': self.autor, 'materia': self.materia}
class DespachoInicial(models.Model): class DespachoInicial(models.Model):
# TODO M2M? # TODO M2M?
@ -184,18 +184,18 @@ class DespachoInicial(models.Model):
comissao = models.ForeignKey(Comissao) comissao = models.ForeignKey(Comissao)
class Meta: class Meta:
verbose_name = _(u'Despacho Inicial') verbose_name = _('Despacho Inicial')
verbose_name_plural = _(u'Despachos Iniciais') verbose_name_plural = _('Despachos Iniciais')
def __unicode__(self): def __unicode__(self):
return _(u'%(numero)s - %(materia)s - %(comissao)s') % {'numero': self.numero_ordem, 'materia': self.materia, 'comissao': self.comissao} return _('%(numero)s - %(materia)s - %(comissao)s') % {'numero': self.numero_ordem, 'materia': self.materia, 'comissao': self.comissao}
class TipoDocumento(models.Model): class TipoDocumento(models.Model):
descricao = models.CharField(max_length=50, verbose_name=_(u'Tipo Documento')) descricao = models.CharField(max_length=50, verbose_name=_('Tipo Documento'))
class Meta: class Meta:
verbose_name = _(u'Tipo de Documento') verbose_name = _('Tipo de Documento')
verbose_name_plural = _(u'Tipos de Documento') verbose_name_plural = _('Tipos de Documento')
def __unicode__ (self): def __unicode__ (self):
return self.descricao return self.descricao
@ -203,19 +203,19 @@ class TipoDocumento(models.Model):
class DocumentoAcessorio(models.Model): class DocumentoAcessorio(models.Model):
materia = models.ForeignKey(MateriaLegislativa) materia = models.ForeignKey(MateriaLegislativa)
tipo = models.ForeignKey(TipoDocumento, verbose_name=_(u'Tipo')) tipo = models.ForeignKey(TipoDocumento, verbose_name=_('Tipo'))
nome = models.CharField(max_length=30, verbose_name=_(u'Descrição')) nome = models.CharField(max_length=30, verbose_name=_('Descrição'))
data = models.DateField(blank=True, null=True, verbose_name=_(u'Data')) data = models.DateField(blank=True, null=True, verbose_name=_('Data'))
autor = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Autor')) autor = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Autor'))
ementa = models.TextField(blank=True, null=True, verbose_name=_(u'Ementa')) ementa = models.TextField(blank=True, null=True, verbose_name=_('Ementa'))
indexacao = models.TextField(blank=True, null=True) indexacao = models.TextField(blank=True, null=True)
class Meta: class Meta:
verbose_name = _(u'Documento Acessório') verbose_name = _('Documento Acessório')
verbose_name_plural = _(u'Documentos Acessórios') verbose_name_plural = _('Documentos Acessórios')
def __unicode__(self): def __unicode__(self):
return _(u'%(tipo)s - %(nome)s de %(data)s por %(autor)s') % { return _('%(tipo)s - %(nome)s de %(data)s por %(autor)s') % {
'tipo': self.tipo, 'nome': self.nome, 'ano': self.data, 'autor': self.autor} 'tipo': self.tipo, 'nome': self.nome, 'ano': self.data, 'autor': self.autor}
@ -225,69 +225,69 @@ class MateriaAssunto(models.Model):
materia = models.ForeignKey(MateriaLegislativa) materia = models.ForeignKey(MateriaLegislativa)
class Meta: class Meta:
verbose_name = _(u'Relação Matéria - Assunto') verbose_name = _('Relação Matéria - Assunto')
verbose_name_plural = _(u'Relações Matéria - Assunto') verbose_name_plural = _('Relações Matéria - Assunto')
def __unicode__(self): def __unicode__(self):
return _(u'%(materia)s - %(assunto)s') % { 'materia': self.materia, 'assunto': self.assunto} return _('%(materia)s - %(assunto)s') % { 'materia': self.materia, 'assunto': self.assunto}
class Numeracao(models.Model): class Numeracao(models.Model):
materia = models.ForeignKey(MateriaLegislativa) materia = models.ForeignKey(MateriaLegislativa)
numero_ordem = models.IntegerField() numero_ordem = models.IntegerField()
tipo_materia = models.ForeignKey(TipoMateriaLegislativa, verbose_name=_(u'Tipo de Matéria')) tipo_materia = models.ForeignKey(TipoMateriaLegislativa, verbose_name=_('Tipo de Matéria'))
numero_materia = models.CharField(max_length=5, verbose_name=_(u'Número')) numero_materia = models.CharField(max_length=5, verbose_name=_('Número'))
ano_materia = models.SmallIntegerField(verbose_name=_(u'Ano')) ano_materia = models.SmallIntegerField(verbose_name=_('Ano'))
data_materia = models.DateField(blank=True, null=True, verbose_name=_(u'Data')) data_materia = models.DateField(blank=True, null=True, verbose_name=_('Data'))
class Meta: class Meta:
verbose_name = _(u'Numeração') verbose_name = _('Numeração')
verbose_name_plural = _(u'Numerações') verbose_name_plural = _('Numerações')
def __unicode_ (self): def __unicode_ (self):
return _(u'%(numero)s %(tipo)s - %(data)s') % { return _('%(numero)s %(tipo)s - %(data)s') % {
'numero': self.numero_materia, 'tipo': self.tipo_materia, 'data': self.data_materia } 'numero': self.numero_materia, 'tipo': self.tipo_materia, 'data': self.data_materia }
class Orgao(models.Model): class Orgao(models.Model):
nome = models.CharField(max_length=60, verbose_name=_(u'Nome')) nome = models.CharField(max_length=60, verbose_name=_('Nome'))
sigla = models.CharField(max_length=10, verbose_name=_(u'Sigla')) sigla = models.CharField(max_length=10, verbose_name=_('Sigla'))
unidade_deliberativa = models.BooleanField(verbose_name=_(u'Unidade Deliberativa')) unidade_deliberativa = models.BooleanField(verbose_name=_('Unidade Deliberativa'))
endereco = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Endereço')) endereco = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('Endereço'))
telefone = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Telefone')) telefone = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Telefone'))
class Meta: class Meta:
verbose_name = _(u'Órgão') verbose_name = _('Órgão')
verbose_name_plural = _(u'Órgãos') verbose_name_plural = _('Órgãos')
def __unicode__(self): def __unicode__(self):
return _(u'%(nome)s - %(sigla)s') % { 'nome': self.nome, 'sigla':self.sigla } return _('%(nome)s - %(sigla)s') % { 'nome': self.nome, 'sigla':self.sigla }
class TipoFimRelatoria(models.Model): class TipoFimRelatoria(models.Model):
descricao = models.CharField(max_length=50, verbose_name=_(u'Tipo Fim Relatoria')) descricao = models.CharField(max_length=50, verbose_name=_('Tipo Fim Relatoria'))
class Meta: class Meta:
verbose_name = _(u'Tipo Fim de Relatoria') verbose_name = _('Tipo Fim de Relatoria')
verbose_name_plural = _(u'Tipos Fim de Relatoria') verbose_name_plural = _('Tipos Fim de Relatoria')
def __unicode__(self): def __unicode__(self):
return self.descricao return self.descricao
class Relatoria(models.Model): class Relatoria(models.Model):
materia = models.ForeignKey(MateriaLegislativa) materia = models.ForeignKey(MateriaLegislativa)
parlamentar = models.ForeignKey(Parlamentar, verbose_name=_(u'Parlamentar')) parlamentar = models.ForeignKey(Parlamentar, verbose_name=_('Parlamentar'))
tipo_fim_relatoria = models.ForeignKey(TipoFimRelatoria, blank=True, null=True, verbose_name=_(u'Motivo Fim Relatoria')) tipo_fim_relatoria = models.ForeignKey(TipoFimRelatoria, blank=True, null=True, verbose_name=_('Motivo Fim Relatoria'))
comissao = models.ForeignKey(Comissao, blank=True, null=True, verbose_name=_(u'Localização Atual')) comissao = models.ForeignKey(Comissao, blank=True, null=True, verbose_name=_('Localização Atual'))
data_designacao_relator = models.DateField(verbose_name=_(u'Data Designação')) data_designacao_relator = models.DateField(verbose_name=_('Data Designação'))
data_destituicao_relator = models.DateField(blank=True, null=True, verbose_name=_(u'Data Destituição')) data_destituicao_relator = models.DateField(blank=True, null=True, verbose_name=_('Data Destituição'))
class Meta: class Meta:
verbose_name = _(u'Relatoria') verbose_name = _('Relatoria')
verbose_name_plural = _(u'Relatorias') verbose_name_plural = _('Relatorias')
def __unicode__ (self): def __unicode__ (self):
return _(u'%(materia)s - %(tipo)s - %(data)s') % { return _('%(materia)s - %(tipo)s - %(data)s') % {
'materia': self.materia, 'tipo': self.tipo_fim_relatoria, 'data': self.data_designacao_relator 'materia': self.materia, 'tipo': self.tipo_fim_relatoria, 'data': self.data_designacao_relator
} }
@ -295,8 +295,8 @@ class Relatoria(models.Model):
class Parecer(models.Model): class Parecer(models.Model):
ORAL = 'O' ORAL = 'O'
ESCRITA = 'E' ESCRITA = 'E'
APRESENTACAO_CHOICES = ((ORAL, _(u'Oral')), APRESENTACAO_CHOICES = ((ORAL, _('Oral')),
(ESCRITA, _(u'Escrita'))) (ESCRITA, _('Escrita')))
relatoria = models.ForeignKey(Relatoria) relatoria = models.ForeignKey(Relatoria)
materia = models.ForeignKey(MateriaLegislativa) materia = models.ForeignKey(MateriaLegislativa)
@ -305,11 +305,11 @@ class Parecer(models.Model):
parecer = models.TextField(blank=True, null=True) parecer = models.TextField(blank=True, null=True)
class Meta: class Meta:
verbose_name = _(u'Parecer') verbose_name = _('Parecer')
verbose_name_plural = _(u'Pareceres') verbose_name_plural = _('Pareceres')
def __unicode__ (self): def __unicode__ (self):
return _(u'%(relatoria)s - %(tipo)s') % { return _('%(relatoria)s - %(tipo)s') % {
'relatoria': self.relatoria, 'tipo': self.tipo_apresentacao 'relatoria': self.relatoria, 'tipo': self.tipo_apresentacao
} }
@ -317,20 +317,20 @@ class Parecer(models.Model):
class TipoProposicao(models.Model): class TipoProposicao(models.Model):
MATERIA = 'M' MATERIA = 'M'
DOCUMENTO = 'D' DOCUMENTO = 'D'
MAT_OU_DOC_CHOICES = ((MATERIA, _(u'Matéria')), MAT_OU_DOC_CHOICES = ((MATERIA, _('Matéria')),
(DOCUMENTO, _(u'Documento'))) (DOCUMENTO, _('Documento')))
descricao = models.CharField(max_length=50, verbose_name=_(u'Descrição')) descricao = models.CharField(max_length=50, verbose_name=_('Descrição'))
materia_ou_documento = models.CharField(max_length=1, verbose_name=_(u'Gera'), choices=MAT_OU_DOC_CHOICES) materia_ou_documento = models.CharField(max_length=1, verbose_name=_('Gera'), choices=MAT_OU_DOC_CHOICES)
modelo = models.CharField(max_length=50, verbose_name=_(u'Modelo XML')) modelo = models.CharField(max_length=50, verbose_name=_('Modelo XML'))
# mutually exclusive (depend on materia_ou_documento) # mutually exclusive (depend on materia_ou_documento)
tipo_materia = models.ForeignKey(TipoMateriaLegislativa, blank=True, null=True, verbose_name=_(u'Tipo Matéria')) tipo_materia = models.ForeignKey(TipoMateriaLegislativa, blank=True, null=True, verbose_name=_('Tipo Matéria'))
tipo_documento = models.ForeignKey(TipoDocumento, blank=True, null=True, verbose_name=_(u'Tipo Documento')) tipo_documento = models.ForeignKey(TipoDocumento, blank=True, null=True, verbose_name=_('Tipo Documento'))
class Meta: class Meta:
verbose_name = _(u'Tipo de Proposição') verbose_name = _('Tipo de Proposição')
verbose_name_plural = _(u'Tipos de Proposições') verbose_name_plural = _('Tipos de Proposições')
def __unicode__ (self): def __unicode__ (self):
return self.descricao return self.descricao
@ -339,22 +339,22 @@ class TipoProposicao(models.Model):
class Proposicao(models.Model): class Proposicao(models.Model):
materia = models.ForeignKey(MateriaLegislativa, blank=True, null=True) materia = models.ForeignKey(MateriaLegislativa, blank=True, null=True)
autor = models.ForeignKey(Autor) autor = models.ForeignKey(Autor)
tipo = models.ForeignKey(TipoProposicao, verbose_name=_(u'Tipo')) tipo = models.ForeignKey(TipoProposicao, verbose_name=_('Tipo'))
# XXX data_envio was not null, but actual data said otherwise!!! # XXX data_envio was not null, but actual data said otherwise!!!
data_envio = models.DateTimeField(null=True, verbose_name=_(u'Data de Envio')) data_envio = models.DateTimeField(null=True, verbose_name=_('Data de Envio'))
data_recebimento = models.DateTimeField(blank=True, null=True, verbose_name=_(u'Data de Incorporação')) data_recebimento = models.DateTimeField(blank=True, null=True, verbose_name=_('Data de Incorporação'))
descricao = models.CharField(max_length=100, verbose_name=_(u'Descrição')) descricao = models.CharField(max_length=100, verbose_name=_('Descrição'))
data_devolucao = models.DateTimeField(blank=True, null=True, verbose_name=_(u'Data de devolução')) data_devolucao = models.DateTimeField(blank=True, null=True, verbose_name=_('Data de devolução'))
justificativa_devolucao = models.CharField(max_length=200, blank=True, null=True, verbose_name=_(u'Justificativa da Devolução')) justificativa_devolucao = models.CharField(max_length=200, blank=True, null=True, verbose_name=_('Justificativa da Devolução'))
numero_proposicao = models.IntegerField(blank=True, null=True, verbose_name=_(u'')) numero_proposicao = models.IntegerField(blank=True, null=True, verbose_name=_(''))
# mutually exclusive (depend on tipo.materia_ou_documento) # mutually exclusive (depend on tipo.materia_ou_documento)
materia = models.ForeignKey(MateriaLegislativa, blank=True, null=True, verbose_name=_(u'Matéria')) materia = models.ForeignKey(MateriaLegislativa, blank=True, null=True, verbose_name=_('Matéria'))
documento = models.ForeignKey(DocumentoAcessorio, blank=True, null=True, verbose_name=_(u'Documento')) documento = models.ForeignKey(DocumentoAcessorio, blank=True, null=True, verbose_name=_('Documento'))
class Meta: class Meta:
verbose_name = _(u'Proposição') verbose_name = _('Proposição')
verbose_name_plural = _(u'Proposições') verbose_name_plural = _('Proposições')
def __unicode__ (self): def __unicode__ (self):
return self.descricao return self.descricao
@ -363,35 +363,35 @@ class Proposicao(models.Model):
class StatusTramitacao(models.Model): class StatusTramitacao(models.Model):
FIM = 'F' FIM = 'F'
RETORNO = 'R' RETORNO = 'R'
INDICADOR_CHOICES = ((FIM, _(u'Fim')), INDICADOR_CHOICES = ((FIM, _('Fim')),
(RETORNO, _(u'Retorno'))) (RETORNO, _('Retorno')))
sigla = models.CharField(max_length=10, verbose_name=_(u'Sigla')) sigla = models.CharField(max_length=10, verbose_name=_('Sigla'))
descricao = models.CharField(max_length=60, verbose_name=_(u'Descrição')) descricao = models.CharField(max_length=60, verbose_name=_('Descrição'))
# TODO make specific migration considering both ind_fim_tramitacao, ind_retorno_tramitacao # TODO make specific migration considering both ind_fim_tramitacao, ind_retorno_tramitacao
indicador = models.CharField(max_length=1, verbose_name=_(u'Indicador da Tramitação'), choices=INDICADOR_CHOICES) indicador = models.CharField(max_length=1, verbose_name=_('Indicador da Tramitação'), choices=INDICADOR_CHOICES)
class Meta: class Meta:
verbose_name = _(u'Status de Tramitação') verbose_name = _('Status de Tramitação')
verbose_name_plural = _(u'Status de Tramitação') verbose_name_plural = _('Status de Tramitação')
def __unicode__(self): def __unicode__(self):
return _(u'%(sigla)s - %(descricao)s - %(indicador)s') % { return _('%(sigla)s - %(descricao)s - %(indicador)s') % {
'sigla': self.sigla, 'descricao': self.descricao, 'indicador': self.indicador 'sigla': self.sigla, 'descricao': self.descricao, 'indicador': self.indicador
} }
class UnidadeTramitacao(models.Model): class UnidadeTramitacao(models.Model):
comissao = models.ForeignKey(Comissao, blank=True, null=True, verbose_name=_(u'Comissão')) comissao = models.ForeignKey(Comissao, blank=True, null=True, verbose_name=_('Comissão'))
orgao = models.ForeignKey(Orgao, blank=True, null=True, verbose_name=_(u'Órgão')) orgao = models.ForeignKey(Orgao, blank=True, null=True, verbose_name=_('Órgão'))
parlamentar = models.ForeignKey(Parlamentar, blank=True, null=True, verbose_name=_(u'Parlamentar')) parlamentar = models.ForeignKey(Parlamentar, blank=True, null=True, verbose_name=_('Parlamentar'))
class Meta: class Meta:
verbose_name = _(u'Unidade de Tramitação') verbose_name = _('Unidade de Tramitação')
verbose_name_plural = _(u'Unidades de Tramitação') verbose_name_plural = _('Unidades de Tramitação')
def __unicode__ (self): def __unicode__ (self):
return _(u'%(orgao)s %(comissao)s') % { return _('%(orgao)s %(comissao)s') % {
'orgao': self.orgao, 'comissao': self.comissao 'orgao': self.orgao, 'comissao': self.comissao
} }
@ -405,32 +405,32 @@ class Tramitacao(models.Model):
VOTACAO_UNICA = 'A' VOTACAO_UNICA = 'A'
PRIMEIRA_VOTACAO = 'B' PRIMEIRA_VOTACAO = 'B'
SEGUNDA_TERCEIRA_VOTACAO = 'C' SEGUNDA_TERCEIRA_VOTACAO = 'C'
TURNO_CHOICES = ((PRIMEIRO, _(u'Primeiro')), TURNO_CHOICES = ((PRIMEIRO, _('Primeiro')),
(SEGUNDO, _(u'Segundo')), (SEGUNDO, _('Segundo')),
(UNICO, _(u'Único')), (UNICO, _('Único')),
(SUPLEMENTAR, _(u'Suplementar')), (SUPLEMENTAR, _('Suplementar')),
(FINAL, _(u'Final')), (FINAL, _('Final')),
(VOTACAO_UNICA, _(u'Votação única em Regime de Urgência')), (VOTACAO_UNICA, _('Votação única em Regime de Urgência')),
(PRIMEIRA_VOTACAO, _(u'1ª Votação')), (PRIMEIRA_VOTACAO, _('1ª Votação')),
(SEGUNDA_TERCEIRA_VOTACAO, _(u'2ª e 3ª Votação'))) (SEGUNDA_TERCEIRA_VOTACAO, _('2ª e 3ª Votação')))
status = models.ForeignKey(StatusTramitacao, blank=True, null=True, verbose_name=_(u'Status')) status = models.ForeignKey(StatusTramitacao, blank=True, null=True, verbose_name=_('Status'))
materia = models.ForeignKey(MateriaLegislativa) materia = models.ForeignKey(MateriaLegislativa)
data_tramitacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Tramitação')) data_tramitacao = models.DateField(blank=True, null=True, verbose_name=_('Data Tramitação'))
unidade_tramitacao_local = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_(u'Unidade Local')) unidade_tramitacao_local = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_('Unidade Local'))
data_encaminhamento = models.DateField(blank=True, null=True, verbose_name=_(u'Data Encaminhamento')) data_encaminhamento = models.DateField(blank=True, null=True, verbose_name=_('Data Encaminhamento'))
unidade_tramitacao_destino = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_(u'Unidade Destino')) unidade_tramitacao_destino = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_('Unidade Destino'))
ultima = models.BooleanField() ultima = models.BooleanField()
urgente = models.BooleanField(verbose_name=_(u'Urgente ?')) urgente = models.BooleanField(verbose_name=_('Urgente ?'))
turno = models.CharField(max_length=1, blank=True, null=True, verbose_name=_(u'Turno'), choices=TURNO_CHOICES) turno = models.CharField(max_length=1, blank=True, null=True, verbose_name=_('Turno'), choices=TURNO_CHOICES)
texto = models.TextField(blank=True, null=True, verbose_name=_(u'Texto da Ação')) texto = models.TextField(blank=True, null=True, verbose_name=_('Texto da Ação'))
data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_(u'Data Fim Prazo')) data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_('Data Fim Prazo'))
class Meta: class Meta:
verbose_name = _(u'Tramitação') verbose_name = _('Tramitação')
verbose_name_plural = _(u'Tramitações') verbose_name_plural = _('Tramitações')
def __unicode__ (self): def __unicode__ (self):
return _(u'%(materia)s | %(status)s | %(data)s') % { return _('%(materia)s | %(status)s | %(data)s') % {
'materia': self.materia, 'status': self.status, 'data': self.data_tramitacao 'materia': self.materia, 'status': self.status, 'data': self.data_tramitacao
} }

2
norma/apps.py

@ -4,4 +4,4 @@ from django.apps import AppConfig
class NormaAppConfig(AppConfig): class NormaAppConfig(AppConfig):
name = 'norma' name = 'norma'
verbose_name = u'Norma Jurídica' verbose_name = 'Norma Jurídica'

100
norma/models.py

@ -6,12 +6,12 @@ from materia.models import MateriaLegislativa
class AssuntoNorma(models.Model): class AssuntoNorma(models.Model):
assunto = models.CharField(max_length=50, verbose_name=_(u'Assunto')) assunto = models.CharField(max_length=50, verbose_name=_('Assunto'))
descricao = models.CharField(max_length=250, blank=True, null=True, verbose_name=_(u'Descrição')) descricao = models.CharField(max_length=250, blank=True, null=True, verbose_name=_('Descrição'))
class Meta: class Meta:
verbose_name = _(u'Assunto de Norma') verbose_name = _('Assunto de Norma')
verbose_name_plural = _(u'Assuntos de Norma') verbose_name_plural = _('Assuntos de Norma')
class TipoNormaJuridica(models.Model): class TipoNormaJuridica(models.Model):
@ -31,76 +31,76 @@ class TipoNormaJuridica(models.Model):
'resolucao', 'resolucao',
'regimento.interno', 'regimento.interno',
)) ))
equivalente_lexml = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Equivalente LexML'), choices=EQUIVALENTE_LEXML_CHOICES) equivalente_lexml = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Equivalente LexML'), choices=EQUIVALENTE_LEXML_CHOICES)
sigla = models.CharField(max_length=3, verbose_name=_(u'Sigla')) sigla = models.CharField(max_length=3, verbose_name=_('Sigla'))
descricao = models.CharField(max_length=50, verbose_name=_(u'Descrição')) descricao = models.CharField(max_length=50, verbose_name=_('Descrição'))
class Meta: class Meta:
verbose_name = _(u'Tipo de Norma Jurídica') verbose_name = _('Tipo de Norma Jurídica')
verbose_name_plural = _(u'Tipos de Norma Jurídica') verbose_name_plural = _('Tipos de Norma Jurídica')
class NormaJuridica(models.Model): class NormaJuridica(models.Model):
MUNICIPAL = 'M' MUNICIPAL = 'M'
ESTADUAL = 'E' ESTADUAL = 'E'
FEDERAL = 'F' FEDERAL = 'F'
ESFERA_FEDERACAO_CHOICES = ((MUNICIPAL, _(u'Municipal')), ESFERA_FEDERACAO_CHOICES = ((MUNICIPAL, _('Municipal')),
(ESTADUAL, _(u'Estadual')), (ESTADUAL, _('Estadual')),
(FEDERAL, _(u'Federal'))) (FEDERAL, _('Federal')))
tipo = models.ForeignKey(TipoNormaJuridica, verbose_name=_(u'Tipo')) tipo = models.ForeignKey(TipoNormaJuridica, verbose_name=_('Tipo'))
materia = models.ForeignKey(MateriaLegislativa, blank=True, null=True) materia = models.ForeignKey(MateriaLegislativa, blank=True, null=True)
numero = models.IntegerField(verbose_name=_(u'Número')) numero = models.IntegerField(verbose_name=_('Número'))
ano = models.SmallIntegerField(verbose_name=_(u'Ano')) ano = models.SmallIntegerField(verbose_name=_('Ano'))
esfera_federacao = models.CharField(max_length=1, verbose_name=_(u'Esfera Federação'), choices=ESFERA_FEDERACAO_CHOICES) esfera_federacao = models.CharField(max_length=1, verbose_name=_('Esfera Federação'), choices=ESFERA_FEDERACAO_CHOICES)
data = models.DateField(blank=True, null=True, verbose_name=_(u'Data')) data = models.DateField(blank=True, null=True, verbose_name=_('Data'))
data_publicacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Publicação')) data_publicacao = models.DateField(blank=True, null=True, verbose_name=_('Data Publicação'))
veiculo_publicacao = models.CharField(max_length=30, blank=True, null=True, verbose_name=_(u'Veículo Publicação')) veiculo_publicacao = models.CharField(max_length=30, blank=True, null=True, verbose_name=_('Veículo Publicação'))
pagina_inicio_publicacao = models.IntegerField(blank=True, null=True, verbose_name=_(u'Pg. Início')) pagina_inicio_publicacao = models.IntegerField(blank=True, null=True, verbose_name=_('Pg. Início'))
pagina_fim_publicacao = models.IntegerField(blank=True, null=True, verbose_name=_(u'Pg. Fim')) pagina_fim_publicacao = models.IntegerField(blank=True, null=True, verbose_name=_('Pg. Fim'))
ementa = models.TextField(verbose_name=_(u'Ementa')) ementa = models.TextField(verbose_name=_('Ementa'))
indexacao = models.TextField(blank=True, null=True, verbose_name=_(u'Indexação')) indexacao = models.TextField(blank=True, null=True, verbose_name=_('Indexação'))
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observação')) observacao = models.TextField(blank=True, null=True, verbose_name=_('Observação'))
complemento = models.NullBooleanField(blank=True, verbose_name=_(u'Complementar ?')) complemento = models.NullBooleanField(blank=True, verbose_name=_('Complementar ?'))
assunto = models.ForeignKey(AssuntoNorma) # XXX was a CharField (attention on migrate) assunto = models.ForeignKey(AssuntoNorma) # XXX was a CharField (attention on migrate)
data_vigencia = models.DateField(blank=True, null=True) data_vigencia = models.DateField(blank=True, null=True)
timestamp = models.DateTimeField() timestamp = models.DateTimeField()
class Meta: class Meta:
verbose_name = _(u'Norma Jurídica') verbose_name = _('Norma Jurídica')
verbose_name_plural = _(u'Normas Jurídicas') verbose_name_plural = _('Normas Jurídicas')
class LegislacaoCitada(models.Model): class LegislacaoCitada(models.Model):
materia = models.ForeignKey(MateriaLegislativa) materia = models.ForeignKey(MateriaLegislativa)
norma = models.ForeignKey(NormaJuridica) norma = models.ForeignKey(NormaJuridica)
disposicoes = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'Disposição')) disposicoes = models.CharField(max_length=15, blank=True, null=True, verbose_name=_('Disposição'))
parte = models.CharField(max_length=8, blank=True, null=True, verbose_name=_(u'Parte')) parte = models.CharField(max_length=8, blank=True, null=True, verbose_name=_('Parte'))
livro = models.CharField(max_length=7, blank=True, null=True, verbose_name=_(u'Livro')) livro = models.CharField(max_length=7, blank=True, null=True, verbose_name=_('Livro'))
titulo = models.CharField(max_length=7, blank=True, null=True, verbose_name=_(u'Título')) titulo = models.CharField(max_length=7, blank=True, null=True, verbose_name=_('Título'))
capitulo = models.CharField(max_length=7, blank=True, null=True, verbose_name=_(u'Capítulo')) capitulo = models.CharField(max_length=7, blank=True, null=True, verbose_name=_('Capítulo'))
secao = models.CharField(max_length=7, blank=True, null=True, verbose_name=_(u'Seção')) secao = models.CharField(max_length=7, blank=True, null=True, verbose_name=_('Seção'))
subsecao = models.CharField(max_length=7, blank=True, null=True, verbose_name=_(u'Subseção')) subsecao = models.CharField(max_length=7, blank=True, null=True, verbose_name=_('Subseção'))
artigo = models.CharField(max_length=4, blank=True, null=True, verbose_name=_(u'Artigo')) artigo = models.CharField(max_length=4, blank=True, null=True, verbose_name=_('Artigo'))
paragrafo = models.CharField(max_length=3, blank=True, null=True, verbose_name=_(u'Parágrafo')) paragrafo = models.CharField(max_length=3, blank=True, null=True, verbose_name=_('Parágrafo'))
inciso = models.CharField(max_length=10, blank=True, null=True, verbose_name=_(u'Inciso')) inciso = models.CharField(max_length=10, blank=True, null=True, verbose_name=_('Inciso'))
alinea = models.CharField(max_length=3, blank=True, null=True, verbose_name=_(u'Alínea')) alinea = models.CharField(max_length=3, blank=True, null=True, verbose_name=_('Alínea'))
item = models.CharField(max_length=3, blank=True, null=True, verbose_name=_(u'Item')) item = models.CharField(max_length=3, blank=True, null=True, verbose_name=_('Item'))
class Meta: class Meta:
verbose_name = _(u'Matéria Legislativa') verbose_name = _('Matéria Legislativa')
verbose_name_plural = _(u'Matérias Legislativas') verbose_name_plural = _('Matérias Legislativas')
class VinculoNormaJuridica(models.Model): class VinculoNormaJuridica(models.Model):
TIPO_VINCULO_CHOICES = ( TIPO_VINCULO_CHOICES = (
('A', u'Altera a norma'), ('A', 'Altera a norma'),
('R', u'Revoga a norma'), ('R', 'Revoga a norma'),
('P', u'Revoga parcialmente a norma'), ('P', 'Revoga parcialmente a norma'),
('T', u'Revoga por consolidação a norma'), ('T', 'Revoga por consolidação a norma'),
('C', u'Norma correlata'), ('C', 'Norma correlata'),
('I', u'Suspende a execução da norma'), ('I', 'Suspende a execução da norma'),
('G', u'Regulamenta a norma'), ('G', 'Regulamenta a norma'),
) )
# TODO M2M ??? # TODO M2M ???
@ -109,5 +109,5 @@ class VinculoNormaJuridica(models.Model):
tipo_vinculo = models.CharField(max_length=1, blank=True, null=True, choices=TIPO_VINCULO_CHOICES) tipo_vinculo = models.CharField(max_length=1, blank=True, null=True, choices=TIPO_VINCULO_CHOICES)
class Meta: class Meta:
verbose_name = _(u'Vínculo entre Normas Jurídicas') verbose_name = _('Vínculo entre Normas Jurídicas')
verbose_name_plural = _(u'Vínculos entre Normas Jurídicas') verbose_name_plural = _('Vínculos entre Normas Jurídicas')

2
parlamentares/apps.py

@ -4,4 +4,4 @@ from django.apps import AppConfig
class ParlamentaresAppConfig(AppConfig): class ParlamentaresAppConfig(AppConfig):
name = 'parlamentares' name = 'parlamentares'
verbose_name = u'Parlamentares' verbose_name = 'Parlamentares'

268
parlamentares/models.py

@ -4,53 +4,53 @@ from django.utils.translation import ugettext as _
class Legislatura(models.Model): class Legislatura(models.Model):
data_inicio = models.DateField(verbose_name=_(u'Data Início')) data_inicio = models.DateField(verbose_name=_('Data Início'))
data_fim = models.DateField(verbose_name=_(u'Data Fim')) data_fim = models.DateField(verbose_name=_('Data Fim'))
data_eleicao = models.DateField(verbose_name=_(u'Data Eleição')) data_eleicao = models.DateField(verbose_name=_('Data Eleição'))
class Meta: class Meta:
verbose_name = _(u'Legislatura') verbose_name = _('Legislatura')
verbose_name_plural = _(u'Legislaturas') verbose_name_plural = _('Legislaturas')
class SessaoLegislativa(models.Model): class SessaoLegislativa(models.Model):
ORDINARIA = 'O' ORDINARIA = 'O'
EXTRAORDINARIA = 'E' EXTRAORDINARIA = 'E'
TIPO_SESSAO_CHOICES = ((ORDINARIA, _(u'Ordinária')), TIPO_SESSAO_CHOICES = ((ORDINARIA, _('Ordinária')),
(EXTRAORDINARIA, _(u'Extraordinária'))) (EXTRAORDINARIA, _('Extraordinária')))
legislatura = models.ForeignKey(Legislatura) legislatura = models.ForeignKey(Legislatura)
numero = models.IntegerField(verbose_name=_(u'Número')) numero = models.IntegerField(verbose_name=_('Número'))
tipo = models.CharField(max_length=1, verbose_name=_(u'Tipo'), choices=TIPO_SESSAO_CHOICES) tipo = models.CharField(max_length=1, verbose_name=_('Tipo'), choices=TIPO_SESSAO_CHOICES)
data_inicio = models.DateField(verbose_name=_(u'Data Início')) data_inicio = models.DateField(verbose_name=_('Data Início'))
data_fim = models.DateField(verbose_name=_(u'Data Fim')) data_fim = models.DateField(verbose_name=_('Data Fim'))
data_inicio_intervalo = models.DateField(blank=True, null=True, verbose_name=_(u'Início Intervalo')) data_inicio_intervalo = models.DateField(blank=True, null=True, verbose_name=_('Início Intervalo'))
data_fim_intervalo = models.DateField(blank=True, null=True, verbose_name=_(u'Fim Intervalo')) data_fim_intervalo = models.DateField(blank=True, null=True, verbose_name=_('Fim Intervalo'))
class Meta: class Meta:
verbose_name = _(u'Sessão Legislativa') verbose_name = _('Sessão Legislativa')
verbose_name_plural = _(u'Sessões Legislativas') verbose_name_plural = _('Sessões Legislativas')
class Coligacao(models.Model): class Coligacao(models.Model):
legislatura = models.ForeignKey(Legislatura, verbose_name=_(u'Legislatura')) legislatura = models.ForeignKey(Legislatura, verbose_name=_('Legislatura'))
nome = models.CharField(max_length=50, verbose_name=_(u'Nome')) nome = models.CharField(max_length=50, verbose_name=_('Nome'))
numero_votos = models.IntegerField(blank=True, null=True, verbose_name=_(u'Nº Votos Recebidos')) numero_votos = models.IntegerField(blank=True, null=True, verbose_name=_('Nº Votos Recebidos'))
class Meta: class Meta:
verbose_name = _(u'Coligação') verbose_name = _('Coligação')
verbose_name_plural = _(u'Coligações') verbose_name_plural = _('Coligações')
class Partido(models.Model): class Partido(models.Model):
sigla = models.CharField(max_length=9, verbose_name=_(u'Sigla')) sigla = models.CharField(max_length=9, verbose_name=_('Sigla'))
nome = models.CharField(max_length=50, verbose_name=_(u'Nome')) nome = models.CharField(max_length=50, verbose_name=_('Nome'))
data_criacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Criação')) data_criacao = models.DateField(blank=True, null=True, verbose_name=_('Data Criação'))
data_extincao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Extinção')) data_extincao = models.DateField(blank=True, null=True, verbose_name=_('Data Extinção'))
class Meta: class Meta:
verbose_name = _(u'Partido') verbose_name = _('Partido')
verbose_name_plural = _(u'Partidos') verbose_name_plural = _('Partidos')
class ComposicaoColigacao(models.Model): class ComposicaoColigacao(models.Model):
@ -63,43 +63,43 @@ class Municipio(models.Model): # Localidade
# TODO filter on migration leaving only cities # TODO filter on migration leaving only cities
REGIAO_CHOICES = ( REGIAO_CHOICES = (
('CO', u'Centro-Oeste'), ('CO', 'Centro-Oeste'),
('NE', u'Nordeste'), ('NE', 'Nordeste'),
('NO', u'Norte'), ('NO', 'Norte'),
('SE', u'Sudeste'), # TODO convert on migrate SD => SE ('SE', 'Sudeste'), # TODO convert on migrate SD => SE
('SL', u'Sul'), ('SL', 'Sul'),
('EX', u'Exterior'), ('EX', 'Exterior'),
) )
UF_CHOICES = ( UF_CHOICES = (
('AC', u'Acre'), ('AC', 'Acre'),
('AL', u'Alagoas'), ('AL', 'Alagoas'),
('AP', u'Amapá'), ('AP', 'Amapá'),
('AM', u'Amazonas'), ('AM', 'Amazonas'),
('BA', u'Bahia'), ('BA', 'Bahia'),
('CE', u'Ceará'), ('CE', 'Ceará'),
('DF', u'Distrito Federal'), ('DF', 'Distrito Federal'),
('ES', u'Espírito Santo'), ('ES', 'Espírito Santo'),
('GO', u'Goiás'), ('GO', 'Goiás'),
('MA', u'Maranhão'), ('MA', 'Maranhão'),
('MT', u'Mato Grosso'), ('MT', 'Mato Grosso'),
('MS', u'Mato Grosso do Sul'), ('MS', 'Mato Grosso do Sul'),
('MG', u'Minas Gerais'), ('MG', 'Minas Gerais'),
('PR', u'Paraná'), ('PR', 'Paraná'),
('PB', u'Paraíba'), ('PB', 'Paraíba'),
('PA', u'Pará'), ('PA', 'Pará'),
('PE', u'Pernambuco'), ('PE', 'Pernambuco'),
('PI', u'Piauí'), ('PI', 'Piauí'),
('RJ', u'Rio de Janeiro'), ('RJ', 'Rio de Janeiro'),
('RN', u'Rio Grande do Norte'), ('RN', 'Rio Grande do Norte'),
('RS', u'Rio Grande do Sul'), ('RS', 'Rio Grande do Sul'),
('RO', u'Rondônia'), ('RO', 'Rondônia'),
('RR', u'Roraima'), ('RR', 'Roraima'),
('SC', u'Santa Catarina'), ('SC', 'Santa Catarina'),
('SE', u'Sergipe'), ('SE', 'Sergipe'),
('SP', u'São Paulo'), ('SP', 'São Paulo'),
('TO', u'Tocantins'), ('TO', 'Tocantins'),
('EX', u'Exterior'), ('EX', 'Exterior'),
) )
nome = models.CharField(max_length=50, blank=True, null=True) nome = models.CharField(max_length=50, blank=True, null=True)
@ -107,64 +107,64 @@ class Municipio(models.Model): # Localidade
regiao = models.CharField(max_length=2, blank=True, null=True, choices=REGIAO_CHOICES) regiao = models.CharField(max_length=2, blank=True, null=True, choices=REGIAO_CHOICES)
class Meta: class Meta:
verbose_name = _(u'Município') verbose_name = _('Município')
verbose_name_plural = _(u'Municípios') verbose_name_plural = _('Municípios')
class NivelInstrucao(models.Model): class NivelInstrucao(models.Model):
descricao = models.CharField(max_length=50, verbose_name=_(u'Nível de Instrução')) descricao = models.CharField(max_length=50, verbose_name=_('Nível de Instrução'))
class Meta: class Meta:
verbose_name = _(u'Nível Instrução') verbose_name = _('Nível Instrução')
verbose_name_plural = _(u'Níveis Instrução') verbose_name_plural = _('Níveis Instrução')
def __unicode__(self): def __unicode__(self):
return self.nivel_instrucao return self.nivel_instrucao
class SituacaoMilitar(models.Model): class SituacaoMilitar(models.Model):
descricao = models.CharField(max_length=50, verbose_name=_(u'Situação Militar')) descricao = models.CharField(max_length=50, verbose_name=_('Situação Militar'))
class Meta: class Meta:
verbose_name = _(u'Tipo Situação Militar') verbose_name = _('Tipo Situação Militar')
verbose_name_plural = _(u'Tipos Situações Militares') verbose_name_plural = _('Tipos Situações Militares')
class Parlamentar(models.Model): class Parlamentar(models.Model):
FEMININO = 'F' FEMININO = 'F'
MASCULINO = 'M' MASCULINO = 'M'
SEXO_CHOICE = ((FEMININO, _(u'Feminino')), SEXO_CHOICE = ((FEMININO, _('Feminino')),
(MASCULINO, _(u'Masculino'))) (MASCULINO, _('Masculino')))
nivel_instrucao = models.ForeignKey(NivelInstrucao, blank=True, null=True, verbose_name=_(u'Nível Instrução')) nivel_instrucao = models.ForeignKey(NivelInstrucao, blank=True, null=True, verbose_name=_('Nível Instrução'))
situacao_militar = models.ForeignKey(SituacaoMilitar, blank=True, null=True, verbose_name=_(u'Situação Militar')) situacao_militar = models.ForeignKey(SituacaoMilitar, blank=True, null=True, verbose_name=_('Situação Militar'))
nome_completo = models.CharField(max_length=50, verbose_name=_(u'Nome Completo')) nome_completo = models.CharField(max_length=50, verbose_name=_('Nome Completo'))
nome_parlamentar = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Nome Parlamentar')) nome_parlamentar = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Nome Parlamentar'))
sexo = models.CharField(max_length=1, verbose_name=_(u'Sexo'), choices=SEXO_CHOICE) sexo = models.CharField(max_length=1, verbose_name=_('Sexo'), choices=SEXO_CHOICE)
data_nascimento = models.DateField(blank=True, null=True, verbose_name=_(u'Data Nascimento')) data_nascimento = models.DateField(blank=True, null=True, verbose_name=_('Data Nascimento'))
cpf = models.CharField(max_length=14, blank=True, null=True, verbose_name=_(u'C.P.F')) cpf = models.CharField(max_length=14, blank=True, null=True, verbose_name=_('C.P.F'))
rg = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'R.G.')) rg = models.CharField(max_length=15, blank=True, null=True, verbose_name=_('R.G.'))
titulo_eleitor = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'Título de Eleitor')) titulo_eleitor = models.CharField(max_length=15, blank=True, null=True, verbose_name=_('Título de Eleitor'))
cod_casa = models.IntegerField() cod_casa = models.IntegerField()
numero_gab_parlamentar = models.CharField(max_length=10, blank=True, null=True, verbose_name=_(u'Nº Gabinete')) numero_gab_parlamentar = models.CharField(max_length=10, blank=True, null=True, verbose_name=_('Nº Gabinete'))
telefone = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Telefone')) telefone = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Telefone'))
fax = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Fax')) fax = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Fax'))
endereco_residencia = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Endereço Residencial')) endereco_residencia = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('Endereço Residencial'))
municipio_residencia = models.ForeignKey(Municipio, blank=True, null=True, verbose_name=_(u'Município')) municipio_residencia = models.ForeignKey(Municipio, blank=True, null=True, verbose_name=_('Município'))
cep_residencia = models.CharField(max_length=9, blank=True, null=True, verbose_name=_(u'CEP')) cep_residencia = models.CharField(max_length=9, blank=True, null=True, verbose_name=_('CEP'))
telefone_residencia = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Telefone Residencial')) telefone_residencia = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Telefone Residencial'))
fax_residencia = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Fax Residencial')) fax_residencia = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Fax Residencial'))
endereco_web = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'HomePage')) endereco_web = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('HomePage'))
profissao = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Profissão')) profissao = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Profissão'))
email = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Correio Eletrônico')) email = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('Correio Eletrônico'))
locais_atuacao = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Locais de Atuação')) locais_atuacao = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('Locais de Atuação'))
ativo = models.BooleanField(verbose_name=_(u'Ativo na Casa?')) ativo = models.BooleanField(verbose_name=_('Ativo na Casa?'))
biografia = models.TextField(blank=True, null=True, verbose_name=_(u'Biografia')) biografia = models.TextField(blank=True, null=True, verbose_name=_('Biografia'))
unidade_deliberativa = models.BooleanField() unidade_deliberativa = models.BooleanField()
class Meta: class Meta:
verbose_name = _(u'Parlamentar') verbose_name = _('Parlamentar')
verbose_name_plural = _(u'Parlamentares') verbose_name_plural = _('Parlamentares')
def __unicode__(self): def __unicode__(self):
return self.nome_completo return self.nome_completo
@ -174,77 +174,77 @@ class TipoDependente(models.Model):
descricao = models.CharField(max_length=50) descricao = models.CharField(max_length=50)
class Meta: class Meta:
verbose_name = _(u'Tipo de Dependente') verbose_name = _('Tipo de Dependente')
verbose_name_plural = _(u'Tipos de Dependente') verbose_name_plural = _('Tipos de Dependente')
class Dependente(models.Model): class Dependente(models.Model):
FEMININO = 'F' FEMININO = 'F'
MASCULINO = 'M' MASCULINO = 'M'
SEXO_CHOICE = ((FEMININO, _(u'Feminino')), SEXO_CHOICE = ((FEMININO, _('Feminino')),
(MASCULINO, _(u'Masculino'))) (MASCULINO, _('Masculino')))
tipo = models.ForeignKey(TipoDependente, verbose_name=_(u'Tipo')) tipo = models.ForeignKey(TipoDependente, verbose_name=_('Tipo'))
parlamentar = models.ForeignKey(Parlamentar) parlamentar = models.ForeignKey(Parlamentar)
nome = models.CharField(max_length=50, verbose_name=_(u'Nome')) nome = models.CharField(max_length=50, verbose_name=_('Nome'))
sexo = models.CharField(max_length=1, verbose_name=_(u'Sexo'), choices=SEXO_CHOICE) sexo = models.CharField(max_length=1, verbose_name=_('Sexo'), choices=SEXO_CHOICE)
data_nascimento = models.DateField(blank=True, null=True, verbose_name=_(u'Data Nascimento')) data_nascimento = models.DateField(blank=True, null=True, verbose_name=_('Data Nascimento'))
cpf = models.CharField(max_length=14, blank=True, null=True, verbose_name=_(u'CPF')) cpf = models.CharField(max_length=14, blank=True, null=True, verbose_name=_('CPF'))
rg = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'RG')) rg = models.CharField(max_length=15, blank=True, null=True, verbose_name=_('RG'))
titulo_eleitor = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'Nº Título Eleitor')) titulo_eleitor = models.CharField(max_length=15, blank=True, null=True, verbose_name=_('Nº Título Eleitor'))
class Meta: class Meta:
verbose_name = _(u'Dependente') verbose_name = _('Dependente')
verbose_name_plural = _(u'Dependentes') verbose_name_plural = _('Dependentes')
class Filiacao(models.Model): class Filiacao(models.Model):
data = models.DateField(verbose_name=_(u'Data Filiação')) data = models.DateField(verbose_name=_('Data Filiação'))
parlamentar = models.ForeignKey(Parlamentar) parlamentar = models.ForeignKey(Parlamentar)
partido = models.ForeignKey(Partido, verbose_name=_(u'Partido')) partido = models.ForeignKey(Partido, verbose_name=_('Partido'))
data_desfiliacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Desfiliação')) data_desfiliacao = models.DateField(blank=True, null=True, verbose_name=_('Data Desfiliação'))
class Meta: class Meta:
verbose_name = _(u'Filiação') verbose_name = _('Filiação')
verbose_name_plural = _(u'Filiações') verbose_name_plural = _('Filiações')
class TipoAfastamento(models.Model): class TipoAfastamento(models.Model):
descricao = models.CharField(max_length=50, verbose_name=_(u'Descrição')) descricao = models.CharField(max_length=50, verbose_name=_('Descrição'))
afastamento = models.BooleanField(verbose_name=_(u'Indicador')) afastamento = models.BooleanField(verbose_name=_('Indicador'))
fim_mandato = models.BooleanField(verbose_name=_(u'Indicador')) fim_mandato = models.BooleanField(verbose_name=_('Indicador'))
dispositivo = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Dispositivo')) dispositivo = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Dispositivo'))
class Meta: class Meta:
verbose_name = _(u'Tipo de Afastamento') verbose_name = _('Tipo de Afastamento')
verbose_name_plural = _(u'Tipos de Afastamento') verbose_name_plural = _('Tipos de Afastamento')
class Mandato(models.Model): class Mandato(models.Model):
parlamentar = models.ForeignKey(Parlamentar) parlamentar = models.ForeignKey(Parlamentar)
tipo_afastamento = models.ForeignKey(TipoAfastamento, blank=True, null=True) tipo_afastamento = models.ForeignKey(TipoAfastamento, blank=True, null=True)
legislatura = models.ForeignKey(Legislatura, verbose_name=_(u'Legislatura')) legislatura = models.ForeignKey(Legislatura, verbose_name=_('Legislatura'))
coligacao = models.ForeignKey(Coligacao, blank=True, null=True, verbose_name=_(u'Coligação')) coligacao = models.ForeignKey(Coligacao, blank=True, null=True, verbose_name=_('Coligação'))
# TODO what is this field?????? # TODO what is this field??????
tipo_causa_fim_mandato = models.IntegerField(blank=True, null=True) tipo_causa_fim_mandato = models.IntegerField(blank=True, null=True)
data_fim_mandato = models.DateField(blank=True, null=True, verbose_name=_(u'Fim do Mandato')) data_fim_mandato = models.DateField(blank=True, null=True, verbose_name=_('Fim do Mandato'))
votos_recebidos = models.IntegerField(blank=True, null=True, verbose_name=_(u'Votos Recebidos')) votos_recebidos = models.IntegerField(blank=True, null=True, verbose_name=_('Votos Recebidos'))
data_expedicao_diploma = models.DateField(blank=True, null=True, verbose_name=_(u'Expedição do Diploma')) data_expedicao_diploma = models.DateField(blank=True, null=True, verbose_name=_('Expedição do Diploma'))
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observação')) observacao = models.TextField(blank=True, null=True, verbose_name=_('Observação'))
class Meta: class Meta:
verbose_name = _(u'Mandato') verbose_name = _('Mandato')
verbose_name_plural = _(u'Mandatos') verbose_name_plural = _('Mandatos')
class CargoMesa(models.Model): class CargoMesa(models.Model):
# TODO M2M ???? # TODO M2M ????
descricao = models.CharField(max_length=50, verbose_name=_(u'Cargo na Mesa')) descricao = models.CharField(max_length=50, verbose_name=_('Cargo na Mesa'))
unico = models.BooleanField(verbose_name=_(u'Cargo Único')) unico = models.BooleanField(verbose_name=_('Cargo Único'))
class Meta: class Meta:
verbose_name = _(u'Cargo na Mesa') verbose_name = _('Cargo na Mesa')
verbose_name_plural = _(u'Cargos na Mesa') verbose_name_plural = _('Cargos na Mesa')
class ComposicaoMesa(models.Model): class ComposicaoMesa(models.Model):
@ -254,5 +254,5 @@ class ComposicaoMesa(models.Model):
cargo = models.ForeignKey(CargoMesa) cargo = models.ForeignKey(CargoMesa)
class Meta: class Meta:
verbose_name = _(u'Ocupação de cargo na Mesa') verbose_name = _('Ocupação de cargo na Mesa')
verbose_name_plural = _(u'Ocupações de cargo na Mesa') verbose_name_plural = _('Ocupações de cargo na Mesa')

2
protocoloadm/apps.py

@ -4,4 +4,4 @@ from django.apps import AppConfig
class ProtocoloadmAppConfig(AppConfig): class ProtocoloadmAppConfig(AppConfig):
name = 'protocoloadm' name = 'protocoloadm'
verbose_name = u'Protocolo Administrativo' verbose_name = 'Protocolo Administrativo'

100
protocoloadm/models.py

@ -6,63 +6,63 @@ from materia.models import Autor, TipoMateriaLegislativa, UnidadeTramitacao
class TipoDocumentoAdministrativo(models.Model): class TipoDocumentoAdministrativo(models.Model):
sigla = models.CharField(max_length=5, verbose_name=_(u'Sigla')) sigla = models.CharField(max_length=5, verbose_name=_('Sigla'))
descricao = models.CharField(max_length=50, verbose_name=_(u'Descrição')) descricao = models.CharField(max_length=50, verbose_name=_('Descrição'))
class Meta: class Meta:
verbose_name = _(u'Tipo de Documento Administrativo') verbose_name = _('Tipo de Documento Administrativo')
verbose_name_plural = _(u'Tipos de Documento Administrativo') verbose_name_plural = _('Tipos de Documento Administrativo')
class DocumentoAdministrativo(models.Model): class DocumentoAdministrativo(models.Model):
tipo = models.ForeignKey(TipoDocumentoAdministrativo, verbose_name=_(u'Tipo Documento')) tipo = models.ForeignKey(TipoDocumentoAdministrativo, verbose_name=_('Tipo Documento'))
numero = models.IntegerField(verbose_name=_(u'Número')) numero = models.IntegerField(verbose_name=_('Número'))
ano = models.SmallIntegerField(verbose_name=_(u'Ano')) ano = models.SmallIntegerField(verbose_name=_('Ano'))
data = models.DateField(verbose_name=_(u'Data')) data = models.DateField(verbose_name=_('Data'))
numero_protocolo = models.IntegerField(blank=True, null=True, verbose_name=_(u'Núm. Protocolo')) numero_protocolo = models.IntegerField(blank=True, null=True, verbose_name=_('Núm. Protocolo'))
interessado = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Interessado')) interessado = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Interessado'))
autor = models.ForeignKey(Autor, blank=True, null=True) autor = models.ForeignKey(Autor, blank=True, null=True)
dias_prazo = models.IntegerField(blank=True, null=True, verbose_name=_(u'Dias Prazo')) dias_prazo = models.IntegerField(blank=True, null=True, verbose_name=_('Dias Prazo'))
data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_(u'Data Fim Prazo')) data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_('Data Fim Prazo'))
tramitacao = models.BooleanField(verbose_name=_(u'Em Tramitação?')) tramitacao = models.BooleanField(verbose_name=_('Em Tramitação?'))
assunto = models.TextField(verbose_name=_(u'Assunto')) assunto = models.TextField(verbose_name=_('Assunto'))
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observação')) observacao = models.TextField(blank=True, null=True, verbose_name=_('Observação'))
class Meta: class Meta:
verbose_name = _(u'Documento Administrativo') verbose_name = _('Documento Administrativo')
verbose_name_plural = _(u'Documentos Administrativos') verbose_name_plural = _('Documentos Administrativos')
class DocumentoAcessorioAdministrativo(models.Model): class DocumentoAcessorioAdministrativo(models.Model):
documento = models.ForeignKey(DocumentoAdministrativo) documento = models.ForeignKey(DocumentoAdministrativo)
tipo = models.ForeignKey(TipoDocumentoAdministrativo, verbose_name=_(u'Tipo')) tipo = models.ForeignKey(TipoDocumentoAdministrativo, verbose_name=_('Tipo'))
nome = models.CharField(max_length=30, verbose_name=_(u'Nome')) nome = models.CharField(max_length=30, verbose_name=_('Nome'))
arquivo = models.CharField(max_length=100, verbose_name=_(u'Arquivo')) arquivo = models.CharField(max_length=100, verbose_name=_('Arquivo'))
data = models.DateField(blank=True, null=True, verbose_name=_(u'Data')) data = models.DateField(blank=True, null=True, verbose_name=_('Data'))
autor = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Autor')) autor = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Autor'))
assunto = models.TextField(blank=True, null=True, verbose_name=_(u'Assunto')) assunto = models.TextField(blank=True, null=True, verbose_name=_('Assunto'))
indexacao = models.TextField(blank=True, null=True) indexacao = models.TextField(blank=True, null=True)
class Meta: class Meta:
verbose_name = _(u'Documento Acessório') verbose_name = _('Documento Acessório')
verbose_name_plural = _(u'Documentos Acessórios') verbose_name_plural = _('Documentos Acessórios')
class Protocolo(models.Model): class Protocolo(models.Model):
numero = models.IntegerField(blank=True, null=True, verbose_name=_(u'Número do Protocolo')) numero = models.IntegerField(blank=True, null=True, verbose_name=_('Número do Protocolo'))
ano = models.SmallIntegerField() ano = models.SmallIntegerField()
data = models.DateField() data = models.DateField()
hora = models.TimeField() hora = models.TimeField()
timestamp = models.DateTimeField() timestamp = models.DateTimeField()
tipo_protocolo = models.IntegerField(verbose_name=_(u'Tipo de Protocolo')) tipo_protocolo = models.IntegerField(verbose_name=_('Tipo de Protocolo'))
tipo_processo = models.IntegerField() tipo_processo = models.IntegerField()
interessado = models.CharField(max_length=60, blank=True, null=True, verbose_name=_(u'Interessado')) interessado = models.CharField(max_length=60, blank=True, null=True, verbose_name=_('Interessado'))
autor = models.ForeignKey(Autor, blank=True, null=True) autor = models.ForeignKey(Autor, blank=True, null=True)
assunto_ementa = models.TextField(blank=True, null=True) assunto_ementa = models.TextField(blank=True, null=True)
tipo_documento = models.ForeignKey(TipoDocumentoAdministrativo, blank=True, null=True, verbose_name=_(u'Tipo de documento')) tipo_documento = models.ForeignKey(TipoDocumentoAdministrativo, blank=True, null=True, verbose_name=_('Tipo de documento'))
tipo_materia = models.ForeignKey(TipoMateriaLegislativa, blank=True, null=True, verbose_name=_(u'Tipo Matéria')) tipo_materia = models.ForeignKey(TipoMateriaLegislativa, blank=True, null=True, verbose_name=_('Tipo Matéria'))
numero_paginas = models.IntegerField(blank=True, null=True, verbose_name=_(u'Número de Páginas')) numero_paginas = models.IntegerField(blank=True, null=True, verbose_name=_('Número de Páginas'))
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observação')) observacao = models.TextField(blank=True, null=True, verbose_name=_('Observação'))
anulado = models.BooleanField() anulado = models.BooleanField()
user_anulacao = models.CharField(max_length=20, blank=True, null=True) user_anulacao = models.CharField(max_length=20, blank=True, null=True)
ip_anulacao = models.CharField(max_length=15, blank=True, null=True) ip_anulacao = models.CharField(max_length=15, blank=True, null=True)
@ -70,37 +70,37 @@ class Protocolo(models.Model):
timestamp_anulacao = models.DateTimeField(blank=True, null=True) timestamp_anulacao = models.DateTimeField(blank=True, null=True)
class Meta: class Meta:
verbose_name = _(u'Protocolo') verbose_name = _('Protocolo')
verbose_name_plural = _(u'Protocolos') verbose_name_plural = _('Protocolos')
class StatusTramitacaoAdministrativo(models.Model): class StatusTramitacaoAdministrativo(models.Model):
FIM = 'F' FIM = 'F'
RETORNO = 'R' RETORNO = 'R'
INDICADOR_CHOICES = ((FIM, _(u'Fim')), INDICADOR_CHOICES = ((FIM, _('Fim')),
(RETORNO, _(u'Retorno'))) (RETORNO, _('Retorno')))
sigla = models.CharField(max_length=10, verbose_name=_(u'Sigla')) sigla = models.CharField(max_length=10, verbose_name=_('Sigla'))
descricao = models.CharField(max_length=60, verbose_name=_(u'Descrição')) descricao = models.CharField(max_length=60, verbose_name=_('Descrição'))
# TODO make specific migration considering both ind_fim_tramitacao, ind_retorno_tramitacao # TODO make specific migration considering both ind_fim_tramitacao, ind_retorno_tramitacao
indicador = models.CharField(max_length=1, verbose_name=_(u'Indicador da Tramitação'), choices=INDICADOR_CHOICES) indicador = models.CharField(max_length=1, verbose_name=_('Indicador da Tramitação'), choices=INDICADOR_CHOICES)
class Meta: class Meta:
verbose_name = _(u'Status de Tramitação') verbose_name = _('Status de Tramitação')
verbose_name_plural = _(u'Status de Tramitação') verbose_name_plural = _('Status de Tramitação')
class TramitacaoAdministrativo(models.Model): class TramitacaoAdministrativo(models.Model):
status = models.ForeignKey(StatusTramitacaoAdministrativo, blank=True, null=True, verbose_name=_(u'Status')) status = models.ForeignKey(StatusTramitacaoAdministrativo, blank=True, null=True, verbose_name=_('Status'))
documento = models.ForeignKey(DocumentoAdministrativo) documento = models.ForeignKey(DocumentoAdministrativo)
data_tramitacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Tramitação')) data_tramitacao = models.DateField(blank=True, null=True, verbose_name=_('Data Tramitação'))
unidade_tramitacao_local = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_(u'Unidade Local')) unidade_tramitacao_local = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_('Unidade Local'))
data_encaminhamento = models.DateField(blank=True, null=True, verbose_name=_(u'Data Encaminhamento')) data_encaminhamento = models.DateField(blank=True, null=True, verbose_name=_('Data Encaminhamento'))
unidade_tramitacao_destino = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_(u'Unidade Destino')) unidade_tramitacao_destino = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_('Unidade Destino'))
ultima = models.BooleanField() ultima = models.BooleanField()
texto = models.TextField(blank=True, null=True, verbose_name=_(u'Texto da Ação')) texto = models.TextField(blank=True, null=True, verbose_name=_('Texto da Ação'))
data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_(u'Data Fim do Prazo')) data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_('Data Fim do Prazo'))
class Meta: class Meta:
verbose_name = _(u'Tramitação de Documento Administrativo') verbose_name = _('Tramitação de Documento Administrativo')
verbose_name_plural = _(u'Tramitações de Documento Administrativo') verbose_name_plural = _('Tramitações de Documento Administrativo')

2
sessao/apps.py

@ -4,4 +4,4 @@ from django.apps import AppConfig
class SessaoAppConfig(AppConfig): class SessaoAppConfig(AppConfig):
name = 'sessao' name = 'sessao'
verbose_name = u'Sessão Plenária' verbose_name = 'Sessão Plenária'

126
sessao/models.py

@ -8,12 +8,12 @@ from sapl.utils import make_choices
class TipoSessaoPlenaria(models.Model): class TipoSessaoPlenaria(models.Model):
nome = models.CharField(max_length=30, verbose_name=_(u'Tipo')) nome = models.CharField(max_length=30, verbose_name=_('Tipo'))
quorum_minimo = models.IntegerField(verbose_name=_(u'Quórum mínimo')) quorum_minimo = models.IntegerField(verbose_name=_('Quórum mínimo'))
class Meta: class Meta:
verbose_name = _(u'Tipo de Sessão Plenária') verbose_name = _('Tipo de Sessão Plenária')
verbose_name_plural = _(u'Tipos de Sessão Plenária') verbose_name_plural = _('Tipos de Sessão Plenária')
def __unicode__(self): def __unicode__(self):
return self.nome return self.nome
@ -25,26 +25,26 @@ class SessaoPlenaria(models.Model):
# TODO analyze querying all hosted databases ! # TODO analyze querying all hosted databases !
cod_andamento_sessao = models.IntegerField(blank=True, null=True) cod_andamento_sessao = models.IntegerField(blank=True, null=True)
tipo = models.ForeignKey(TipoSessaoPlenaria, verbose_name=_(u'Tipo')) tipo = models.ForeignKey(TipoSessaoPlenaria, verbose_name=_('Tipo'))
sessao_legislativa = models.ForeignKey(SessaoLegislativa, verbose_name=_(u'Sessão Legislativa')) sessao_legislativa = models.ForeignKey(SessaoLegislativa, verbose_name=_('Sessão Legislativa'))
legislatura = models.ForeignKey(Legislatura, verbose_name=_(u'Legislatura')) legislatura = models.ForeignKey(Legislatura, verbose_name=_('Legislatura'))
# XXX seems to be empty # XXX seems to be empty
tipo_expediente = models.CharField(max_length=10) tipo_expediente = models.CharField(max_length=10)
data_inicio = models.DateField(verbose_name=_(u'Abertura')) data_inicio = models.DateField(verbose_name=_('Abertura'))
dia = models.CharField(max_length=15) dia = models.CharField(max_length=15)
hora_inicio = models.CharField(max_length=5, verbose_name=_(u'Horário')) hora_inicio = models.CharField(max_length=5, verbose_name=_('Horário'))
hora_fim = models.CharField(max_length=5, blank=True, null=True, verbose_name=_(u'Horário')) hora_fim = models.CharField(max_length=5, blank=True, null=True, verbose_name=_('Horário'))
numero = models.IntegerField(verbose_name=_(u'Número')) numero = models.IntegerField(verbose_name=_('Número'))
data_fim = models.DateField(blank=True, null=True, verbose_name=_(u'Encerramento')) data_fim = models.DateField(blank=True, null=True, verbose_name=_('Encerramento'))
url_audio = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'URL Arquivo Áudio (Formatos MP3 / AAC)')) url_audio = models.CharField(max_length=150, blank=True, null=True, verbose_name=_('URL Arquivo Áudio (Formatos MP3 / AAC)'))
url_video = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'URL Arquivo Vídeo (Formatos MP4 / FLV / WebM)')) url_video = models.CharField(max_length=150, blank=True, null=True, verbose_name=_('URL Arquivo Vídeo (Formatos MP4 / FLV / WebM)'))
class Meta: class Meta:
verbose_name = _(u'Sessão Plenária') verbose_name = _('Sessão Plenária')
verbose_name_plural = _(u'Sessões Plenárias') verbose_name_plural = _('Sessões Plenárias')
def __unicode__(self): def __unicode__(self):
return _(u'%sª Sessão %s da %sª Sessão Legislativa da %sª Legislatura') % ( return _('%sª Sessão %s da %sª Sessão Legislativa da %sª Legislatura') % (
self.numero, self.numero,
self.tipo.nome, self.tipo.nome,
self.sessao_legislativa.numero, self.sessao_legislativa.numero,
@ -53,39 +53,39 @@ class SessaoPlenaria(models.Model):
class AbstractOrdemDia(models.Model): class AbstractOrdemDia(models.Model):
TIPO_VOTACAO_CHOICES, SIMBOLICA, NOMINAL, SECRETA = make_choices( TIPO_VOTACAO_CHOICES, SIMBOLICA, NOMINAL, SECRETA = make_choices(
1, _(u'Simbólica'), 1, _('Simbólica'),
2, _(u'Nominal'), 2, _('Nominal'),
3, _(u'Secreta'), 3, _('Secreta'),
) )
sessao_plenaria = models.ForeignKey(SessaoPlenaria) sessao_plenaria = models.ForeignKey(SessaoPlenaria)
materia = models.ForeignKey(MateriaLegislativa) materia = models.ForeignKey(MateriaLegislativa)
data_ordem = models.DateField(verbose_name=_(u'Data da Sessão')) data_ordem = models.DateField(verbose_name=_('Data da Sessão'))
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Ementa')) observacao = models.TextField(blank=True, null=True, verbose_name=_('Ementa'))
numero_ordem = models.IntegerField(verbose_name=_(u'Nº Ordem')) numero_ordem = models.IntegerField(verbose_name=_('Nº Ordem'))
resultado = models.TextField(blank=True, null=True) resultado = models.TextField(blank=True, null=True)
tipo_votacao = models.IntegerField(verbose_name=_(u'Tipo de votação'), choices=TIPO_VOTACAO_CHOICES) tipo_votacao = models.IntegerField(verbose_name=_('Tipo de votação'), choices=TIPO_VOTACAO_CHOICES)
class Meta: class Meta:
abstract = True abstract = True
def __unicode__(self): def __unicode__(self):
return u'%s - %s' % (self.numero_ordem, self.sessao_plenaria) return '%s - %s' % (self.numero_ordem, self.sessao_plenaria)
class ExpedienteMateria(AbstractOrdemDia): class ExpedienteMateria(AbstractOrdemDia):
class Meta: class Meta:
verbose_name = _(u'Matéria do Expediente') verbose_name = _('Matéria do Expediente')
verbose_name_plural = _(u'Matérias do Expediente') verbose_name_plural = _('Matérias do Expediente')
class TipoExpediente(models.Model): class TipoExpediente(models.Model):
nome = models.CharField(max_length=100, verbose_name=_(u'Tipo')) nome = models.CharField(max_length=100, verbose_name=_('Tipo'))
class Meta: class Meta:
verbose_name = _(u'Tipo de Expediente') verbose_name = _('Tipo de Expediente')
verbose_name_plural = _(u'Tipos de Expediente') verbose_name_plural = _('Tipos de Expediente')
def __unicode__(self): def __unicode__(self):
return self.nome return self.nome
@ -94,14 +94,14 @@ class TipoExpediente(models.Model):
class ExpedienteSessao(models.Model): # ExpedienteSessaoPlenaria class ExpedienteSessao(models.Model): # ExpedienteSessaoPlenaria
sessao_plenaria = models.ForeignKey(SessaoPlenaria) sessao_plenaria = models.ForeignKey(SessaoPlenaria)
tipo = models.ForeignKey(TipoExpediente) tipo = models.ForeignKey(TipoExpediente)
conteudo = models.TextField(blank=True, null=True, verbose_name=_(u'Conteúdo do expediente')) conteudo = models.TextField(blank=True, null=True, verbose_name=_('Conteúdo do expediente'))
class Meta: class Meta:
verbose_name = _(u'Expediente de Sessão Plenaria') verbose_name = _('Expediente de Sessão Plenaria')
verbose_name_plural = _(u'Expedientes de Sessão Plenaria') verbose_name_plural = _('Expedientes de Sessão Plenaria')
def __unicode__(self): def __unicode__(self):
return u'%s - %s' % (self.tipo, self.sessao_plenaria) return '%s - %s' % (self.tipo, self.sessao_plenaria)
class IntegranteMesa(models.Model): # MesaSessaoPlenaria class IntegranteMesa(models.Model): # MesaSessaoPlenaria
@ -110,24 +110,24 @@ class IntegranteMesa(models.Model): # MesaSessaoPlenaria
parlamentar = models.ForeignKey(Parlamentar) parlamentar = models.ForeignKey(Parlamentar)
class Meta: class Meta:
verbose_name = _(u'Participação em Mesa de Sessão Plenaria') verbose_name = _('Participação em Mesa de Sessão Plenaria')
verbose_name_plural = _(u'Participações em Mesas de Sessão Plenaria') verbose_name_plural = _('Participações em Mesas de Sessão Plenaria')
def __unicode__(self): def __unicode__(self):
return u'%s - %s' % (self.cargo, self.parlamentar) return '%s - %s' % (self.cargo, self.parlamentar)
class AbstractOrador(models.Model): # Oradores class AbstractOrador(models.Model): # Oradores
sessao_plenaria = models.ForeignKey(SessaoPlenaria) sessao_plenaria = models.ForeignKey(SessaoPlenaria)
parlamentar = models.ForeignKey(Parlamentar, verbose_name=_(u'Parlamentar')) parlamentar = models.ForeignKey(Parlamentar, verbose_name=_('Parlamentar'))
numero_ordem = models.IntegerField(verbose_name=_(u'Ordem de pronunciamento')) numero_ordem = models.IntegerField(verbose_name=_('Ordem de pronunciamento'))
url_discurso = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'URL Vídeo')) url_discurso = models.CharField(max_length=150, blank=True, null=True, verbose_name=_('URL Vídeo'))
class Meta: class Meta:
abstract = True abstract = True
def __unicode__(self): def __unicode__(self):
return _(u'%(nome)s (%(numero)sº orador)') % { return _('%(nome)s (%(numero)sº orador)') % {
'nome': self.parlamentar, 'nome': self.parlamentar,
'numero': self.numero_ordem} 'numero': self.numero_ordem}
@ -135,22 +135,22 @@ class AbstractOrador(models.Model): # Oradores
class Orador(AbstractOrador): # Oradores class Orador(AbstractOrador): # Oradores
class Meta: class Meta:
verbose_name = _(u'Orador das Explicações Pessoais') verbose_name = _('Orador das Explicações Pessoais')
verbose_name_plural = _(u'Oradores das Explicações Pessoais') verbose_name_plural = _('Oradores das Explicações Pessoais')
class OradorExpediente(AbstractOrador): # OradoresExpediente class OradorExpediente(AbstractOrador): # OradoresExpediente
class Meta: class Meta:
verbose_name = _(u'Orador do Expediente') verbose_name = _('Orador do Expediente')
verbose_name_plural = _(u'Oradores do Expediente') verbose_name_plural = _('Oradores do Expediente')
class OrdemDia(AbstractOrdemDia): class OrdemDia(AbstractOrdemDia):
class Meta: class Meta:
verbose_name = _(u'Matéria da Ordem do Dia') verbose_name = _('Matéria da Ordem do Dia')
verbose_name_plural = _(u'Matérias da Ordem do Dia') verbose_name_plural = _('Matérias da Ordem do Dia')
class PresencaOrdemDia(models.Model): # OrdemDiaPresenca class PresencaOrdemDia(models.Model): # OrdemDiaPresenca
@ -159,36 +159,36 @@ class PresencaOrdemDia(models.Model): # OrdemDiaPresenca
data_ordem = models.DateField() data_ordem = models.DateField()
class Meta: class Meta:
verbose_name = _(u'Presença da Ordem do Dia') verbose_name = _('Presença da Ordem do Dia')
verbose_name_plural = _(u'Presenças da Ordem do Dia') verbose_name_plural = _('Presenças da Ordem do Dia')
def __unicode__(self): def __unicode__(self):
return self.parlamentar return self.parlamentar
class TipoResultadoVotacao(models.Model): class TipoResultadoVotacao(models.Model):
nome = models.CharField(max_length=100, verbose_name=_(u'Tipo')) nome = models.CharField(max_length=100, verbose_name=_('Tipo'))
class Meta: class Meta:
verbose_name = _(u'Tipo de Resultado de Votação') verbose_name = _('Tipo de Resultado de Votação')
verbose_name_plural = _(u'Tipos de Resultado de Votação') verbose_name_plural = _('Tipos de Resultado de Votação')
def __unicode__(self): def __unicode__(self):
return self.nome return self.nome
class RegistroVotacao(models.Model): class RegistroVotacao(models.Model):
tipo_resultado_votacao = models.ForeignKey(TipoResultadoVotacao, verbose_name=_(u'Resultado da Votação')) tipo_resultado_votacao = models.ForeignKey(TipoResultadoVotacao, verbose_name=_('Resultado da Votação'))
materia = models.ForeignKey(MateriaLegislativa) materia = models.ForeignKey(MateriaLegislativa)
ordem = models.ForeignKey(OrdemDia) ordem = models.ForeignKey(OrdemDia)
numero_votos_sim = models.IntegerField(verbose_name=_(u'Sim')) numero_votos_sim = models.IntegerField(verbose_name=_('Sim'))
numero_votos_nao = models.IntegerField(verbose_name=_(u'Não')) numero_votos_nao = models.IntegerField(verbose_name=_('Não'))
numero_abstencoes = models.IntegerField(verbose_name=_(u'Abstenções')) numero_abstencoes = models.IntegerField(verbose_name=_('Abstenções'))
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observações')) observacao = models.TextField(blank=True, null=True, verbose_name=_('Observações'))
class Meta: class Meta:
verbose_name = _(u'Votação') verbose_name = _('Votação')
verbose_name_plural = _(u'Votações') verbose_name_plural = _('Votações')
def __unicode__(self): def __unicode__(self):
return self.materia # XXX ? return self.materia # XXX ?
@ -201,8 +201,8 @@ class VotoParlamentar(models.Model): # RegistroVotacaoParlamentar
voto = models.CharField(max_length=10) voto = models.CharField(max_length=10)
class Meta: class Meta:
verbose_name = _(u'Registro de Votação de Parlamentar') verbose_name = _('Registro de Votação de Parlamentar')
verbose_name_plural = _(u'Registros de Votações de Parlamentares') verbose_name_plural = _('Registros de Votações de Parlamentares')
def __unicode__(self): def __unicode__(self):
return self.parlamentar # XXX ? return self.parlamentar # XXX ?
@ -214,8 +214,8 @@ class SessaoPlenariaPresenca(models.Model):
data_sessao = models.DateField(blank=True, null=True) data_sessao = models.DateField(blank=True, null=True)
class Meta: class Meta:
verbose_name = _(u'Presença em Sessão Plenária') verbose_name = _('Presença em Sessão Plenária')
verbose_name_plural = _(u'Presenças em Sessões Plenárias') verbose_name_plural = _('Presenças em Sessões Plenárias')
def __unicode__(self): def __unicode__(self):
return self.parlamentar # XXX ? return self.parlamentar # XXX ?

Loading…
Cancel
Save