From 46c223fbb59fa6af6c640915558bb5b633129d3b Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Tue, 13 Mar 2007 03:20:08 +0000 Subject: [PATCH] Agrego planilla de notas de Curso --- sercom/model.py | 2 +- sercom/subcontrollers/curso/__init__.py | 42 ++++++++++++++++++- .../subcontrollers/curso/templates/list.kid | 1 + .../subcontrollers/curso/templates/notas.kid | 27 ++++++++++++ 4 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 sercom/subcontrollers/curso/templates/notas.kid diff --git a/sercom/model.py b/sercom/model.py index 6724e87..cff6afd 100644 --- a/sercom/model.py +++ b/sercom/model.py @@ -650,7 +650,7 @@ class Grupo(Entregador): #{{{ @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 diff --git a/sercom/subcontrollers/curso/__init__.py b/sercom/subcontrollers/curso/__init__.py index 35e9952..0a30cda 100644 --- a/sercom/subcontrollers/curso/__init__.py +++ b/sercom/subcontrollers/curso/__init__.py @@ -10,7 +10,7 @@ from turbogears import identity from turbogears import paginate from docutils.core import publish_parts from sercom.subcontrollers import validate as val -from sercom.model import Curso, Ejercicio, Alumno, Docente, Grupo, DocenteInscripto +from sercom.model import Curso, Correccion, Ejercicio, Alumno, Docente, Grupo, DocenteInscripto from curso_alumno import * from sqlobject import * from sqlobject.dberrors import * @@ -327,5 +327,45 @@ class CursoController(controllers.Controller, identity.SecureResource): row.append(str(e)) fail.append(row) return dict(ok=ok, fail=fail) + + @expose(template='kid:%s.templates.notas' % __name__) + def notas(self, cursoid): + r = validate_get(cursoid) + # Armo las columnas del listado + cols = ["Padron", "Nombre", "Grupo"] + # Ejercicios + for ej in r.ejercicios: + for ins in ej.instancias: + print "E"+str(ej.numero)+str(ins.numero) + cols.append("E"+str(ej.numero)+str(ins.numero)) + cols.append("EA") + cols.append("NP") + cols.append("NF") + cols.append("NL") + + rows = [] + for i in r.alumnos: + col = {} + col["Padron"] = i.alumno.padron + col["Nombre"] = i.alumno.nombre + miembro = Grupo.selectByAlumno(i.alumno) + if miembro.count() > 0: + col["Grupo"] = miembro[0].grupo.shortrepr() + correctas = 0 + for ej in r.ejercicios: + for ins in ej.instancias: + c = Correccion.selectBy(instancia=ins, entregador=i) + if c.count() > 0: + col["E"+str(ej.numero)+str(ins.numero)] = c[0].nota + if c[0].nota > 7: + correctas += 1 + else: + col["E"+str(ej.numero)+str(ins.numero)] = "" + col["EA"] = correctas + col["NP"] = i.nota_practica + col["NF"] = i.nota_final + col["NL"] = i.nota_libreta + rows.append(col) + return dict(curso=r, rows=rows, cols=cols) #}}} diff --git a/sercom/subcontrollers/curso/templates/list.kid b/sercom/subcontrollers/curso/templates/list.kid index 2634178..e832d98 100644 --- a/sercom/subcontrollers/curso/templates/list.kid +++ b/sercom/subcontrollers/curso/templates/list.kid @@ -37,6 +37,7 @@ Ejercicio Ver Editar + Notas Eliminar diff --git a/sercom/subcontrollers/curso/templates/notas.kid b/sercom/subcontrollers/curso/templates/notas.kid new file mode 100644 index 0000000..dab39e6 --- /dev/null +++ b/sercom/subcontrollers/curso/templates/notas.kid @@ -0,0 +1,27 @@ + + + + +list + + + +

Notas del Curso : Objetos

+ + + + + + +
+
+
+ +
+Volver + + + + + -- 2.43.0