]> git.llucax.com Git - software/sercom.git/commitdiff
Bugfix: los correctores son DocenteInscripto, no Docente.
authorLeandro Lucarella <llucax@gmail.com>
Mon, 19 Mar 2007 00:57:03 +0000 (00:57 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Mon, 19 Mar 2007 00:57:03 +0000 (00:57 +0000)
sercom/finalizer.py
sercom/subcontrollers/correccion/__init__.py
sercom/subcontrollers/correccion/templates/list.kid

index e3277f8c9c2f5056dfb59b227d0791548fb6b4be..c701087320fdd4ee2c92fbe3c70cdae89a8a3302 100644 (file)
@@ -50,7 +50,7 @@ class Finalizer(object): #{{{
 def instancia_finalizar(self): #{{{
     log.debug(_(u'InstanciaDeEntrega.finalizar()'))
     curso = self.ejercicio.curso
-    docentes = [di.docente for di in curso.docentes if di.corrige]
+    docentes = [di for di in curso.docentes if di.corrige]
     curr_docente = 0
     for ai in curso.alumnos:
         try:
index 20b3ea092ebe165186a1c9800271075b014ad4e7..922c404dace4f2eee76dea966d043448bbfa0d8a 100644 (file)
@@ -10,7 +10,8 @@ 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 Correccion, Curso, Ejercicio, InstanciaDeEntrega
+from sercom.model import Correccion, Curso, Ejercicio
+from sercom.model import InstanciaDeEntrega, DocenteInscripto
 from sqlobject import *
 
 #}}}
@@ -44,12 +45,9 @@ class CorreccionForm(W.TableForm):
     fields = Fields()
     javascript = [W.JSSource("MochiKit.DOM.focusOnLoad('form_instancia');")]
 
-def get_cursos():
-    return [(0, u'---')] + [(fk1.id, fk1.shortrepr()) for fk1 in Curso.select()]
-
 class CorreccionFiltros(W.TableForm):
     class Fields(W.WidgetsList):
-        cursoID = W.SingleSelectField(label=_(u'Curso'), options = get_cursos, validator = V.Int(not_empty=True))
+        cursoID = W.SingleSelectField(label=_(u'Curso'), validator=V.Int(not_empty=True))
     form_attrs={'class':"filter"}
     fields = Fields()
 
@@ -72,22 +70,26 @@ class CorreccionController(controllers.Controller, identity.SecureResource):
         raise redirect('list')
 
     @expose(template='kid:%s.templates.list' % __name__)
+    @validate(validators=dict(cursoID=V.Int))
     @paginate('records')
-    def list(self, cursoID = 0):
+    def list(self, cursoID=None):
         """List records in model"""
-        vfilter = dict(cursoID = cursoID)
-        if int(cursoID) == 0:
-            r = cls.selectBy(corrector=identity.current.user)
-        else:
+        vfilter = dict(cursoID=cursoID)
+        r = []
+        if cursoID:
             r = cls.select(
                 AND(
-                    cls.q.correctorID == identity.current.user.id,
+                    cls.q.correctorID == DocenteInscripto.pk.get(
+                        cursoID=cursoID, docenteID=identity.current.user.id).id,
                     Ejercicio.q.id == InstanciaDeEntrega.q.ejercicioID,
                     InstanciaDeEntrega.q.id == Correccion.q.instanciaID,
                     Ejercicio.q.cursoID == cursoID
                 )
             )
-        return dict(records=r, name=name, namepl=namepl, form=filtro, vfilter=vfilter)
+        cursos = [(i.curso.id, i.curso.shortrepr())
+            for i in identity.current.user.inscripciones]
+        return dict(records=r, name=name, namepl=namepl, form=filtro,
+            vfilter=vfilter, options=dict(cursoID=cursos))
 
     @expose(template='kid:%s.templates.edit' % __name__)
     def edit(self, id, **kw):
index 265b2ce0222f68591bc20be6c4b8271569bd306d..308abcb27fd8ff039039509842925f5340250877 100644 (file)
@@ -10,7 +10,7 @@
 
 <h1>Administración de <span py:replace="namepl">Objetos</span></h1>
 
-<div py:replace="form(value=vfilter, action=tg.url('/correccion/list'),        submit_text=_(u'Filtrar'))">Filtros</div>
+<div py:replace="form(value=vfilter, options=options, action=tg.url('/correccion/list'), submit_text=_(u'Filtrar'))">Filtros</div>
 
 <table class="list">
     <tr>