Carga masiva de usuarios e inscripcion masiva a los cursos

Carga masiva de usuarios e inscripcion masiva a los cursos

de jonathan z -
Número de respuestas: 23

Buenas tardes,

Necesito hacer un script en el cual de una BD que tengo en Oracle donde tengo a todos los alumnos y profesores , las carreras y sus respectivos cursos y debos cargarlos en las tablas de MOODLE, estoy usando la version 1.9.7

mi pregunta es?

  • Qué tablas y que campos del Moodle debo afectar (hacer un insert) para hacer el paso de estos datos de mi BD a las tablas en moodle? (no debo cargar los usuarios desde un archivo csv sino directamente de la base)
  • o si alguien me puede explicar el Orden de como Moodle hace la creación (curso,usuario) y la vinculación o inscripción de los usuarios (profesor / alumno) con el curso que orden debo de seguir para hacer la inserción (TABLAS Y CAMPOS).

ya que solo pensaba que se usaba

  • mdl_user
  • mdl_roles
  • mdl_course
  • mdl_coure_categories
  • mdl_context
  • mdl_role_assignments

pero parece q participan mas tablas o no he afectado los campos correctos

las dos ultimas tablas no entiendo muy bien su funcionamiento, enlace y el orden de como llenarlas

No se si alguien mas tenga o haya pasado por este mismo requerimiento... de antemano Gracias

Promedio de valoraciones: -
En respuesta a jonathan z

Re: Carga masiva de usuarios e inscripcion masiva a los cursos

de Franco Pantoja -
Imagen de Moodlers de gran ayuda
Buenos días Jonathan.


Moodle utiliza tres tablas para la matricualación.

mdl_role_assigment,
donde tienes
contextid (id de contexto del recurso, por ejemplo 9109)
roleid (rol en el que se matricula, 5 es alumno)
userid (usuario al que pretendemos matricular, imaginemos que 70)

mdl_course
id (del curso, por ejemplo 47)

mdl_context
id (del contexto del recurso, por ejemplo 9109)
instanceide (nombre del recurso que lo origina, en este caso 47 que es el que se determina en mdl_course). En otras palabras el curso con id 47 genera un recurso (en este caso él mismo) al que Moodle asigna el número 9109.
contextlevel (tipo de recurso, 50 quiere decir curso).

De esta manera hemos matriculado en el curso con id 47, como alumno (roleid 5) al usuario 70.

Espero que pueda serte útil.
Un saludo.

Paco Franco
En respuesta a jonathan z

Re: Carga masiva de usuarios e inscripcion masiva a los cursos

de Xavier Paz -
mdl_role_assigments contiene la relación de usuarios, roles y contextos. Es decir, que usuarios tienen que roles en que contextos.

Por ejemplo, si un usuario tiene el rol de estudiante en el curso Pruebas, aparecerá el id de usuario, el id del contexto asociado al curso Pruebas y el id del rol estudiante.

mdl_context contiene cada uno de los contextos de moodle. Pueden ser de varios tipos, y el tipo viene dado por el valor del campo contextlevel (50 para curso, 30 para usuario, 40 para categoría, 60 para grupo, etc..)
Instanceid es el identificador de dicha instancia, cuya interpretación dependerá del tipo de contexto. Si es usuario, será el id de usuario. Si es un curso, será el id de curso, etc... path es la representación de la ruta en la jerarquía.

Yo llevaría a cabo los siguientes pasos:
  • Insertaría las categorías
  • Insertaría los contextos asociados a categorías
  • Insertaría los cursos
  • Insertaría los contextos asociados a cursos
  • Insertaría los usuarios
  • Insertaría los contextos asociados a usuarios
  • Si necesito nuevos roles, este sería el momento para insertarlo. Sino, uso los ya existentes.
  • Ahora asociaría los roles con los usuarios en los correspondientes contextos, insertando en la tabla role_assignments.


De todas formas, si te es posible, yo optaría por usar algún tipo de script que consulte la BD de Oracle y use las funciones de Moodle para insertar usuarios, porque insertar todos los datos en bruto desde las tablas de Oracle a las de la BD de Moodle puede ser muy engorroso, hay muchos elementos muy distintos que pueden provocar fallos.
En respuesta a Xavier Paz

Re: Carga masiva de usuarios e inscripcion masiva a los cursos

de Mariano Gonzalez -
Hola a todos, yo estoy necesitando algo parecido, quiero hacerlo pero con una BD mysql y creo que sería mas facil usar el plugin que trae moodle... ya tengo la BD creada, vistas y todo, pero no me funciona... alguien tiene material como para leer... o ejemplos? o algo ya armado en php que pueda utilizar?

Otra consulta, si habilito la matriculación con BD externa, tengo que correr algo mas qeu el cron.php?

Saludos
En respuesta a Xavier Paz

Re: Carga masiva de usuarios e inscripcion masiva a los cursos

de jonathan z -

