X-Git-Url: https://git.llucax.com/z.facultad/75.52/sercom.git/blobdiff_plain/30b66b3ed7061eaaab51a23cc71e6aff0dbdc650..4ea20adaa88d869a0da20edad2b9e3dc79c70a7d:/sercom/subcontrollers/curso/grupo/__init__.py diff --git a/sercom/subcontrollers/curso/grupo/__init__.py b/sercom/subcontrollers/curso/grupo/__init__.py index 8dad4a7..f658809 100644 --- a/sercom/subcontrollers/curso/grupo/__init__.py +++ b/sercom/subcontrollers/curso/grupo/__init__.py @@ -7,14 +7,19 @@ from turbogears import validate, flash, error_handler from turbogears import validators as V from turbogears import widgets as W from turbogears import identity -from turbogears import paginate +from turbogears import paginate, url from docutils.core import publish_parts from sercom.subcontrollers import validate as val from sercom.model import Curso, AlumnoInscripto, Docente, DocenteInscripto, Grupo, Alumno, Miembro from sqlobject import * +from sqlobject.dberrors import * from sercom.widgets import * +import logging + +log = logging.getLogger('sercom.curso.grupo.admin') + #}}} #{{{ Configuración @@ -42,9 +47,7 @@ def get_docentes(): return [(fk1.id, fk1.shortrepr()) for fk1 in Docente.select()] def get_docentes_inscriptos(id): - def func(): - return [(fk1.id, fk1.shortrepr()) for fk1 in DocenteInscripto.select(DocenteInscripto.q.cursoID==id)] - return func + return [(fk1.id, fk1.shortrepr()) for fk1 in DocenteInscripto.select(DocenteInscripto.q.cursoID==id)] ajax = u""" function alumnos_agregar_a_la_lista(texto, lista) @@ -122,11 +125,11 @@ ajax = u""" class GrupoForm(W.TableForm): class Fields(W.WidgetsList): - cursoID = W.HiddenField() + cursoID = W.HiddenField(validator=V.Int) nombre = W.TextField(label=_(u'Nombre'), validator=V.UnicodeString(not_empty=True,strip=True)) responsable = CustomTextField(label=_(u'Responsable'), validator=V.UnicodeString(), attrs=dict(size='8')) miembros = AjaxMultiSelect(label=_(u'Miembros'), validator=V.Int(), on_add="alumnos_agregar_a_la_lista") - tutores = W.MultipleSelectField(label=_(u'Tutores'), validator=V.Int(), options=get_docentes) + tutores = W.MultipleSelectField(label=_(u'Tutores'), validator=V.Int) fields = Fields() javascript = [W.JSSource("MochiKit.DOM.focusOnLoad('form_nombre');"), W.JSSource(ajax)] @@ -134,6 +137,154 @@ class GrupoForm(W.TableForm): form = GrupoForm() +def get_gruposA(cursoID): + return [(0, u'---')] + [(g.id, g.shortrepr()) for g in Grupo.select(Grupo.q.cursoID==cursoID)] + +def get_gruposB(cursoID): + return [(0, u'Nuevo Grupo')] + [(g.id, g.shortrepr()) for g in Grupo.select(Grupo.q.cursoID==cursoID)] + +ajaxadmin = u""" + function err (err) + { + alert("The metadata for MochiKit.Async could not be fetched :("); + } + + function doSubmit() + { + /* TODO : Validar datos y evitar el submit si no esta completo */ + + /* Selecciono todos los miembros si no, no llegan al controllere*/ + l = MochiKit.DOM.getElement('form_grupos_to'); + for (i=0; i