]> git.llucax.com Git - z.facultad/75.52/sercom.git/commitdiff
Muevo CasoDePrueba a /enunciado y ajusto todo para que ande.
authorRicardo Markiewicz <rmarkie@fi.uba.ar>
Wed, 14 Mar 2007 19:33:44 +0000 (19:33 +0000)
committerRicardo Markiewicz <rmarkie@fi.uba.ar>
Wed, 14 Mar 2007 19:33:44 +0000 (19:33 +0000)
sercom/controllers.py
sercom/subcontrollers/__init__.py
sercom/subcontrollers/enunciado/__init__.py
sercom/subcontrollers/enunciado/caso_de_prueba/__init__.py [moved from sercom/subcontrollers/caso_de_prueba/__init__.py with 82% similarity]
sercom/subcontrollers/enunciado/caso_de_prueba/templates/__init__.py [moved from sercom/subcontrollers/caso_de_prueba/templates/__init__.py with 100% similarity]
sercom/subcontrollers/enunciado/caso_de_prueba/templates/edit.kid [moved from sercom/subcontrollers/caso_de_prueba/templates/edit.kid with 57% similarity]
sercom/subcontrollers/enunciado/caso_de_prueba/templates/list.kid [moved from sercom/subcontrollers/caso_de_prueba/templates/list.kid with 73% similarity]
sercom/subcontrollers/enunciado/caso_de_prueba/templates/new.kid [moved from sercom/subcontrollers/caso_de_prueba/templates/new.kid with 61% similarity]
sercom/subcontrollers/enunciado/caso_de_prueba/templates/show.kid [moved from sercom/subcontrollers/caso_de_prueba/templates/show.kid with 84% similarity]
sercom/subcontrollers/enunciado/templates/list.kid

index 3f91e912b854f33ff67814767387642dd2b014bc..d584af28819d58444cef7f0d2d4ba8df221a79a3 100644 (file)
@@ -123,8 +123,6 @@ class Root(controllers.RootController):
 
     tarea_prueba = TareaPruebaController()
 
-    caso_de_prueba = CasoDePruebaController()
-
     curso = CursoController()
 
     docente_inscripto = DocenteInscriptoController()
index 56aa6ef242c88663c610413e201ce0318bb76b00..3e58ec59a175e1e48e02956352ed2f566b6b7bab 100644 (file)
@@ -2,7 +2,6 @@ from docente import DocenteController
 from alumno import AlumnoController
 from curso import CursoController
 from enunciado import EnunciadoController
-from caso_de_prueba import CasoDePruebaController
 from ejercicio import EjercicioController
 from docente_inscripto import DocenteInscriptoController
 from grupo import GrupoController
index c18199475210cd956616fa8186eb9242b239161b..3809ef076660b210586b020fec20b34eb272f059 100644 (file)
@@ -12,6 +12,7 @@ from sercom.subcontrollers import validate as val
 from sercom.model import Enunciado, Docente, Curso, Tarea, TareaFuente, TareaPrueba
 from cherrypy import request, response
 from sercom.widgets import *
+from caso_de_prueba import CasoDePruebaController
 #}}}
 
 #{{{ Configuración
@@ -117,6 +118,8 @@ class EnunciadoController(controllers.Controller, identity.SecureResource):
     """Basic model admin interface"""
     require = identity.has_permission('entregar')
 
+    caso_de_prueba = CasoDePruebaController()
+
     @expose()
     def default(self, tg_errors=None):
         """handle non exist urls"""
similarity index 82%
rename from sercom/subcontrollers/caso_de_prueba/__init__.py
rename to sercom/subcontrollers/enunciado/caso_de_prueba/__init__.py
index 8c52315c3bd1f1306cdbce0b0ae438bcd2da8ec8..fe4a12bb58a5668e36b2c71b197650a8d417d9ca 100644 (file)
@@ -33,6 +33,10 @@ def validate_fk(data):
             flash(_(u'No se pudo crear el nuevo %s porque el %s con '
                 'identificador %d no existe.' % (name, fkname, fk)))
             raise redirect('new', **data)
+    else:
+        flash(_(u'No se pudo crear el nuevo %s porque el %s con '
+            'identificador %d no existe.' % (name, fkname, fk)))
+        raise redirect('new', **data)
     data.pop(fkname + 'ID', None)
     data[fkname] = fk
     return fk
@@ -53,17 +57,12 @@ def validate_del(id):
 #}}}
 
 #{{{ Formulario
-def get_options():
-    return [(0, _(u'<<General>>'))] + [(fk.id, fk.shortrepr())
-        for fk in fkcls.select()]
-
 class CasoDePruebaForm(W.TableForm):
     class Fields(W.WidgetsList):
