Saltar al contenido principal

Insignias

Componente: Moodle Badges nativo (mdl_badge, mdl_badge_criteria, mdl_badge_issued) Alcance: 1 — Gamificación Estado: Creadas y validadas en local (curso piloto 3 "Expedición LEO") Fuente: requierments/Gamificación - Campus virtual.xlsx (sheet Insignia) — reemplaza la lista de la propuesta v2

Propósito

Logros certificados (OpenBadges) otorgados automáticamente al cumplir criterios nativos de Moodle. La spec vigente define 12 insignias: 4 globales (site badges) y 8 de curso (course badges). Respecto a la lista anterior: se retiran "Racha Conectada" y "Ruta Activada" (no implementables sin código), entran "Coleccionista" y "Perfil", y "Aliado Inteligente" pasa de global a course badge (sigue diferida).

Matriz de asignación — globales (site badges)

#InsigniaCondición (spec)Mecanismo de asignación
01Primer DespegueCompletar la actividad de bienvenidaLas site badges no soportan activity completion → course badge intermedia "Bienvenida" (activity completion sobre la actividad de bienvenida) + site badge con criterio "Insignias otorgadas" apuntando a ella
02Pionero del AprendizajePrimer curso completadoCriterio nativo "Completar un conjunto de cursos", agregación "cualquiera". Prerrequisito: course completion configurado en los cursos listados
03ColeccionistaMás de 4 insignias de cursoNo existe criterio nativo "N cualesquiera" → aproximación: "Insignias otorgadas" con un set fijo de 5 course badges y agregación "todas". La versión exacta exigiría un observer de \core\event\badge_awarded (diferida)
04PerfilFoto, ciudad, país, fecha de nacimiento, biografía y nombreCriterio nativo "Perfil completado" (picture, city, country, description, firstname) + campo de perfil personalizado fechanacimiento (datetime), aceptado por el mismo criterio

Matriz de asignación — de curso (curso 3)

#InsigniaCondición (spec)Mecanismo de asignación
05Explorador InicialPrimera actividad completadaActivity completion, "cualquiera", sobre todas las actividades con completion del curso
06Reto EntregadoEnviar actividad evaluableActivity completion, "cualquiera", sobre los assign y quiz
07Avance en Terreno≥50 % de todos los módulosActivity completion, "todas", sobre la mitad (techo) de las actividades completables de cada módulo, por orden de cmid
08Zona Superada100 % de un móduloActivity completion, "todas", sobre las actividades del Módulo 1 (patrón replicable: una copia por módulo)
09Impulso RenovadoCalificación aprobatoriaActivity completion sobre el quiz con gradepass y "requiere calificación aprobatoria" (la parte "tras una alerta" de la spec no es nativa; las alertas pertenecen al Alcance 2)
10Misión CumplidaCurso completadoCriterio "Finalización del curso". Prerrequisito: criterios de course completion definidos
11Aliado InteligentePrimer uso del tutor IANo nativo. Creada inactiva (status=0), sin criterios; la otorgará local_pccntr8203403_aitutor (Alcance 3) programáticamente
12Exploración Digital1 actividad representativa por móduloActivity completion, "todas", con 1 actividad por módulo (las mismas del course completion)

Encadenamiento site badge ← course badge

Limitación nativa: las site badges no soportan "Activity completion". Patrón sin código: course badge intermedia con activity completion + site badge con criterio "Insignias otorgadas". Así funcionan #01 (vía "Bienvenida") y #03 (vía el set de 5). La badge intermedia "Bienvenida" es visible en la colección del curso (aparece en el contador de la Card 2 del sidebar).

Prerrequisitos de configuración

  • mdl_course.enablecompletion = 1 y Activity completion en las actividades relevantes.
  • Course completion definido (para #02 y #10). En el curso 3: 1 actividad representativa por módulo, agregación ALL.
  • Actividad de bienvenida con completion automática (para #01).
  • Evaluable con gradepass y "requiere calificación aprobatoria" (para #09).
  • Campo de perfil personalizado fechanacimiento tipo datetime (para #04).

Imágenes

12 PNG en requierments/assets/insignias/ (NN_Nombre - global|curso.png), cargadas con badges_process_badge_image(). Las gemas están en requierments/assets/niveles/.

Validación (local, 2026-07-14)

Recorrido simulado con estudiante de prueba: los 12 criterios otorgan correctamente (encadenado, coleccionista, courseset, perfil con campo custom, nota aprobatoria) y "Aliado Inteligente" permanece inactiva sin otorgarse. Ver guía del sidebar.

Replicación entre cursos

Cada gestor configura su curso siguiendo la guía para gestores de cursos (finalización + creación de las 8 insignias + bloques). Alternativa técnica: duplicar las course badges vía UI (Course badges → Duplicate) y reapuntar los course_modules del curso destino; validar curso a curso.

Verificación

-- Auditoría general: insignias y cuántas veces se han otorgado
SELECT b.name, b.type, b.status, COUNT(bi.id) AS otorgadas
FROM mdl_badge b
LEFT JOIN mdl_badge_issued bi ON bi.badgeid = b.id
GROUP BY b.id ORDER BY b.type, b.name;
-- type=1: site badge, type=2: course badge · status=1 activa, status=0 inactiva