예제 #1
0
 def avaliar(self, avaliado, avaliacao_valor, email, relatorio_id):
     avaliacao = Avaliacoes()
     try:
         relatorio = Relatorio.objects(pk=relatorio_id).first()
     except ValidationError:
         raise ReportNotFound()
     if relatorio == None:
         raise ReportNotFound()
     for tipo in ['eventosAusentes', 'eventosPresentes', 'proposicoes']:
         for item in relatorio.to_dict()[tipo]:
             if 'id' in item and str(item['id']) == avaliado:
                 avaliacao.avaliado = item
                 break
     if avaliacao.avaliado == {}:
         raise ItemNotFound()
     avaliacao.email = email
     avaliacao.relatorioId = ObjectId(relatorio.pk)
     avaliacao.avaliacao = avaliacao_valor
     avaliacao.parlamentar = relatorio.parlamentar
     avaliacao_existente = Avaliacoes.objects(
         avaliado__id__=avaliacao.avaliado['id'],
         parlamentar__id__=relatorio.parlamentar.id,
         parlamentar__cargo=relatorio.parlamentar.cargo,
         email=email,
         relatorioId=relatorio.pk)
     if avaliacao_existente:
         Avaliacoes.objects(pk=avaliacao_existente.first().pk).update_one(
             set__avaliacao=avaliacao['avaliacao'])
     else:
         avaliacao.save()
예제 #2
0
 def verificar_relatorio(self, parlamentar, data_final, cargo, periodo):
     brasilia_tz = pytz.timezone('America/Sao_Paulo')
     data_inicial = datetime.strptime(
         data_final, '%Y-%m-%d') - timedelta(days=int(periodo))
     relatorio = Relatorio.objects(
         parlamentar__id__=parlamentar,
         parlamentar__cargo=cargo,
         data_final=brasilia_tz.localize(
             datetime.strptime(data_final, '%Y-%m-%d')),
         data_inicial=brasilia_tz.localize(data_inicial))
     return relatorio.first() if relatorio else None
예제 #3
0
 def buscar_por_parlamentar(self, cargo, parlamentar_id):
     return json.loads(
         Relatorio.objects(parlamentar__id__=parlamentar_id,
                           parlamentar__cargo=cargo).to_json())
예제 #4
0
 def obter_por_id(self, relatorio_id):
     try:
         return Relatorio.objects(pk=relatorio_id).first()
     except ValidationError:
         return None