]> git.llucax.com Git - software/sercom.git/commitdiff
Filtro para las correcciones para poder seleccionar por curso.
authorRicardo Markiewicz <rmarkie@fi.uba.ar>
Thu, 1 Mar 2007 22:09:09 +0000 (22:09 +0000)
committerRicardo Markiewicz <rmarkie@fi.uba.ar>
Thu, 1 Mar 2007 22:09:09 +0000 (22:09 +0000)
sercom/subcontrollers/correccion/__init__.py
sercom/subcontrollers/correccion/templates/list.kid

index 162a56f1b9ab42c22e1f871b2302ce783d2bc322..4aefc53862f9459c6efde632a3891de564f75c6a 100644 (file)
@@ -10,7 +10,9 @@ 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
+from sercom.model import Correccion, Curso, Ejercicio, InstanciaDeEntrega
+from sqlobject import *
+
 #}}}
 
 #{{{ Configuración
@@ -42,6 +44,15 @@ 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))
+    fields = Fields()
+
+filtro = CorreccionFiltros()
 form = CorreccionForm()
 #}}}
 
@@ -61,10 +72,21 @@ class CorreccionController(controllers.Controller, identity.SecureResource):
 
     @expose(template='kid:%s.templates.list' % __name__)
     @paginate('records')
-    def list(self):
+    def list(self, cursoID = 0):
         """List records in model"""
-        r = cls.select()
-        return dict(records=r, name=name, namepl=namepl)
+        vfilter = dict(cursoID = cursoID)
+        if int(cursoID) == 0:
+            r = cls.selectBy(corrector=identity.current.user)
+        else:
+            r = cls.select(
+                AND(
+                    cls.q.correctorID == identity.current.user.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)
 
     @expose(template='kid:%s.templates.edit' % __name__)
     def edit(self, id, **kw):
index 24a61f8c0e9a87c8615c37b538f89babbe70a40c..0f5f23d7bf0bf15a7f031b4128ec6d96001f66e6 100644 (file)
@@ -10,6 +10,8 @@
 
 <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>
+
 <table class="list">
     <tr>
                                <th><span title="Instancia de Entrega">IE</span></th>
@@ -17,9 +19,9 @@
         <th>Entregas</th>
         <th>Corrector</th>
         <th>Asignado</th>
-        <th>Corregido</th>
         <th>Corregido</th>
                                <th>Nota</th>
+                               <th>Operaciones</th>
     </tr>
     <tr py:for="record in records">
         <td><span py:replace="record.instancia.shortrepr()">usuario</span></td>
                                        <a py:if="isinstance(record.entregador, Grupo)" href="${tg.url('/grupo/show/%d' % record.entregador.id)}" py:content="record.entregador.shortrepr()">nombre</a>
                                        <a py:if="isinstance(record.entregador, AlumnoInscripto)" href="${tg.url('/alumno/show/%d' % record.entregador.alumno.id)}" py:content="record.entregador.shortrepr()">nombre</a>
                                </td>
-        <td><span py:replace="len(record.entregas)">email</span></td>
+        <td align="center"><span py:replace="len(record.entregas)">email</span></td>
                                <td><a href="${tg.url('/docente/show/%d' % record.corrector.docente.id)}" py:content="record.corrector.shortrepr()">corrector</a></td>
-        <td><span py:replace="record.asignado">nota</span></td>
-        <td><span py:replace="record.corregido">observaciones</span></td>
-        <td><span py:replace="record.nota">observaciones</span></td>
+        <td><span py:replace="record.asignado">fecha asignado</span></td>
+        <td><span py:replace="record.corregido">fecha corregido</span></td>
+        <td align="right"><span py:replace="record.nota">nota</span></td>
                                <td>
                                        <a href="${tg.url('/correccion/show/%d' % record.id)}">Ver</a>
                                        <a py:if="not record.corregido and not record.nota" href="${tg.url('/correccion/edit/%d' % record.id)}">Corregir</a>