From b4390a13712d4ae9ba0c5fe65078f41ec0c409a6 Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Thu, 1 Mar 2007 22:09:09 +0000 Subject: [PATCH] Filtro para las correcciones para poder seleccionar por curso. --- sercom/subcontrollers/correccion/__init__.py | 30 ++++++++++++++++--- .../correccion/templates/list.kid | 12 ++++---- 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/sercom/subcontrollers/correccion/__init__.py b/sercom/subcontrollers/correccion/__init__.py index 162a56f..4aefc53 100644 --- a/sercom/subcontrollers/correccion/__init__.py +++ b/sercom/subcontrollers/correccion/__init__.py @@ -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): diff --git a/sercom/subcontrollers/correccion/templates/list.kid b/sercom/subcontrollers/correccion/templates/list.kid index 24a61f8..0f5f23d 100644 --- a/sercom/subcontrollers/correccion/templates/list.kid +++ b/sercom/subcontrollers/correccion/templates/list.kid @@ -10,6 +10,8 @@

Administración de Objetos

+
Filtros
+ @@ -17,9 +19,9 @@ - + @@ -27,11 +29,11 @@ nombrenombre - + - - - + + +
IEEntregas Corrector AsignadoCorregido Corregido NotaOperaciones
usuario emailemail correctornotaobservacionesobservacionesfecha asignadofecha corregidonota Ver Corregir -- 2.43.0