Filtro por subcomisión en cursadas

Hola,

Venimos trabajando hace rato con subcomisiones, pero nos siguen haciendo falta algunas facilidades.
En este caso estoy queriendo filtrar a los alumnos que se listan en la sección Cursadas por la subcomisión a la que pertenecen aprovechando que hay un select que distingue de esta manera. Actualmente se hace muy tedioso al cargar las notas mirar 18 páginas de alumnos y se generan muchos errores.

Para la sección cargar notas entiendo que los métodos a mirar son info__alumnos_comision y carga_notas_cursada_comision - alumnos_comision, no?
Me faltaría saber si son los mismos para la pestaña alumnos.

Por lo que estuve viendo, el parámetro de la subcomisión ya lo tendría porque la selección llega en el parámetro $datos al método info__alumnos_comision.
Después, en la clase carga_notas_cursada_comision - alumnos_comision veo que la consulta se hace sobre las tablas sga_comisiones, sga_evaluaciones, sga_evaluaciones_tipos, sga_eval_detalle_cursadas, sga_actas, sga_insc_cursada, sga_alumnos, vw_personas pero en ninguna de esas tablas encontré el dato subcomisión que me sirva para filtrar.

Me podrán dar una mano sobre con qué tabla debería hacer la relación que necesito? No encuentro tampoco entre las sga_subcomisiones_* alguna que parezca tener que ver.

Dejo un adjunto donde se ve el select del que hablo, y que aunque la comisión tiene 65 alumnos en el listado aparecen todos (como nota, en la parte de asistencias sí se permite hacer este filtrado)

Gracias!


Screenshot_2018-11-21 FFyB - Carga de notas de cursada.png

Screenshot_2018-11-21 FFyB - Carga de notas de cursada.png

Hola Solange, no se en que versión de Guaraní están, pero te respondo según lo que veo en la ultima versión:

  1. Para obtener el dato de la subcomisión en la sección “Carga de notas de cursada”, dicho dato lo vas a tener en la variable $this->params_comision dentro del archivo src/siu/operaciones/notas_cursada_comision/controlador.php. Si examinas dicha variable, vas a ver que es un array que adentro contiene la clave ‘comision’ y ‘subcomision’ entre otros.

  2. Las tablas involucradas en la inscripción a una subcomisión son: sga_insc_cursada, sga_insc_subcomision, sga_subcomisiones.

saludos.

Hola Leonel,

Estamos en la 3.15, pero no creo que haya demasiadas diferencias en esto. Lo que necesitaba eran esas tres tablas que me detallás al final. Lo voy a mirar hoy, y si encuentro que algo no está te aviso.

Gracias!

Hola Leonel,

Perfectos los datos que me pasaste, pude aplicar el filtro!

Lo único que me queda ahora es que me sigue tomando la paginación como si estuvieran todos los alumnos de la comisión. Es decir, me muestra que hay 18 páginas cuando en realidad sólo 2 están completas. Desde donde podemos arreglar eso?

Saludos!

Hola Solange, para modificar el paginador vas a tener que modificar en varias partes:

  1. Archivo src/siu/operaciones/notas_cursada_comision/renglones/default.twig, donde dice {{ pager.render_paginator(pagelet.get_paginas, pagelet.get_pagina_actual) }}, allí es donde muestra al paginador. ESTO NO HABRÍA QUE PERSONALIZAR.

  2. Las funciones get_paginas y get_pagina_actual que vemos en el punto 1, las vas a encontrar en al archivo src/siu/operaciones/notas_cursada_comision/pagelet_renglones.php. ESTO NO HABRÍA QUE PERSONALIZAR.

  3. Ahora bien, si te fijas la función get_paginas del archivo src/siu/operaciones/notas_cursada_comision/pagelet_renglones.php, vas a ver que usa $encabezado[‘paginas’], dicho dato viene de la función comision_cabecera del archivo src/siu/modelo/datos/db/carga_notas_cursada_comision.php. Dicha query habría que personalizar, y agregar algo como sigue:

Primero hay que agregar una subquery que te traiga la cantidad de alumnos de la subcomisión (cant_alumnos_subcomision).


		$datos = kernel::db()->consultar_fila($sql);
		$datos['paginas'] = ceil($datos['cant_alumnos'] / carga_notas_cursada_comision::alumnos_pagina);
                $datos['paginas_subcomision'] = ceil($datos['cant_alumnos_subcomision'] / carga_notas_cursada_comision::alumnos_pagina);
		return $datos;

  1. Vas a tener que personalizar la función get_paginas del archivo src/siu/operaciones/notas_cursada_comision/pagelet_renglones.php. En lugar de $encabezado[‘paginas’], vas a tener que usar $encabezado[‘paginas_subcomision’].

saludos.

Hola Leonel,

Gracias por el detalle, ya pude hacer andar esto.

Me queda ahora pendiente agregar un item por cada comisión al select, de manera que si necesitan ver todos los alumnos de la comisión puedan hacerlo sin filtrar por subcomisión.
Por lo que vi el render del select es genérico y sólo recibe las opciones a mostrar. Lo que no encuentro es dónde se generarn esas opciones. Me podrás orientar?

Saludos!

Hola Solange,

Las opciones del select se cargan desde la función lista_comisiones de la clase src/siu/modelo/datos/db/docente.php, el orden de llamado es como sigue:

  1. Función info__comisiones_docente del archivo src/siu/modelo/transacciones/zona_comisiones.php.

  2. Función lista_comisiones del archivo src/siu/modelo/datos/db/docente.php.

Yo personalizaría esta ultima poniéndole otro nombre a la función, ej: lista_comisiones_pers. Y en el punto 1) donde se invoca le cambiaría para que llame a la personalizada. Esto lo digo ya que esta función (la del punto 1) se llama en varios lugares.

saludos.