]> git.llucax.com Git - software/sercom.git/commitdiff
completo el show de caso de prueba con download de archivos
authorRicardo Markiewicz <rmarkie@fi.uba.ar>
Sun, 18 Mar 2007 21:31:24 +0000 (21:31 +0000)
committerRicardo Markiewicz <rmarkie@fi.uba.ar>
Sun, 18 Mar 2007 21:31:24 +0000 (21:31 +0000)
sercom/subcontrollers/enunciado/caso_de_prueba/__init__.py
sercom/subcontrollers/enunciado/caso_de_prueba/templates/list.kid
sercom/subcontrollers/enunciado/caso_de_prueba/templates/show.kid
sercom/subcontrollers/enunciado/templates/list.kid

index 98bd9b7f31ce4477b3370060028669f14645f93a..6400d97bbf9bc692e34bf131346731c7fbd0f15a 100644 (file)
@@ -161,10 +161,6 @@ class CasoDePruebaController(controllers.Controller, identity.SecureResource):
     def show(self, id, **kw):
         """Show record in model"""
         r = validate_get(id)
     def show(self, id, **kw):
         """Show record in model"""
         r = validate_get(id)
-        if r.descripcion is None:
-            r.desc = ''
-        else:
-            r.desc = publish_parts(r.descripcion, writer_name='html')['html_body']
         return dict(name=name, namepl=namepl, record=r)
 
     @expose()
         return dict(name=name, namepl=namepl, record=r)
 
     @expose()
@@ -173,5 +169,19 @@ class CasoDePruebaController(controllers.Controller, identity.SecureResource):
         validate_del(id)
         flash(_(u'El %s fue eliminado permanentemente.') % name)
         raise redirect('../../list/%d' % int(enunciado))
         validate_del(id)
         flash(_(u'El %s fue eliminado permanentemente.') % name)
         raise redirect('../../list/%d' % int(enunciado))
+
+    @expose()
+    def file(self, id, name):
+        from cherrypy import request, response
+        r = validate_get(id)
+        response.headers["Content-Type"] = "application/zip"
+        response.headers["Content-disposition"] = "attachment;filename=%s_%d.zip" % (name, r.id)
+        if name == "archivos_entrada":
+            ret = r.archivos_entrada
+        elif name == "archivos_a_comparar":
+            ret = r.archivos_a_comparar
+        else:
+            raise NotFound
+        return ret
 #}}}
 
 #}}}
 
index 38c4d273d0ff3ea739f13b6cd52f0d02a862d6d2..84646edb9d3e6b5002f93f61f78f3e4e08834ad5 100644 (file)
@@ -23,7 +23,7 @@
         <td><span py:replace="record.retorno">retorno</span></td>
         <td><span py:replace="tg.strbool(record.publico)">No</span></td>
         <td>
         <td><span py:replace="record.retorno">retorno</span></td>
         <td><span py:replace="tg.strbool(record.publico)">No</span></td>
         <td>
-            <a href="${tg.url('/caso_de_prueba/show/%d'% record.id)}">Ver</a>
+            <a href="${tg.url('/enunciado/caso_de_prueba/show/%d'% record.id)}">Ver</a>
             <a href="${tg.url('/enunciado/caso_de_prueba/edit/%d' % record.id)}">Editar</a>
             <a href="${tg.url('/enunciado/caso_de_prueba/delete/%d/%d' % (record.enunciado.id, record.id))}" onclick="if (confirm('${_(u'Estás seguro? Yo creo que no...')}')) { var f = document.createElement('form'); this.parentNode.appendChild(f); f.method = 'POST'; f.action = this.href; f.submit(); };return false;">Eliminar</a></td>
     </tr>
             <a href="${tg.url('/enunciado/caso_de_prueba/edit/%d' % record.id)}">Editar</a>
             <a href="${tg.url('/enunciado/caso_de_prueba/delete/%d/%d' % (record.enunciado.id, record.id))}" onclick="if (confirm('${_(u'Estás seguro? Yo creo que no...')}')) { var f = document.createElement('form'); this.parentNode.appendChild(f); f.method = 'POST'; f.action = this.href; f.submit(); };return false;">Eliminar</a></td>
     </tr>
index 1a60d42cb77f3e90482353097ae3a57d20498ec0..9c5d8436f1ff3af823a5fb1f9b675d438fd4df87 100644 (file)
                        href="${tg.url('/enunciado/show/%d' % record.enunciado.id)}"><span
                                py:replace="record.enunciado.shortrepr()">enunciado</span></a></td>
     </tr>
                        href="${tg.url('/enunciado/show/%d' % record.enunciado.id)}"><span
                                py:replace="record.enunciado.shortrepr()">enunciado</span></a></td>
     </tr>
-    <tr>
-        <th>Descripción:</th>
-       <td><span py:replace="XML(record.desc)">descripcion</span></td>
-    </tr>
     <tr>
         <th>Parámetros:</th>
        <td>
     <tr>
         <th>Parámetros:</th>
        <td>
     </tr>
     <tr>
         <th>Código de retorno:</th>
     </tr>
     <tr>
         <th>Código de retorno:</th>
