Browse Source

Apply autopep8

autopep8 --in-place --exclude migrations -r .
pull/6/head
Marcio Mazza 10 years ago
parent
commit
529146a7e8
  1. 12
      base/models.py
  2. 63
      comissoes/models.py
  3. 4
      comissoes/urls.py
  4. 5
      comissoes/views.py
  5. 9
      legacy/migration.py
  6. 36
      legacy/models.py
  7. 21
      legacy/scripts/scrap_original_forms.py
  8. 7
      legacy/scripts/study.py
  9. 26
      lexml/models.py
  10. 201
      materia/models.py
  11. 72
      norma/models.py
  12. 149
      parlamentares/models.py
  13. 77
      protocoloadm/models.py
  14. 3
      sapl/urls.py
  15. 3
      sapl/utils.py
  16. 38
      sessao/models.py

12
base/models.py

@ -14,13 +14,17 @@ class CasaLegislativa(models.Model):
uf = models.CharField(max_length=100, verbose_name=_('UF')) uf = models.CharField(max_length=100, verbose_name=_('UF'))
telefone = models.CharField(max_length=100, verbose_name=_('Telefone')) telefone = models.CharField(max_length=100, verbose_name=_('Telefone'))
fax = models.CharField(max_length=100, verbose_name=_('Fax')) fax = models.CharField(max_length=100, verbose_name=_('Fax'))
cor_fundo = models.CharField(max_length=100, verbose_name=_('Cor de fundo')) cor_fundo = models.CharField(
cor_borda = models.CharField(max_length=100, verbose_name=_('Cor da borda')) max_length=100, verbose_name=_('Cor de fundo'))
cor_principal = models.CharField(max_length=100, verbose_name=_('Cor principal')) cor_borda = models.CharField(
max_length=100, verbose_name=_('Cor da borda'))
cor_principal = models.CharField(
max_length=100, verbose_name=_('Cor principal'))
logotipo = models.CharField(max_length=100, verbose_name=_('Logotipo')) logotipo = models.CharField(max_length=100, verbose_name=_('Logotipo'))
endereco_web = models.CharField(max_length=100, verbose_name=_('HomePage')) endereco_web = models.CharField(max_length=100, verbose_name=_('HomePage'))
email = models.CharField(max_length=100, verbose_name=_('E-mail')) email = models.CharField(max_length=100, verbose_name=_('E-mail'))
informacao_geral = models.CharField(max_length=100, verbose_name=_('Informação Geral')) informacao_geral = models.CharField(
max_length=100, verbose_name=_('Informação Geral'))
class Meta: class Meta:
verbose_name = _('Casa Legislativa') verbose_name = _('Casa Legislativa')

63
comissoes/models.py

@ -12,9 +12,11 @@ class TipoComissao(models.Model):
'P', _('Permanente'), 'P', _('Permanente'),
) )
nome = models.CharField(max_length=50, verbose_name=_('Nome')) nome = models.CharField(max_length=50, verbose_name=_('Nome'))
natureza = models.CharField(max_length=1, verbose_name=_('Natureza'), choices=NATUREZA_CHOICES) natureza = models.CharField(
max_length=1, verbose_name=_('Natureza'), choices=NATUREZA_CHOICES)
sigla = models.CharField(max_length=10, verbose_name=_('Sigla')) sigla = models.CharField(max_length=10, verbose_name=_('Sigla'))
dispositivo_regimental = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Dispositivo Regimental')) dispositivo_regimental = models.CharField(
max_length=50, blank=True, null=True, verbose_name=_('Dispositivo Regimental'))
class Meta: class Meta:
verbose_name = _('Tipo de Comissão') verbose_name = _('Tipo de Comissão')
@ -29,21 +31,36 @@ class Comissao(models.Model):
nome = models.CharField(max_length=60, verbose_name=_('Nome')) nome = models.CharField(max_length=60, verbose_name=_('Nome'))
sigla = models.CharField(max_length=10, verbose_name=_('Sigla')) sigla = models.CharField(max_length=10, verbose_name=_('Sigla'))
data_criacao = models.DateField(verbose_name=_('Data de Criação')) data_criacao = models.DateField(verbose_name=_('Data de Criação'))
data_extincao = models.DateField(blank=True, null=True, verbose_name=_('Data de Extinção')) data_extincao = models.DateField(
apelido_temp = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('Apelido')) blank=True, null=True, verbose_name=_('Data de Extinção'))
data_instalacao_temp = models.DateField(blank=True, null=True, verbose_name=_('Data Instalação')) apelido_temp = models.CharField(
data_final_prevista_temp = models.DateField(blank=True, null=True, verbose_name=_('Data Prevista Término')) max_length=100, blank=True, null=True, verbose_name=_('Apelido'))
data_prorrogada_temp = models.DateField(blank=True, null=True, verbose_name=_('Novo Prazo')) data_instalacao_temp = models.DateField(
data_fim_comissao = models.DateField(blank=True, null=True, verbose_name=_('Data Término')) blank=True, null=True, verbose_name=_('Data Instalação'))
secretario = models.CharField(max_length=30, blank=True, null=True, verbose_name=_('Secretário')) data_final_prevista_temp = models.DateField(
telefone_reuniao = models.CharField(max_length=15, blank=True, null=True, verbose_name=_('Tel. Sala Reunião')) blank=True, null=True, verbose_name=_('Data Prevista Término'))
endereco_secretaria = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('Endereço Secretaria')) data_prorrogada_temp = models.DateField(
telefone_secretaria = models.CharField(max_length=15, blank=True, null=True, verbose_name=_('Tel. Secretaria')) blank=True, null=True, verbose_name=_('Novo Prazo'))
fax_secretaria = models.CharField(max_length=15, blank=True, null=True, verbose_name=_('Fax Secretaria')) data_fim_comissao = models.DateField(
agenda_reuniao = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('Data/Hora Reunião')) blank=True, null=True, verbose_name=_('Data Término'))
local_reuniao = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('Local Reunião')) secretario = models.CharField(
finalidade = models.TextField(blank=True, null=True, verbose_name=_('Finalidade')) max_length=30, blank=True, null=True, verbose_name=_('Secretário'))
email = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('E-mail')) 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=_('Endereço 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=_('Fax Secretaria'))
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=_('Local Reunião'))
finalidade = models.TextField(
blank=True, null=True, verbose_name=_('Finalidade'))
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:
@ -56,7 +73,8 @@ class Comissao(models.Model):
class Periodo(models.Model): # PeriodoCompComissao class Periodo(models.Model): # PeriodoCompComissao
data_inicio = models.DateField(verbose_name=_('Data Início')) data_inicio = models.DateField(verbose_name=_('Data Início'))
data_fim = models.DateField(blank=True, null=True, verbose_name=_('Data Fim')) data_fim = models.DateField(
blank=True, null=True, verbose_name=_('Data Fim'))
class Meta: class Meta:
verbose_name = _('Período de composição de Comissão') verbose_name = _('Período de composição de Comissão')
@ -96,9 +114,12 @@ class Participacao(models.Model): # ComposicaoComissao
cargo = models.ForeignKey(CargoComissao) cargo = models.ForeignKey(CargoComissao)
titular = models.BooleanField(verbose_name=_('Titular')) titular = models.BooleanField(verbose_name=_('Titular'))
data_designacao = models.DateField(verbose_name=_('Data Designação')) data_designacao = models.DateField(verbose_name=_('Data Designação'))
data_desligamento = models.DateField(blank=True, null=True, verbose_name=_('Data Desligamento')) data_desligamento = models.DateField(
motivo_desligamento = models.CharField(max_length=150, blank=True, null=True, verbose_name=_('Motivo Desligamento')) blank=True, null=True, verbose_name=_('Data Desligamento'))
observacao = models.CharField(max_length=150, blank=True, null=True, verbose_name=_('Observação')) 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=_('Observação'))
class Meta: class Meta:
verbose_name = _('Participação em Comissão') verbose_name = _('Participação em Comissão')

4
comissoes/urls.py

@ -1,10 +1,10 @@
from django.conf.urls import patterns, url from django.conf.urls import patterns, url
from comissoes.views import (ListaComissoes, from comissoes.views import (ListaComissoes,
CriarComissao) CriarComissao)
urlpatterns = patterns( urlpatterns = patterns(
'comissoes.views', 'comissoes.views',
url(r'^$', ListaComissoes.as_view(), name='ListaComissoes'), url(r'^$', ListaComissoes.as_view(), name='ListaComissoes'),
#url(r'^incluir$', CriarComissao.as_view(), name='CriarComissao'), #url(r'^incluir$', CriarComissao.as_view(), name='CriarComissao'),
) )

5
comissoes/views.py

@ -4,17 +4,20 @@ from django.shortcuts import render, get_object_or_404
from comissoes.models import Comissao from comissoes.models import Comissao
class ListaComissoes(ListView): class ListaComissoes(ListView):
model = Comissao model = Comissao
context_object_name = 'comissoes' context_object_name = 'comissoes'
template_name = 'comissoes/lista_comissao.html' template_name = 'comissoes/lista_comissao.html'
class CriarComissao(CreateView): class CriarComissao(CreateView):
model = Comissao model = Comissao
success_url = reverse_lazy('ListaComissoes') success_url = reverse_lazy('ListaComissoes')
#template_name = 'comissoes/criar_comissao.html' #template_name = 'comissoes/criar_comissao.html'
#fields = [''] #fields = ['']
class DetalheComissao(ListView): class DetalheComissao(ListView):
model = Comissao model = Comissao
context_object_name = 'comissoes' context_object_name = 'comissoes'