Muchas gracias, con esto pude comprender mejor este funcionamiento, me ha servido de mucho, pero ahora que estoy haciendo esto noté algo mas y es:

la tabla mdl_block_instance para que sirve? ya que veo q tb se modifica

dentro de los pasos que me has sugerido, debo crearlos?, en donde? y en que me afecta si lo pongo o  lo omito.. gracias

En respuesta a Xavier Paz

Re: Carga masiva de usuarios e inscripcion masiva a los cursos

de Tulix Velásquez -
Saludos.

aprovechando el tema, veo que hay mas tablas en juego, por ejemplo la tabla mdl_display_course; la logica me indica que es la tabla para mostrar los cursos en el cual una persona esta matriculada, y los campos son el id de curso, id de usuario y display que pensaba que era 1 pára mostrar y 0 no mostrar, pero veo que algunos registros tienen numeros como 15 o 7 en realidad quisiera saber como trabaja esta tabla
En respuesta a Tulix Velásquez

Re: Carga masiva de usuarios e inscripcion masiva a los cursos

de Xavier Paz -
mdl_block_instance contiene las instancias de bloque en cada uno de los cursos. Es decir, si instalo el bloque Personas y lo agrego en un curso X, eso se denomina instancia del bloque Personas en el curso X. En principio, en esa tabla se insertan los bloques fijos (sticky) que aparecen en todos los cursos.

mdl_course_modules contiene los módulos (actividades,foros, etiquetas, recursos,etc...) del curso. Dependiendo de la estructura del curso, tendrás que poner unos módulos u otros, pero creo que inicialmente no es obligatorio añadir ningún módulo.
En respuesta a Xavier Paz

Re: Carga masiva de usuarios e inscripcion masiva a los cursos

de jonathan z -
MUCHISIMAS GRACIAS....

ME FUNCIONO EN EL ORDEN QUE ME DIJERON... ASI COMO DIJERON EL ORDEN VA ASI

1. Creación de Categorías (mdl_categories)
2. Creación de Contexto de las Categorías (mdl_context)
3. Creación de Cursos (mdl_course)
4. Creación de Contexto de Curso (mdl_context)
5. Creación de los Bloques (mdl_block_instance)-- es muy importante sino los cursos aparecerán sin los 8 bloques de la pantalla principal : calendario participantes administracion, etc

6. no es necesario crear el contexto de los bloques por que el moodle los crea junto al módulo de foro y las secciones, una vez que entras al curso la primera vez.

7.Creación de Usuarios (mdl_user)
8. No es necesario que se cree el contexto de usuario ya que también el moodle los crea a lo que ingresa el usuario la primera vez

9. Asignar privilegios a los usuarios (mdl_user_preferences) y poner estos registros por cada usuario

auth_forcepasswordchange, 0
email_bounce_count, 1
email_send_count, 1

10. Asignación del Usuario con su respectivo Rol y el Curso al cual se va a inscribir (mdl_role_assignments) y se les pasa los datos de id de mdl_user, id de mdl_role, id de mdl_context pero del curso


a todos los que me ayudaron muchísimas gracias y espero que este foro le ayude a mas personas
En respuesta a jonathan z

Re: Carga masiva de usuarios e inscripcion masiva a los cursos

de Sandra Piedrabuena -
Estimados.
Estoy siguiendo los pasos indicados por jonathan z y me enredé con la tabla contextos. Debo hacer una carga masiva a la plataforma. En este momento estoy local con la versión desactualizada (de febrero) de moodle 2.0. Algún material que pueda leer para orientarme?
Es para escuelas de enseñanza media. Resumo como debería quedar:
- Categoria. cada una de las escuelas (son 800). Por lo tanto tengo 800 categorias
- Subcategorias son los cursos: 1ro A turno mañana, 1ro B turno mañana, ..., y asi para cada escuela; tengo unas 20 subcategorias por categoria.
- Los cursos de moodle son las asignaturas o materias: Biologia, Matemáticas,..., o sea 15 cursos para cada subtegoria.
Necesito un ejemplo de como deben quedar las tablas. Sobre todo la de contexto.
Muchas gracias por la atención
Saludo atentamente
Adjunto CategoriaCursosUsuarios.PNG
En respuesta a jonathan z

Re: Carga masiva de usuarios e inscripcion masiva a los cursos

de Charles Alcantara -
Hola Jonathan,
Tengo un problema similar al que desarrollastes, estoy tratando de crear un script para subir algo mas de 50 cursos a mi moodle 1.9.5.

Podrias dejar un enlace de ejemplo o copiar parte de tu codigo para ayudarme.

Gracias
En respuesta a Charles Alcantara

Re: Carga masiva de usuarios e inscripcion masiva a los cursos

de Victorio Iglesias Gutiérrez -
Buenas tardes yo hice un script que sube en este caso ordenadores, pero el caso es que me interesaba añadir dicho ordenador como si fuese un usuario de moodle y darlo de alta en un curso así como crear un grupo con dicho ordenador, te mando el script, sería para subirlo desde un fichero csv.
tienss un par de funciones al final que lo que hacen es dar de alta usuarios creo que es lo que tu necesitas.
La funcion Main es la principal, otra cosa que me gustaría comentarte esd que el usuario creado es un profesor

