NO a la autoinscripción

NO a la autoinscripción

de Magda Garcia Vinuesa -
Número de respuestas: 22
¿Cómo puedo evitar que los alumnos se autoinscriban en un curso?. La verdad, es que no encuantro la manera, ya que estando los cursos publicados (y evidentemente tienen que estar) una vez pulsan en ellos, el sistema pregunta si quieres matricularte en el mismo, aunque luego se lo impidas por ejemplo mediante contraseña. A mi no me interesa que se puedan inscribir...
Promedio de valoraciones: -
En respuesta a Magda Garcia Vinuesa

Re: NO a la autoinscripción

de Isaac Mas -
Es muy senzillo, pones una palabra clave, (si no la saben, no se pueden inscribir.
En respuesta a Isaac Mas

Re: NO a la autoinscripción

de Magda Garcia Vinuesa -
Ya. ¿Alguna otra forma más "administrativa"?: lista de alumnos o grupos que pueden acceder a un curso y a otro no. Me parece mucho más práctico.
En respuesta a Magda Garcia Vinuesa

Re: NO a la autoinscripción

de Eloy Lafuente (stronk7) -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodle HQ Imagen de Moodlers de gran ayuda Imagen de Testers
Hola Magda,

en "Administración/Usuarios/Matriculaciones" tienes distintas formas con las que puedes controlar la matriculación de los alumnos en los cursos.

Desde la utilización de un fichero externo hasta la conexión con otras bases de datos para controlar la matriculación.

Supongo que alguna de ellas podría servirte...

Ciao sonrisa
En respuesta a Eloy Lafuente (stronk7)

Re: NO a la autoinscripción

de Magda Garcia Vinuesa -
Creo que no hablamos de lo mismo. Yo matriculo a los alumnos mediante lista externa, pero una vez matriculados (no sé si es la palabra correcta) pueden inscribirse en el curso que quieran, simplemente contestando una pregunta. Y eso no interesa, aunque luego el curso tenga clave, o fecha de inicio o lo que sea. Prefiero poder elegir a qué cursos pueden ingresar y a cuales no.

Quizás para la versión 1.5...

Gracias.
En respuesta a Magda Garcia Vinuesa

Re: NO a la autoinscripción

de Eloy Lafuente (stronk7) -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodle HQ Imagen de Moodlers de gran ayuda Imagen de Testers
Jeje, creo que tenemos un pequeño problema de terminología. Veamos, existen dos procesos diferenciados en Moodle:
  • La autenticación: Podríamos llamarlo el "alta" del alumno en un servidor Moodle. Consiste en que, de diversas formas, un usuario consigue el acceso al servidor Moodle mediante un login y una contraseña. Puede ser que el servidor permita que los alumnos se den de alta ellos mismos, o que se haga mediante un fichero cargado (parece ser tu caso) o por LDAP, o por bases de datos externas... En cualquier caso, con esto, el alumno simplemente está "registrado" en Moodle, pero ello no le dá acceso a ningún curso!
  • La matriculación: Que es el proceso por el cual se controla qué usuarios registrados pueden entrar en cuáles cursos. Se le puede llamar también "inscripcción" o como queramos, pero este proceso ya implica el establecimiento que cursos por alumno. Esta relación (qué usuarios registrados en el punto anterior entran a cada uno de los cursos disponibles en el servidor Moodle) es la que se puede TAMBIEN definir de diferentes formas. Mediante contraseña del curso (que es la que no te gusta) o utilizando otro dichero externo u otra base de datos externa en la que tendrás todas las "parejas" (alumno-curso) permitidas. Este proceso es el que se define desde la pantalla que te comentaba en el mensaje anterior y NO tiene nada que ver con el proceso de autentificación, que es independiente del curso.

¿Ha aclarado esto algo los dos procesos diferentes que existen?

Ciao sonrisa
En respuesta a Eloy Lafuente (stronk7)

Re: NO a la autoinscripción

de Magda Garcia Vinuesa -
Mejor, algo mejor. Pero en el caso de que no "inscriba" a nadie y el alumno intente entrar en un curso, moodle le pregunta si quiere "inscribirse" en el mismo, y esta es la pregunta que me gustaría evitar: simplemente que no tenga la posibilidad, ya que no lo tengo matriculado en él. Lo he probado sin archivos ni bases de datos externas y siempre permite entrar contestando esa simple pregunta (aunque luego, dentro del curso no pueda hacer nada). Si hubiera alguna forma de impedirle "el intento", pues mucho mejor. Y no me sirve (en principio) el tener que ocultar los cursos (dia sí, dia no).

Gracias.
En respuesta a Magda Garcia Vinuesa

Re: NO a la autoinscripción

de John Mauricio García -

Hola, a ver si les entiendo un poco y depronto consigo algo de ayuda con un problema similar que tengo.

Magda quiere evitar que sus alumnos se autoiscriban en los cursos, yo tengo muy claro que eso se logra ocultándolos. Sin embargo tengo un problema bien curioso y es que cuando creé 14 de mis cursos olvidé crearlos ocultos y los oculté como dos o tres días despúes de haberlos creado, para ese entonces algunas personas ya se habían inscrito, al ocultar un curso el sistema le dice a esa persona que ya no pertene al curso, resulta que yo quiero que esa persona acceda al curso pero que otros no!!! y entonces tengo que hacerlo de nuevo visible? no lo he podido solucionar y no he encontrado ninguna tabla ni campo en la base de datos que me diga quienes se autoinscribieron y quienes no!!, estoy siendo claro en mi pregunta? espero que me puedan ayudar.

Creo que con los siguientes pasos aclaro un poco más mi pregunta:

1.  Dos usuarios se autoinscriben en un curso
2. Uno de ellos (llamémoslo A) debe verlo y el otro no (Llamémoslo B).
3. Desmatriculo a B
4. Oculto el curso para evitar que B pueda volver a matricularse
5. A ya no puede acceder al curso... el sistema le dice que no pertenece al grupo...

¿Como puedo solucionar esto?

¿En que tabla y campo de la base de datos se registra cuando alguien se autoinscribe?

muchas gracias a quien pueda ayudarme.

En respuesta a John Mauricio García

Re: NO a la autoinscripción

de José Santiago -

El tema de que no se puedan automatricular es importante ya que parece que el sitio de formación (y el moodle mismo)  es poco serio..., pero quizá se pueda solucionar facilmente.

Los botones de automatriculación se muestran en la pagina:

enrol.php

que está en: moodle/course/enrol.php

Lo unico que habría que hacer es sustituir la página enrol.php por otra con el mismo nombre donde no se muestren esos botones y que simplemente salga un texto que diga que no se puede matricular directamente en ese curso.

Alguien sabe modifcar la página enrol.php ?

Saludos.

Angel

El codigo con botones de autoinscripción es:

<?php // $Id: enrol.php,v 1.32.2.1 2005/10/31 20:31:57 patrickslee Exp $
      // Depending on the current enrolment method, this page
      // presents the user with whatever they need to know when
      // they try to enrol in a course.

    require_once("../config.php");
    require_once("lib.php");
    require_once("$CFG->dirroot/enrol/$CFG->enrol/enrol.php");

    require_variable($id);

    require_login();

    if (! $course = get_record("course", "id", $id) ) {
        error("That's an invalid course id");
    }

    if (! $site = get_site()) {
        error("Could not find a site!");
    }

/// Check if the course is a meta course
    if ($course->metacourse) {
        print_header_simple();
        notice(get_string('coursenotaccessible'), $CFG->wwwroot);
    }

    check_for_restricted_user($USER->username);

    $enrol = new enrolment_plugin();

/// Refreshing enrolment data in the USER session
    $enrol->get_student_courses($USER);
    $enrol->get_teacher_courses($USER);


/// Double check just in case they are actually enrolled already
/// This might occur if they were enrolled during this session

    if ( !empty($USER->student[$course->id]) or !empty($USER->teacher[$course->id]) ) {

        if ($SESSION->wantsurl) {
            $destination = $SESSION->wantsurl;
            unset($SESSION->wantsurl);
        } else {
            $destination = "$CFG->wwwroot/course/view.php?id=$course->id";
        }

        redirect($destination);
    }
   
/// Users can't enroll to site course
    if (!$course->category) {
        print_header_simple();
        notice(get_string('enrollfirst'), $CFG->wwwroot);
    }

/// Double check just in case they are enrolled to start in the future

    if ($student = get_record('user_students', 'userid', $USER->id, 'course', $course->id)) {
        if ($course->enrolperiod and $student->timestart and ($student->timestart >= time())) {
            $message = get_string('enrolmentnotyet', '', userdate($student->timestart));
            print_header();
            notice($message, $CFG->wwwroot);
        }
    }

/// Check the submitted enrollment key if there is one

    if ($form = data_submitted()) {
      //User is not enrolled in the course, wants to access course content
      //as a guest, and course setting allow unlimited guest access
      //Code cribbed from course/loginas.php
      if (isset($loginasguest) && ($course->guest==1)) {
        $realuser = $USER->id;
        $realname = fullname($USER, true);
        $USER = guest_user();
        $USER->loggedin = true;
        $USER->site = $CFG->wwwroot;
        $USER->realuser = $realuser;
        $USER->sessionIP = md5(getremoteaddr());   // Store the current IP in the session
        if (isset($SESSION->currentgroup)) {    // Remember current cache setting for later
            $SESSION->oldcurrentgroup = $SESSION->currentgroup;
            unset($SESSION->currentgroup);
        }
        $guest_name = fullname($USER, true);
        add_to_log($course->id, "course", "loginas", "../user/view.php?id=$course->id&$USER->id$", "$realname -> $guest_name");
        if ($SESSION->wantsurl) {
            $destination = $SESSION->wantsurl;
            unset($SESSION->wantsurl);
        } else {
            $destination = "$CFG->wwwroot/course/view.php?id=$course->id";
        }
        redirect($destination);
      }
      $enrol->check_entry($form, $course);
    }

    $enrol->print_entry($course);

/// Easy!

?>

En respuesta a Magda Garcia Vinuesa

Re: NO a la autoinscripción

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda
Si utilizas sistemas de matriculación externas como base de datos o LDAP y desactivas la matriculación interna (posible desmarcando la casilla correspondiente en la pantalla de configuración de la matriculación), entonces los usuarios no reciben la pregunta de si quieren inscribirse o no, y no tiene opción de matricularse en ningún curso que no esté especificado en el sistema de matriculación externa.

Al menos mi versión 1.5.4 de Moodle funciona así.

Saludos. Iñaki.
En respuesta a Iñaki Arenaza

Re: NO a la autoinscripción

de José Santiago -
Pues tienes razón, no sale la pantalla con la opción de matricularse.

Muchas Gracias.

Una pregunta: ¿Se pueden hacer despues las matriculaciones de forma manual o es necesario subir los alumnos por medio de la base de datos?  (no se como controlar las bases de datos y mi proyecto es pequeño)

De todas formas muchas gracias por tu respuesta. sonrisa
En respuesta a José Santiago

Re: NO a la autoinscripción

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda
Si desactivas la matriculación interna, las matriculaciones que hagas de forma manual se pierden cuando el usuario inicia la sesión en Moodle. Ya que en ese momento se consulta en el sistema externo -base de datos o LDAP- y se le matricula en los cursos allí indicados y se le desmatricula del resto.

Así que el efecto neto es que, aunque Moodle no te impide como profesor o administrador matricular a alguien de forma manual, esa matriculación sólo dura hasta que el alumno inicie la sesión, con lo cual no sirve para nada.

Saludos. Iñaki.
En respuesta a Magda Garcia Vinuesa

Re: NO a la autoinscripción

de Smoothle . -

Veamos, a mi me intersa algo parecido que paso a detallar:

Para que un alumno se apunte como usuario me parece bien que lo haga automáticamente gracias a la opción de "Matriculación por email", pero lo que yo quiero es que le llegue un email diciendo "Se ha rebido su solicitud de matriculación. Se ha avisado al administrador y éste activará su cuenta de usuario próximamente".

Es decir, que quiero que el usuario mande sus datos, reciba un email confirmandole que todo fué bien pero que la DECISIÓN FINAL de si se apunta o no como alumno sea del administrador.

El Administrador recibirá un email por cada persona que se quiera unir al portal y dicho Administrador tendría que ir a Administración-> Usuarios-> Edición de Usuarios para confirmar MANUALMENTE su inscripción.

De esta forma te evitas inscripciones de gente no deseada.

La forma "fácil/cutre" de hacer esto sería buscando por el código del Moodle donde está la parte que redacta el emai, cambiar el texto del email y quitar de allí el enlace que lleva a la confirmación. Lo que pasa es que me parece MUY raro que esto no esté ya implementado y que se pueda hacer con alguna opción que no he alcanzado a encontrar.

Repito que esto NO es para darse de alta en cursos, me refiero a que los usuarios se apunten globalmente al portal de Moodle.

Muchas gracias por leer esto y espero que te animes a responder ;)

