Browse Source

Merge branch '143-remover-municipios'

Fix #143
pull/1689/head
Marcio Mazza 7 years ago
parent
commit
69b49a96fd
  1. 13
      sapl/base/models.py
  2. 7
      sapl/legacy/migration.py
  3. 6
      sapl/parlamentares/legacy.yaml
  4. 46
      sapl/parlamentares/migrations/0014_auto_20180131_1014.py
  5. 22
      sapl/parlamentares/migrations/0015_auto_20180131_1629.py
  6. 38
      sapl/parlamentares/models.py
  7. 3
      sapl/parlamentares/urls.py
  8. 21
      sapl/parlamentares/views.py
  9. 22
      sapl/relatorios/views.py
  10. 1
      sapl/rules/map_rules.py
  11. 2
      sapl/templates/parlamentares/layouts.yaml
  12. 3
      sapl/utils.py

13
sapl/base/models.py

@ -1,18 +1,13 @@
import reversion
from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType
from django.db import models
from django.db.models.signals import post_migrate
from django.db.utils import DEFAULT_DB_ALIAS
from django.utils.translation import ugettext_lazy as _
import reversion
from sapl.utils import (
UF,
YES_NO_CHOICES,
get_settings_auth_user_model,
models_with_gr_for_model
)
from sapl.utils import (LISTA_DE_UFS, YES_NO_CHOICES,
get_settings_auth_user_model, models_with_gr_for_model)
TIPO_DOCUMENTO_ADMINISTRATIVO = (('O', _('Ostensivo')),
('R', _('Restritivo')))
@ -36,7 +31,7 @@ class CasaLegislativa(models.Model):
cep = models.CharField(max_length=100, verbose_name=_('CEP'))
municipio = models.CharField(max_length=100, verbose_name=_('Município'))
uf = models.CharField(max_length=100,
choices=UF,
choices=LISTA_DE_UFS,
verbose_name=_('UF'))
telefone = models.CharField(
max_length=100, blank=True, verbose_name=_('Telefone'))

7
sapl/legacy/migration.py

@ -789,6 +789,13 @@ def adjust_parlamentar(new, old):
if value is None:
warn('nulo convertido para falso')
new.unidade_deliberativa = False
# migra município de residência
if old.cod_localidade_resid:
municipio_uf = list(exec_legado('''
select nom_localidade, sgl_uf from localidade
where cod_localidade = {}'''.format(old.cod_localidade_resid)))
if municipio_uf:
new.municipio_residencia, new.uf_residencia = municipio_uf[0]
def adjust_participacao(new, old):

6
sapl/parlamentares/legacy.yaml

@ -28,11 +28,6 @@ ComposicaoColigacao:
coligacao: cod_coligacao
partido: cod_partido
Municipio (Localidade):
nome: nom_localidade
regiao: sgl_regiao
uf: sgl_uf
NivelInstrucao:
descricao: des_nivel_instrucao
@ -52,7 +47,6 @@ Parlamentar:
fax: num_fax_parlamentar
fax_residencia: num_fax_resid
locais_atuacao: des_local_atuacao
municipio_residencia: cod_localidade_resid
nivel_instrucao: cod_nivel_instrucao
nome_completo: nom_completo
nome_parlamentar: nom_parlamentar

46
sapl/parlamentares/migrations/0014_auto_20180131_1014.py

@ -0,0 +1,46 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.13 on 2018-01-31 12:14
from __future__ import unicode_literals
from django.db import migrations, models
from sapl.utils import LISTA_DE_UFS
def migrate_municipio_e_uf_como_charfields(apps, schema_editor):
Parlamentar = apps.get_model('parlamentares', 'Parlamentar')
for parlamentar in Parlamentar.objects.all():
municipio = parlamentar.municipio_residencia_old
if municipio:
parlamentar.municipio_residencia = municipio.nome
parlamentar.uf_residencia = municipio.uf
parlamentar.save()
class Migration(migrations.Migration):
dependencies = [
('parlamentares', '0013_auto_20180130_1425'),
]
operations = [
migrations.RenameField(
model_name='parlamentar',
old_name='municipio_residencia',
new_name='municipio_residencia_old',
),
migrations.AddField(
model_name='parlamentar',
name='municipio_residencia',
field=models.CharField(blank=True, max_length=50,
verbose_name='Município'),
),
migrations.AddField(
model_name='parlamentar',
name='uf_residencia',
field=models.CharField(blank=True, choices=LISTA_DE_UFS,
max_length=2, verbose_name='UF'),
),
migrations.RunPython(migrate_municipio_e_uf_como_charfields),
]

22
sapl/parlamentares/migrations/0015_auto_20180131_1629.py

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.13 on 2018-01-31 18:29
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('parlamentares', '0014_auto_20180131_1014'),
]
operations = [
migrations.RemoveField(
model_name='parlamentar',
name='municipio_residencia_old',
),
migrations.DeleteModel(
name='Municipio',
),
]

38
sapl/parlamentares/models.py

