]> git.llucax.com Git - z.facultad/75.52/sercom.git/blobdiff - sercom/model.py
Filtro por Curso para Grupo y linkeo filtrado desde Curso.
[z.facultad/75.52/sercom.git] / sercom / model.py
index 5e6ec2a1b9d90a0baf4ce7b692733618468b8c37..cff6afdfb040255f94b9138673dcbf490236f2c6 100644 (file)
@@ -281,8 +281,6 @@ class Tarea(InheritableSQLObject): #{{{
     nombre              = UnicodeCol(length=30, alternateID=True)
     # Campos
     descripcion         = UnicodeCol(length=255, default=None)
     nombre              = UnicodeCol(length=30, alternateID=True)
     # Campos
     descripcion         = UnicodeCol(length=255, default=None)
-    terminar_si_falla   = BoolCol(notNone=True, default=True)
-    rechazar_si_falla   = BoolCol(notNone=True, default=True)
     # Joins
     enunciados          = RelatedJoin('Enunciado', addRemoveName='_enunciado')
 
     # Joins
     enunciados          = RelatedJoin('Enunciado', addRemoveName='_enunciado')
 
@@ -349,6 +347,10 @@ class Comando(InheritableSQLObject): #{{{
     rechazar_si_falla   = BoolCol(notNone=True, default=True)
     archivos_entrada    = BLOBCol(default=None) # ZIP con archivos de entrada
                                                 # __stdin__ es caso especial
     rechazar_si_falla   = BoolCol(notNone=True, default=True)
     archivos_entrada    = BLOBCol(default=None) # ZIP con archivos de entrada
                                                 # __stdin__ es caso especial
+                                                # Si un caso de prueba tiene
+                                                # comandos con stdin y el caso
+                                                # de prueba también tiene stdin
+                                                # se usa el stdin del comando.
     archivos_a_comparar = BLOBCol(default=None) # ZIP con archivos de salida
                                                 # __stdout__, __stderr__ y
                                                 # __stdouterr__ (ambos juntos)
     archivos_a_comparar = BLOBCol(default=None) # ZIP con archivos de salida
                                                 # __stdout__, __stderr__ y
                                                 # __stdouterr__ (ambos juntos)
@@ -401,7 +403,7 @@ class ComandoPrueba(Comando): #{{{
     pk                  = DatabaseIndex(tarea, orden, unique=True)
 
     def __repr__(self):
     pk                  = DatabaseIndex(tarea, orden, unique=True)
 
     def __repr__(self):
-        return super(ComandoFuente, self).__repr__('tarea=%s, orden=%s'
+        return super(ComandoPrueba, self).__repr__('tarea=%s, orden=%s'
             % (self.tarea.shortrepr(), self.orden))
 
     def shortrepr(self):
             % (self.tarea.shortrepr(), self.orden))
 
     def shortrepr(self):
@@ -648,7 +650,7 @@ class Grupo(Entregador): #{{{
     @classmethod
     def selectByAlumno(self, alumno):
         return Miembro.select(AND(Miembro.q.alumnoID == AlumnoInscripto.q.id,
     @classmethod
     def selectByAlumno(self, alumno):
         return Miembro.select(AND(Miembro.q.alumnoID == AlumnoInscripto.q.id,
-                AlumnoInscripto.q.alumnoID == alumno.id))
+                AlumnoInscripto.q.alumnoID == alumno.id, Miembro.q.baja == None))
 
     def shortrepr(self):
         return 'grupo:' + self.nombre
 
     def shortrepr(self):
         return 'grupo:' + self.nombre
@@ -668,6 +670,10 @@ class AlumnoInscripto(Entregador): #{{{
     membresias          = MultipleJoin('Miembro', joinColumn='alumno_id')
     entregas            = MultipleJoin('Entrega', joinColumn='alumno_id')
     correcciones        = MultipleJoin('Correccion', joinColumn='alumno_id')
     membresias          = MultipleJoin('Miembro', joinColumn='alumno_id')
     entregas            = MultipleJoin('Entrega', joinColumn='alumno_id')
     correcciones        = MultipleJoin('Correccion', joinColumn='alumno_id')
+    # Notas de la cursada
+    nota_practica       = DecimalCol(size=3, precision=1, default=None)
+    nota_final          = DecimalCol(size=3, precision=1, default=None)
+    nota_libreta        = DecimalCol(size=3, precision=1, default=None)
 
     def _get_nombre(self):
         return self.alumno.padron
 
     def _get_nombre(self):
         return self.alumno.padron
@@ -828,7 +834,7 @@ class ComandoFuenteEjecutado(ComandoEjecutado): #{{{
                 self.entrega.shortrepr()))
 
     def shortrepr(self):
                 self.entrega.shortrepr()))
 
     def shortrepr(self):
-        return '%s-%s' % (self.tarea.shortrepr(), self.entrega.shortrepr())
+        return '%s-%s' % (self.comando.shortrepr(), self.entrega.shortrepr())
 #}}}
 
 class ComandoPruebaEjecutado(ComandoEjecutado): #{{{
 #}}}
 
 class ComandoPruebaEjecutado(ComandoEjecutado): #{{{