X-Git-Url: https://git.llucax.com/software/sercom.git/blobdiff_plain/c93a3d99ce9b5e3db2e9f18f972bfcfba7ce5f1a..de32d0c699858b1502f5f1e793174db8b56f9c1b:/sercom/subcontrollers/ejercicio/__init__.py diff --git a/sercom/subcontrollers/ejercicio/__init__.py b/sercom/subcontrollers/ejercicio/__init__.py index 8a8a7ab..cacbad5 100644 --- a/sercom/subcontrollers/ejercicio/__init__.py +++ b/sercom/subcontrollers/ejercicio/__init__.py @@ -71,6 +71,9 @@ def validate_new(data): validate_fk(data) validate_fk1(data) return val.validate_new(cls, name, data) + +def validate_del(id): + return val.validate_del(cls, name, id) #}}} #{{{ Formulario @@ -79,10 +82,21 @@ def get_options(): # Un poco de ajax para llenar los cursos ajax = """ + function showHint() + { + MochiKit.DOM.showElement('hint') + } + + function hideHint() + { + MochiKit.DOM.hideElement('hint') + } + function clearEnunciados () { l = MochiKit.DOM.getElement('form_enunciadoID'); l.options.length = 0; + l.disabled = true; } function mostrarEnunciados (res) @@ -93,11 +107,14 @@ ajax = """ label = res.enunciados[i].nombre; MochiKit.DOM.appendChildNodes("form_enunciadoID", OPTION({"value":id}, label)) } + l.disabled = false; + hideHint(); } function err (err) { alert("The metadata for MochiKit.Async could not be fetched :("); + hideHint(); } function actualizar_enunciados () @@ -112,11 +129,18 @@ ajax = """ url = "/enunciado/de_curso?curso_id="+id; var d = loadJSONDoc(url); d.addCallbacks(mostrarEnunciados, err); + showHint(); } function prepare() { connect('form_cursoID', 'onchange', actualizar_enunciados); + hideHint(); + clearEnunciados(); + actualizar_enunciados(); + if (select_enunciado) { + wait(0.1).addCallback(function (res) { return select_enunciado() }); + } } MochiKit.DOM.addLoadEvent(prepare) @@ -200,8 +224,7 @@ class EjercicioController(controllers.Controller, identity.SecureResource): @expose() def delete(self, id): """Destroy record in model""" - r = validate_get(id) - r.destroySelf() + validate_del(id) flash(_(u'El %s fue eliminado permanentemente.') % name) raise redirect('../list')