From 26043299663ac92240c8ce5ee4896bffd8532160 Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Sat, 10 Mar 2007 23:38:06 +0000 Subject: [PATCH] Si el ejercicio es Grupal pongo como Entregador el grupo del Alumno Queda por filtrar que el Grupo sea del mismo Cuatrimestre que el Ejercicio y esas cosas. Tambien tengo que resolver como mostrar las Entregas que se hicieron tanto individuales como Grupales (estas ultimas NO se ven ahora por mas que se registren) --- sercom/subcontrollers/misentregas/__init__.py | 39 +++++++++++++------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/sercom/subcontrollers/misentregas/__init__.py b/sercom/subcontrollers/misentregas/__init__.py index 1ca20cb..a7c3c31 100644 --- a/sercom/subcontrollers/misentregas/__init__.py +++ b/sercom/subcontrollers/misentregas/__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 Entrega, Correccion, Curso, Ejercicio, InstanciaDeEntrega +from sercom.model import Entrega, Correccion, Curso, Ejercicio, InstanciaDeEntrega, Grupo, Miembro, AlumnoInscripto from sqlobject import * from zipfile import ZipFile, BadZipfile from cStringIO import StringIO @@ -126,16 +126,6 @@ class MisEntregasController(controllers.Controller, identity.SecureResource): r = cls.select(cls.q.entregadorID == identity.current.user.id) return dict(records=r, name=name, namepl=namepl) - @expose(template='kid:%s.templates.show' % __name__) - def show(self,id, **kw): - """Show record in model""" - r = validate_get(id) - if r.observaciones is None: - r.obs = '' - else: - r.obs = publish_parts(r.observaciones, writer_name='html')['html_body'] - return dict(name=name, namepl=namepl, record=r) - @validate(form=form) @error_handler(new) @expose() @@ -147,8 +137,33 @@ class MisEntregasController(controllers.Controller, identity.SecureResource): flash(_(u'El archivo ZIP no es valido')) raise redirect('list') + # por defecto el entregador es el user loggeado + entregador = identity.current.user + + ejercicio = Ejercicio.get(int(ejercicio)) + if ejercicio.grupal: + # Como es grupal, tengo que hacer que la entrega la haga + # mi grupo y no yo personalmente. Busco el grupo + # activo. + + # Con esto obtengo todos los grupos a los que pertenece el Alumno + # y que estan activos + try: + # TODO : Falta filtrar por curso!! + m = Miembro.select( + AND( + Miembro.q.alumnoID == AlumnoInscripto.q.id, + AlumnoInscripto.q.alumnoID == identity.current.user.id, + Miembro.q.baja == None + ) + ).getOne() + except: + flash(_(u'No puedes realizar la entrega ya que el ejercicio es Grupal y no perteneces a ningún grupo.')) + raise redirect('list') + + entregador = m.grupo kw['archivos'] = archivo.file.read() - kw['entregador'] = identity.current.user + kw['entregador'] = entregador validate_new(kw) flash(_(u'Se creó una nueva %s.') % name) raise redirect('list') -- 2.43.0