From 2fa2e19d817969162585f16ed1a4989db97e7111 Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Tue, 27 Feb 2007 22:33:48 +0000 Subject: [PATCH] Simplifico el url del widget. Cambio de planes, el parametro do_add ahora es un simple callback que recibe la ID del campo de texto y de la lista y debe retornar el URL a llamar para obtener los datos (simplificando mucho el manejo del loading y la llamada a JSON). Del lado del modelo se debe retornar un diccionario con : * error = True|False : indica si hubo o no error * msg - Si error == True el texto de error a mostrar - Si error == False un diccionario con id y value para el option a agregar de manera que queda (si, poco feliz lo de value :P) --- sercom/subcontrollers/grupo/__init__.py | 11 ++-------- sercom/widgets.py | 27 ++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/sercom/subcontrollers/grupo/__init__.py b/sercom/subcontrollers/grupo/__init__.py index 46422c7..2ba95e1 100644 --- a/sercom/subcontrollers/grupo/__init__.py +++ b/sercom/subcontrollers/grupo/__init__.py @@ -62,14 +62,10 @@ def get_cursos(): return [(0, u'---')] + [(fk1.id, fk1.shortrepr()) for fk1 in Curso.select()] ajax = u""" - function alumnos_agregar_a_la_lista(texto, lista, loading) + function alumnos_agregar_a_la_lista(texto, lista) { t = MochiKit.DOM.getElement(texto); - /* Como no se si se puede hacer de otra manera, asumo que tengo en - * el form un Combo que se llama curso en el codigo, y tiro error si - * no existe - */ curso = MochiKit.DOM.getElement('form_cursoID'); if (!curso) { alert("No deberias ver esto, y quiere decir que tu form esta roto.\\nTe falta un combo de curso"); @@ -79,12 +75,9 @@ ajax = u""" alert('Debes seleccionar un curso primero'); return; } - load = MochiKit.DOM.getElement(loading); - load.style.visibility = 'visible'; url = "/grupo/get_inscripto?cursoid="+curso.options[curso.selectedIndex].value+"&padron="+t.value; - var d = loadJSONDoc(url); - d.addCallbacks(partial(_on_alumno_get_result, lista, loading), partial(_on_alumno_get_error, loading)); t.value = ""; + return url; } function err (err) diff --git a/sercom/widgets.py b/sercom/widgets.py index 419fa63..5f9540c 100644 --- a/sercom/widgets.py +++ b/sercom/widgets.py @@ -57,6 +57,31 @@ MultiSelectAjax = ''' for (i=l.selectedIndex; i + onClick=" _do_add(${on_add}, '${field_id}_nuevo', '${field_id}', '${name}_loading'); " />