+        enunciadoID = W.HiddenField()
         nombre = W.TextField(label=_(u'Nombre'),
             help_text=_(u'Requerido y único.'),
             validator=V.UnicodeString(min=5, max=60, strip=True))
-        fk = W.SingleSelectField(name=fkname+'ID', label=_(fkname.capitalize()),
-            options=get_options, validator=V.Int(not_empty=False))
         descripcion = W.TextField(label=_(u'Descripción'),
             validator=V.UnicodeString(not_empty=False, max=255,
                 strip=True))
@@ -85,44 +84,34 @@ class CasoDePruebaController(controllers.Controller, identity.SecureResource):
     """Basic model admin interface"""
     require = identity.has_permission('admin')
 
-    @expose()
-    def default(self, tg_errors=None):
-        """handle non exist urls"""
-        raise redirect('list')
-
-    @expose()
-    def index(self):
-        raise redirect('list')
-
     @expose(template='kid:%s.templates.list' % __name__)
     @validate(validators=dict(enunciado=V.Int))
     @paginate('records')
-    def list(self, enunciado=None):
+    def list(self, enunciado):
         """List records in model"""
-        if enunciado is None:
-            r = cls.select()
-        else:
-            r = cls.selectBy(enunciadoID=enunciado)
-        return dict(records=r, name=name, namepl=namepl, parcial=enunciado)
+        r = cls.selectBy(enunciadoID=enunciado)
+        return dict(records=r, name=name, namepl=namepl, enunciado=enunciado)
 
     @expose(template='kid:%s.templates.new' % __name__)
-    def new(self, **kw):
+    def new(self, enunciado=0, **kw):
         """Create new records in model"""
-        return dict(name=name, namepl=namepl, form=form, values=kw)
+        form.fields[0].attrs['value'] = enunciado or kw['enunciadoID']
+        return dict(name=name, namepl=namepl, form=form, values=kw, enunciado=int(enunciado))
 
     @validate(form=form)
     @error_handler(new)
     @expose()
     def create(self, **kw):
         """Save or create record to model"""
-        validate_new(kw)
+        r = validate_new(kw)
         flash(_(u'Se creó un nuevo %s.') % name)
-        raise redirect('list')
+        raise redirect('list/%d' % r.enunciado.id)
 
     @expose(template='kid:%s.templates.edit' % __name__)
     def edit(self, id, **kw):
         """Edit record in model"""
         r = validate_get(id)
+        form.fields[0].attrs['value'] = r.enunciado.id
         return dict(name=name, namepl=namepl, record=r, form=form)
 
     @validate(form=form)
@@ -132,7 +121,7 @@ class CasoDePruebaController(controllers.Controller, identity.SecureResource):
         """Save or create record to model"""
         r = validate_set(id, kw)
         flash(_(u'El %s fue actualizado.') % name)
-        raise redirect('../list')
+        raise redirect('../list/%d' % r.enunciado.id)
 
     @expose(template='kid:%s.templates.show' % __name__)
     def show(self, id, **kw):
@@ -145,10 +134,10 @@ class CasoDePruebaController(controllers.Controller, identity.SecureResource):
         return dict(name=name, namepl=namepl, record=r)
 
     @expose()
-    def delete(self, id):
+    def delete(self, enunciado, id):
         """Destroy record in model"""
         validate_del(id)
         flash(_(u'El %s fue eliminado permanentemente.') % name)
-        raise redirect('../list')
+        raise redirect('../../list/%d' % int(enunciado))
 #}}}
 
similarity index 57%
rename from sercom/subcontrollers/caso_de_prueba/templates/edit.kid
rename to sercom/subcontrollers/enunciado/caso_de_prueba/templates/edit.kid
index a8a5aec8215156c7be7fa23a91c360900f625783..6f34c30209ea704540aef106ee21bfddbf9fc9ba 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
-    py:extends="'../../../templates/master.kid'">
+    py:extends="'../../../../templates/master.kid'">
 <head>
 <meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
 <title>edit</title>
@@ -9,12 +9,12 @@
 
 <h1>Modificación de <span py:replace="name">Objeto</span></h1>
 
-<div py:replace="form(value=record, action=tg.url('/caso_de_prueba/update/%d' % record.id),
+<div py:replace="form(value=record, action=tg.url('/enunciado/caso_de_prueba/update/%d' % record.id),
        submit_text=_(u'Guardar'))">Formulario</div>
 
 <br/>
-<a href="${tg.url('/caso_de_prueba/show/%d' % record.id)}">Ver (cancela)</a> |
-<a href="${tg.url('/caso_de_prueba/list')}">Volver (cancela)</a>
+<a href="${tg.url('/enunciado/caso_de_prueba/show/%d' % record.id)}">Ver (cancela)</a> |
+<a href="${tg.url('/enunciado/caso_de_prueba/list/%d' % record.enunciado.id)}">Volver (cancela)</a>
 
 </body>
 </html>
