Disiscrizione a corso a edizioni

Questioni sulle funzionalità di frontend come teacher area, registro valutazioni, ecc? Scrivetele qui!
Post Reply
User avatar
kingbluz
FormaLms Expert
Posts: 176
Joined: Sat Dec 08, 2012 5:08 pm
Version: forma.lms 2.0
Location: Milano, Italy

Disiscrizione a corso a edizioni

Post by kingbluz » Thu Nov 29, 2018 12:50 pm

ciao a tutti,

ho avuto la geniale idea di disiscrivermi da un corso a edizioni, e ora non riesco più a iscrivermi :?

Il corso è elearning a edizioni con termine a settembre 2019 e iscrizioni aperte.
Esistono 3 edizioni: 2 sono passate e una terza ha inizio il 5/12. Le iscrizioni per quest'ultima sono aperte e vanno da ieri al 3/12.

Con l'utente amministratore mi sono iscritto all'edizione corrente (dal catalogo) e poi mi sono disiscritto utilizzando nel catalogo l'apposito comando (avevo dato la possibilità di auto-disiscriversi).
Ora non vede più il corso ne I miei corsi e nel catalogo mi dice che "non ci sono edizioni per questo corso".

Provando a reiscrivermi dal backend, in Corsi > Iscrizioni multiple come amministratore al corso in oggetto e poi a una delle edizioni mi dice "operazione completata con successo" ma poi non sono nell'elenco degli iscritti e continuo ad avere il corso senza edizioni nel catalogo e a non vederlo ne I miei corsi.

Se provo ad aggiungere il mio utente direttamente dall'edizione per cui sono aperte le iscrizioni (con Aggiungi) trovo il mio utente già selezionato, confermo e mi esce il messaggio di errore "Selezione vuota" e non mi fa iscrivere.

Come posso fare a rimediare?

Maurizio

alfa24
FormaLms Expert
Posts: 233
Joined: Fri Nov 24, 2017 8:45 am
Version: forma.lms 1.4.2

Re: Disiscrizione a corso a edizioni

Post by alfa24 » Thu Nov 29, 2018 1:50 pm

Chiaramente un bug
I'm Jasmines, the One

User avatar
canelli
FormaLms Guru
Posts: 469
Joined: Thu Nov 08, 2012 12:21 pm
Version: forma.lms 2.0
Contact:

Re: Disiscrizione a corso a edizioni

Post by canelli » Thu Nov 29, 2018 5:23 pm

per l'iscirizione ad un corso ad edizioni mi pare che l'utente è iscritto sia al corso che all'edizione .
Verifica se è così e se il tuo utente è stato disiscritto solo dall'edizione e non dal corso. Nel caso prova a cancellare l'iscrizione al corso

claudio
Cercate nel forum le riposte prima di chiedere. Check the forum before posting
---------------
Claudio Anelli
Joint Technologies - Sistemi avanzati per l'information technology

http://www.joint-tech.com
---------------

alfa24
FormaLms Expert
Posts: 233
Joined: Fri Nov 24, 2017 8:45 am
Version: forma.lms 1.4.2

Re: Disiscrizione a corso a edizioni

Post by alfa24 » Fri Nov 30, 2018 4:55 pm

Il problema è che nella lista corsi nel catalogo il link per l'autodisiscrizione non tiene (e non può tenere) conto delle eventuali edizioni a cui l'utente è iscritto, per cui NON passa il parametro relativo all'edizione.
Bisognerebbe ragionare sulla logica con cui è stata fatta questa cosa.

In teoria un utente potrebbe essere iscritto a più edizioni dello stesso corso.

Se diamo possibilità di disiscriversi vogliamo che l'utente si disiscriva a TUTTE le edizioni del corso?

In questo caso il fix è facile.

In /appLms/controllers/ElearningLmsController.php, prova a riscrivere così la funzione self_unsubscribe:

Code: Select all

public function self_unsubscribe() {
		$id_user = Docebo::user()->idst;//Get::req('id_user', DOTY_INT, Docebo::user()->idst);
		$id_course = Get::req('id_course', DOTY_INT, 0);
		$id_edition = Get::req('id_edition', DOTY_INT, 0);
		$id_date = Get::req('id_date', DOTY_INT, 0);

		$cmodel = new CourseAlms();
		$cinfo = $cmodel->getCourseModDetails($id_course);
		
		//index.php?r=elearning/show
		$back = Get::req('back', DOTY_STRING, "");
		if ($back != "") {
			$parts = explode('/', $back);
			$length = count($parts);
			if ($length > 0) {
				$parts[$length -1] = 'show';
				$back = implode('/', $parts);
			}
		}
		$jump_url = 'index.php?r='.($back ? $back : 'lms/elearning/show');

		if ($cinfo['auto_unsubscribe'] == 0) {
			//no self unsubscribe possible for this course
			Util::jump_to($jump_url.'&res=err_unsub');
		}

		$date_ok = TRUE;
		if ($cinfo['unsubscribe_date_limit'] != "" && $cinfo['unsubscribe_date_limit'] != "0000-00-00 00:00:00") {
			if ($cinfo['unsubscribe_date_limit'] < date("Y-m-d H:i:s")) {
				//self unsubscribing is no more allowed, go back to courselist page
				Util::jump_to($jump_url.'&res=err_unsub');
			}
		}

		$smodel = new SubscriptionAlms();
		$param = '';

		if ($cinfo['auto_unsubscribe'] == 1) {
			//moderated self unsubscribe
			$res = $smodel->setUnsubscribeRequest($id_user, $id_course, $id_edition, $id_date);
			$param .= $res ? '&res=ok_unsub' : '&res=err_unsub';
		}

		if ($cinfo['auto_unsubscribe'] == 2) {
			//directly unsubscribe user
			if($id_edition == 0 && $cinfo['course_edition'] == 1 )
				{
					require_once(_lms_.'/lib/lib.edition.php');
					$edition_man = new EditionManager();
					$user_edition = $edition_man->getUserEdition($id_user);
					$res = true;
					foreach($user_edition as $id_edition)
						{
								if (!$smodel->unsubscribeUser($id_user, $id_course, $id_edition, $id_date))
									{
										$res = false;
										break;
									}
						}
				}
			else

			$res = $smodel->unsubscribeUser($id_user, $id_course, $id_edition, $id_date);
			$param .= $res ? '&res=ok_unsub' : '&res=err_unsub';
		}

		Util::jump_to($jump_url);
	}
I'm Jasmines, the One

User avatar
canelli
FormaLms Guru
Posts: 469
Joined: Thu Nov 08, 2012 12:21 pm
Version: forma.lms 2.0
Contact:

Re: Disiscrizione a corso a edizioni

Post by canelli » Mon Dec 03, 2018 7:02 pm

Grazie per il fix .
In teoria un utente potrebbe essere iscritto a più edizioni dello stesso corso.
mi pare che questa possiiblità sia inibita, per lo meno a livello di interfaccia utente .
SE fosse così, vuol dire che un utnete è sempre iscritto ad una sola edizione e cercare di disiscriverlo da tutte le edizioni (cioè dall'unica) è ragionevole.

Altrimenti alal disiscrizione occorre chiedere all'utente , magari solo nel caso in cui è iscirtto a più edizioni, da quale vuole disiscriversi.

La disiscrizione dal corso deve avvenire solamente quando l'utente è discritto da tutte le edizioni
Cercate nel forum le riposte prima di chiedere. Check the forum before posting
---------------
Claudio Anelli
Joint Technologies - Sistemi avanzati per l'information technology

http://www.joint-tech.com
---------------

Post Reply