Desarrollolocal_deltamodules
Equipos
Equipos de seguimiento (líder e integrantes) con el rol "Líder de equipo" asignado en contexto de usuario, la página team.php y la tarjeta del Área personal.
Los equipos permiten que un líder siga el avance solo del personal bajo su responsabilidad. Esta funcionalidad es la que el proyecto preveía para el plugin local_team_management, que quedó vacío: vive en local_deltamodules.
Modelo
| Elemento | Detalle |
|---|---|
| Equipo | Fila en local_deltamodules_team: nombre, líder (leaderid), fechas. |
| Integrantes | Filas en local_deltamodules_teammem; el índice único sobre userid hace que una persona pertenezca a un solo equipo. |
| Candado de acceso | Rol delta_lider_equipo ("Líder de equipo (seguimiento)"), asignado al líder en el contexto de usuario de cada integrante. Moodle impone así el alcance. |
team::roleid() crea el rol si no existe, con nivel de contexto CONTEXT_USER y las capacidades moodle/user:viewdetails y moodle/user:viewuseractivitiesreport. align-access-profiles-to-manual.php lo invoca en cada despliegue.
API de team
| Método | Qué hace |
|---|---|
all() | Todos los equipos con nombre del líder y cantidad de integrantes. |
led_by($userid), is_leader($userid) | Equipos que lidera una persona. |
members($teamid) | Integrantes activos. |
membership() | userid => nombre del equipo actual. |
save($teamid, $name, $leaderid, $memberids) | Crea o actualiza. Solo personal activo (no super administradores, invitados, postulantes, suspendidos ni borrados). Si un integrante estaba en otro equipo, lo mueve. Sincroniza el rol de todos los líderes afectados. |
delete($teamid) | Elimina el equipo y sincroniza el rol del líder. |
sync_leader($leaderid) | Deja el rol del líder exactamente sobre los integrantes de sus equipos (asigna los que faltan, quita los que sobran). |
progress($userid) | Avance de una persona en cada curso visible: actividades con seguimiento completadas (cuenta lo bloqueado y excluye lo oculto y el certificado), repasos aprobados, promedio de notas, si tiene certificado y último acceso. Ordena primero los módulos M01…M12. |
overall($rows) | Porcentaje global. |
Pantallas
| Lugar | Quién | Qué ve |
|---|---|---|
team.php (barra superior "Equipos") | local/deltamodules:manageteams (por perfil, solo Talento Humano) | Todos los equipos como tarjetas; crear, editar, mover personas y eliminar. |
team.php (barra superior "Mi equipo") | Líder de al menos un equipo | Solo su equipo, en lectura. |
Área personal (my-index) | Líder | Tarjeta "Lideras el equipo…" con enlace a Mi equipo, insertada por hook_callbacks::my_team_card(). |
Los integrantes que no lideran un equipo no ven nada de equipos, ni entrando por la dirección.
Relación con otros procesos
people::remove_staff()saca a la persona de su equipo y sincroniza al líder; no se puede quitar del personal ni eliminar a quien lidera un equipo.- La importación de Excel crea o actualiza los equipos
Grupo Xcon la Contadora-Líder del grupo como líder. db/upgrade.php(versión2026092403) migró los equipos que existían como asignaciones del rol de líder a equipos con nombreEquipo de <nombre del líder>.align-access-profiles-to-manual.phpretiralocal/deltamodules:manageteamsadelta_gerentes,delta_sociosydelta_a1_operaciones: armar equipos es de Talento Humano.