varios moodle relacionados en su guarani

hola

tenemos la version 3.17.1 de siu
la situacion es la siguiente:
hay comisiones con cursos en 2 moodle distintos
cuando relacionamos un moodle en siu, se agrega con la responsable académica que corresponde
pero cuando vamos a relacionar el otro moodle, la responsable académica no al podemos usar por que ya esta relacionada en el primer moodle

esto se pude solucionar ??? o si se personaliza, genera inconveniente con algún otro componente

muchas gracias
Saludoss

Hola Ricardo,

Por ahora solo se puede vincular una comisión de Guaraní a solo un curso de Moodle. Si se puede vincular un curso de Moodle con varias comisiones de Guaraní.

¿como hiciste para tener una comisión de Guaraní vinculada a dos cursos de Moodle?

saludos.
2

hola

por ahi me explique mal

las comisiones de una carrera tienen cursos en 2 moodles diferentes
si la responsable academica de esa carrera esta relacionada a un moodle,
entonces las comisiones que tienen cursos en el otro moodle no las puedo vincular

seria algo asi:
tengo la facultad de economicas como RA y relacionada al moodle1
todas las comisiones de la Facultad las puedo vincular a cursos del moodle 1

ahora tengo el moodle2, que tambien tiene cursos de la facultad de economica
en siu no puedo relacionar el moodle2 con la facultad de economicas ( por que ya esta con el moodle1) y
tampoco puedo vincular las comisiones a cursos del moodle2

Saludosss

consulto sobretodo por que viendo la estructura de la base de datos, da la impresion de que si se puede relacionar una responsable academica a mas de un moodle,

de hecho para testear lo hice y en esa parte el siu lo mostro bien, sin problemas
(no llegue a probar que pasa con las comisiones)

Hola Ricardo,

Estuve viendo un poco de código, y observo lo siguiente:

En el caso que una comisión pertenezca a una actividad que esta en dos responsables académicas, y la responsable académica 1 este vinculada a Moodle1 y responsable académica 2 a Moodle2, lo que esta haciendo ahora Guaraní es tomar el primer Moodle que encuentra. Se puede ver en esta query:

Función get_plataforma_by_comision de la clase php/nucleo/cursadas/comisiones/co_comisiones.php:


	/**
	 * Retorna la plataforma virtual asociado a una comisión
	 */
	function get_plataforma_by_comision($comision)
	{

		$comision = toba::db()->quote($comision);

		$sql = "SELECT 	int_pv_plataformas.plataforma,
						int_pv_plataformas.nombre,
						int_pv_plataformas.url,
						int_pv_plataformas.host,
						int_pv_plataformas.token,
						int_pv_plataformas.rol_alumno,
						int_pv_plataformas.rol_alumno_curso,
						int_pv_plataformas.categoria_curso_default
				FROM sga_comisiones
				JOIN sga_elementos ON (sga_comisiones.elemento = sga_elementos.elemento)
				JOIN sga_elementos_ra ON (sga_elementos.elemento = sga_elementos_ra.elemento)
				JOIN int_pv_plataformas_ra ON (sga_elementos_ra.responsable_academica = int_pv_plataformas_ra.responsable_academica)
				JOIN int_pv_plataformas ON (int_pv_plataformas_ra.plataforma = int_pv_plataformas.plataforma) 
				WHERE sga_comisiones.comision = $comision
				AND int_pv_plataformas.activa = TRUE
				LIMIT 1
			   ";

		return guarani_db::consultar_fila($sql);
	}

Hace un LIMIT 1, vamos a ver para la siguiente versión que deje elegir con que Moodle se quiere vincular.

saludos.
2

hola
gracias por la respuesta

justo estaba viendo es consulta

la bbdd da la impresion de que esta preparada para que las responsables academicas se asocien multiples moodle simultaneamente

