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; } }
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); } }
// 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'));