@ -7,7 +7,7 @@ from model_utils import Choices
from sapl.base.models import Autor
from sapl.decorators import vigencia_atual
from sapl.utils import (INDICADOR_AFASTAMENTO, UF, YES_NO_CHOICES,
from sapl.utils import (INDICADOR_AFASTAMENTO, LISTA_DE_UFS, YES_NO_CHOICES,
SaplGenericRelation, get_settings_auth_user_model,
intervalos_tem_intersecao,
restringe_tipos_de_arquivo_img, texto_upload_path)
@ -140,35 +140,6 @@ class ComposicaoColigacao(models.Model):
}
@reversion.register()
class Municipio(models.Model): # Localidade
# TODO filter on migration leaving only cities
REGIAO_CHOICES = (
('CO', 'Centro-Oeste'),
('NE', 'Nordeste'),
('NO', 'Norte'),
('SE', 'Sudeste'), # TODO convert on migrate SD => SE
('SL', 'Sul'),
('EX', 'Exterior'),
)
nome = models.CharField(max_length=50, blank=True)
uf = models.CharField(
max_length=2, blank=True, choices=UF)
regiao = models.CharField(
max_length=2, blank=True, choices=REGIAO_CHOICES)
class Meta:
verbose_name = _('Município')
verbose_name_plural = _('Municípios')
def __str__(self):
return _('%(nome)s - %(uf)s (%(regiao)s)') % {
'nome': self.nome, 'uf': self.uf, 'regiao': self.regiao
}
@reversion.register()
class NivelInstrucao(models.Model):
descricao = models.CharField(
@ -256,9 +227,10 @@ class Parlamentar(models.Model):
max_length=100,
blank=True,
verbose_name=_('Endereço Residencial'))
municipio_residencia = models.ForeignKey(
Municipio, blank=True, null=True,
on_delete=models.PROTECT, verbose_name=_('Município'))
municipio_residencia = models.CharField(
max_length=50, blank=True, verbose_name=_('Município'))
uf_residencia = models.CharField(
max_length=2, blank=True, choices=LISTA_DE_UFS, verbose_name=_('UF'))
cep_residencia = models.CharField(
max_length=9, blank=True, verbose_name=_('CEP'))
telefone_residencia = models.CharField(

3
sapl/parlamentares/urls.py

@ -17,7 +17,7 @@ from sapl.parlamentares.views import (CargoMesaCrud, ColigacaoCrud,
frente_atualiza_lista_parlamentares,
insere_parlamentar_composicao,
parlamentares_frente_selected,
remove_parlamentar_composicao, MunicipioCrud)
remove_parlamentar_composicao)
from .apps import AppConfig
@ -60,7 +60,6 @@ urlpatterns = [
url(r'^sistema/parlamentar/tipo-militar/',
include(TipoMilitarCrud.get_urls())),
url(r'^sistema/parlamentar/partido/', include(PartidoCrud.get_urls())),
url(r'^sistema/parlamentar/municipio/', include(MunicipioCrud.get_urls())),
url(r'^sistema/mesa-diretora/sessao-legislativa/',
include(SessaoLegislativaCrud.get_urls())),

21
sapl/parlamentares/views.py

@ -31,7 +31,7 @@ from .forms import (FiliacaoForm, LegislaturaForm, MandatoForm,
from .models import (CargoMesa, Coligacao, ComposicaoColigacao, ComposicaoMesa,
Dependente, Filiacao, Frente, Legislatura, Mandato,
NivelInstrucao, Parlamentar, Partido, SessaoLegislativa,
SituacaoMilitar, TipoAfastamento, TipoDependente, Votante, Municipio)
SituacaoMilitar, TipoAfastamento, TipoDependente, Votante)
CargoMesaCrud = CrudAux.build(CargoMesa, 'cargo_mesa')
PartidoCrud = CrudAux.build(Partido, 'partidos')
@ -40,7 +40,6 @@ TipoDependenteCrud = CrudAux.build(TipoDependente, 'tipo_dependente')
NivelInstrucaoCrud = CrudAux.build(NivelInstrucao, 'nivel_instrucao')
TipoAfastamentoCrud = CrudAux.build(TipoAfastamento, 'tipo_afastamento')
TipoMilitarCrud = CrudAux.build(SituacaoMilitar, 'tipo_situa_militar')
MunicipioCrud = CrudAux.build(Municipio, 'municipio')
DependenteCrud = MasterDetailCrud.build(
Dependente, 'parlamentar', 'dependente')
@ -85,7 +84,6 @@ class FrenteList(MasterDetailCrud):
@classmethod
def url_name(cls, suffix):
return '%s_parlamentar_%s' % (cls.model._meta.model_name, suffix)
class RelatoriaParlamentarCrud(CrudBaseForListAndDetailExternalAppView):
@ -668,7 +666,8 @@ class MesaDiretoraView(FormView):
year = timezone.now().year
month = timezone.now().month
sessao_atual = sessoes.filter(data_inicio__year__lte=year).exclude(data_inicio__gt=timezone.now()).order_by('-data_inicio').first()
sessao_atual = sessoes.filter(data_inicio__year__lte=year).exclude(
data_inicio__gt=timezone.now()).order_by('-data_inicio').first()
mesa = sessao_atual.composicaomesa_set.all() if sessao_atual else []
@ -691,13 +690,13 @@ class MesaDiretoraView(FormView):
return self.render_to_response(
{'legislaturas': Legislatura.objects.all(
).order_by('-numero'),
'legislatura_selecionada': legislatura,
'sessoes': sessoes,
'sessao_selecionada': sessao_atual,
'composicao_mesa': mesa,
'parlamentares': parlamentares_vagos,
'cargos_vagos': cargos_vagos
})
'legislatura_selecionada': legislatura,
'sessoes': sessoes,
'sessao_selecionada': sessao_atual,
'composicao_mesa': mesa,
'parlamentares': parlamentares_vagos,
'cargos_vagos': cargos_vagos
})
def altera_field_mesa(request):

