Personalizar Actas Fuera de Calendario - Escala de Notas

....Estamos necesitando agregar validaciones al momento de crear un acta en la operación Administrar Actas de Examen. Una de ellas consiste en verificar que la escala de nota (regular/libre) elegida por el docente sea la que esté asignada en el plan de estudio asociado a la materia/actividad.

Cual es la manera mas conveniente de agregar un cartel de error para esta validación?

Saludos

Romina Gabriela Gómez (rgomez)
Universidad de Buenos Aires(UBA) - Facultad de Ciencias Exactas y Naturales

Referencia Tema: Escala de notas en Exámenes

Hola, me parece que no es conveniente llenar todos los combos de las “Escala de notas” con todas las escalas de notas
existentes y luego tener que validar si la escala de nota seleccionada corresponde a la materia en cuestión, debido a problemas
de usabilidad, donde el docente va a elegir una materia y luego va tener que ir probando guardar hasta que le permita con una escala de notas correspondiente a dicha materia.

A mi parecer la mejor solución para este caso seria que cuando el docente selecciona una materia, se haga una petición AJAX que devuelva
las escalas de notas que tiene dicha materia en los diferentes planes que esta asignada, ésta lista acotada de escalas de notas serán las opciones a elegir en los combos de “Escala de notas”. De esta manera no es necesario validar la escala de nota elegida para una instancia de una materia, ya que sabemos que las escalas a elegir en los combos son las que les fueron asignadas a las materias.

saludos, Leonel.

Hola,
Podrías detallar alguna de las dos soluciones. Ya que en la que planteamos nosotros, no sabemos como lanzar un error de validación. Lo intentamos hacer pero no pudimos. Y la que planteas vos no sabemos como trabajar con la petición AJAX que mencionas.
Saludos

Hola Romina, lo que te propongo es lo siguiente:

cuando creas un acta fuera de calendario vas a ver que en el formulario tenes para elegir la
“Actividad”, al elegir la actividad de la lista que se despliega se ejecuta la siguiente función que se encuentra en el archivo src/siu/operaciones/admin_actas_examen_fc/acta/pagelet_acta.js:

$form.formulario('elemento', 'actividad', 'datos_acta').plugin_autocompletar('callback_select', function(id, value, original) {	
	//codigo js que se ejecuta al elegir una materia de la lista desplegada
	//id: variable js con el codigo de materia seleccionada
});

lo que tendrías que hacer dentro de esta función es una petición AJAX con el id de la materia seleccionada, dicha petición AJAX te devolvería todas las escalas de notas para esa materia (vas a tener que hacer una consulta SQL del lado del servidor) y con dichas escalas de notas llenas los combos/selects de escalada de notas (eso se hace con js):

te paso un ejemplo de como se hace una petición AJAX:


kernel.ajax.call(info.url_escala_notas_materia, {
   type: 'get',
   data: {id_materia: id},
   success: function(response) {
      var datos = response.cont;
   },
   error: {}
});

info.url_escala_notas_materia es la URL que atiende la petición AJAX (ej: http://localhost/g3w2_trunk3/admin_actas_examen_fc/escala_notas_materia), esto apuntaría a src/siu/operaciones/admin_actas_examen_fc/controlador.php función accion__escala_notas_materia()

data: {id_materia: id}, estamos asignado la variable id (contiene el id de actividad) a los parámetros de $_GET con el nombre de id_materia, osea, del lado de PHP se puede acceder a dicha variable con $_GET[‘id_materia’].

luego vas a ver dos bloques, el bloque success y error: success es el bloque que se ejecuta si la peticion AJAX salio bien, error se ejecuta si hubo algun error del lado del servidor que de status code 500.

var datos = response.cont; esta es la forma de acceder a los datos que devuelve la petición AJAX, datos en este caso seria un array con las escalas de notas disponibles para esa materia.

les recomiendo que vean un poco sobre AJAX para poder personalizar, ya que hay muchas operaciones que usan dicha tecnología.

cualquier duda o consulta no duden en preguntar.

saludos, Leonel.