Código fonte de legislei.services.inscricoes

import logging
from datetime import datetime

from legislei.exceptions import UserDoesNotExist
from legislei.house_selector import obter_parlamentar
from legislei.models.inscricoes import Inscricoes
from legislei.models.user import User

[documentos]class Inscricao():
[documentos] def obter_todas_inscricoes_para_processar(self, data_final=datetime.now()): inscricoes = [] numero_semana = int(data_final.strftime("%V")) for user in User.objects(): if user.inscricoes and user.inscricoes.parlamentares != []: inscricao = user.inscricoes if (numero_semana % (inscricao.intervalo/7) != 0): logging.info("Pulando {} (intervalo de inscricao: {})".format( user.username, inscricao.intervalo)) else: inscricoes.append(user) return inscricoes
[documentos] def obter_minhas_inscricoes(self, email): user = User.objects(email=email) if not(user): raise UserDoesNotExist() inscricoes = user.first().inscricoes if inscricoes: return inscricoes.parlamentares, inscricoes.intervalo else: return [], 7
[documentos] def nova_inscricao(self, cargo, parlamentar_id, email): user = User.objects(email=email) if not(user): raise UserDoesNotExist() user = user.first() parlamentar = obter_parlamentar(cargo, parlamentar_id) inscricoes = user.inscricoes if inscricoes: user.inscricoes.parlamentares.append(parlamentar) user.save() else: inscricao = Inscricoes(parlamentares=[parlamentar], intervalo=7) user.inscricoes = inscricao user.save()
[documentos] def remover_inscricao(self, cargo, parlamentar_id, email): User.objects(email=email).update_one( pull__inscricoes__parlamentares={'cargo': cargo, 'id': parlamentar_id})
[documentos] def alterar_configs(self, periodo, email): if periodo in [7, 14, 21, 28]: User.objects(email=email).update_one(set__inscricoes__intervalo=periodo)