En respuesta a Magda Garcia Vinuesa

Re: NO a la autoinscripción

de Ramón Ruiz -
Vamos a ver, yo también he llegado en un momento dado al mismo problema:

    - No quiero que un alumno 'cualquiera', se inscriba en el curso que quiera, y
    que además no tenga la posibilidad de hacerlo.

    Lo he conseguido de la siguiente forma

            1 He creado un curso llamado Curso de Matriculaciones.
            2 He matriculado a los alumnos que yo quiero a este curso de Matriculaciones, por ejemplo, importandolos de un txt.

            3 He dejado el 'Curso de matriculaciones' como 'este curso no está disponible a los alumnos' en la configuracion de este curso.

             4 He creado un curso 'Curso de contenidos' donde he puesto los contenidos que me interesan que vean.

             5 he configurado el 'Curso de contenidos' como metacurso.

             6 En el 'Curso de contenidos', en la opción de 'Estudiantes' de la administración del curso, me da la opcion de matricular los estudiantes de cualquier curso que no sea metacurso, selecciono y matriculo al curso de 'Curso de Matriculaciones'.

             Voilá.


             Espero sea de ayuda.

En respuesta a Ramón Ruiz

Re: NO a la autoinscripción

de Dariem Garcés Urquiza -
Bueno yo llevo tiempo pensando en este problema pues a mi también me interesa la No autoinscripción y tengo una idea pero modificando código. Me explico:
En la tabla prefix_course agregar un campo que se llame por ejemplo free u open algo de eso que que sea del tipo tinyint y tenga por defecto 1.
y en el /course/edit.html agregar una pregunta que diga algo como este curso es libre?, claro tendría que incializarce $form->free = 1, en otras palabras poner por defecto que es libre. Y dentro de enrol.php hacer una verificación de si el curso está abierto o no, verificando el valor en la db, si el valor es cero pues impedírselo redireccionando a una página de advertencia o algo por el estilo.