22
sapl/relatorios/views.py

@ -19,7 +19,7 @@ from sapl.sessao.models import (ExpedienteMateria, ExpedienteSessao,
OrdemDia, PresencaOrdemDia, SessaoPlenaria,
SessaoPlenariaPresenca)
from sapl.settings import STATIC_ROOT
from sapl.utils import UF, filiacao_data, TrocaTag, ExtraiTag
from sapl.utils import LISTA_DE_UFS, ExtraiTag, TrocaTag, filiacao_data
from .templates import (pdf_capa_processo_gerar,
pdf_documento_administrativo_gerar, pdf_espelho_gerar,
@ -27,8 +27,6 @@ from .templates import (pdf_capa_processo_gerar,
pdf_ordem_dia_gerar, pdf_pauta_sessao_gerar,
pdf_protocolo_gerar, pdf_sessao_plenaria_gerar)
uf_dic = dict(UF)
def get_kwargs_params(request, fields):
kwargs = {}
@ -46,8 +44,9 @@ def get_cabecalho(casa):
cabecalho = {}
cabecalho["nom_casa"] = casa.nome
uf_dict = dict(LISTA_DE_UFS)
# FIXME i18n
cabecalho["nom_estado"] = "Estado de " + uf_dic[casa.uf.upper()]
cabecalho["nom_estado"] = "Estado de " + uf_dict[casa.uf.upper()]
return cabecalho
@ -745,11 +744,11 @@ def get_turno(dic, materia, sessao_data_inicio):
data_tramitacao__lte=sessao_data_inicio,
).exclude(turno__exact=''
).select_related(
'materia',
'status',
'materia__tipo').order_by(
'-data_tramitacao'
).first()
'materia',
'status',
'materia__tipo').order_by(
'-data_tramitacao'
).first()
if tramitacao is not None:
for t in Tramitacao.TURNO_CHOICES:
if t[0] == tramitacao.turno:
@ -792,15 +791,11 @@ def relatorio_sessao_plenaria(request, pk):
lst_votacao,
lst_oradores) = get_sessao_plenaria(sessao, casa)
for idx in range(len(lst_expedientes)):
txt_expedientes = lst_expedientes[idx]['txt_expediente']
txt_expedientes = TrocaTag(txt_expedientes, '<table', 'table>', 6, 6, 'expedientes')
lst_expedientes[idx]['txt_expediente'] = txt_expedientes
pdf = pdf_sessao_plenaria_gerar.principal(
cabecalho,
rodape,
@ -1076,7 +1071,6 @@ def get_pauta_sessao(sessao, casa):
dic_expediente_materia["des_turno"] = turno
dic_expediente_materia["des_situacao"] = tramitacao
lst_expediente_materia.append(dic_expediente_materia)
lst_votacao = []

1
sapl/rules/map_rules.py

@ -232,7 +232,6 @@ rules_group_geral = {
(parlamentares.Coligacao, __base__),
(parlamentares.ComposicaoColigacao, __base__),
(parlamentares.Partido, __base__),
(parlamentares.Municipio, __base__),
(parlamentares.NivelInstrucao, __base__),
(parlamentares.SituacaoMilitar, __base__),
(parlamentares.Parlamentar, __base__),

2
sapl/templates/parlamentares/layouts.yaml

@ -39,7 +39,7 @@ Parlamentar:
- email
- numero_gab_parlamentar telefone fax
- endereco_residencia cep_residencia
- municipio_residencia
- municipio_residencia uf_residencia
- telefone_residencia fax_residencia
- locais_atuacao
- fotografia

3
sapl/utils.py

@ -272,7 +272,7 @@ def listify(function):
return list(function(*args, **kwargs))
return f
UF = [
LISTA_DE_UFS = [
('AC', 'Acre'),
('AL', 'Alagoas'),
('AP', 'Amapá'),
@ -675,6 +675,7 @@ def get_mime_type_from_file_extension(filename):
mime = "application/%s" % (ext,)
return mime
def ExtraiTag(texto, posicao):
for i in range(posicao, len(texto)):
if (texto[i] == '>'):

Loading…
Cancel
Save