9
legacy/migration.py

@ -48,7 +48,8 @@ def get_renames():
field_renames = {} field_renames = {}
model_renames = {} model_renames = {}
for app in appconfs: for app in appconfs:
app_rename_data = yaml.load(pkg_resources.resource_string(app.module.__name__, 'legacy.yaml')) app_rename_data = yaml.load(
pkg_resources.resource_string(app.module.__name__, 'legacy.yaml'))
for model_name, renames in app_rename_data.items(): for model_name, renames in app_rename_data.items():
match = MODEL_RENAME_PATTERN.match(model_name) match = MODEL_RENAME_PATTERN.match(model_name)
if match: if match:
@ -118,7 +119,8 @@ def get_participacao_composicao(obj):
model_field = Composicao._meta.get_field(new_field) model_field = Composicao._meta.get_field(new_field)
value = get_fk_related(model_field, value) value = get_fk_related(model_field, value)
setattr(new, new_field, value) setattr(new, new_field, value)
previous = Composicao.objects.filter(comissao=new.comissao, periodo=new.periodo) previous = Composicao.objects.filter(
comissao=new.comissao, periodo=new.periodo)
if previous: if previous:
assert len(previous) == 1 assert len(previous) == 1
return previous[0] return previous[0]
@ -240,7 +242,8 @@ class DataMigrator(object):
for item in obj: for item in obj:
self._do_migrate(item) self._do_migrate(item)
else: else:
raise TypeError('Parameter must be a Model, AppConfig or a sequence of them') raise TypeError(
'Parameter must be a Model, AppConfig or a sequence of them')
def migrate_model(self, model): def migrate_model(self, model):
print('Migrating %s...' % model.__name__) print('Migrating %s...' % model.__name__)

36
legacy/models.py

@ -139,7 +139,8 @@ class Comissao(models.Model):
end_secretaria = models.CharField(max_length=100, blank=True, null=True) end_secretaria = models.CharField(max_length=100, blank=True, null=True)
num_tel_secretaria = models.CharField(max_length=15, blank=True, null=True) num_tel_secretaria = models.CharField(max_length=15, blank=True, null=True)
num_fax_secretaria = models.CharField(max_length=15, blank=True, null=True) num_fax_secretaria = models.CharField(max_length=15, blank=True, null=True)
des_agenda_reuniao = models.CharField(max_length=100, blank=True, null=True) des_agenda_reuniao = models.CharField(
max_length=100, blank=True, null=True)
loc_reuniao = models.CharField(max_length=100, blank=True, null=True) loc_reuniao = models.CharField(max_length=100, blank=True, null=True)
txt_finalidade = models.TextField(blank=True, null=True) txt_finalidade = models.TextField(blank=True, null=True)
end_email = models.CharField(max_length=100, blank=True, null=True) end_email = models.CharField(max_length=100, blank=True, null=True)
@ -171,7 +172,8 @@ class ComposicaoComissao(models.Model):
ind_titular = models.IntegerField() ind_titular = models.IntegerField()
dat_designacao = models.DateField() dat_designacao = models.DateField()
dat_desligamento = models.DateField(blank=True, null=True) dat_desligamento = models.DateField(blank=True, null=True)
des_motivo_desligamento = models.CharField(max_length=150, blank=True, null=True) des_motivo_desligamento = models.CharField(
max_length=150, blank=True, null=True)
obs_composicao = models.CharField(max_length=150, blank=True, null=True) obs_composicao = models.CharField(max_length=150, blank=True, null=True)
ind_excluido = models.IntegerField() ind_excluido = models.IntegerField()
@ -227,7 +229,8 @@ class DocumentoAcessorio(models.Model):
tip_documento = models.IntegerField() tip_documento = models.IntegerField()
nom_documento = models.CharField(max_length=30) nom_documento = models.CharField(max_length=30)
dat_documento = models.DateField(blank=True, null=True) dat_documento = models.DateField(blank=True, null=True)
nom_autor_documento = models.CharField(max_length=50, blank=True, null=True) nom_autor_documento = models.CharField(
max_length=50, blank=True, null=True)
txt_ementa = models.TextField(blank=True, null=True) txt_ementa = models.TextField(blank=True, null=True)
txt_indexacao = models.TextField(blank=True, null=True) txt_indexacao = models.TextField(blank=True, null=True)
ind_excluido = models.IntegerField() ind_excluido = models.IntegerField()
@ -244,7 +247,8 @@ class DocumentoAcessorioAdministrativo(models.Model):
nom_documento = models.CharField(max_length=30) nom_documento = models.CharField(max_length=30)
nom_arquivo = models.CharField(max_length=100) nom_arquivo = models.CharField(max_length=100)
dat_documento = models.DateField(blank=True, null=True) dat_documento = models.DateField(blank=True, null=True)
nom_autor_documento = models.CharField(max_length=50, blank=True, null=True) nom_autor_documento = models.CharField(
max_length=50, blank=True, null=True)
txt_assunto = models.TextField(blank=True, null=True) txt_assunto = models.TextField(blank=True, null=True)
txt_indexacao = models.TextField(blank=True, null=True) txt_indexacao = models.TextField(blank=True, null=True)
ind_excluido = models.IntegerField() ind_excluido = models.IntegerField()
@ -385,7 +389,8 @@ class LexmlRegistroPublicador(models.Model):
class Localidade(models.Model): class Localidade(models.Model):
cod_localidade = models.IntegerField(primary_key=True) cod_localidade = models.IntegerField(primary_key=True)
nom_localidade = models.CharField(max_length=50, blank=True, null=True) nom_localidade = models.CharField(max_length=50, blank=True, null=True)
nom_localidade_pesq = models.CharField(max_length=50, blank=True, null=True) nom_localidade_pesq = models.CharField(
max_length=50, blank=True, null=True)
tip_localidade = models.CharField(max_length=1, blank=True, null=True) tip_localidade = models.CharField(max_length=1, blank=True, null=True)
sgl_uf = models.CharField(max_length=2, blank=True, null=True) sgl_uf = models.CharField(max_length=2, blank=True, null=True)
sgl_regiao = models.CharField(max_length=2, blank=True, null=True) sgl_regiao = models.CharField(max_length=2, blank=True, null=True)
@ -468,7 +473,8 @@ class MesaSessaoPlenaria(models.Model):
class Meta: class Meta:
managed = False managed = False
db_table = 'mesa_sessao_plenaria' db_table = 'mesa_sessao_plenaria'
unique_together = (('cod_cargo', 'cod_sessao_leg', 'cod_parlamentar', 'cod_sessao_plen'),) unique_together = (
('cod_cargo', 'cod_sessao_leg', 'cod_parlamentar', 'cod_sessao_plen'),)
class NivelInstrucao(models.Model): class NivelInstrucao(models.Model):
@ -490,7 +496,8 @@ class NormaJuridica(models.Model):
tip_esfera_federacao = models.CharField(max_length=1) tip_esfera_federacao = models.CharField(max_length=1)
dat_norma = models.DateField(blank=True, null=True) dat_norma = models.DateField(blank=True, null=True)
dat_publicacao = models.DateField(blank=True, null=True) dat_publicacao = models.DateField(blank=True, null=True)
des_veiculo_publicacao = models.CharField(max_length=30, blank=True, null=True) des_veiculo_publicacao = models.CharField(
max_length=30, blank=True, null=True)
num_pag_inicio_publ = models.IntegerField(blank=True, null=True) num_pag_inicio_publ = models.IntegerField(blank=True, null=True)
num_pag_fim_publ = models.IntegerField(blank=True, null=True) num_pag_fim_publ = models.IntegerField(blank=True, null=True)
txt_ementa = models.TextField() txt_ementa = models.TextField()
@ -627,9 +634,12 @@ class Parlamentar(models.Model):
num_rg = models.CharField(max_length=15, blank=True, null=True) num_rg = models.CharField(max_length=15, blank=True, null=True)
num_tit_eleitor = models.CharField(max_length=15, blank=True, null=True) num_tit_eleitor = models.CharField(max_length=15, blank=True, null=True)
cod_casa = models.IntegerField() cod_casa = models.IntegerField()
num_gab_parlamentar = models.CharField(max_length=10, blank=True, null=True) num_gab_parlamentar = models.CharField(
num_tel_parlamentar = models.CharField(max_length=50, blank=True, null=True) max_length=10, blank=True, null=True)
num_fax_parlamentar = models.CharField(max_length=50, blank=True, null=True) num_tel_parlamentar = models.CharField(
max_length=50, blank=True, null=True)
num_fax_parlamentar = models.CharField(
max_length=50, blank=True, null=True)
end_residencial = models.CharField(max_length=100, blank=True, null=True) end_residencial = models.CharField(max_length=100, blank=True, null=True)
cod_localidade_resid = models.IntegerField(blank=True, null=True) cod_localidade_resid = models.IntegerField(blank=True, null=True)
num_cep_resid = models.CharField(max_length=9, blank=True, null=True) num_cep_resid = models.CharField(max_length=9, blank=True, null=True)
@ -683,7 +693,8 @@ class Proposicao(models.Model):
txt_descricao = models.CharField(max_length=100) txt_descricao = models.CharField(max_length=100)
cod_mat_ou_doc = models.IntegerField(blank=True, null=True) cod_mat_ou_doc = models.IntegerField(blank=True, null=True)
dat_devolucao = models.DateTimeField(blank=True, null=True) dat_devolucao = models.DateTimeField(blank=True, null=True)
txt_justif_devolucao = models.CharField(max_length=200, blank=True, null=True) txt_justif_devolucao = models.CharField(
max_length=200, blank=True, null=True)
num_proposicao = models.IntegerField(blank=True, null=True) num_proposicao = models.IntegerField(blank=True, null=True)
ind_excluido = models.IntegerField() ind_excluido = models.IntegerField()
@ -876,7 +887,8 @@ class TipoComissao(models.Model):
nom_tipo_comissao = models.CharField(max_length=50) nom_tipo_comissao = models.CharField(max_length=50)
sgl_natureza_comissao = models.CharField(max_length=1) sgl_natureza_comissao = models.CharField(max_length=1)
sgl_tipo_comissao = models.CharField(max_length=10) sgl_tipo_comissao = models.CharField(max_length=10)
des_dispositivo_regimental = models.CharField(max_length=50, blank=True, null=True) des_dispositivo_regimental = models.CharField(
max_length=50, blank=True, null=True)
ind_excluido = models.IntegerField() ind_excluido = models.IntegerField()
class Meta: class Meta:

