X-Git-Url: https://git.llucax.com/software/sercom.git/blobdiff_plain/a0674923171dc6dc48da9b5259b3a71f18e92f8b..68354fe8f4d3d31291f052cf56d07afcf6bac0ac:/sercom/subcontrollers/misentregas/__init__.py diff --git a/sercom/subcontrollers/misentregas/__init__.py b/sercom/subcontrollers/misentregas/__init__.py index 57d7b8a..004b9df 100644 --- a/sercom/subcontrollers/misentregas/__init__.py +++ b/sercom/subcontrollers/misentregas/__init__.py @@ -116,11 +116,6 @@ class MisEntregasController(controllers.Controller, identity.SecureResource): def index(self): raise redirect('list') - @expose(template='kid:%s.templates.new' % __name__) - def new(self, **kw): - """Create new records in model""" - return dict(name=name, namepl=namepl, form=form, values=kw) - @expose(template='kid:%s.templates.list' % __name__) @paginate('records') def list(self): @@ -135,15 +130,24 @@ class MisEntregasController(controllers.Controller, identity.SecureResource): r = cls.select(IN(cls.q.entregadorID, m)) return dict(records=r, name=name, namepl=namepl) + @expose(template='kid:%s.templates.new' % __name__) + def new(self, **kw): + """Create new records in model""" + return dict(name=name, namepl=namepl, form=form, values=kw) + @validate(form=form) @error_handler(new) @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 @@ -171,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) @@ -191,9 +195,13 @@ class MisEntregasController(controllers.Controller, identity.SecureResource): flash(_(u'El %s fue eliminado permanentemente.') % name) return r.archivos - @expose("json") + @expose('json') def instancias(self, ejercicio_id): - c = Ejercicio.get(ejercicio_id) - return dict(instancias=c.instancias) + instancias = InstanciaDeEntrega.select(AND( + InstanciaDeEntrega.q.ejercicioID == ejercicio_id, + InstanciaDeEntrega.q.activo == True, + InstanciaDeEntrega.q.inicio <= DateTimeCol.now(), + InstanciaDeEntrega.q.fin >= DateTimeCol.now())) + return dict(instancias=instancias) #}}}