From: Ricardo Markiewicz Date: Sun, 18 Mar 2007 07:53:34 +0000 (+0000) Subject: Agrego visor de Diffs a colores para ver el contenido del campo diferencias :). X-Git-Tag: 0_9_0~40 X-Git-Url: https://git.llucax.com/software/sercom.git/commitdiff_plain/4d21b97ea5f6e4019f02476a10b419dd1f49d1e2 Agrego visor de Diffs a colores para ver el contenido del campo diferencias :). Tiene un hack medio feo que incluyo cosas de los Widgets a mano para poder agregar soporte de coloreo de Diffs que no tiene el Widget. Hay que poner que los paths sean mas TG friendly y rezar que no cambien de lugar entre instalaciones :), pero queda muy pro :D --- diff --git a/sercom/static/css/style.css b/sercom/static/css/style.css index 784595b..d001a0b 100644 --- a/sercom/static/css/style.css +++ b/sercom/static/css/style.css @@ -292,4 +292,14 @@ border-collapse: collapse; background: #ffdddd; } +.dp-diff .rojo { + color:red; +} + +.dp-diff .chunk { + color:blue; +} +.dp-diff .verde { + color:green; +} diff --git a/sercom/subcontrollers/misentregas/__init__.py b/sercom/subcontrollers/misentregas/__init__.py index d5ec3e4..88259c2 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 ComandoEjecutado, Entrega, Correccion, Curso, Ejercicio, InstanciaDeEntrega, Grupo, Miembro, AlumnoInscripto +from sercom.model import ComandoEjecutado, ComandoPruebaEjecutado, Entrega, Correccion, Curso, Ejercicio, InstanciaDeEntrega, Grupo, Miembro, AlumnoInscripto from sqlobject import * from zipfile import ZipFile, BadZipfile from cStringIO import StringIO @@ -98,6 +98,7 @@ class EntregaForm(W.TableForm): javascript = [W.JSSource("MochiKit.DOM.focusOnLoad('form_ejercicio');"), W.JSSource(ajax)] form = EntregaForm() + #}}} #{{{ Controlador @@ -210,6 +211,12 @@ class MisEntregasController(controllers.Controller, identity.SecureResource): response.headers["Content-disposition"] = "attachment;filename=diferencias_%d.zip" % (r.id) return r.diferencias + @expose(template='kid:%s.templates.diff' % __name__) + def verdiff(self, id): + r = ComandoEjecutado.get(id) + zip = ZipFile(StringIO(r.diferencias), 'r') + return dict(zip=zip) + @expose('json') def instancias(self, ejercicio_id): instancias = InstanciaDeEntrega.select(AND( diff --git a/sercom/subcontrollers/misentregas/templates/corrida.kid b/sercom/subcontrollers/misentregas/templates/corrida.kid index e3aff6e..0480db2 100644 --- a/sercom/subcontrollers/misentregas/templates/corrida.kid +++ b/sercom/subcontrollers/misentregas/templates/corrida.kid @@ -91,7 +91,10 @@ - Bajar + + Bajar + Ver + Bajar diff --git a/sercom/subcontrollers/misentregas/templates/diff.kid b/sercom/subcontrollers/misentregas/templates/diff.kid new file mode 100644 index 0000000..e007b10 --- /dev/null +++ b/sercom/subcontrollers/misentregas/templates/diff.kid @@ -0,0 +1,51 @@ + + + + + + + +list + + + +

Diferencias

+ + + +
+

${info.filename}

+ + + +
+ +
+Volver + + + + + + + + + + +