21
legacy/scripts/scrap_original_forms.py

@ -11,15 +11,18 @@ from .migration import appconfs
from .utils import listify, getsourcelines from .utils import listify, getsourcelines
assert appconfs # to prevent removal by automatic organize imports on this file # to prevent removal by automatic organize imports on this file
assert appconfs
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('\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]
if names: if names:
name = names[0].split('_', 1)[-1] name = names[0].split('_', 1)[-1]
yield name, label yield name, label
@ -41,7 +44,8 @@ def extract_title_and_fieldsets(model):
# 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
assert all(not c.strip() for c in form.children if isinstance(c, NavigableString)) assert all(not c.strip()
for c in form.children if isinstance(c, NavigableString))
title = soup.find('h1', {'class': 'firstHeading'}) title = soup.find('h1', {'class': 'firstHeading'})
title = title.text.strip() if title else None title = title.text.strip() if title else None
@ -66,7 +70,8 @@ def print_title_and_fieldsets(model):
for fieldset in fieldsets: for fieldset in fieldsets:
print(fieldset['legend']) print(fieldset['legend'])
for line in fieldset['lines']: for line in fieldset['lines']:
print(' ' + ' | '.join('%s : %s' % (id, label) for id, label in line)) print(' ' + ' | '.join('%s : %s' % (id, label)
for id, label in line))
def extract_verbose_names(model): def extract_verbose_names(model):
@ -143,10 +148,12 @@ def source_with_verbose_names(model):
title_singular = ' '.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', 'ção', title_singular) title_singular = re.sub('cao\\b', 'ção', title_singular)
title_singular = re.sub('ao\\b', 'ão', title_singular) title_singular = re.sub('ao\\b', 'ão', title_singular)
title_plural = add_s(title_singular.replace('ção', 'ções').replace('ão', 'õ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('ções', 'ção').replace('ões', 'ã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

7
legacy/scripts/study.py

@ -5,6 +5,9 @@ from .migration_base import legacy_app
for model in apps.get_app_config('legacy').get_models(): for model in apps.get_app_config('legacy').get_models():
if 'ind_excluido' in [f.name for f in model._meta.fields]: if 'ind_excluido' in [f.name for f in model._meta.fields]:
print(model, model.objects.values_list('ind_excluido', flat=True).distinct()) print(model, model.objects.values_list(
'ind_excluido', flat=True).distinct())
legacy_models_without_ind_excluido = [m for m in legacy_app.models.values() if not any(f.name == 'ind_excluido' for f in m._meta.fields)] legacy_models_without_ind_excluido = [
m for m in legacy_app.models.values()
if not any(f.name == 'ind_excluido' for f in m._meta.fields)]

26
lexml/models.py

@ -7,11 +7,15 @@ class LexmlProvedor(models.Model): # LexmlRegistroProvedor
id_provedor = models.IntegerField(verbose_name=_('Id do provedor')) id_provedor = models.IntegerField(verbose_name=_('Id do provedor'))
nome = models.CharField(max_length=255, verbose_name=_('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=_('E-mail do responsável')) email_responsavel = models.CharField(
nome_responsavel = models.CharField(max_length=255, blank=True, null=True, verbose_name=_('Nome do responsável')) 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=_('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=_('Id do responsável')) id_responsavel = models.IntegerField(
xml = models.TextField(blank=True, null=True, verbose_name=_('XML fornecido pela equipe do LexML:')) blank=True, null=True, verbose_name=_('Id do responsável'))
xml = models.TextField(
blank=True, null=True, verbose_name=_('XML fornecido pela equipe do LexML:'))
class Meta: class Meta:
verbose_name = _('Provedor Lexml') verbose_name = _('Provedor Lexml')
@ -23,16 +27,20 @@ class LexmlProvedor(models.Model): # LexmlRegistroProvedor
class LexmlPublicador(models.Model): class LexmlPublicador(models.Model):
id_publicador = models.IntegerField(verbose_name=_('Id do publicador')) id_publicador = models.IntegerField(verbose_name=_('Id do publicador'))
nome = models.CharField(max_length=255, verbose_name=_('Nome do publicador')) nome = models.CharField(
email_responsavel = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('E-mail do responsável')) max_length=255, verbose_name=_('Nome do publicador'))
sigla = models.CharField(max_length=255, blank=True, null=True, verbose_name=_('Sigla do Publicador')) email_responsavel = models.CharField(
nome_responsavel = models.CharField(max_length=255, blank=True, null=True, verbose_name=_('Nome do responsável')) 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=_('Sigla do Publicador'))
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=_('Id do responsável')) id_responsavel = models.IntegerField(verbose_name=_('Id do responsável'))
class Meta: class Meta:
verbose_name = _('Publicador Lexml') verbose_name = _('Publicador Lexml')
verbose_name_plural = _('Publicadores Lexml') verbose_name_plural = _('Publicadores Lexml')
def __str__(self): def __str__(self):
return self.nome return self.nome

201
materia/models.py

@ -55,26 +55,46 @@ class MateriaLegislativa(models.Model):
tipo = models.ForeignKey(TipoMateriaLegislativa, verbose_name=_('Tipo')) tipo = models.ForeignKey(TipoMateriaLegislativa, verbose_name=_('Tipo'))
numero = models.IntegerField(verbose_name=_('Número')) numero = models.IntegerField(verbose_name=_('Número'))
ano = models.SmallIntegerField(verbose_name=_('Ano')) ano = models.SmallIntegerField(verbose_name=_('Ano'))
numero_protocolo = models.IntegerField(blank=True, null=True, verbose_name=_('Núm. Protocolo')) numero_protocolo = models.IntegerField(
data_apresentacao = models.DateField(blank=True, null=True, verbose_name=_('Data Apresentação')) blank=True, null=True, verbose_name=_('Núm. Protocolo'))
tipo_apresentacao = models.CharField(max_length=1, blank=True, null=True, verbose_name=_('Tipo de Apresentação'), choices=TIPO_APRESENTACAO_CHOICES) data_apresentacao = models.DateField(
regime_tramitacao = models.ForeignKey(RegimeTramitacao, verbose_name=_('Regime Tramitação')) blank=True, null=True, verbose_name=_('Data Apresentação'))
data_publicacao = models.DateField(blank=True, null=True, verbose_name=_('Data Publicação')) tipo_apresentacao = models.CharField(
tipo_origem_externa = models.ForeignKey(TipoMateriaLegislativa, blank=True, null=True, related_name='+', verbose_name=_('Tipo')) max_length=1, blank=True, null=True,
numero_origem_externa = models.CharField(max_length=5, blank=True, null=True, verbose_name=_('Número')) verbose_name=_('Tipo de Apresentação'),
ano_origem_externa = models.SmallIntegerField(blank=True, null=True, verbose_name=_('Ano')) choices=TIPO_APRESENTACAO_CHOICES)
data_origem_externa = models.DateField(blank=True, null=True, verbose_name=_('Data')) regime_tramitacao = models.ForeignKey(
local_origem_externa = models.ForeignKey(Origem, blank=True, null=True, verbose_name=_('Local Origem')) RegimeTramitacao, verbose_name=_('Regime Tramitação'))
apelido = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Apelido')) data_publicacao = models.DateField(
dias_prazo = models.IntegerField(blank=True, null=True, verbose_name=_('Dias Prazo')) blank=True, null=True, verbose_name=_('Data Publicação'))
data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_('Data Fim Prazo')) 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=_('Número'))
ano_origem_externa = models.SmallIntegerField(
blank=True, null=True, verbose_name=_('Ano'))
data_origem_externa = models.DateField(
blank=True, null=True, verbose_name=_('Data'))
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=_('Apelido'))
dias_prazo = models.IntegerField(
blank=True, null=True, verbose_name=_('Dias Prazo'))
data_fim_prazo = models.DateField(
blank=True, null=True, verbose_name=_('Data Fim Prazo'))
em_tramitacao = models.BooleanField(verbose_name=_('Em Tramitação?')) em_tramitacao = models.BooleanField(verbose_name=_('Em Tramitação?'))
polemica = models.NullBooleanField(blank=True, verbose_name=_('Matéria Polêmica?')) polemica = models.NullBooleanField(
objeto = models.CharField(max_length=150, blank=True, null=True, verbose_name=_('Objeto')) blank=True, verbose_name=_('Matéria Polêmica?'))
complementar = models.NullBooleanField(blank=True, verbose_name=_('É Complementar?')) objeto = models.CharField(
max_length=150, blank=True, null=True, verbose_name=_('Objeto'))
complementar = models.NullBooleanField(
blank=True, verbose_name=_('É Complementar?'))
ementa = models.TextField(verbose_name=_('Ementa')) ementa = models.TextField(verbose_name=_('Ementa'))
indexacao = models.TextField(blank=True, null=True, verbose_name=_('Indexação')) indexacao = models.TextField(
observacao = models.TextField(blank=True, null=True, verbose_name=_('Observação')) blank=True, null=True, verbose_name=_('Indexaçã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',
@ -92,7 +112,8 @@ class MateriaLegislativa(models.Model):
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=_('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:
@ -100,14 +121,15 @@ class AcompanhamentoMateria(models.Model): # AcompMateria
verbose_name_plural = _('Acompanhamentos de Matéria') verbose_name_plural = _('Acompanhamentos de Matéria')
def __str__(self): def __str__(self):
return str(self.materia) #FIXME return str(self.materia) # FIXME
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=_('Data Anexação')) data_anexacao = models.DateField(verbose_name=_('Data Anexação'))
data_desanexacao = models.DateField(blank=True, null=True, verbose_name=_('Data Desanexação')) data_desanexacao = models.DateField(
blank=True, null=True, verbose_name=_('Data Desanexação'))
class Meta: class Meta:
verbose_name = _('Anexada') verbose_name = _('Anexada')
@ -146,7 +168,8 @@ class Autor(models.Model):
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=_('Tipo')) tipo = models.ForeignKey(TipoAutor, verbose_name=_('Tipo'))
nome = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('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)
@ -196,7 +219,8 @@ class DespachoInicial(models.Model):
class TipoDocumento(models.Model): class TipoDocumento(models.Model):
descricao = models.CharField(max_length=50, verbose_name=_('Tipo Documento')) descricao = models.CharField(
max_length=50, verbose_name=_('Tipo Documento'))
class Meta: class Meta:
verbose_name = _('Tipo de Documento') verbose_name = _('Tipo de Documento')
@ -211,7 +235,8 @@ class DocumentoAcessorio(models.Model):
tipo = models.ForeignKey(TipoDocumento, verbose_name=_('Tipo')) tipo = models.ForeignKey(TipoDocumento, verbose_name=_('Tipo'))
nome = models.CharField(max_length=30, verbose_name=_('Descrição')) nome = models.CharField(max_length=30, verbose_name=_('Descrição'))
data = models.DateField(blank=True, null=True, verbose_name=_('Data')) data = models.DateField(blank=True, null=True, verbose_name=_('Data'))
autor = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Autor')) autor = models.CharField(
max_length=50, blank=True, null=True, verbose_name=_('Autor'))
ementa = models.TextField(blank=True, null=True, verbose_name=_('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)
@ -240,10 +265,12 @@ class MateriaAssunto(models.Model):
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=_('Tipo de Matéria')) tipo_materia = models.ForeignKey(
TipoMateriaLegislativa, verbose_name=_('Tipo de Matéria'))
numero_materia = models.CharField(max_length=5, verbose_name=_('Número')) numero_materia = models.CharField(max_length=5, verbose_name=_('Número'))
ano_materia = models.SmallIntegerField(verbose_name=_('Ano')) ano_materia = models.SmallIntegerField(verbose_name=_('Ano'))
data_materia = models.DateField(blank=True, null=True, verbose_name=_('Data')) data_materia = models.DateField(
blank=True, null=True, verbose_name=_('Data'))
class Meta: class Meta:
verbose_name = _('Numeração') verbose_name = _('Numeração')
@ -257,9 +284,12 @@ class Numeracao(models.Model):
class Orgao(models.Model): class Orgao(models.Model):
nome = models.CharField(max_length=60, verbose_name=_('Nome')) nome = models.CharField(max_length=60, verbose_name=_('Nome'))
sigla = models.CharField(max_length=10, verbose_name=_('Sigla')) sigla = models.CharField(max_length=10, verbose_name=_('Sigla'))
unidade_deliberativa = models.BooleanField(verbose_name=_('Unidade Deliberativa')) unidade_deliberativa = models.BooleanField(
endereco = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('Endereço')) verbose_name=_('Unidade Deliberativa'))
telefone = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Telefone')) 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=_('Telefone'))
class Meta: class Meta:
verbose_name = _('Órgão') verbose_name = _('Órgão')
@ -270,7 +300,8 @@ class Orgao(models.Model):
class TipoFimRelatoria(models.Model): class TipoFimRelatoria(models.Model):
descricao = models.CharField(max_length=50, verbose_name=_('Tipo Fim Relatoria')) descricao = models.CharField(
max_length=50, verbose_name=_('Tipo Fim Relatoria'))
class Meta: class Meta:
verbose_name = _('Tipo Fim de Relatoria') verbose_name = _('Tipo Fim de Relatoria')
@ -283,10 +314,14 @@ class TipoFimRelatoria(models.Model):
class Relatoria(models.Model): class Relatoria(models.Model):
materia = models.ForeignKey(MateriaLegislativa) materia = models.ForeignKey(MateriaLegislativa)
parlamentar = models.ForeignKey(Parlamentar, verbose_name=_('Parlamentar')) parlamentar = models.ForeignKey(Parlamentar, verbose_name=_('Parlamentar'))
tipo_fim_relatoria = models.ForeignKey(TipoFimRelatoria, blank=True, null=True, verbose_name=_('Motivo Fim Relatoria')) tipo_fim_relatoria = models.ForeignKey(
comissao = models.ForeignKey(Comissao, blank=True, null=True, verbose_name=_('Localização Atual')) TipoFimRelatoria, blank=True, null=True, verbose_name=_('Motivo Fim Relatoria'))
data_designacao_relator = models.DateField(verbose_name=_('Data Designação')) comissao = models.ForeignKey(
data_destituicao_relator = models.DateField(blank=True, null=True, verbose_name=_('Data Destituição')) Comissao, blank=True, null=True, verbose_name=_('Localização Atual'))
data_designacao_relator = models.DateField(
verbose_name=_('Data Designação'))
data_destituicao_relator = models.DateField(
blank=True, null=True, verbose_name=_('Data Destituição'))
class Meta: class Meta:
verbose_name = _('Relatoria') verbose_name = _('Relatoria')
@ -307,7 +342,8 @@ class Parecer(models.Model):
relatoria = models.ForeignKey(Relatoria) relatoria = models.ForeignKey(Relatoria)
materia = models.ForeignKey(MateriaLegislativa) materia = models.ForeignKey(MateriaLegislativa)
tipo_conclusao = models.CharField(max_length=3, blank=True, null=True) tipo_conclusao = models.CharField(max_length=3, blank=True, null=True)
tipo_apresentacao = models.CharField(max_length=1, choices=APRESENTACAO_CHOICES) tipo_apresentacao = models.CharField(
max_length=1, choices=APRESENTACAO_CHOICES)
parecer = models.TextField(blank=True, null=True) parecer = models.TextField(blank=True, null=True)
class Meta: class Meta:
@ -327,12 +363,15 @@ class TipoProposicao(models.Model):
) )
descricao = models.CharField(max_length=50, verbose_name=_('Descrição')) descricao = models.CharField(max_length=50, verbose_name=_('Descrição'))
materia_ou_documento = models.CharField(max_length=1, verbose_name=_('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=_('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=_('Tipo Matéria')) tipo_materia = models.ForeignKey(
tipo_documento = models.ForeignKey(TipoDocumento, blank=True, null=True, verbose_name=_('Tipo Documento')) TipoMateriaLegislativa, blank=True, null=True, verbose_name=_('Tipo Matéria'))
tipo_documento = models.ForeignKey(
TipoDocumento, blank=True, null=True, verbose_name=_('Tipo Documento'))
class Meta: class Meta:
verbose_name = _('Tipo de Proposição') verbose_name = _('Tipo de Proposição')
@ -347,16 +386,23 @@ class Proposicao(models.Model):
autor = models.ForeignKey(Autor) autor = models.ForeignKey(Autor)
tipo = models.ForeignKey(TipoProposicao, verbose_name=_('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=_('Data de Envio')) data_envio = models.DateTimeField(
data_recebimento = models.DateTimeField(blank=True, null=True, verbose_name=_('Data de Incorporação')) null=True, verbose_name=_('Data de Envio'))
data_recebimento = models.DateTimeField(
blank=True, null=True, verbose_name=_('Data de Incorporação'))
descricao = models.CharField(max_length=100, verbose_name=_('Descrição')) descricao = models.CharField(max_length=100, verbose_name=_('Descrição'))
data_devolucao = models.DateTimeField(blank=True, null=True, verbose_name=_('Data de devolução')) data_devolucao = models.DateTimeField(
justificativa_devolucao = models.CharField(max_length=200, blank=True, null=True, verbose_name=_('Justificativa da Devolução')) blank=True, null=True, verbose_name=_('Data de devolução'))
numero_proposicao = models.IntegerField(blank=True, null=True, verbose_name=_('')) 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=_(''))
# 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=_('Matéria')) materia = models.ForeignKey(
documento = models.ForeignKey(DocumentoAcessorio, blank=True, null=True, verbose_name=_('Documento')) MateriaLegislativa, blank=True, null=True, verbose_name=_('Matéria'))
documento = models.ForeignKey(
DocumentoAcessorio, blank=True, null=True, verbose_name=_('Documento'))
class Meta: class Meta:
verbose_name = _('Proposição') verbose_name = _('Proposição')
@ -374,8 +420,11 @@ class StatusTramitacao(models.Model):
sigla = models.CharField(max_length=10, verbose_name=_('Sigla')) sigla = models.CharField(max_length=10, verbose_name=_('Sigla'))
descricao = models.CharField(max_length=60, verbose_name=_('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,
indicador = models.CharField(max_length=1, verbose_name=_('Indicador da Tramitação'), choices=INDICADOR_CHOICES) # ind_retorno_tramitacao
indicador = models.CharField(
max_length=1, verbose_name=_('Indicador da Tramitação'),
choices=INDICADOR_CHOICES)
class Meta: class Meta:
verbose_name = _('Status de Tramitação') verbose_name = _('Status de Tramitação')
@ -388,9 +437,12 @@ class StatusTramitacao(models.Model):
class UnidadeTramitacao(models.Model): class UnidadeTramitacao(models.Model):
comissao = models.ForeignKey(Comissao, blank=True, null=True, verbose_name=_('Comissão')) comissao = models.ForeignKey(
orgao = models.ForeignKey(Orgao, blank=True, null=True, verbose_name=_('Órgão')) Comissao, blank=True, null=True, verbose_name=_('Comissão'))
parlamentar = models.ForeignKey(Parlamentar, blank=True, null=True, verbose_name=_('Parlamentar')) orgao = models.ForeignKey(
Orgao, blank=True, null=True, verbose_name=_('Órgão'))
parlamentar = models.ForeignKey(
Parlamentar, blank=True, null=True, verbose_name=_('Parlamentar'))
class Meta: class Meta:
verbose_name = _('Unidade de Tramitação') verbose_name = _('Unidade de Tramitação')
@ -404,29 +456,38 @@ class UnidadeTramitacao(models.Model):
class Tramitacao(models.Model): class Tramitacao(models.Model):
TURNO_CHOICES, \ TURNO_CHOICES, \
PRIMEIRO, SEGUNDO, UNICO, SUPLEMENTAR, FINAL, \ PRIMEIRO, SEGUNDO, UNICO, SUPLEMENTAR, FINAL, \
VOTACAO_UNICA, PRIMEIRA_VOTACAO, SEGUNDA_TERCEIRA_VOTACAO = make_choices( VOTACAO_UNICA, PRIMEIRA_VOTACAO, SEGUNDA_TERCEIRA_VOTACAO = make_choices(
'P', _('Primeiro'), 'P', _('Primeiro'),
'S', _('Segundo'), 'S', _('Segundo'),
'Ú', _('Único'), 'Ú', _('Único'),
'L', _('Suplementar'), 'L', _('Suplementar'),
'F', _('Final'), 'F', _('Final'),
'A', _('Votação única em Regime de Urgência'), 'A', _('Votação única em Regime de Urgência'),
'B', _('1ª Votação'), 'B', _('1ª Votação'),
'C', _('2ª e 3ª Votação'), 'C', _('2ª e 3ª Votação'),
) )
status = models.ForeignKey(StatusTramitacao, blank=True, null=True, verbose_name=_('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=_('Data Tramitação')) data_tramitacao = models.DateField(
unidade_tramitacao_local = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_('Unidade Local')) blank=True, null=True, verbose_name=_('Data Tramitação'))
data_encaminhamento = models.DateField(blank=True, null=True, verbose_name=_('Data Encaminhamento')) unidade_tramitacao_local = models.ForeignKey(
unidade_tramitacao_destino = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_('Unidade Destino')) UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_('Unidade Local'))
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=_('Unidade Destino'))
ultima = models.BooleanField() ultima = models.BooleanField()
urgente = models.BooleanField(verbose_name=_('Urgente ?')) urgente = models.BooleanField(verbose_name=_('Urgente ?'))
turno = models.CharField(max_length=1, blank=True, null=True, verbose_name=_('Turno'), choices=TURNO_CHOICES) turno = models.CharField(
texto = models.TextField(blank=True, null=True, verbose_name=_('Texto da Ação')) max_length=1, blank=True, null=True, verbose_name=_('Turno'),
data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_('Data Fim Prazo')) choices=TURNO_CHOICES)
texto = models.TextField(
blank=True, null=True, verbose_name=_('Texto da Ação'))
data_fim_prazo = models.DateField(
blank=True, null=True, verbose_name=_('Data Fim Prazo'))
class Meta: class Meta:
verbose_name = _('Tramitação') verbose_name = _('Tramitação')

