summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
db587d0)
SQLObject agrega un método getOne() a SelectResult (lo que devuelve el select()
y selectBy), así que ahora en vez de hacer: MySQLObject.by(algo=1), hay
que hacer: MySQLObject.selectBy(algo=1).getOne(). Si el query devuelve más de un
elemento, lanza una excepción SQLObjectIntegrityError. Si se especifica un
default, si no se encontró nada devuelve el default
(A.select(algo=1).getOne(None) devuelve None si no se encontró nada, por
ejemplo), si no lanza un SQLObjectNotFound.
Más info: http://www.sqlobject.org/News.html#id1
-class ByObject(object): #{{{
- @classmethod
- def by(cls, **kw):
- try:
- return cls.selectBy(**kw)[0]
- except IndexError:
- raise SQLObjectNotFound, "The object %s with columns %s does not exist" % (cls.__name__, kw)
-#}}}
-
-class Curso(SQLObject, ByObject): #{{{
+class Curso(SQLObject): #{{{
# Clave
anio = IntCol(notNone=True)
cuatrimestre = IntCol(notNone=True)
# Clave
anio = IntCol(notNone=True)
cuatrimestre = IntCol(notNone=True)
% (self.anio, self.cuatrimestre, self.numero)
#}}}
% (self.anio, self.cuatrimestre, self.numero)
#}}}
-class Usuario(InheritableSQLObject, ByObject): #{{{
+class Usuario(InheritableSQLObject): #{{{
# Clave (para docentes puede ser un nombre de usuario arbitrario)
usuario = UnicodeCol(length=10, alternateID=True)
# Campos
# Clave (para docentes puede ser un nombre de usuario arbitrario)
usuario = UnicodeCol(length=10, alternateID=True)
# Campos
self.telefono, self.activo, self.creado, self.observaciones)
#}}}
self.telefono, self.activo, self.creado, self.observaciones)
#}}}
-class Tarea(InheritableSQLObject, ByObject): #{{{
+class Tarea(InheritableSQLObject): #{{{
class sqlmeta:
createSQL = r'''
CREATE TABLE dependencia (
class sqlmeta:
createSQL = r'''
CREATE TABLE dependencia (
-class Enunciado(SQLObject, ByObject): #{{{
+class Enunciado(SQLObject): #{{{
class sqlmeta:
createSQL = r'''
CREATE TABLE enunciado_tarea (
class sqlmeta:
createSQL = r'''
CREATE TABLE enunciado_tarea (
return '%s:%s' % (self.enunciado.shortrepr(), self.nombre)
#}}}
return '%s:%s' % (self.enunciado.shortrepr(), self.nombre)
#}}}
-class Ejercicio(SQLObject, ByObject): #{{{
+class Ejercicio(SQLObject): #{{{
# Clave
curso = ForeignKey('Curso', notNone=True)
numero = IntCol(notNone=True)
# Clave
curso = ForeignKey('Curso', notNone=True)
numero = IntCol(notNone=True)
self.enunciado.shortrepr())
#}}}
self.enunciado.shortrepr())
#}}}
-class InstanciaDeEntrega(SQLObject, ByObject): #{{{
+class InstanciaDeEntrega(SQLObject): #{{{
class sqlmeta:
createSQL = r'''
CREATE TABLE instancia_tarea (
class sqlmeta:
createSQL = r'''
CREATE TABLE instancia_tarea (
-class DocenteInscripto(SQLObject, ByObject): #{{{
+class DocenteInscripto(SQLObject): #{{{
# Clave
curso = ForeignKey('Curso', notNone=True)
docente = ForeignKey('Docente', notNone=True)
# Clave
curso = ForeignKey('Curso', notNone=True)
docente = ForeignKey('Docente', notNone=True)
return self.docente.shortrepr()
#}}}
return self.docente.shortrepr()
#}}}
-class Entregador(InheritableSQLObject, ByObject): #{{{
+class Entregador(InheritableSQLObject): #{{{
# Campos
nota = DecimalCol(size=3, precision=1, default=None)
nota_cursada = DecimalCol(size=3, precision=1, default=None)
# Campos
nota = DecimalCol(size=3, precision=1, default=None)
nota_cursada = DecimalCol(size=3, precision=1, default=None)
return self.alumno.shortrepr()
#}}}
return self.alumno.shortrepr()
#}}}
-class Tutor(SQLObject, ByObject): #{{{
+class Tutor(SQLObject): #{{{
# Clave
grupo = ForeignKey('Grupo', notNone=True)
docente = ForeignKey('DocenteInscripto', notNone=True)
# Clave
grupo = ForeignKey('Grupo', notNone=True)
docente = ForeignKey('DocenteInscripto', notNone=True)
return '%s-%s' % (self.docente.shortrepr(), self.grupo.shortrepr())
#}}}
return '%s-%s' % (self.docente.shortrepr(), self.grupo.shortrepr())
#}}}
-class Miembro(SQLObject, ByObject): #{{{
+class Miembro(SQLObject): #{{{
# Clave
grupo = ForeignKey('Grupo', notNone=True)
alumno = ForeignKey('AlumnoInscripto', notNone=True)
# Clave
grupo = ForeignKey('Grupo', notNone=True)
alumno = ForeignKey('AlumnoInscripto', notNone=True)
return '%s-%s' % (self.alumno.shortrepr(), self.grupo.shortrepr())
#}}}
return '%s-%s' % (self.alumno.shortrepr(), self.grupo.shortrepr())
#}}}
-class Entrega(SQLObject, ByObject): #{{{
+class Entrega(SQLObject): #{{{
# Clave
instancia = ForeignKey('InstanciaDeEntrega', notNone=True)
entregador = ForeignKey('Entregador', default=None) # Si es None era un Docente
# Clave
instancia = ForeignKey('InstanciaDeEntrega', notNone=True)
entregador = ForeignKey('Entregador', default=None) # Si es None era un Docente
-class Correccion(SQLObject, ByObject): #{{{
+class Correccion(SQLObject): #{{{
# Clave
instancia = ForeignKey('InstanciaDeEntrega', notNone=True)
entregador = ForeignKey('Entregador', notNone=True) # Docente no tiene
# Clave
instancia = ForeignKey('InstanciaDeEntrega', notNone=True)
entregador = ForeignKey('Entregador', notNone=True) # Docente no tiene
return '%s,%s' % (self.entrega.shortrepr(), self.corrector.shortrepr())
#}}}
return '%s,%s' % (self.entrega.shortrepr(), self.corrector.shortrepr())
#}}}
-class TareaEjecutada(InheritableSQLObject, ByObject): #{{{
+class TareaEjecutada(InheritableSQLObject): #{{{
# Clave
tarea = ForeignKey('Tarea', notNone=True)
entrega = ForeignKey('Entrega', notNone=True)
# Clave
tarea = ForeignKey('Tarea', notNone=True)
entrega = ForeignKey('Entrega', notNone=True)