X-Git-Url: https://git.llucax.com/software/sercom.git/blobdiff_plain/26043299663ac92240c8ce5ee4896bffd8532160..8ec6565717cd7b41501d24fef3f9967d62ba70ba:/sercom/subcontrollers/misentregas/__init__.py diff --git a/sercom/subcontrollers/misentregas/__init__.py b/sercom/subcontrollers/misentregas/__init__.py index a7c3c31..57d7b8a 100644 --- a/sercom/subcontrollers/misentregas/__init__.py +++ b/sercom/subcontrollers/misentregas/__init__.py @@ -105,6 +105,8 @@ class MisEntregasController(controllers.Controller, identity.SecureResource): """Basic model admin interface""" require = identity.has_permission('entregar') + hide_to_admin = 1 + @expose() def default(self, tg_errors=None): """handle non exist urls""" @@ -123,7 +125,14 @@ class MisEntregasController(controllers.Controller, identity.SecureResource): @paginate('records') def list(self): """List records in model""" - r = cls.select(cls.q.entregadorID == identity.current.user.id) + # Grupos en los que el usuario formo parte + m = [i.grupo.id for i in Grupo.selectByAlumno(identity.current.user)] + try: + entregador = AlumnoInscripto.selectByAlumno(identity.current.user) + m.append(entregador.id) + except: + pass + r = cls.select(IN(cls.q.entregadorID, m)) return dict(records=r, name=name, namepl=namepl) @validate(form=form) @@ -138,7 +147,7 @@ class MisEntregasController(controllers.Controller, identity.SecureResource): raise redirect('list') # por defecto el entregador es el user loggeado - entregador = identity.current.user + entregador = AlumnoInscripto.selectByAlumno(identity.current.user) ejercicio = Ejercicio.get(int(ejercicio)) if ejercicio.grupal: @@ -168,6 +177,20 @@ class MisEntregasController(controllers.Controller, identity.SecureResource): flash(_(u'Se creó una nueva %s.') % name) raise redirect('list') + @expose(template='kid:%s.templates.corrida' % __name__) + def corrida(self, entregaid): + e = validate_get(entregaid) + return dict(entrega=e) + + @expose() + def get_archivo(self, entregaid): + from cherrypy import request, response + r = validate_get(entregaid) + response.headers["Content-Type"] = "application/zip" + response.headers["Content-disposition"] = "attachment;filename=Ej_%s-Entrega_%s-%s.zip" % (r.instancia.ejercicio.numero, r.instancia.numero, r.entregador.nombre) + flash(_(u'El %s fue eliminado permanentemente.') % name) + return r.archivos + @expose("json") def instancias(self, ejercicio_id): c = Ejercicio.get(ejercicio_id)