-       <td><span py:replace="record.retorno">retorno</span></td>
+                               <td><span py:replace="record.retorno">retorno</span></td>
+    </tr>
+    <tr>
+        <th>Máximo tiempo de CPU [s]:</th>
+                               <td><span py:replace="record.max_tiempo_cpu">max_tiempo_cpu</span></td>
+    </tr>
+    <tr>
+        <th>Máximo Memoria [Mb]:</th>
+                               <td><span py:replace="record.max_memoria">max_tiempo_cpu</span></td>
+    </tr>
+    <tr>
+        <th>Máximo Tam. Archivo [Mb]:</th>
+                               <td><span py:replace="record.max_tam_archivo">max_tiempo_cpu</span></td>
+    </tr>
+    <tr>
+        <th>Máximo Cant. Archivo:</th>
+                               <td><span py:replace="record.max_cant_archivos">max_tiempo_cpu</span></td>
+    </tr>
+    <tr>
+        <th>Máximo Cant. Procesos:</th>
+                               <td><span py:replace="record.max_cant_procesos">max_tiempo_cpu</span></td>
+    </tr>
+    <tr>
+        <th>Máximo Locks Memoria:</th>
+                               <td><span py:replace="record.max_locks_memoria">max_tiempo_cpu</span></td>
+    </tr>
+    <tr>
+        <th>Terminar si falla?:</th>
+                               <td><span py:replace="tg.strbool(record.terminar_si_falla)">max_tiempo_cpu</span></td>
+    </tr>
+    <tr>
+        <th>Rechazar si falla?:</th>
+                               <td><span py:replace="tg.strbool(record.rechazar_si_falla)">max_tiempo_cpu</span></td>
+    </tr>
+    <tr>
+        <th>Publico?:</th>
+                               <td><span py:replace="tg.strbool(record.publico)">max_tiempo_cpu</span></td>
+    </tr>
+    <tr>
+        <th>Archivos de Entrada:</th>
+                               <td><a py:if="record.archivos_entrada" href="${tg.url('/enunciado/caso_de_prueba/file/%d/archivos_entrada' % record.id)}">Bajar</a></td>
+    </tr>
+    <tr>
+        <th>Archivos a Comparar:</th>
+                               <td><a py:if="record.archivos_a_comparar" href="${tg.url('/enunciado/caso_de_prueba/file/%d/archivos_a_comparar' % record.id)}">Bajar</a></td>
+    </tr>
+    <tr>
+        <th>Archivos a guardar:</th>
+                               <td><span py:repalce="', '.join(record.archivos_a_guardar)"></span></td>
     </tr>
     <tr>
     </tr>
     <tr>
-        <th>Máximo tiempo de CPU:</th>
-       <td><span py:replace="record.max_tiempo_cpu">max_tiempo_cpu</span></td>
+        <th>Activo?:</th>
+                               <td><span py:repalce="tg.strbool(record.activo)"></span></td>
     </tr>
 </table>
 
     </tr>
 </table>
 
index 02766aa84c791b1f8a2e31a323d956831acf3cc6..afe01cb590af6271745d6d9cdd6fcd377097fb84 100644 (file)
@@ -12,7 +12,7 @@
 
 <table class="list">
     <tr>
 
 <table class="list">
     <tr>
-        <th>Cuatrimestre</th>
+        <th>Cuat.</th>
         <th>Año</th>
         <th>Nombre</th>
         <th>Descripción</th>
         <th>Año</th>
         <th>Nombre</th>
         <th>Descripción</th>
@@ -22,8 +22,8 @@
         <th>Operaciones</th>
     </tr>
                <tr py:for="record in records">
         <th>Operaciones</th>
     </tr>
                <tr py:for="record in records">
-        <td><span py:replace="record.cuatrimestre">descripción</span></td>
-        <td><span py:replace="record.anio">descripción</span></td>
+        <td align="center"><span py:replace="record.cuatrimestre">descripción</span></td>
+        <td align="center"><span py:replace="record.anio">descripción</span></td>
         <td><a href="${tg.url('/enunciado/show/%d' % record.id)}"><span py:replace="record.nombre">nombre</span></a></td>
         <td><span py:replace="tg.summarize(record.descripcion, 30)">descripción</span></td>
                                <td>
         <td><a href="${tg.url('/enunciado/show/%d' % record.id)}"><span py:replace="record.nombre">nombre</span></a></td>
         <td><span py:replace="tg.summarize(record.descripcion, 30)">descripción</span></td>
                                <td>
                                        <span py:if="'admin' not in identity.current.permissions and record.autorID is not None"
                                                py:replace="tg.summarize(record.autor.shortrepr(), 30)">autor</span>
                                </td>
                                        <span py:if="'admin' not in identity.current.permissions and record.autorID is not None"
                                                py:replace="tg.summarize(record.autor.shortrepr(), 30)">autor</span>
                                </td>
-        <td py:if="'admin' in identity.current.permissions"><a py:if="len(record.tareas)"
-                href="${tg.url('/enunciado/show/%d' % record.id)}"><span
+                               <td align="center" py:if="'admin' in identity.current.permissions">
+                                       <a if="len(record.tareas)" href="${tg.url('/enunciado/show/%d' % record.id)}"><span
                     py:replace="len(record.tareas)">cant</span></a></td>
                     py:replace="len(record.tareas)">cant</span></a></td>
-        <td py:if="'admin' in identity.current.permissions"><span py:content="len(record.casos_de_prueba)" /></td>
+        <td align="center" py:if="'admin' in identity.current.permissions"><span py:content="len(record.casos_de_prueba)" /></td>
         <td>
             <a py:if="'admin' in identity.current.permissions" href="${tg.url('/enunciado/caso_de_prueba/list/%d' % record.id)}">Casos de Prueba</a>
             <a py:if="'admin' in identity.current.permissions" href="${tg.url('/enunciado/edit/%d' % record.id)}">Editar</a>
         <td>
             <a py:if="'admin' in identity.current.permissions" href="${tg.url('/enunciado/caso_de_prueba/list/%d' % record.id)}">Casos de Prueba</a>
             <a py:if="'admin' in identity.current.permissions" href="${tg.url('/enunciado/edit/%d' % record.id)}">Editar</a>