Saludos
En respuesta a Victorio Iglesias Gutiérrez

Re: Carga masiva de usuarios e inscripcion masiva a los cursos

de Victorio Iglesias Gutiérrez -
Tb te dejo el script para subir alumnos y mas abajo te pondré los ficheros html de la vista
En respuesta a Victorio Iglesias Gutiérrez

Re: Carga masiva de usuarios e inscripcion masiva a los cursos

de Victorio Iglesias Gutiérrez -
Vista del importar schools
En respuesta a Victorio Iglesias Gutiérrez

Re: Carga masiva de usuarios e inscripcion masiva a los cursos

de Victorio Iglesias Gutiérrez -
vista para importar computers
En respuesta a jonathan z

Re: Carga masiva de usuarios e inscripcion masiva a los cursos

de Sergio Jimenez Bonilla -

Hola Jonathan Z

Soy nuevo en esto de moodle y necesito que me ayudes con los script para hacer ese trabajo ya que yo necesito hacer lo mismo en mi sitio.

Me serviria de mucho y dsiculpa la molestia

 

 

Gracias

Sergio

En respuesta a Sergio Jimenez Bonilla

Re: Carga masiva de usuarios e inscripcion masiva a los cursos

de Antonio Herrera Vega -
Buenas,

Como han indicado arriba se puede realizar directamente realizando consultas a la BBDD, pero eso tiene un problema y es que eso ejecuta muchísimas query, insert y updates y como alguna falle produce inconsistencias en la BBDD que puede llegar a provocar fallos irreparables (por ejemplo crear el curso sin contexto y cosas asi).

Yo os recomiendo que uséis un mecanismo que incorpora Moodle desde la versión 1.6 llamado IMS Enterprise (http://docs.moodle.org/es/IMS_Enterprise):
Este consiste en un sistema de archivos XML que se suben al servidor y se ejecutan cuando que se ejecuta en el cron, se pueden crear cursos, categorías, hacer altas y bajas de alumnos, etc.

Es bastante potente, nosotros creábamos los xml con una bbdd en Access y sustituyendo cadenas de texto por las etiquetas en XML.

Aunque se puedan crear también usuarios os aconsejo que creéis las aulas mediante IMS y luego las altas las realicéis mediante cargas de usuario con CSV.

Un saludo y espero haberle ayudado.
En respuesta a Antonio Herrera Vega

Re: Carga masiva de usuarios e inscripcion masiva a los cursos

de Álvaro Savirón -

Hola Antonio,

quiero hacer una carga masiva como indicas, he creado el XML con las especificaciones del IMS pero no sé en qué directorio hay que subirlo, ¿Lo podrías indicar por favor?

Otra cuestión, ¿por qué no recomiendas crear los usuarios con IMS? Esa era mi idea para hacerlo de la misma manera, sino se hace muy tedioso con los CSVs a mano y uno a uno.

Muchas gracias!

En respuesta a Antonio Herrera Vega

Re: Carga masiva de usuarios e inscripcion masiva a los cursos

de Javier González Díaz -

Buenas tardes Antonio.

Agradecería si por favor me pudieras orientar sobre un fallo.

Actualmente tengo instalada la versión 2.2.3 de Moodle y llevo un par de días con el fichero imsenterprise-enrol.xml liado y no funciona como debería.

Lo cargo mediante el cron y parece que funciona, no da errores, algo pasa por que lo ejecuta en 0 segundos lo que ya indica que no hace nada y efectivamente no hace nada.

Que puede suceder?

 

Gracias de antemano.

Adjunto una copia del fichero.

 

En respuesta a jonathan z

Re: Carga masiva de usuarios e inscripcion masiva a los cursos

de Valeria Alejandra -

Estimada Comunidad, necesito de su ayuda y experiencia para crear cursos masivamente o insertando registros directamente en la Base de Datos en Moodle 2.2.1 , o ¿existe algún plugin para realizar creación masiva de cursos?

Muchas gracias por su pronta respuesta.

¡Saludos!

En respuesta a Valeria Alejandra

Re: Carga masiva de usuarios e inscripcion masiva a los cursos

de Eber Angel Quispe Paco -

Si existe un plugin pero se ralentiza a la hora de crear cursos masivos creo que se llama uploadcourse, Lo que podrias es crear una clase donde tengas la funcion de conexion a base de datos, tambien la funcion de query y ejecutarlo como para que suba de manera mas rapida que el uploadcourse

En respuesta a Valeria Alejandra

Re: Carga masiva de usuarios e inscripcion masiva a los cursos

de Tulix Velásquez -
Si mi amigo, existe un tool para crear cursos masivamente en moodle 2.2.x aqui esta el link https://github.com/piersharding/moodle-tool_uploadcourse