]> git.llucax.com Git - software/sercom.git/blobdiff - sercom/model.py
excepciones en la eliminacion
[software/sercom.git] / sercom / model.py
index bc7388c0edfbd2a5ff2393e0f38c96ab7b47fb0c..2db805a1861103d431c1dc5989d58864ad2f56d0 100644 (file)
@@ -159,9 +159,9 @@ class Curso(SQLObject): #{{{
 
     def remove_docente(self, docente):
         if isinstance(docente, Docente):
 
     def remove_docente(self, docente):
         if isinstance(docente, Docente):
-            DocenteInscripto.pk.get(curso=self, docente=docente).destroySelf()
+            DocenteInscripto.selectBy(curso=self, docente=docente).getOne().destroySelf()
         else:
         else:
-            DocenteInscripto.pk.get(curso=self, docenteID=docente).destroySelf()
+            DocenteInscripto.selectBy(curso=self, docenteID=docente).getOne().destroySelf()
 
     def add_alumno(self, alumno, **kw):
         if isinstance(alumno, Alumno):
 
     def add_alumno(self, alumno, **kw):
         if isinstance(alumno, Alumno):
@@ -172,9 +172,9 @@ class Curso(SQLObject): #{{{
 
     def remove_alumno(self, alumno):
         if isinstance(alumno, Alumno):
 
     def remove_alumno(self, alumno):
         if isinstance(alumno, Alumno):
-            AlumnoInscripto.pk.get(curso=self, alumno=alumno).destroySelf()
+            AlumnoInscripto.selectBy(curso=self, alumno=alumno).getOne().destroySelf()
         else:
         else:
-            AlumnoInscripto.pk.get(curso=self, alumnoID=alumno).destroySelf()
+            AlumnoInscripto.selectBy(curso=self, alumnoID=alumno).getOne().destroySelf()
 
     def add_grupo(self, nombre, **kw):
         return Grupo(curso=self, nombre=unicode(nombre), **kw)
 
     def add_grupo(self, nombre, **kw):
         return Grupo(curso=self, nombre=unicode(nombre), **kw)
@@ -565,8 +565,6 @@ CREATE TABLE instancia_tarea (
     # Joins
     entregas        = MultipleJoin('Entrega', joinColumn='instancia_id')
     correcciones    = MultipleJoin('Correccion', joinColumn='instancia_id')
     # Joins
     entregas        = MultipleJoin('Entrega', joinColumn='instancia_id')
     correcciones    = MultipleJoin('Correccion', joinColumn='instancia_id')
-    casos_de_prueba = RelatedJoin('CasoDePrueba', # TODO CasoInstancia -> private
-                        addRemoveName='_caso_de_prueba')
 
     def __init__(self, tareas=(), **kw):
         super(InstanciaDeEntrega, self).__init__(**kw)
 
     def __init__(self, tareas=(), **kw):
         super(InstanciaDeEntrega, self).__init__(**kw)
@@ -703,27 +701,27 @@ class Grupo(Entregador): #{{{
                 self.add_tutor(t)
 
     def add_miembro(self, alumno, **kw):
                 self.add_tutor(t)
 
     def add_miembro(self, alumno, **kw):
-        if isinstance(alumno, Alumno):
+        if isinstance(alumno, AlumnoInscripto):
             kw['alumno'] = alumno
         else:
             kw['alumnoID'] = alumno
         return Miembro(grupo=self, **kw)
 
     def remove_miembro(self, alumno):
             kw['alumno'] = alumno
         else:
             kw['alumnoID'] = alumno
         return Miembro(grupo=self, **kw)
 
     def remove_miembro(self, alumno):
-        if isinstance(alumno, Alumno):
+        if isinstance(alumno, AlumnoInscripto):
             Miembro.pk.get(grupo=self, alumno=alumno).destroySelf()
         else:
             Miembro.pk.get(grupo=self, alumnoID=alumno).destroySelf()
 
     def add_tutor(self, docente, **kw):
             Miembro.pk.get(grupo=self, alumno=alumno).destroySelf()
         else:
             Miembro.pk.get(grupo=self, alumnoID=alumno).destroySelf()
 
     def add_tutor(self, docente, **kw):
-        if isinstance(docente, Docente):
+        if isinstance(docente, DocenteInscripto):
             kw['docente'] = docente
         else:
             kw['docenteID'] = docente
         return Tutor(grupo=self, **kw)
 
     def remove_tutor(self, docente):
             kw['docente'] = docente
         else:
             kw['docenteID'] = docente
         return Tutor(grupo=self, **kw)
 
     def remove_tutor(self, docente):
-        if isinstance(docente, Alumno):
+        if isinstance(docente, DocenteInscripto):
             Tutor.pk.get(grupo=self, docente=docente).destroySelf()
         else:
             Tutor.pk.get(grupo=self, docenteID=docente).destroySelf()
             Tutor.pk.get(grupo=self, docente=docente).destroySelf()
         else:
             Tutor.pk.get(grupo=self, docenteID=docente).destroySelf()
@@ -859,6 +857,9 @@ class Correccion(SQLObject): #{{{
     nota            = DecimalCol(size=3, precision=1, default=None)
     observaciones   = UnicodeCol(default=None)
 
     nota            = DecimalCol(size=3, precision=1, default=None)
     observaciones   = UnicodeCol(default=None)
 
+    def _get_entregas(self):
+        return list(Entrega.selectBy(instancia=self.instancia, entregador=self.entregador))
+
     def __repr__(self):
         return 'Correccion(instancia=%s, entregador=%s, entrega=%s, ' \
             'corrector=%s, asignado=%s, corregido=%s, nota=%s, ' \
     def __repr__(self):
         return 'Correccion(instancia=%s, entregador=%s, entrega=%s, ' \
             'corrector=%s, asignado=%s, corregido=%s, nota=%s, ' \
@@ -868,6 +869,8 @@ class Correccion(SQLObject): #{{{
                     self.corregido, self.nota, self.observaciones)
 
     def shortrepr(self):
                     self.corregido, self.nota, self.observaciones)
 
     def shortrepr(self):
+        if not self.corrector:
+            return '%s' % self.entrega.shortrepr()
         return '%s,%s' % (self.entrega.shortrepr(), self.corrector.shortrepr())
 #}}}
 
         return '%s,%s' % (self.entrega.shortrepr(), self.corrector.shortrepr())
 #}}}