From: Ricardo Markiewicz Date: Mon, 26 Feb 2007 03:26:40 +0000 (+0000) Subject: ABM para el anio y custrimestre y json para obtener los datos X-Git-Tag: pre-merge~96 X-Git-Url: https://git.llucax.com/software/sercom.git/commitdiff_plain/93a72f008fd1db8fb8e7f2a0facd957595c42f89?ds=inline ABM para el anio y custrimestre y json para obtener los datos --- diff --git a/sercom/model.py b/sercom/model.py index 21a2e6c..f139909 100644 --- a/sercom/model.py +++ b/sercom/model.py @@ -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) diff --git a/sercom/subcontrollers/enunciado/__init__.py b/sercom/subcontrollers/enunciado/__init__.py index 6ed6df1..8f22b94 100644 --- a/sercom/subcontrollers/enunciado/__init__.py +++ b/sercom/subcontrollers/enunciado/__init__.py @@ -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) #}}} diff --git a/sercom/subcontrollers/enunciado/templates/list.kid b/sercom/subcontrollers/enunciado/templates/list.kid index a71a9c1..12991f7 100644 --- a/sercom/subcontrollers/enunciado/templates/list.kid +++ b/sercom/subcontrollers/enunciado/templates/list.kid @@ -11,13 +11,17 @@ + + - + + +
CuatrimestreAño Nombre Descripción Autor CP Operaciones
descripcióndescripción nombre descripción