]> git.llucax.com Git - software/sercom-old.git/commitdiff
Nueva estructura de directorios de intentos. Uso de decorators.
authorLeandro Lucarella <llucax@gmail.com>
Fri, 18 Feb 2005 17:58:36 +0000 (17:58 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Fri, 18 Feb 2005 17:58:36 +0000 (17:58 +0000)
src/T/Intento.php
src/sercom/dbo.py

index 3bb6f2448292b8ff66cc61bb086ad564954e980e..2adb95232ed6c4053f1a3e483aa69ef5bfbc7b61 100644 (file)
@@ -75,6 +75,7 @@ EOT;
         if (!$inscripto->getFrom($this->padron)) return 'El alumno no está inscripto';
         $inscripto->getLinks();
         $cuat = $inscripto->_curso_id->toLine();
+        $this->inscripto = $inscripto;
         $this->cuatrimestre = $cuat;
         if (!T_chequear_codigo($code, $this->padron, $claves))
             return 'La clave de la entrega no es válida';
@@ -186,11 +187,13 @@ EOT;
      * Obtiene el directorio base de la entrega.
      * El directorio base no contempla los datos propios del intento, como
      * padrón e intento.
-     * @param base_dir Directorio base, si no se especifica se usa el directorio
-     *                 base del intento.
+     * @param base_dir Directorio base.
      */
     function path($base_dir) {
-        return "$base_dir/{$this->cuatrimestre}/{$this->ejercicio}-{$this->entrega}/{$this->padron}/{$this->intento}";
+        $curso = $this->inscripto->_curso_id;
+        return "$base_dir/{$curso->anio}.{$curso->cuatrimestre}/"
+            . "{$curso->curso}.{$this->ejercicio}.{$this->entrega}/"
+            . "{$this->padron}.{$this->intento}";
     }
 
 }
index 32aa4929bf4a4fd28cd59a757e9d9ff67d18aeb6..518dc5e1fb6674d686f38bdff4a82d8c1bc53d25 100644 (file)
@@ -6,13 +6,12 @@ __all__ = ('Curso', 'Inscripto', 'Docente', 'Ejercicio', 'Entrega',
 
 class BaseSQLObject(SQLObject):
 
-    #@classmethod
+    @classmethod
     def by(cls, connection = None, **kw):
         try:
             return cls.selectBy(connection = connection, **kw)[0]
         except IndexError:
             raise SQLObjectNotFound, "The object %s with columns %s does not exist" % (cls.__name__, kw)
-    by = classmethod(by)
 
 class Curso(BaseSQLObject):
     # Clave
@@ -105,24 +104,21 @@ class Intento(BaseSQLObject):
     # Joins
     pruebas         = MultipleJoin('Prueba')
 
-    _dir_base       = 'intentos'
-
-    #@classmethod
+    @classmethod
     def getProximoAProbar(cls, connection = None):
         try:
-            return cls.select(cls.q.inicioPruebas == None, limit=1,
+            return cls.select(cls.q.compila == None, limit=1,
                 orderBy=cls.q.llegada, connection=connection)[0]
         except IndexError:
             return None
-    getProximoAProbar = classmethod(getProximoAProbar)
 
     def path(self, dir_base):
-        import os.path
+        from os.path import join
         curso = self.inscripto.curso
         entrega = self.entrega
-        return os.path.join(dir_base, curso.anio, curso.cuatrimestre,
-            curso.curso, '%s.%s' % (entrega.nroEjercicio, entrega.entrega),
-            self.inscripto.padron, self.numero)
+        return join(dir_base, '%s.%s' % (curso.anio, curso.cuatrimestre),
+            '%s.%s.%s' % (curso.curso, entrega.nroEjercicio, entrega.entrega),
+            '%s.%s' % (self.inscripto.padron, self.numero))
 
 class Correccion(BaseSQLObject):
     # Clave