Correlativas en Inscripción a Materias 3W

Hola buenas tardes, estaba realizando una personalización en el 3W que tiene que ver con que no me liste en “Inscripción a Materias” las correlativas, es decir, que solo me muestre las materias en las que en ese momento SI cumplimenta correlativas…

Estaba buscando la manera de correr el control de correlativas al momento de listarlas y lo conseguí en parte, porque me tarda mucho en controlarlo… Lo que yo hice en el pagelet: operaciones_comun\pagelets\pagelet_lista_materias.php fue agregar lo siguiente

function prepare()
{
$this->add_var_js(‘busca_actividad’, kernel::traductor()->trans(‘busca_actividad’));
$this->data = $this->modelo()->info__lista_materias();

    // para abajo
                        $mensajes = "";
                        foreach($this->data as $materia){
                            try {
                                $mensajes .= $this->modelo()->control__seleccion_materia($materia['__ID__']);
                            } catch (error_guarani $e) {
                                $men = $e->get_mensajes_usuario();
                                foreach($men as $ee){
                                    $existe = strpos($ee['mcuerpo'], "correlativas de cursada");
                                    if ($existe !== false){
                                        unset($this->data[$materia['id']]);
                                    }
                                }
                            }
                        }

    // para arriba

    $operacion = kernel::ruteador()->get_id_operacion();

    if ($this->controlador->hay_var('materia')) {
        $materia = $this->controlador->get_var('materia');
    } else {
        $materia = '';
    }
    
   foreach ($this->data as $key => $dato) {
        $this->data[$key]['SELECCIONADA'] = $materia == $dato[catalogo::id];
       $this->data[$key]['URL_MATERIA'] =
            kernel::vinculador()->crear($operacion, 'elegir_materia', $dato[catalogo::id]);
   }

}

Y desde guarani le agregue al Requisito Correlativas de Cursada el punto de control alumno - actividad

Funciona pero demora… Además seguramente me va a entrar en conflictos con la pestaña Inscripción a Exámenes porque me parece que utiliza esta misma función…
Muchas gracias!!

Esto se evaluó ante algun pedido pero de pruebas realizadas detectamos que sería un proceso pesado. Para el caso de alumnos que se encuentran en los primeos años, deberia evaluar correlativas para las materias de toda la carrera, cuando en realidad el alumno se inscribirá para cursar en 2, 3, 4, 5 materias, no creo que sea mas que eso.

El otro tema era que de hacerse, el alumno no veria las materias en las cuales no tendria las correlativas, con lo cual no sabría si esa materia no se ve en la lista porque no se dicta ese cuatrimestre o porque es un error del sistema, etc.

Me parece importante que el alumno pueda saber el motivo por el cual no puede inscribirse para cursar una materia, con lo cual eso lo sabe cuando va a seleccionar la comisión y se corren estos controles.

Ademas, si fuera una materia que puede promocionar, no solo se debe correr el control de correlativas para cursar, sino tambien el control de correlativas para aprobar la materia (esto se evalua dependiendo de las instancias definidas en la comisión). Es decir que el control que agregaste esta a medias, ya que el alumno podria no poderse inscribir para promocionar la materia, pero si para cursarla y regularizarla (quedaría inscripto solo en la instancia de cursada y no de promoción).

No creo que filtrar las materias por esta condición sea la alternativa mas conveniente. Si quieren limitar el listado de materias, podrian poner algun filtro para ver las materias por año de cursada (si tienen este dato en el plan de estudios).

Otra opción que tenemos pensado desarrollar en algun momento es que el alumno tenga disponible una opción en el menú donde pueda seleccionar una materia de su plan y poder analizar las correlativas, si esta en condiciones de cursar/promocionar/aprobar por examen la materia o si le falta alguna correlativa y que se las liste.