]> git.llucax.com Git - software/sercom-old.git/blobdiff - src/sc_deliver
Se agrega sqlite a las dependencias en el README.
[software/sercom-old.git] / src / sc_deliver
index 67ec78d838e637d68a5cbf8602f2913c53d270c6..6377f003e4a7c9643c1c697f5542d4bf508f08b3 100755 (executable)
@@ -26,7 +26,7 @@ a su intento %d, recibido el %s.
     mail['To'] = inscripto.mail
     mail['Reply-To'] = conf.get('mail', 'admin')
     mail['Return-Path'] = conf.get('mail', 'admin')
     mail['To'] = inscripto.mail
     mail['Reply-To'] = conf.get('mail', 'admin')
     mail['Return-Path'] = conf.get('mail', 'admin')
-    mail['X-Mailer'] = 'sercom 0.3'
+    mail['X-Mailer'] = 'sercom ' + sercom.VERSION
     mail['X-Priority'] = '5'
     smtp = smtplib.SMTP(conf.get('mail', 'smtp'))
     smtp.sendmail(mail['From'], mail['To'], mail.as_string())
     mail['X-Priority'] = '5'
     smtp = smtplib.SMTP(conf.get('mail', 'smtp'))
     smtp.sendmail(mail['From'], mail['To'], mail.as_string())
@@ -46,18 +46,27 @@ for entrega in Entrega.getPendientes(conn):
     for inscripto in Inscripto.selectBy(cursoID=entrega.cursoID, activo=True,
             connection=conn):
         log.debug('Procesando inscripto: %s', inscripto)
     for inscripto in Inscripto.selectBy(cursoID=entrega.cursoID, activo=True,
             connection=conn):
         log.debug('Procesando inscripto: %s', inscripto)
-        for intento in Intento.select(sercom.sqlo.AND(
-                Intento.q.inscriptoID == inscripto.id, Intento.q.entregaID == entrega.id),
-                orderBy=-Intento.q.numero, connection=conn):
+        intentos = list(Intento.select(
+            sercom.sqlo.AND(Intento.q.inscriptoID == inscripto.id,
+                Intento.q.entregaID == entrega.id),
+            orderBy=-Intento.q.numero, connection=conn))
+        no_entrega = True
+        for intento in intentos:
             log.debug('Procesando intento: %s', intento)
             # Si aprobó las pruebas públicas, está apto para corregir
             if intento.pruebasPublicasPasadas:
                 correccion = Correccion(entrega=entrega, inscripto=inscripto,
                     intento=intento, docente=1, connection=conn) #XXX Docente dummy
                 notificar(correccion)
             log.debug('Procesando intento: %s', intento)
             # Si aprobó las pruebas públicas, está apto para corregir
             if intento.pruebasPublicasPasadas:
                 correccion = Correccion(entrega=entrega, inscripto=inscripto,
                     intento=intento, docente=1, connection=conn) #XXX Docente dummy
                 notificar(correccion)
+                no_entrega = False
                 log.info('Intento %d del alumno %d aceptado como entrega final.',
                     intento.numero, inscripto.padron)
                 break
                 log.info('Intento %d del alumno %d aceptado como entrega final.',
                     intento.numero, inscripto.padron)
                 break
+        # Si no tiene ningún intento 'entregable', es algo malo.
+        if intentos and no_entrega:
+            log.warn('El alumno con padrón %d tiene intentos para la ' \
+                'entrega %d.%d pero ninguno es aceptable', inscripto.padron,
+                entrega.nroEjercicio, entrega.entrega)
     log.debug('Entrega finalizada')
     entrega.finalizada = True
 
     log.debug('Entrega finalizada')
     entrega.finalizada = True