Пример #1
0
function blended_insert_teams($teams, $course, $blended = null, $leader = null, grade_item $item = null, $original_itemid = null, $id = null, $currentuserid = null, $groupingid)
{
    global $DB;
    $insertedteam = new object();
    $insertedteams = array();
    $array_return = array();
    $lista_id = array();
    foreach ($teams as $team) {
        // $insertedteam=blended_insert_team($team, null, $insertedteam);
        // $insertedteams[$index]= $insertedteam;
        $memberids = $team->members;
        $members = array();
        if ($memberids === null) {
            $memberids = array();
        }
        foreach ($memberids as $memberid) {
            //lista de dni sin la letra
            $user = $DB->get_record('user', array('id' => $memberid));
            $members[] = $user;
            $lista_id[] = blended_clean_idnumber($user->id);
        }
        /*
         * Actualizo los grupos actualizando el nombre del grupo y volviendo a introducir
         * los miembros comprobando que el usuario introducido existe
         */
        $contador_miembros = 0;
        $contador_miembros_id = 0;
        $miembros_introducir_validos = array();
        foreach ($members as $member) {
            if (in_array($member->id, $lista_id)) {
                //compruebo para no introducir ningun DNI que no exista en la base de datos
                $miembros_introducir_validos[] = $member;
            }
        }
        //Si existe el id del agrupamiento:
        if ($groupingid !== null) {
            $groupid = blended_add_new_group($course->id, $team->name, $miembros_introducir_validos, $groupingid);
            // 							blended_update_assignment_and_gradebook($itemid, $original_itemid, $miembros_introducir_validos, $blended,
            // 							$id, $currentuserid);
            //                   if($contador_miembros==count($members)){//Si existe un grupo vac�o o con todos los dni no v�lidos se borrar�
            //                        groups_delete_group($groupid);
            //                    }
        } else {
            if ($groupingid === null) {
                //Si no existe el id del agrupamiento
                $groupingid = blended_get_groupingid($item);
                blended_add_new_group($course->id, $team->name, $miembros_introducir_validos, $groupingid);
            }
        }
        //                $ys=$DB->get_records('groupings_groups',array('groupingid'=>$groupingid));
        //                $m=array();
        //                foreach($ys as $u=>$y){
        //                    $m[$u]=$DB->get_records('groups_members',array('groupid'=>$y->groupid));
        //                }
        //                $mbss=array();
        //                foreach($m as $fs){
        //                    if(!empty($fs)){
        //                        foreach($fs as $t=>$f){
        //                            $mb=$DB->get_record('user',array('id'=>$f->userid));
        //                            $mbss[$t]=blended_clean_idnumber($mb->idnumber);
        //                        }
        //                    }
        //                }
        // Si hay ERROR al insertar los miembros se borra el equipo insertado
        if (!empty($return)) {
            // Array con los códigos de error ocurridos
            $array_return[$insertedteam->name] = $return;
            // Deprecated: Se borra el equipo insertado
            // TODO: comprobar que no es problematico dejar el equipo con algún usuario sin insertar
            //  solo borra si el equipo a resultado vacío.
            if (count($return) == 0) {
                blended_delete_all($insertedteam->id);
                unset($insertedteams[$index]);
            }
        }
    }
    // Si hubo ERROR
    if (!empty($array_return)) {
        return $array_return;
    }
}
Пример #2
0
function blended_crear_nuevo_agrupamiento_por_alumno($course, $name_team, $mem, $id_assignment, $blended, $currentuserid)
{
    global $DB;
    //Pongo el nombre al agrupamiento el mismo que posee la actividad
    $modulos = get_course_mods($course->id);
    foreach ($modulos as $modulo) {
        if ($modulo->id == $id_assignment) {
            $curse_modulos = get_coursemodule_from_instance($modulo->modname, $modulo->instance);
            $name = $curse_modulos->name;
        }
    }
    //Creaci�n del agrupamiento
    $data = new object();
    $data->name = $name;
    $data->courseid = $course->id;
    $data->description_editor['text'] = ' ';
    $data->description_editor['format'] = 1;
    $groupingid = groups_create_grouping($data);
    $groupid = blended_add_new_group($course->id, $name_team, $mem, $groupingid);
    $DB->insert_record_raw('blended_assign_grouping', array('id_assign' => $id_assignment, 'id_grouping' => $groupingid));
    //Actualizo las tablas de blended dependiendo del tipo de creación de equipos:
    if ($blended->teammethod == 1) {
        blended_update_teams_by_groups($course->id, $id_assignment, 0, $groupid);
    } else {
        blended_update_teams_by_groups($course->id, $id_assignment, 1, $groupid, $currentuserid);
    }
}
Пример #3
0
    // end if user is leader
} else {
    if ($action == 'newusergroup' && $blended->teammethod != TEAMS_BY_TEACHERS) {
        $name_team = optional_param('name_team', '', PARAM_ALPHANUMEXT);
        //nombre equipo
        $groupingid = blended_get_groupingid($item);
        if (!$groupingid) {
            // create a default grouping
            $itemname = blended_get_item_name($item);
            $grouping_name = "{$itemname} Teams";
            $groupingid = blended_create_unique_grouping($grouping_name, $course);
            $grouping = groups_get_grouping($groupingid);
            blended_assign_grouping($item, $grouping, $USER->id, null);
        }
        $members = array($USER->id => $USER);
        $teamid = blended_add_new_group($course->id, $name_team, $members, $groupingid);
        blended_set_team_leaderid($teamid, $USER->id);
        $a = new stdClass();
        $a->username = fullname($USER);
        $a->teamname = $name_team;
        echo $OUTPUT->notification(get_string('userenrolledtoteam', 'blended', $a));
    } else {
        if ($action == 'signup' && $blended->teammethod != TEAMS_BY_TEACHERS) {
            //Comprobar que:
            //-no esta en otro equipo
            //- que el tamaño no supere el tamaño maximo propuesto por el profesor
            $id_team = required_param('team', PARAM_INT);
            //id equipo
            $members = blended_get_team_members($id_team, $blended);
            if (count($members) >= $blended->nummembers || $grouping->maxmembers !== null && count($members) >= $grouping->maxmembers) {
                echo $OUTPUT->notification(get_string('teamisfull', 'blended'));