Commit ab814146 authored by Iolane Andrade's avatar Iolane Andrade Committed by Diego Rabatone

Proposta de Refatoração

parent aca6a945
Pipeline #39086490 passed with stages
in 8 minutes and 22 seconds
......@@ -213,10 +213,11 @@ class CasaLegislativa(models.Model):
@staticmethod
def deleta_casa(nome_casa_curto):
"""Método que deleta determinado registro de casa legislativa
em cascata
Argumentos:
nome_casa - Nome da casa a ser deletada"""
"""Deleta determinado registro de casa legislativa em cascata.
Argumentos:
nome_casa - Nome da casa a ser deletada
"""
try:
try:
CasaLegislativa.objects.get(
......@@ -288,16 +289,10 @@ class ChefeExecutivo(models.Model):
def get_chefe_periodo(ano_inicio, ano_fim, chefes_executivo):
chefes = []
for chefe in chefes_executivo:
ano_inicio_valido = (ano_inicio >= chefe.mandato_ano_inicio) and (
ano_inicio <= chefe.mandato_ano_fim)
ano_fim_valido = (ano_fim >= chefe.mandato_ano_inicio) and (
ano_fim <= chefe.mandato_ano_fim)
mandato_ano_inicio_valido = (
chefe.mandato_ano_inicio >= ano_inicio) and (
chefe.mandato_ano_inicio <= ano_fim)
mandato_ano_fim_valido = (
chefe.mandato_ano_fim >= ano_inicio) and (
chefe.mandato_ano_fim <= ano_fim)
ano_inicio_valido = ChefeExecutivo.validar_ano_periodo(ano_inicio, chefe)
ano_fim_valido = ChefeExecutivo.validar_ano_periodo(ano_fim, chefe)
mandato_ano_inicio_valido = ChefeExecutivo.validar_mandato_ano_inicio(ano_fim, ano_inicio, chefe)
mandato_ano_fim_valido = ChefeExecutivo.validar_mandato_ano_fim(ano_fim, ano_inicio, chefe)
if(ano_inicio_valido or ano_fim_valido or
mandato_ano_inicio_valido or mandato_ano_fim_valido):
......@@ -305,6 +300,21 @@ class ChefeExecutivo(models.Model):
return chefes
@staticmethod
def validar_ano_periodo(ano_periodo, chefe):
return (ano_periodo >= chefe.mandato_ano_inicio and
ano_periodo <= chefe.mandato_ano_fim)
@staticmethod
def validar_mandato_ano_inicio(ano_fim, ano_inicio, chefe):
return (chefe.mandato_ano_inicio >= ano_inicio and
chefe.mandato_ano_inicio <= ano_fim)
@staticmethod
def validar_mandato_ano_fim(ano_fim, ano_inicio, chefe):
return (chefe.mandato_ano_fim >= ano_inicio and
chefe.mandato_ano_fim <= ano_fim)
def get_titulo_chefe(self):
titulo = ""
casas_legislativas = self.casas_legislativas.all()
......@@ -339,7 +349,6 @@ class PeriodoCasaLegislativa(object):
def __str__(self):
data_string = ''
# data_string = str(self.ini.year) # sempre começa com o ano
delta = self.fim - self.ini
if delta.days < 35: # período é de um mês
meses = ['',
......@@ -376,6 +385,7 @@ class PeriodoCasaLegislativa(object):
class Parlamentar(models.Model):
"""Um parlamentar em uma determinada situação.
Se o cidadão troca de partido, de casa legislativa ou de localidade,
passa a ser um novo Parlamentar.
......@@ -469,7 +479,7 @@ class Votacao(models.Model):
on_delete=models.CASCADE)
def votos(self):
"""Retorna os votos da votação (depende do banco de dados)"""
"""Retorna os votos da votação (depende do banco de dados)."""
return self.voto_set.all()
def por_partido(self):
......@@ -493,7 +503,6 @@ class Votacao(models.Model):
data_final=None):
votacoes = Votacao.objects.filter(
proposicao__casa_legislativa=casa_legislativa)
from django.utils.dateparse import parse_datetime
if data_inicial is not None:
ini = parse_datetime('%s 0:0:0' % data_inicial)
votacoes = votacoes.filter(data__gte=ini)
......@@ -550,7 +559,8 @@ class VotosAgregados:
"""Adiciona um voto ao conjunto de votos.
Argumentos:
voto -- string \in {SIM, NAO, ABSTENCAO, AUSENTE, OBSTRUCAO}
voto -- string dentre as seguintes opções:
SIM, NAO, ABSTENCAO, AUSENTE, OBSTRUCAO
OBSTRUCAO conta como um voto ABSTENCAO
AUSENTE não conta como um voto
"""
......@@ -569,8 +579,10 @@ class VotosAgregados:
return self.sim + self.nao + self.abstencao
def voto_medio(self):
"""Valor real que representa a 'opnião média' dos
votos agregados; 1 representa sim e -1 representa não."""
"""Valor real que representa a 'opnião média' dos votos agregados.
1 representa sim
-1 representa não."""
total = self.total()
if total > 0:
return 1.0 * (self.sim - self.nao) / self.total()
......@@ -581,7 +593,6 @@ class VotosAgregados:
return '(%s, %s, %s)' % (self.sim, self.nao, self.abstencao)
class VotoPartido(VotosAgregados):
"""Um conjunto de votos de um partido.
......@@ -590,6 +601,7 @@ class VotoPartido(VotosAgregados):
sim, nao, abstencao --
inteiros que representam a quantidade de votos no conjunto
"""
def __init__(self, partido):
VotosAgregados.__init__(self)
self.partido = partido
......@@ -8,17 +8,12 @@ class RadarSitemaps(sitemaps.Sitemap):
lastmod = timezone.now()
def items(self):
return ['index', 'origem', 'ogrupo', 'premiacoes', 'radar_na_midia',
'radar_na_academia', 'votoaberto', 'blog', 'importadores',
'genero', 'genero_matriz', 'genero_perfil_partido',
'genero_comparativo_partidos', 'genero_historia_legislaturas',
'genero_treemap', 'genero_futuro', 'genero_termos_nuvem',
return ['index', 'origem', 'ogrupo', 'premiacoes', 'radar_na_midia',
'radar_na_academia', 'votoaberto', 'blog', 'importadores',
'genero', 'genero_matriz', 'genero_perfil_partido',
'genero_comparativo_partidos', 'genero_historia_legislaturas',
'genero_treemap', 'genero_futuro', 'genero_termos_nuvem',
'django.contrib.sitemaps.views.sitemap']
def location(self, item):
return reverse(item)
......@@ -74,5 +74,5 @@ urlpatterns = [
path('radar/', include(radar_patterns)),
path('votacoes/', include(votacoes_patterns)),
path('sitemap.xml', sitemap, {'sitemaps': sitemaps}, name='django.contrib.sitemaps.views.sitemap'),
path('robots.txt', radar_views.robots, name="robots.txt"),
path('robots.txt', radar_views.robots, name="robots.txt"),
]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment