]> git.llucax.com Git - software/sercom.git/blobdiff - sercom/model.py
Mass upload de alumnos
[software/sercom.git] / sercom / model.py
index 01b908e1531450a49bde6cadaaff88e0ba81cddd..a03266ca4d16371a02ecb19117120d0786ba89bb 100644 (file)
@@ -161,7 +161,7 @@ class Curso(SQLObject, ByObject): #{{{
 
     def shortrepr(self):
         return '%s.%s.%s' \
 
     def shortrepr(self):
         return '%s.%s.%s' \
-            % (self.anio, self.cuatrimestre, self.numero, self.descripcion)
+            % (self.anio, self.cuatrimestre, self.numero)
 #}}}
 
 class Usuario(InheritableSQLObject, ByObject): #{{{
 #}}}
 
 class Usuario(InheritableSQLObject, ByObject): #{{{
@@ -334,13 +334,15 @@ class Tarea(InheritableSQLObject, ByObject): #{{{
 class Enunciado(SQLObject, ByObject): #{{{
     # Clave
     nombre          = UnicodeCol(length=60, alternateID=True)
 class Enunciado(SQLObject, ByObject): #{{{
     # Clave
     nombre          = UnicodeCol(length=60, alternateID=True)
+    anio            = IntCol(notNone=True)
+    cuatrimestre    = IntCol(notNone=True)
     # Campos
     autor           = ForeignKey('Docente')
     descripcion     = UnicodeCol(length=255, default=None)
     creado          = DateTimeCol(notNone=True, default=DateTimeCol.now)
     archivo         = BLOBCol(default=None)
     # Campos
     autor           = ForeignKey('Docente')
     descripcion     = UnicodeCol(length=255, default=None)
     creado          = DateTimeCol(notNone=True, default=DateTimeCol.now)
     archivo         = BLOBCol(default=None)
-    archivo_name    = StringCol(default=None)
-    archivo_type    = StringCol(default=None)
+    archivo_name    = UnicodeCol(length=255, default=None)
+    archivo_type    = UnicodeCol(length=255, default=None)
     # Joins
     ejercicios      = MultipleJoin('Ejercicio')
     casos_de_prueba = MultipleJoin('CasoDePrueba')
     # Joins
     ejercicios      = MultipleJoin('Ejercicio')
     casos_de_prueba = MultipleJoin('CasoDePrueba')
@@ -352,6 +354,10 @@ class Enunciado(SQLObject, ByObject): #{{{
         if tareas:
             self.tareas = tareas
 
         if tareas:
             self.tareas = tareas
 
+    @classmethod
+    def selectByCurso(self, curso):
+        return Enunciado.selectBy(cuatrimestre=curso.cuatrimestre, anio=curso.anio)
+
     def add_caso_de_prueba(self, nombre, *args, **kargs):
         return CasoDePrueba(self, nombre, *args, **kargs)
 
     def add_caso_de_prueba(self, nombre, *args, **kargs):
         return CasoDePrueba(self, nombre, *args, **kargs)
 
@@ -406,7 +412,7 @@ class CasoDePrueba(SQLObject): #{{{
     pk              = DatabaseIndex(enunciado, nombre, unique=True)
     # Campos
 #    privado         = IntCol(default=None) TODO iria en instancia_de_entrega_caso_de_prueba
     pk              = DatabaseIndex(enunciado, nombre, unique=True)
     # Campos
 #    privado         = IntCol(default=None) TODO iria en instancia_de_entrega_caso_de_prueba
-    parametros      = ParamsCol(length=255)
+    parametros      = ParamsCol(length=255, default=None)
     retorno         = IntCol(default=None)
     tiempo_cpu      = FloatCol(default=None)
     descripcion     = UnicodeCol(length=255, default=None)
     retorno         = IntCol(default=None)
     tiempo_cpu      = FloatCol(default=None)
     descripcion     = UnicodeCol(length=255, default=None)
@@ -442,8 +448,9 @@ class Ejercicio(SQLObject, ByObject): #{{{
 
     def __init__(self, curso=None, numero=None, enunciado=None, grupal=False,
             **kargs):
 
     def __init__(self, curso=None, numero=None, enunciado=None, grupal=False,
             **kargs):
-        SQLObject.__init__(self, cursoID=curso.id, numero=numero,
-            enunciadoID=enunciado.id, grupal=grupal, **kargs)
+        if curso and enunciado:
+            SQLObject.__init__(self, cursoID=curso.id, numero=numero,
+                enunciadoID=enunciado.id, grupal=grupal, **kargs)
 
     def add_instancia(self, numero, inicio, fin, *args, **kargs):
         return InstanciaDeEntrega(self, numero, inicio, fin, *args, **kargs)
 
     def add_instancia(self, numero, inicio, fin, *args, **kargs):
         return InstanciaDeEntrega(self, numero, inicio, fin, *args, **kargs)
@@ -456,7 +463,7 @@ class Ejercicio(SQLObject, ByObject): #{{{
 
     def shortrepr(self):
         return '(%s, %s, %s)' \
 
     def shortrepr(self):
         return '(%s, %s, %s)' \
-            % (self.curso.shortrepr(), self.nombre, \
+            % (self.curso.shortrepr(), str(self.numero), \
                 self.enunciado.shortrepr())
 #}}}
 
                 self.enunciado.shortrepr())
 #}}}
 
@@ -477,9 +484,10 @@ class InstanciaDeEntrega(SQLObject, ByObject): #{{{
 
     def __init__(self, ejercicio=None, numero=None, inicio=None, fin=None,
             observaciones=None, activo=True, tareas=(), **kargs):
 
     def __init__(self, ejercicio=None, numero=None, inicio=None, fin=None,
             observaciones=None, activo=True, tareas=(), **kargs):
-        SQLObject.__init__(self, ejercicioID=ejercicio.id, numero=numero,
-            fin=fin, inicio=inicio, observaciones=observaciones, activo=activo,
-            **kargs)
+        if ejercicio:
+            SQLObject.__init__(self, ejercicioID=ejercicio.id, numero=numero,
+                fin=fin, inicio=inicio, observaciones=observaciones, activo=activo,
+                **kargs)
         if tareas:
             self.tareas = tareas
 
         if tareas:
             self.tareas = tareas
 
@@ -590,7 +598,8 @@ class Grupo(Entregador): #{{{
 
     def __init__(self, curso=None, nombre=None, responsable=None, **kargs):
         resp_id = responsable and responsable.id
 
     def __init__(self, curso=None, nombre=None, responsable=None, **kargs):
         resp_id = responsable and responsable.id
-        InheritableSQLObject.__init__(self, cursoID=curso.id, nombre=nombre,
+        curso_id = curso and curso.id
+        InheritableSQLObject.__init__(self, cursoID=curso_id, nombre=nombre,
             responsableID=resp_id, **kargs)
 
     def add_alumno(self, alumno, *args, **kargs):
             responsableID=resp_id, **kargs)
 
     def add_alumno(self, alumno, *args, **kargs):