X-Git-Url: https://git.llucax.com/software/sercom.git/blobdiff_plain/b0d50fe70b9bcbbd42b55c4b1da8f3087a2b2980..5d196676861c712b8a87eb75436a8051171349e2:/sercom/subcontrollers/misentregas/__init__.py?ds=inline diff --git a/sercom/subcontrollers/misentregas/__init__.py b/sercom/subcontrollers/misentregas/__init__.py index 996b81f..31c7678 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""" @@ -125,8 +127,11 @@ class MisEntregasController(controllers.Controller, identity.SecureResource): """List records in model""" # Grupos en los que el usuario formo parte m = [i.grupo.id for i in Grupo.selectByAlumno(identity.current.user)] - entregador = AlumnoInscripto.selectByAlumno(identity.current.user) - m.append(entregador.id) + 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) @@ -135,10 +140,14 @@ class MisEntregasController(controllers.Controller, identity.SecureResource): @expose() def create(self, archivo, ejercicio, **kw): """Save or create record to model""" + archivo = archivo.file.read() try: - zfile = ZipFile(archivo.file) + zfile = ZipFile(StringIO(archivo), 'r') except BadZipfile: - flash(_(u'El archivo ZIP no es valido')) + flash(_(u'El archivo ZIP no es válido')) + raise redirect('list') + if zfile.testzip() is not None: + flash(_(u'El archivo ZIP tiene errores de CRC')) raise redirect('list') # por defecto el entregador es el user loggeado @@ -166,7 +175,7 @@ class MisEntregasController(controllers.Controller, identity.SecureResource): raise redirect('list') entregador = m.grupo - kw['archivos'] = archivo.file.read() + kw['archivos'] = archivo kw['entregador'] = entregador validate_new(kw) flash(_(u'Se creó una nueva %s.') % name) @@ -174,7 +183,7 @@ class MisEntregasController(controllers.Controller, identity.SecureResource): @expose(template='kid:%s.templates.corrida' % __name__) def corrida(self, entregaid): - e = validate_get(id) + e = validate_get(entregaid) return dict(entrega=e) @expose() @@ -182,7 +191,7 @@ class MisEntregasController(controllers.Controller, identity.SecureResource): 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-Padron_%s.zip" % (r.instancia.ejercicio.numero, r.instancia.numero, r.entregador.nombre) + 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