]> git.llucax.com Git - software/sercom.git/commitdiff
ABM para el anio y custrimestre y json para obtener los datos
authorRicardo Markiewicz <rmarkie@fi.uba.ar>
Mon, 26 Feb 2007 03:26:40 +0000 (03:26 +0000)
committerRicardo Markiewicz <rmarkie@fi.uba.ar>
Mon, 26 Feb 2007 03:26:40 +0000 (03:26 +0000)
sercom/model.py
sercom/subcontrollers/enunciado/__init__.py
sercom/subcontrollers/enunciado/templates/list.kid

index 21a2e6c045b30f48a35bac174ace0984aba3e5c1..f139909abf3b69c2f707b4d61e5adbe39aaeb089 100644 (file)
@@ -334,8 +334,8 @@ class Tarea(InheritableSQLObject, ByObject): #{{{
 class Enunciado(SQLObject, ByObject): #{{{
     # Clave
     nombre          = UnicodeCol(length=60, alternateID=True)
+    anio            = IntCol(notNone=True)
     cuatrimestre    = IntCol(notNone=True)
-    numero          = IntCol(notNone=True)
     # Campos
     autor           = ForeignKey('Docente')
     descripcion     = UnicodeCol(length=255, default=None)
@@ -354,6 +354,7 @@ class Enunciado(SQLObject, ByObject): #{{{
         if tareas:
             self.tareas = tareas
 
+    @classmethod
     def selectByCurso(self, curso):
         return Enunciado.selectBy(cuatrimestre=curso.cuatrimestre, numero=curso.numero)
 
index 6ed6df1b1d81b95c14d164cd9b3a858655e9c1fb..8f22b9420619ae9337c60f55c240f1ff208e2054 100644 (file)
@@ -9,7 +9,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 Enunciado, Docente
+from sercom.model import Enunciado, Docente, Curso
 from cherrypy import request, response
 #}}}
 
@@ -56,6 +56,12 @@ def get_options():
 
 class EnunciadoForm(W.TableForm):
     class Fields(W.WidgetsList):
+        anio = W.TextField(label=_(u'Año'),
+            help_text=_(u'Requerido.'),
+            validator=V.Number(min=4, max=4, strip=True))
+        cuatrimestre = W.TextField(label=_(u'Cuatrimestre'),
+            help_text=_(u'Requerido.'),
+            validator=V.Number(min=1, max=1, strip=True))
         nombre = W.TextField(label=_(u'Nombre'),
             help_text=_(u'Requerido y único.'),
             validator=V.UnicodeString(min=5, max=60, strip=True))
@@ -152,5 +158,11 @@ class EnunciadoController(controllers.Controller, identity.SecureResource):
         response.headers["Content-disposition"] = "attachment;filename=%s" % (r.archivo_name)
         flash(_(u'El %s fue eliminado permanentemente.') % name)
         return r.archivo
+
+    @expose("json")
+    def de_curso(self, curso_id):
+        c = Curso.get(curso_id)
+        e = Enunciado.selectByCurso(c)
+        return dict(enunciados=e)
 #}}}
 
index a71a9c1f83f5f6a1f96d8390785e15c7585cff2e..12991f7e93d700457f0aef492a654a58f2b86425 100644 (file)
 
 <table class="list">
     <tr>
+        <th>Cuatrimestre</th>
+        <th>Año</th>
         <th>Nombre</th>
         <th>Descripción</th>
         <th>Autor</th>
         <th title="Casos de Prueba">CP</th>
         <th>Operaciones</th>
     </tr>
-    <tr py:for="record in records">
+               <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><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><a py:if="record.autorID is not None"