72
norma/models.py

@ -8,7 +8,8 @@ from sapl.utils import make_choices
class AssuntoNorma(models.Model): class AssuntoNorma(models.Model):
assunto = models.CharField(max_length=50, verbose_name=_('Assunto')) assunto = models.CharField(max_length=50, verbose_name=_('Assunto'))
descricao = models.CharField(max_length=250, blank=True, null=True, verbose_name=_('Descrição')) descricao = models.CharField(
max_length=250, blank=True, null=True, verbose_name=_('Descrição'))
class Meta: class Meta:
verbose_name = _('Assunto de Norma') verbose_name = _('Assunto de Norma')
@ -35,7 +36,8 @@ class TipoNormaJuridica(models.Model):
'resolucao', 'resolucao',
'regimento.interno', 'regimento.interno',
)) ))
equivalente_lexml = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('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=_('Sigla')) sigla = models.CharField(max_length=3, verbose_name=_('Sigla'))
descricao = models.CharField(max_length=50, verbose_name=_('Descrição')) descricao = models.CharField(max_length=50, verbose_name=_('Descrição'))
@ -58,17 +60,26 @@ class NormaJuridica(models.Model):
materia = models.ForeignKey(MateriaLegislativa, blank=True, null=True) materia = models.ForeignKey(MateriaLegislativa, blank=True, null=True)
numero = models.IntegerField(verbose_name=_('Número')) numero = models.IntegerField(verbose_name=_('Número'))
ano = models.SmallIntegerField(verbose_name=_('Ano')) ano = models.SmallIntegerField(verbose_name=_('Ano'))
esfera_federacao = models.CharField(max_length=1, verbose_name=_('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=_('Data')) data = models.DateField(blank=True, null=True, verbose_name=_('Data'))
data_publicacao = models.DateField(blank=True, null=True, verbose_name=_('Data Publicação')) data_publicacao = models.DateField(
veiculo_publicacao = models.CharField(max_length=30, blank=True, null=True, verbose_name=_('Veículo Publicação')) blank=True, null=True, verbose_name=_('Data Publicação'))
pagina_inicio_publicacao = models.IntegerField(blank=True, null=True, verbose_name=_('Pg. Início')) veiculo_publicacao = models.CharField(
pagina_fim_publicacao = models.IntegerField(blank=True, null=True, verbose_name=_('Pg. Fim')) max_length=30, blank=True, null=True, verbose_name=_('Veículo Publicação'))
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=_('Pg. Fim'))
ementa = models.TextField(verbose_name=_('Ementa')) ementa = models.TextField(verbose_name=_('Ementa'))
indexacao = models.TextField(blank=True, null=True, verbose_name=_('Indexação')) indexacao = models.TextField(
observacao = models.TextField(blank=True, null=True, verbose_name=_('Observação')) blank=True, null=True, verbose_name=_('Indexação'))
complemento = models.NullBooleanField(blank=True, verbose_name=_('Complementar ?')) observacao = models.TextField(
assunto = models.ForeignKey(AssuntoNorma) # XXX was a CharField (attention on migrate) blank=True, null=True, verbose_name=_('Observação'))
complemento = models.NullBooleanField(
blank=True, verbose_name=_('Complementar ?'))
# XXX was a CharField (attention on migrate)
assunto = models.ForeignKey(AssuntoNorma)
data_vigencia = models.DateField(blank=True, null=True) data_vigencia = models.DateField(blank=True, null=True)
timestamp = models.DateTimeField() timestamp = models.DateTimeField()
@ -85,18 +96,30 @@ class NormaJuridica(models.Model):
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=_('Disposição')) disposicoes = models.CharField(
parte = models.CharField(max_length=8, blank=True, null=True, verbose_name=_('Parte')) max_length=15, blank=True, null=True, verbose_name=_('Disposição'))
livro = models.CharField(max_length=7, blank=True, null=True, verbose_name=_('Livro')) parte = models.CharField(
titulo = models.CharField(max_length=7, blank=True, null=True, verbose_name=_('Título')) max_length=8, blank=True, null=True, verbose_name=_('Parte'))
capitulo = models.CharField(max_length=7, blank=True, null=True, verbose_name=_('Capítulo')) livro = models.CharField(
secao = models.CharField(max_length=7, blank=True, null=True, verbose_name=_('Seção')) max_length=7, blank=True, null=True, verbose_name=_('Livro'))
subsecao = models.CharField(max_length=7, blank=True, null=True, verbose_name=_('Subseção')) titulo = models.CharField(
artigo = models.CharField(max_length=4, blank=True, null=True, verbose_name=_('Artigo')) max_length=7, blank=True, null=True, verbose_name=_('Título'))
paragrafo = models.CharField(max_length=3, blank=True, null=True, verbose_name=_('Parágrafo')) capitulo = models.CharField(
inciso = models.CharField(max_length=10, blank=True, null=True, verbose_name=_('Inciso')) max_length=7, blank=True, null=True, verbose_name=_('Capítulo'))
alinea = models.CharField(max_length=3, blank=True, null=True, verbose_name=_('Alínea')) secao = models.CharField(
item = models.CharField(max_length=3, blank=True, null=True, verbose_name=_('Item')) max_length=7, blank=True, null=True, verbose_name=_('Seçã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=_('Artigo'))
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=_('Inciso'))
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=_('Item'))
class Meta: class Meta:
verbose_name = _('Matéria Legislativa') verbose_name = _('Matéria Legislativa')
@ -117,7 +140,8 @@ class VinculoNormaJuridica(models.Model):
# TODO M2M ??? # TODO M2M ???
norma_referente = models.ForeignKey(NormaJuridica, related_name='+') norma_referente = models.ForeignKey(NormaJuridica, related_name='+')
norma_referida = models.ForeignKey(NormaJuridica, related_name='+') norma_referida = models.ForeignKey(NormaJuridica, related_name='+')
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 = _('Vínculo entre Normas Jurídicas') verbose_name = _('Vínculo entre Normas Jurídicas')

149
parlamentares/models.py

@ -28,11 +28,14 @@ class SessaoLegislativa(models.Model):
legislatura = models.ForeignKey(Legislatura) legislatura = models.ForeignKey(Legislatura)
numero = models.IntegerField(verbose_name=_('Número')) numero = models.IntegerField(verbose_name=_('Número'))
tipo = models.CharField(max_length=1, verbose_name=_('Tipo'), choices=TIPO_SESSAO_CHOICES) tipo = models.CharField(
max_length=1, verbose_name=_('Tipo'), choices=TIPO_SESSAO_CHOICES)
data_inicio = models.DateField(verbose_name=_('Data Início')) data_inicio = models.DateField(verbose_name=_('Data Início'))
data_fim = models.DateField(verbose_name=_('Data Fim')) data_fim = models.DateField(verbose_name=_('Data Fim'))
data_inicio_intervalo = models.DateField(blank=True, null=True, verbose_name=_('Início Intervalo')) data_inicio_intervalo = models.DateField(
data_fim_intervalo = models.DateField(blank=True, null=True, verbose_name=_('Fim Intervalo')) blank=True, null=True, verbose_name=_('Início Intervalo'))
data_fim_intervalo = models.DateField(
blank=True, null=True, verbose_name=_('Fim Intervalo'))
class Meta: class Meta:
verbose_name = _('Sessão Legislativa') verbose_name = _('Sessão Legislativa')
@ -45,7 +48,8 @@ class SessaoLegislativa(models.Model):
class Coligacao(models.Model): class Coligacao(models.Model):
legislatura = models.ForeignKey(Legislatura, verbose_name=_('Legislatura')) legislatura = models.ForeignKey(Legislatura, verbose_name=_('Legislatura'))
nome = models.CharField(max_length=50, verbose_name=_('Nome')) nome = models.CharField(max_length=50, verbose_name=_('Nome'))
numero_votos = models.IntegerField(blank=True, null=True, verbose_name=_('Nº Votos Recebidos')) numero_votos = models.IntegerField(
blank=True, null=True, verbose_name=_('Nº Votos Recebidos'))
class Meta: class Meta:
verbose_name = _('Coligação') verbose_name = _('Coligação')
@ -58,8 +62,10 @@ class Coligacao(models.Model):
class Partido(models.Model): class Partido(models.Model):
sigla = models.CharField(max_length=9, verbose_name=_('Sigla')) sigla = models.CharField(max_length=9, verbose_name=_('Sigla'))
nome = models.CharField(max_length=50, verbose_name=_('Nome')) nome = models.CharField(max_length=50, verbose_name=_('Nome'))
data_criacao = models.DateField(blank=True, null=True, verbose_name=_('Data Criação')) data_criacao = models.DateField(
data_extincao = models.DateField(blank=True, null=True, verbose_name=_('Data Extinção')) blank=True, null=True, verbose_name=_('Data Criação'))
data_extincao = models.DateField(
blank=True, null=True, verbose_name=_('Data Extinção'))
class Meta: class Meta:
verbose_name = _('Partido') verbose_name = _('Partido')
@ -80,7 +86,7 @@ class ComposicaoColigacao(models.Model):
verbose_name = ('Composição Coligação') verbose_name = ('Composição Coligação')
verbose_name_plural = ('Composição Coligações') verbose_name_plural = ('Composição Coligações')
def __str__ (self): def __str__(self):
return str(self.coligacao) # FIXME return str(self.coligacao) # FIXME
@ -128,8 +134,10 @@ class Municipio(models.Model): # Localidade
) )
nome = models.CharField(max_length=50, blank=True, null=True) nome = models.CharField(max_length=50, blank=True, null=True)
uf = models.CharField(max_length=2, blank=True, null=True, choices=UF_CHOICES) uf = models.CharField(
regiao = models.CharField(max_length=2, blank=True, null=True, choices=REGIAO_CHOICES) max_length=2, blank=True, null=True, choices=UF_CHOICES)
regiao = models.CharField(
max_length=2, blank=True, null=True, choices=REGIAO_CHOICES)
class Meta: class Meta:
verbose_name = _('Município') verbose_name = _('Município')
@ -140,8 +148,10 @@ class Municipio(models.Model): # Localidade
'nome': self.nome, 'uf': self.uf, 'regiao': self.regiao 'nome': self.nome, 'uf': self.uf, 'regiao': self.regiao
} }
class NivelInstrucao(models.Model): class NivelInstrucao(models.Model):
descricao = models.CharField(max_length=50, verbose_name=_('Nível de Instrução')) descricao = models.CharField(
max_length=50, verbose_name=_('Nível de Instrução'))
class Meta: class Meta:
verbose_name = _('Nível Instrução') verbose_name = _('Nível Instrução')
@ -152,7 +162,8 @@ class NivelInstrucao(models.Model):
class SituacaoMilitar(models.Model): class SituacaoMilitar(models.Model):
descricao = models.CharField(max_length=50, verbose_name=_('Situação Militar')) descricao = models.CharField(
max_length=50, verbose_name=_('Situação Militar'))
class Meta: class Meta:
verbose_name = _('Tipo Situação Militar') verbose_name = _('Tipo Situação Militar')
@ -168,30 +179,52 @@ class Parlamentar(models.Model):
SEXO_CHOICE = ((FEMININO, _('Feminino')), SEXO_CHOICE = ((FEMININO, _('Feminino')),
(MASCULINO, _('Masculino'))) (MASCULINO, _('Masculino')))
nivel_instrucao = models.ForeignKey(NivelInstrucao, blank=True, null=True, verbose_name=_('Nível Instrução')) nivel_instrucao = models.ForeignKey(
situacao_militar = models.ForeignKey(SituacaoMilitar, blank=True, null=True, verbose_name=_('Situação Militar')) NivelInstrucao, blank=True, null=True, verbose_name=_('Nível Instrução'))
nome_completo = models.CharField(max_length=50, verbose_name=_('Nome Completo')) situacao_militar = models.ForeignKey(
nome_parlamentar = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Nome Parlamentar')) SituacaoMilitar, blank=True, null=True, verbose_name=_('Situação Militar'))
sexo = models.CharField(max_length=1, verbose_name=_('Sexo'), choices=SEXO_CHOICE) nome_completo = models.CharField(
data_nascimento = models.DateField(blank=True, null=True, verbose_name=_('Data Nascimento')) max_length=50, verbose_name=_('Nome Completo'))
cpf = models.CharField(max_length=14, blank=True, null=True, verbose_name=_('C.P.F')) nome_parlamentar = models.CharField(
rg = models.CharField(max_length=15, blank=True, null=True, verbose_name=_('R.G.')) max_length=50, blank=True, null=True, verbose_name=_('Nome Parlamentar'))
titulo_eleitor = models.CharField(max_length=15, blank=True, null=True, verbose_name=_('Título de Eleitor')) sexo = models.CharField(
max_length=1, verbose_name=_('Sexo'), choices=SEXO_CHOICE)
data_nascimento = models.DateField(
blank=True, null=True, verbose_name=_('Data Nascimento'))
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=_('R.G.'))
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=_('Nº Gabinete')) numero_gab_parlamentar = models.CharField(
telefone = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Telefone')) max_length=10, blank=True, null=True, verbose_name=_('Nº Gabinete'))
fax = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Fax')) telefone = models.CharField(
endereco_residencia = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('Endereço Residencial')) max_length=50, blank=True, null=True, verbose_name=_('Telefone'))
municipio_residencia = models.ForeignKey(Municipio, blank=True, null=True, verbose_name=_('Município')) fax = models.CharField(
cep_residencia = models.CharField(max_length=9, blank=True, null=True, verbose_name=_('CEP')) max_length=50, blank=True, null=True, verbose_name=_('Fax'))
telefone_residencia = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Telefone Residencial')) endereco_residencia = models.CharField(
fax_residencia = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Fax Residencial')) max_length=100, blank=True, null=True, verbose_name=_('Endereço Residencial'))
endereco_web = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('HomePage')) municipio_residencia = models.ForeignKey(
profissao = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Profissão')) Municipio, blank=True, null=True, verbose_name=_('Município'))
email = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('Correio Eletrônico')) cep_residencia = models.CharField(
locais_atuacao = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('Locais de Atuação')) max_length=9, blank=True, null=True, verbose_name=_('CEP'))
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=_('Fax Residencial'))
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=_('Profissão'))
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=_('Locais de Atuação'))
ativo = models.BooleanField(verbose_name=_('Ativo na Casa?')) ativo = models.BooleanField(verbose_name=_('Ativo na Casa?'))
biografia = models.TextField(blank=True, null=True, verbose_name=_('Biografia')) biografia = models.TextField(
blank=True, null=True, verbose_name=_('Biografia'))
unidade_deliberativa = models.BooleanField() unidade_deliberativa = models.BooleanField()
class Meta: class Meta:
@ -209,23 +242,29 @@ class TipoDependente(models.Model):
verbose_name = _('Tipo de Dependente') verbose_name = _('Tipo de Dependente')
verbose_name_plural = _('Tipos de Dependente') verbose_name_plural = _('Tipos de Dependente')
def __str__ (self): def __str__(self):
return self.descricao return self.descricao
class Dependente(models.Model): class Dependente(models.Model):
FEMININO = 'F' FEMININO = 'F'
MASCULINO = 'M' MASCULINO = 'M'
SEXO_CHOICE = ((FEMININO, _('Feminino')), SEXO_CHOICE = ((FEMININO, _('Feminino')),
(MASCULINO, _('Masculino'))) (MASCULINO, _('Masculino')))
tipo = models.ForeignKey(TipoDependente, verbose_name=_('Tipo')) tipo = models.ForeignKey(TipoDependente, verbose_name=_('Tipo'))
parlamentar = models.ForeignKey(Parlamentar) parlamentar = models.ForeignKey(Parlamentar)
nome = models.CharField(max_length=50, verbose_name=_('Nome')) nome = models.CharField(max_length=50, verbose_name=_('Nome'))
sexo = models.CharField(max_length=1, verbose_name=_('Sexo'), choices=SEXO_CHOICE) sexo = models.CharField(
data_nascimento = models.DateField(blank=True, null=True, verbose_name=_('Data Nascimento')) max_length=1, verbose_name=_('Sexo'), choices=SEXO_CHOICE)
cpf = models.CharField(max_length=14, blank=True, null=True, verbose_name=_('CPF')) data_nascimento = models.DateField(
rg = models.CharField(max_length=15, blank=True, null=True, verbose_name=_('RG')) blank=True, null=True, verbose_name=_('Data Nascimento'))
titulo_eleitor = models.CharField(max_length=15, blank=True, null=True, verbose_name=_('Nº Título Eleitor')) 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=_('RG'))
titulo_eleitor = models.CharField(
max_length=15, blank=True, null=True, verbose_name=_('Nº Título Eleitor'))
class Meta: class Meta:
verbose_name = _('Dependente') verbose_name = _('Dependente')
@ -239,7 +278,8 @@ class Filiacao(models.Model):
data = models.DateField(verbose_name=_('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=_('Partido')) partido = models.ForeignKey(Partido, verbose_name=_('Partido'))
data_desfiliacao = models.DateField(blank=True, null=True, verbose_name=_('Data Desfiliação')) data_desfiliacao = models.DateField(
blank=True, null=True, verbose_name=_('Data Desfiliação'))
class Meta: class Meta:
verbose_name = _('Filiação') verbose_name = _('Filiação')
@ -255,7 +295,8 @@ class TipoAfastamento(models.Model):
descricao = models.CharField(max_length=50, verbose_name=_('Descrição')) descricao = models.CharField(max_length=50, verbose_name=_('Descrição'))
afastamento = models.BooleanField(verbose_name=_('Indicador')) afastamento = models.BooleanField(verbose_name=_('Indicador'))
fim_mandato = models.BooleanField(verbose_name=_('Indicador')) fim_mandato = models.BooleanField(verbose_name=_('Indicador'))
dispositivo = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Dispositivo')) dispositivo = models.CharField(
max_length=50, blank=True, null=True, verbose_name=_('Dispositivo'))
class Meta: class Meta:
verbose_name = _('Tipo de Afastamento') verbose_name = _('Tipo de Afastamento')
@ -264,23 +305,30 @@ class TipoAfastamento(models.Model):
def __str__(self): def __str__(self):
return self.descricao return self.descricao
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=_('Legislatura')) legislatura = models.ForeignKey(Legislatura, verbose_name=_('Legislatura'))
coligacao = models.ForeignKey(Coligacao, blank=True, null=True, verbose_name=_('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=_('Fim do Mandato')) data_fim_mandato = models.DateField(
votos_recebidos = models.IntegerField(blank=True, null=True, verbose_name=_('Votos Recebidos')) blank=True, null=True, verbose_name=_('Fim do Mandato'))
data_expedicao_diploma = models.DateField(blank=True, null=True, verbose_name=_('Expedição do Diploma')) votos_recebidos = models.IntegerField(
observacao = models.TextField(blank=True, null=True, verbose_name=_('Observação')) blank=True, null=True, verbose_name=_('Votos Recebidos'))
data_expedicao_diploma = models.DateField(
blank=True, null=True, verbose_name=_('Expedição do Diploma'))
observacao = models.TextField(
blank=True, null=True, verbose_name=_('Observação'))
class Meta: class Meta:
verbose_name = _('Mandato') verbose_name = _('Mandato')
verbose_name_plural = _('Mandatos') verbose_name_plural = _('Mandatos')
def __str__ (self): def __str__(self):
return _(u'%(parlamentar)s %(legislatura)s') % { return _(u'%(parlamentar)s %(legislatura)s') % {
'parlamentar': self.parlamentar, 'legislatura': self.legislatura 'parlamentar': self.parlamentar, 'legislatura': self.legislatura
} }
@ -288,7 +336,8 @@ class Mandato(models.Model):
class CargoMesa(models.Model): class CargoMesa(models.Model):
# TODO M2M ???? # TODO M2M ????
descricao = models.CharField(max_length=50, verbose_name=_('Cargo na Mesa')) descricao = models.CharField(
max_length=50, verbose_name=_('Cargo na Mesa'))
unico = models.BooleanField(verbose_name=_('Cargo Único')) unico = models.BooleanField(verbose_name=_('Cargo Único'))
class Meta: class Meta:

77
protocoloadm/models.py

@ -19,18 +19,24 @@ class TipoDocumentoAdministrativo(models.Model):
class DocumentoAdministrativo(models.Model): class DocumentoAdministrativo(models.Model):
tipo = models.ForeignKey(TipoDocumentoAdministrativo, verbose_name=_('Tipo Documento')) tipo = models.ForeignKey(
TipoDocumentoAdministrativo, verbose_name=_('Tipo Documento'))
numero = models.IntegerField(verbose_name=_('Número')) numero = models.IntegerField(verbose_name=_('Número'))
ano = models.SmallIntegerField(verbose_name=_('Ano')) ano = models.SmallIntegerField(verbose_name=_('Ano'))
data = models.DateField(verbose_name=_('Data')) data = models.DateField(verbose_name=_('Data'))
numero_protocolo = models.IntegerField(blank=True, null=True, verbose_name=_('Núm. Protocolo')) numero_protocolo = models.IntegerField(
interessado = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Interessado')) blank=True, null=True, verbose_name=_('Núm. Protocolo'))
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=_('Dias Prazo')) dias_prazo = models.IntegerField(
data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_('Data Fim Prazo')) blank=True, null=True, verbose_name=_('Dias Prazo'))
data_fim_prazo = models.DateField(
blank=True, null=True, verbose_name=_('Data Fim Prazo'))
tramitacao = models.BooleanField(verbose_name=_('Em Tramitação?')) tramitacao = models.BooleanField(verbose_name=_('Em Tramitação?'))
assunto = models.TextField(verbose_name=_('Assunto')) assunto = models.TextField(verbose_name=_('Assunto'))
observacao = models.TextField(blank=True, null=True, verbose_name=_('Observação')) observacao = models.TextField(
blank=True, null=True, verbose_name=_('Observação'))
class Meta: class Meta:
verbose_name = _('Documento Administrativo') verbose_name = _('Documento Administrativo')
@ -44,12 +50,15 @@ class DocumentoAdministrativo(models.Model):
class DocumentoAcessorioAdministrativo(models.Model): class DocumentoAcessorioAdministrativo(models.Model):
documento = models.ForeignKey(DocumentoAdministrativo) documento = models.ForeignKey(DocumentoAdministrativo)
tipo = models.ForeignKey(TipoDocumentoAdministrativo, verbose_name=_('Tipo')) tipo = models.ForeignKey(
TipoDocumentoAdministrativo, verbose_name=_('Tipo'))
nome = models.CharField(max_length=30, verbose_name=_('Nome')) nome = models.CharField(max_length=30, verbose_name=_('Nome'))
arquivo = models.CharField(max_length=100, verbose_name=_('Arquivo')) arquivo = models.CharField(max_length=100, verbose_name=_('Arquivo'))
data = models.DateField(blank=True, null=True, verbose_name=_('Data')) data = models.DateField(blank=True, null=True, verbose_name=_('Data'))
autor = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Autor')) autor = models.CharField(
assunto = models.TextField(blank=True, null=True, verbose_name=_('Assunto')) max_length=50, blank=True, null=True, verbose_name=_('Autor'))
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:
@ -59,25 +68,33 @@ class DocumentoAcessorioAdministrativo(models.Model):
def __str__(self): def __str__(self):
return self.nome return self.nome
class Protocolo(models.Model): class Protocolo(models.Model):
numero = models.IntegerField(blank=True, null=True, verbose_name=_('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=_('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=_('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=_('Tipo de documento')) tipo_documento = models.ForeignKey(
tipo_materia = models.ForeignKey(TipoMateriaLegislativa, blank=True, null=True, verbose_name=_('Tipo Matéria')) TipoDocumentoAdministrativo, blank=True, null=True, verbose_name=_('Tipo de documento'))
numero_paginas = models.IntegerField(blank=True, null=True, verbose_name=_('Número de Páginas')) tipo_materia = models.ForeignKey(
observacao = models.TextField(blank=True, null=True, verbose_name=_('Observação')) TipoMateriaLegislativa, blank=True, null=True, verbose_name=_('Tipo Matéria'))
numero_paginas = models.IntegerField(
blank=True, null=True, verbose_name=_('Número de Páginas'))
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)
justificativa_anulacao = models.CharField(max_length=60, blank=True, null=True) justificativa_anulacao = models.CharField(
max_length=60, blank=True, null=True)
timestamp_anulacao = models.DateTimeField(blank=True, null=True) timestamp_anulacao = models.DateTimeField(blank=True, null=True)
class Meta: class Meta:
@ -93,8 +110,11 @@ class StatusTramitacaoAdministrativo(models.Model):
sigla = models.CharField(max_length=10, verbose_name=_('Sigla')) sigla = models.CharField(max_length=10, verbose_name=_('Sigla'))
descricao = models.CharField(max_length=60, verbose_name=_('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,
indicador = models.CharField(max_length=1, verbose_name=_('Indicador da Tramitação'), choices=INDICADOR_CHOICES) # ind_retorno_tramitacao
indicador = models.CharField(
max_length=1, verbose_name=_('Indicador da Tramitação'),
choices=INDICADOR_CHOICES)
class Meta: class Meta:
verbose_name = _('Status de Tramitação') verbose_name = _('Status de Tramitação')
@ -105,15 +125,22 @@ class StatusTramitacaoAdministrativo(models.Model):
class TramitacaoAdministrativo(models.Model): class TramitacaoAdministrativo(models.Model):
status = models.ForeignKey(StatusTramitacaoAdministrativo, blank=True, null=True, verbose_name=_('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=_('Data Tramitação')) data_tramitacao = models.DateField(
unidade_tramitacao_local = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_('Unidade Local')) blank=True, null=True, verbose_name=_('Data Tramitação'))
data_encaminhamento = models.DateField(blank=True, null=True, verbose_name=_('Data Encaminhamento')) unidade_tramitacao_local = models.ForeignKey(
unidade_tramitacao_destino = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_('Unidade Destino')) UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_('Unidade Local'))
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=_('Unidade Destino'))
ultima = models.BooleanField() ultima = models.BooleanField()
texto = models.TextField(blank=True, null=True, verbose_name=_('Texto da Ação')) texto = models.TextField(
data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_('Data Fim do Prazo')) blank=True, null=True, verbose_name=_('Texto da Ação'))
data_fim_prazo = models.DateField(
blank=True, null=True, verbose_name=_('Data Fim do Prazo'))
class Meta: class Meta:
verbose_name = _('Tramitação de Documento Administrativo') verbose_name = _('Tramitação de Documento Administrativo')

