X-Git-Url: https://git.llucax.com/software/sercom.git/blobdiff_plain/4b7437a8033c0bc66eae8be038000a86dc54c35b..afac27e3d0768062a91a065e4407130cabd84e4a:/sercom/finalizer.py diff --git a/sercom/finalizer.py b/sercom/finalizer.py index 1075cf6..c701087 100644 --- a/sercom/finalizer.py +++ b/sercom/finalizer.py @@ -1,11 +1,12 @@ # vim: set et sw=4 sts=4 encoding=utf-8 foldmethod=marker : -from sercom.model import InstanciaDeEntrega +from sercom.model import InstanciaDeEntrega, Entrega, SQLObjectNotFound +from datetime import datetime import logging log = logging.getLogger('sercom.finalizer') -error_interno = _(u'\n**Hubo un error interno al finalizar la instancia.**\n') +error_interno = u'\n**Hubo un error interno al finalizar la instancia.**\n' class Finalizer(object): #{{{ @@ -49,18 +50,18 @@ class Finalizer(object): #{{{ def instancia_finalizar(self): #{{{ log.debug(_(u'InstanciaDeEntrega.finalizar()')) curso = self.ejercicio.curso - docentes = [di.docente for di in curso.docentes if di.corrige] + docentes = [di for di in curso.docentes if di.corrige] curr_docente = 0 for ai in curso.alumnos: - mejor_entrega = None - for entrega in Entrega.selectBy(instancia=self, entregador=ai).orderBy(-Entrega.q.fecha): - if not mejor_entrega or not mejor_entrega.exito and entrega.exito: - mejor_entrega = entrega - if mejor_entrega: - mejor_entrega.make_correccion(docentes[curr_docente]) + try: + e = Entrega.selectBy(instancia=self, entregador=ai) \ + .orderBy(-Entrega.q.fecha) \ + .limit(1) \ + .getOne() + e.make_correccion(docentes[curr_docente]) curr_docente = (curr_docente + 1) % len(docentes) - else: - log.info(_(u'El alumno inscripto %s no entregó', ai)) + except SQLObjectNotFound: + log.info(_(u'El alumno inscripto %s no entregó'), ai) InstanciaDeEntrega.finalizar = instancia_finalizar #}}}