From: Ricardo Markiewicz Date: Sat, 10 Mar 2007 22:27:12 +0000 (+0000) Subject: Filtro Ejercicios con estregas activas y valido que el ZIP sea valido X-Git-Tag: 0_9~83 X-Git-Url: https://git.llucax.com/software/sercom.git/commitdiff_plain/ad77b3566169e514d5fe31c724281d5db91c18e3?ds=sidebyside Filtro Ejercicios con estregas activas y valido que el ZIP sea valido --- diff --git a/sercom/subcontrollers/misentregas/__init__.py b/sercom/subcontrollers/misentregas/__init__.py index a516c88..e6f97fb 100644 --- a/sercom/subcontrollers/misentregas/__init__.py +++ b/sercom/subcontrollers/misentregas/__init__.py @@ -12,6 +12,8 @@ from docutils.core import publish_parts from sercom.subcontrollers import validate as val from sercom.model import Entrega, Correccion, Curso, Ejercicio, InstanciaDeEntrega from sqlobject import * +from zipfile import ZipFile, BadZipfile +from cStringIO import StringIO #}}} @@ -34,7 +36,9 @@ def validate_new(data): def get_ejercicios_activos(): # TODO : Mostrar solo los ejercicios con instancias de entrega activos - return [(0, _(u'--'))] + [(fk.id, fk.shortrepr()) for fk in Ejercicio.select()] + return [(0, _(u'--'))] + [(a.id, a.shortrepr()) for a in (Ejercicio.select( + AND(Ejercicio.q.id==InstanciaDeEntrega.q.ejercicioID, InstanciaDeEntrega.q.inicio <= DateTimeCol.now(), + InstanciaDeEntrega.q.fin >= DateTimeCol.now())))] ajax = """ function clearInstancias () @@ -137,6 +141,12 @@ class MisEntregasController(controllers.Controller, identity.SecureResource): @expose() def create(self, archivo, ejercicio, **kw): """Save or create record to model""" + try: + zfile = ZipFile(StringIO(archivo.file.read()), 'r') + except BadZipfile: + flash(_(u'El archivo ZIP no es valido')) + raise redirect('list') + kw['archivos'] = archivo.file.read() kw['entregador'] = identity.current.user validate_new(kw)