3
sapl/urls.py

@ -16,9 +16,6 @@ Including another URLconf
from django.conf.urls import include, url from django.conf.urls import include, url
from django.contrib import admin from django.contrib import admin
#from comissoes.views import (ListaComissoes,
#CriarComissao)
#from comissoes import views
urlpatterns = [ urlpatterns = [
url(r'^admin/', include(admin.site.urls)), url(r'^admin/', include(admin.site.urls)),

3
sapl/utils.py

@ -7,7 +7,8 @@ def register_all_models_in_admin(module_name):
app = apps.get_app_config(appname) app = apps.get_app_config(appname)
for model in app.get_models(): for model in app.get_models():
class CustomModelAdmin(admin.ModelAdmin): class CustomModelAdmin(admin.ModelAdmin):
list_display = [f.name for f in model._meta.fields if f.name != 'id'] list_display = [f.name for f in model._meta.fields
if f.name != 'id']
if not admin.site.is_registered(model): if not admin.site.is_registered(model):
admin.site.register(model, CustomModelAdmin) admin.site.register(model, CustomModelAdmin)

38
sessao/models.py

@ -26,18 +26,25 @@ class SessaoPlenaria(models.Model):
cod_andamento_sessao = models.IntegerField(blank=True, null=True) cod_andamento_sessao = models.IntegerField(blank=True, null=True)
tipo = models.ForeignKey(TipoSessaoPlenaria, verbose_name=_('Tipo')) tipo = models.ForeignKey(TipoSessaoPlenaria, verbose_name=_('Tipo'))
sessao_legislativa = models.ForeignKey(SessaoLegislativa, verbose_name=_('Sessão Legislativa')) sessao_legislativa = models.ForeignKey(
SessaoLegislativa, verbose_name=_('Sessão Legislativa'))
legislatura = models.ForeignKey(Legislatura, verbose_name=_('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=_('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=_('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=_('Horário')) hora_fim = models.CharField(
max_length=5, blank=True, null=True, verbose_name=_('Horário'))
numero = models.IntegerField(verbose_name=_('Número')) numero = models.IntegerField(verbose_name=_('Número'))
data_fim = models.DateField(blank=True, null=True, verbose_name=_('Encerramento')) data_fim = models.DateField(
url_audio = models.CharField(max_length=150, blank=True, null=True, verbose_name=_('URL Arquivo Áudio (Formatos MP3 / AAC)')) blank=True, null=True, verbose_name=_('Encerramento'))
url_video = models.CharField(max_length=150, blank=True, null=True, verbose_name=_('URL Arquivo Vídeo (Formatos MP4 / FLV / WebM)')) 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=_('URL Arquivo Vídeo (Formatos MP4 / FLV / WebM)'))
class Meta: class Meta:
verbose_name = _('Sessão Plenária') verbose_name = _('Sessão Plenária')
@ -61,10 +68,12 @@ class AbstractOrdemDia(models.Model):
sessao_plenaria = models.ForeignKey(SessaoPlenaria) sessao_plenaria = models.ForeignKey(SessaoPlenaria)
materia = models.ForeignKey(MateriaLegislativa) materia = models.ForeignKey(MateriaLegislativa)
data_ordem = models.DateField(verbose_name=_('Data da Sessão')) data_ordem = models.DateField(verbose_name=_('Data da Sessão'))
observacao = models.TextField(blank=True, null=True, verbose_name=_('Ementa')) observacao = models.TextField(
blank=True, null=True, verbose_name=_('Ementa'))
numero_ordem = models.IntegerField(verbose_name=_('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=_('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
@ -94,7 +103,8 @@ 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=_('Conteúdo do expediente')) conteudo = models.TextField(
blank=True, null=True, verbose_name=_('Conteúdo do expediente'))
class Meta: class Meta:
verbose_name = _('Expediente de Sessão Plenaria') verbose_name = _('Expediente de Sessão Plenaria')
@ -120,8 +130,10 @@ class IntegranteMesa(models.Model): # MesaSessaoPlenaria
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=_('Parlamentar')) parlamentar = models.ForeignKey(Parlamentar, verbose_name=_('Parlamentar'))
numero_ordem = models.IntegerField(verbose_name=_('Ordem de pronunciamento')) numero_ordem = models.IntegerField(
url_discurso = models.CharField(max_length=150, blank=True, null=True, verbose_name=_('URL Vídeo')) verbose_name=_('Ordem de pronunciamento'))
url_discurso = models.CharField(
max_length=150, blank=True, null=True, verbose_name=_('URL Vídeo'))
class Meta: class Meta:
abstract = True abstract = True
@ -178,13 +190,15 @@ class TipoResultadoVotacao(models.Model):
class RegistroVotacao(models.Model): class RegistroVotacao(models.Model):
tipo_resultado_votacao = models.ForeignKey(TipoResultadoVotacao, verbose_name=_('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=_('Sim')) numero_votos_sim = models.IntegerField(verbose_name=_('Sim'))
numero_votos_nao = models.IntegerField(verbose_name=_('Não')) numero_votos_nao = models.IntegerField(verbose_name=_('Não'))
numero_abstencoes = models.IntegerField(verbose_name=_('Abstenções')) numero_abstencoes = models.IntegerField(verbose_name=_('Abstenções'))
observacao = models.TextField(blank=True, null=True, verbose_name=_('Observações')) observacao = models.TextField(
blank=True, null=True, verbose_name=_('Observações'))
class Meta: class Meta:
verbose_name = _('Votação') verbose_name = _('Votação')

Loading…
Cancel
Save