similarity index 73%
rename from sercom/subcontrollers/caso_de_prueba/templates/list.kid
rename to sercom/subcontrollers/enunciado/caso_de_prueba/templates/list.kid
index c891ae8fd3c53b31c59cb07c5edb4c47404a06e2..077b6c3cef3cb005f09e7b567f507698f210fa46 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
-    py:extends="'../../../templates/master.kid'">
+    py:extends="'../../../../templates/master.kid'">
 <head>
 <meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
 <title>list</title>
         <td><span py:if="record.comando" py:replace="tg.summarize(record.comando, 30)">comando --con-parámetros</span></td>
         <td><span py:replace="record.retorno">retorno</span></td>
         <td><span py:replace="record.max_tiempo_cpu">máx tiempo de cpu</span></td>
-        <td><a href="${tg.url('/caso_de_prueba/edit/%d' % record.id)}">Editar</a>
-            <a href="${tg.url('/caso_de_prueba/delete/%d' % 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>
+        <td><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>
 </table>
 
 <br/>
-<a href="${tg.url('/caso_de_prueba/new')}">Agregar</a>
-<a py:if="parcial" href="${tg.url('/caso_de_prueba/list')}">Ver todo</a>
+<a href="${tg.url('/enunciado/caso_de_prueba/new/%d' % enunciado)}">Agregar</a>
+<a href="${tg.url('/enunciado/list')}">Volver</a>
 
 <div py:for="page in tg.paginate.pages">
     <a py:if="page != tg.paginate.current_page"
similarity index 61%
rename from sercom/subcontrollers/caso_de_prueba/templates/new.kid
rename to sercom/subcontrollers/enunciado/caso_de_prueba/templates/new.kid
index 6a05bc7c8942acf89afef1a7e5e73a45b4a5108c..9bfc0798539829a0bcd0b13d53a8abe9c7ed0841 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
-    py:extends="'../../../templates/master.kid'">
+    py:extends="'../../../../templates/master.kid'">
 <head>
 <meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
 <title>new</title>
@@ -9,10 +9,10 @@
 
 <h1>Crear Nuevo <span py:replace="name">Objeto</span></h1>
 
-<p py:replace="form(action=tg.url('/caso_de_prueba/create'), value=values, submit_text=_('Crear'))">Formulario</p>
+<p py:replace="form(action=tg.url('/enunciado/caso_de_prueba/create'), value=values, submit_text=_('Crear'))">Formulario</p>
 
 <br/>
-<a href="${tg.url('/caso_de_prueba/list')}">Cancelar</a>
+<a href="${tg.url('/enunciado/caso_de_prueba/list/%d' % enunciado)}">Cancelar</a>
 
 </body>
 </html>
similarity index 84%
rename from sercom/subcontrollers/caso_de_prueba/templates/show.kid
rename to sercom/subcontrollers/enunciado/caso_de_prueba/templates/show.kid
index 91060cde9c8a25d29d8838a0bdf374e53d94a53c..1a60d42cb77f3e90482353097ae3a57d20498ec0 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
-    py:extends="'../../../templates/master.kid'">
+    py:extends="'../../../../templates/master.kid'">
 <head>
 <meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
 <title>show</title>
@@ -39,8 +39,8 @@
 </table>
 
 <br/>
-<a href="${tg.url('/caso_de_prueba/edit/%d' % record.id)}">Editar</a> |
-<a href="${tg.url('/caso_de_prueba/list')}">Volver</a>
+<a href="${tg.url('/enunciado/caso_de_prueba/edit/%d' % record.id)}">Editar</a> |
+<a href="${tg.url('/enunciado/caso_de_prueba/list/%d' % record.enunciado.id)}">Volver</a>
 
 </body>
 </html>
index b7f3d7f544b26c719fe78411395bc0fe90b1efec..3f5269df346aedb1d919dd85d39be3d87c851aac 100644 (file)
         <td py:if="'admin' in identity.current.permissions"><a py:if="len(record.tareas)"
                 href="${tg.url('/enunciado/show/%d' % record.id)}"><span
                     py:replace="len(record.tareas)">cant</span></a></td>
-        <td py:if="'admin' in identity.current.permissions"><a py:if="len(record.casos_de_prueba)"
-                href="${tg.url('/caso_de_prueba/list', enunciado=record.id)}"><span
-                    py:replace="len(record.casos_de_prueba)">cant</span></a></td>
+        <td 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>
             <a py:if="'admin' in identity.current.permissions" href="${tg.url('/enunciado/delete/%d' % 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>
             <a py:if="record.archivo" href="${tg.url('/enunciado/files/%d' % record.id)}">Bajar Enunciado</a>