X-Git-Url: https://git.llucax.com/z.facultad/75.52/sercom.git/blobdiff_plain/30b66b3ed7061eaaab51a23cc71e6aff0dbdc650..14d0be1bacc499e7fc46a0963197feeafccb1c97:/sercom/subcontrollers/curso/grupo/__init__.py diff --git a/sercom/subcontrollers/curso/grupo/__init__.py b/sercom/subcontrollers/curso/grupo/__init__.py index 8dad4a7..4c21f58 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) @@ -126,7 +129,7 @@ class GrupoForm(W.TableForm): 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,153 @@ 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 alumnos_agregar_a_la_lista(texto, lista) + { + t = MochiKit.DOM.getElement(texto); + + url = "/alumno/get_alumno?padron="+t.value; + t.value = ""; + return url; + } + + function err (err) + { + alert("The metadata for MochiKit.Async could not be fetched :("); + } + + function procesar(result) + { + l = MochiKit.DOM.getElement('form_responsable_info'); + if (result.error) + l.innerHTML = result.msg; + else + l.innerHTML = result.msg.value; + } + + 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