Co se habrán dado cuenta, aún no he implementado etsa idea, espero hacerlo dentro de dos semanas, o mejor aún espero que alguien haga esto y lo comparta.

Saludos
Dariem
En respuesta a Magda Garcia Vinuesa

Re: NO a la autoinscripción

de Luis Diego Araya -

Una solución que encontré con un compañero de trabajo, Jairo,
fue modificar el archivo enrol.php, ubicado en la dirección moodle\enrol\manual.

Básicamente es modificar las lineas de la 73 a 78, donde se comenta la instrucción :

notice_yesno(get_string('enrolmentconfirmation'), "enrol.php?id=$course->id&amp;confirmation=1",

"enrol.php?id=$course->id&amp;cancel=1");

Que es el que permite la automatriculación, y agregando  el código:

error("No se puede matricular en este curso");


Para que muestre un mensaje, esta leyenda se puede personalizar.

En respuesta a Luis Diego Araya

Re: NO a la autoinscripción

de Manuel Tello Guerrero -

Hola Luis Diego:

 

Puedes mostrar con detalle como quedarían las lineas del 73 al 78 para evitar la automatriculación.

 

Gracias.

En respuesta a Manuel Tello Guerrero

Re: NO a la autoinscripción

de Wenceslao Fernández -

Hola sonrisa