tal vez hay que agregar funcionalidad en /usr/local/proyectos/guarani/php/operaciones/cursadas/comisiones/ ci_edi_educacion_virtual.php, de forma que la comision pueda interartuar con varios objetos moodle ( por ejemplo que el desplegable de cursos a elegir, se muestren de varios moodles y no de uno solo)

a nosotros en este momento nos surgio esta necesitad particular y estamos medio cortos de tiempo
si nuestra solucion sale por el lado de la personalizacion del codigo, luego lo aportamos

cualquier cosa vuelvo a consultar

Saludosss

Hola Ricardo,

Una posible solución provisoria seria deshabilitar temporalmente “la otra” plataforma de Educación Virtual en la operación Administrar Configuración del Sistema de Gestión, y dejar habilitada la que se quiere vincular con esa comisión. Una vez vinculada la comisión volves a habilitar en Administrar Configuración del Sistema.

¿La vinculación de la comisión al curso de Moodle la están haciendo desde Gestión o en 3W?

saludos.
2

hola
esa es buena idea !!!

todo se hace desde gestion

Saludoss

Hola Ricardo,

Ademas de lo anterior, hay otro cambio de código que habría que hacer para que esto funcione bien:

En la función conf de la clase php/operaciones/cursadas/comisiones/ci_edi_educacion_virtual.php justo antes que se setee la variable $info_curso tenes que agregar lo siguiente:


			} else {// Si la Comisión posee un curso asociado
                                // Agregar de acá
				$this->s__datos_plataforma['plataforma'] = $this->s__datos_curso_virtual['plataforma'];
				$this->s__datos_plataforma['nombre'] = $this->s__datos_curso_virtual['plataforma_nombre'];
				$this->s__datos_plataforma['url'] = $this->s__datos_curso_virtual['plataforma_url'];
				$this->s__datos_plataforma['host'] = $this->s__datos_curso_virtual['plataforma_host'];
				$this->s__datos_plataforma['token'] = $this->s__datos_curso_virtual['plataforma_token'];
				$this->s__datos_plataforma['rol_alumno'] = $this->s__datos_curso_virtual['plataforma_rol_alumno'];
				$this->s__datos_plataforma['rol_alumno_curso'] = $this->s__datos_curso_virtual['plataforma_rol_alumno_curso'];
				$this->s__datos_plataforma['categoria_curso_default'] = $this->s__datos_curso_virtual['plataforma_categoria_curso_default'];
				$this->s__roles_docentes = toba::consulta_php('co_configuracion')->get_roles_docentes_by_plataforma($this->s__datos_plataforma['plataforma'], 'COMISION');
				unset($this->moodle_obj);
			         // hasta acá

				$info_curso = $this->get_info_curso_virtual();

Probalo bien en un entorno de prueba antes de pasar a producción.
Hacelo personalizando dicha función.

saludos.
2

hola
estuve probando un poco ( use la desactivacion de la platarforma y codigo que pasate)
te cuento los resultados:

  • al estar la facultad relacionada a mas de una platarforma, para desactivarla lo tuve que hacer desde la bbdd y una vez desactivada en la comision podia seleccionar el curso y vincular sin problemas
  • una vez vinculado el curso, si la facultad seguia relacionada a mas de una plataforma, en la parte de docentes decia que no se correspondian al curso y que faltaba la sincronizacion,
    pero si la facultad quedaba con relacionada a una sola plataforma si decia que estaban ok los docentes

si llego a probar algo con los alumnos te comento que paso

Saludossss

Hola Ricardo,

- al estar la facultad relacionada a mas de una platarforma, para desactivarla lo tuve que hacer desde la bbdd y una vez desactivada en la comision podia seleccionar el curso y vincular sin problemas

¿No te aparece el checkbox “Activa” como muestra en la captura?

- una vez vinculado el curso, si la facultad seguia relacionada a mas de una plataforma, en la parte de docentes decia que no se correspondian al curso y que faltaba la sincronizacion, pero si la facultad quedaba con relacionada a una sola plataforma si decia que estaban ok los docentes

Si, esto no va a funcionar 100% bien, porque las queries se hacen buscando por las Responsables Académicas vinculadas a la plataforma (Moodle), y se busca por las RAS de la actividad. Para la versión 3.19.0 tenemos pensado cambiar eso.

Te sugiero lo siguiente:

En la función conf de php/operaciones/cursadas/comisiones/ci_edi_educacion_virtual.php deshace lo que te dije antes, y hace que quede asi:


	function conf()
	{

		// Traigo y seteo datos de la comisión
		$datos_comision = $this->cn()->entidad()->get_datos_generales();

		// Si se trata de una comisión nueva salgo
		if (!isset($datos_comision['comision'])) return false;

		$this->s__comision = $datos_comision['comision'];
		$this->s__datos_curso_virtual = toba::consulta_php('co_comisiones')->get_curso_virtual_by_comision($this->s__comision);
		if (empty($this->s__datos_curso_virtual)) {
			$this->s__datos_plataforma = toba::consulta_php('co_comisiones')->get_plataforma_by_comision($this->s__comision);
		} else {
			$this->s__datos_plataforma['plataforma'] = $this->s__datos_curso_virtual['plataforma'];
			$this->s__datos_plataforma['nombre'] = $this->s__datos_curso_virtual['plataforma_nombre'];
			$this->s__datos_plataforma['url'] = $this->s__datos_curso_virtual['plataforma_url'];
			$this->s__datos_plataforma['host'] = $this->s__datos_curso_virtual['plataforma_host'];
			$this->s__datos_plataforma['token'] = $this->s__datos_curso_virtual['plataforma_token'];
			$this->s__datos_plataforma['rol_alumno'] = $this->s__datos_curso_virtual['plataforma_rol_alumno'];
			$this->s__datos_plataforma['rol_alumno_curso'] = $this->s__datos_curso_virtual['plataforma_rol_alumno_curso'];
			$this->s__datos_plataforma['categoria_curso_default'] = $this->s__datos_curso_virtual['plataforma_categoria_curso_default'];
		}
..........................................

Luego en php/nucleo/cursadas/comisiones/co_comisiones.php habria que cambiar las queries para que haga distinto el JOIN:

En get_docentes_comision_moodle, en lugar de hacer:


JOIN sga_elementos					ON (sga_comisiones.elemento = sga_elementos.elemento)
LEFT JOIN sga_elementos_ra			ON (sga_elementos.elemento = sga_elementos_ra.elemento)
LEFT JOIN int_pv_plataformas_ra		ON (sga_elementos_ra.responsable_academica = int_pv_plataformas_ra.responsable_academica)
LEFT JOIN int_pv_plataformas		ON (int_pv_plataformas_ra.plataforma = int_pv_plataformas.plataforma) 

habría que hacer:


LEFT JOIN int_pv_cursos_comisiones	ON (sga_comisiones.comision = int_pv_cursos_comisiones.comision)
LEFT JOIN int_pv_cursos				ON (int_pv_cursos_comisiones.curso = int_pv_cursos.curso)
LEFT JOIN int_pv_plataformas		ON (int_pv_cursos.plataforma = int_pv_plataformas.plataforma) 

saludos.
4


Screenshot from 2020-11-24 09-37-53.png

Screenshot from 2020-11-24 09-37-53.png

Hola Ricardo,

Mejor crea un GDS, y pasame el numero en este foro, así te adelanto unos cambios que pueden servir.

NOTA: Todo esto probalo en un ambiente de test.

saludos.
2

hola

ahora levanto un gds
aparece para activar/desactivar como esta en la imagen, el problema es al guardar que detecta la RA ya asignada a otra plataforma

estoy probando todo en testing

Saludosss

Se continua en gds 48945

Hola Ricardo,

Como bien dice Sebastian Barrios, lo continuamos en el GDS 48945.

Se estima que para la versión 3.19.0 ya se podrá elegir que Moodle usar cuando ocurren estos casos.

saludos.
2