Este hilo es del año ¡¡¡2004!!! El que un curso permita o no la autoinscripción es ya (y desde hace mucho tiempo) una opción que se puede configurar en el curso. No hay que hacer ningún tipo de modificación.

Salu2

En respuesta a Wenceslao Fernández

Re: NO a la autoinscripción

de Manuel Tello Guerrero -

Hola W:

 

Por ahí seguí alguna de tus recomendaciones la configuar en los ajustes de portada el que se muestren solamente los cursos en que los alumnos enten inscritos, sin embargo, lo que quisiera que de manera definitiva no aparezca la opción de autoinscripción.

 

La alternativa de Luis Diego se me hizo muy interesante y como soy nuevo en esto, quisiera que de manera más precisa me ayudaran en mencionar la configuración del archivo del archivo enrol.php.

 

Me podrías tu ayudar?

En respuesta a Manuel Tello Guerrero

Re: NO a la autoinscripción

de Wenceslao Fernández -

Hola sonrisa

En Moodle 1.9.x

Administración > Usuarios > Atentificación > Gestionar la autentificación

Registrarse a sí mismo -> Deshabilitar

En Moodle 2.0.x (y en las últimas versiones de la serie 1.9.x) ese ajuste viene deshabilitado por defecto, se activa/desactiva en:

Administración > Extensiones > Identificación > Gestionar la Identificación

Registrarse a sí mismo -> Deshabilitar

Salu2

En respuesta a Wenceslao Fernández

Re: NO a la autoinscripción

de Luis Diego Araya -

Esta modificación la hice porque si el profesor que crea el curso lo deja abierto, el estudiante siempre puede matricularse, entonces como administrador esa fue la única opción que me sirvió. Este es el código donde hice la modificación

 

 if ($course->password == '') {   // no password, so enrol

        if (has_capability('moodle/legacy:guest', $context, $USER->id, false)) {
            add_to_log($course->id, 'course', 'guest', 'view.php?id='.$course->id, getremoteaddr());

        } else if (empty($_GET['confirm']) && empty($_GET['cancel'])) {

            print_header($strloginto, $course->fullname, $navigation);
            echo '<br />';

            error("Lo sentimos, usted no est&aacute; matriculado en este curso");

            //notice_yesno(get_string('enrolmentconfirmation'), "enrol.php?id=$course->id&amp;cancel=1",
                                                           //   "enrol.php?id=$course->id&amp;cancel=1");
            print_footer();
            exit;