{% extends 'base.html.twig' %}
{% trans_default_domain 'courses' %}
{% if tipo == 'solicitud' %}
{% set nombre = actividad.curso.nombre %}
{% set descripcion = actividad.curso.descripcion %}
{% set modalidad = actividad.modalidad.nombre %}
{% set horas = actividad.horasAulaVirtual|number_format + actividad.horasPresenciales|number_format + actividad.horasTeleformacion|number_format %}
{% set entidad = actividad.expediente.expedientePerteneAEntidad ? actividad.expediente.expedientePerteneAEntidad.entidadColaboradora : null %}
{% set municipios = '' %}
{% set centros = '' %}
{% set web = '' %}
{% set email = '' %}
{% set telefono = '' %}
{% set primerCentro = null %}
{% set fechaInicio = null %}
{% set fechaFinal = null %}
{% set primeraGrupoDeSolicitud = null %}
{% set sesiones = [] %}
{% else %}
{# Es un grupo #}
{% set nombre = actividad.solicitudAccionFormativa.curso.nombre %}
{% set descripcion = actividad.solicitudAccionFormativa.curso.descripcion %}
{% set modalidad = actividad.solicitudAccionFormativa.modalidad.nombre %}
{% set horas = actividad.horasAulaVirtual|number_format + actividad.horasPresenciales|number_format + actividad.horasTeleformacion|number_format %}
{% set entidad = actividad.solicitudAccionFormativa.expediente.expedientePerteneAEntidad.entidadColaboradora %}
{% set municipios = actividad.centroFormacionAcogeGrupos|map(cfag => cfag.centroFormacion.municipio)|join(', ') %}
{% set centros = actividad.centroFormacionAcogeGrupos|map(cfag => cfag.centroFormacion.getNombre)|join(', ') %}
{% set web = actividad.centroFormacionAcogeGrupos|map(cfag => cfag.centroFormacion.getWeb)|join(', ') %}
{% set email = actividad.centroFormacionAcogeGrupos|map(cfag => cfag.centroFormacion.getEmail)|join(', ') %}
{% set telefono = actividad.centroFormacionAcogeGrupos|map(cfag => cfag.centroFormacion.getTelefono1)|join(', ') %}
{% set primerCentro = actividad.centroFormacionAcogeGrupos|first %}
{% set fechaInicio = actividad.fechaInicio %}
{% set fechaFinal = actividad.fechaFinal %}
{% set primeraGrupoDeSolicitud = actividad %}
{% set sesiones = actividad.grupoSesiones %}
{% endif %}
{% set latitud = primerCentro is not empty ? primerCentro.centroFormacion.getLatitud : null %}
{% set longitud = primerCentro is not empty ? primerCentro.centroFormacion.getLongitud : null %}
{% block stylesheets %}
{{ parent() }}
<!-- FullCalendar CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/fullcalendar@5.11.3/main.min.css">
<link rel="stylesheet" href="{{ asset('css/funcional/fullcalendar.css') }}">
{% endblock %}
{% block javascripts %}
{{ parent() }}
<!-- FullCalendar JS -->
<script src="https://cdn.jsdelivr.net/npm/fullcalendar@5.11.3/main.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/fullcalendar@5.11.3/locales/es.min.js"></script>
<!-- Font Awesome para iconos -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
<script>
// Añadir clase logged-in al body si el usuario está logueado
document.addEventListener('DOMContentLoaded', function () {
{% if app.user %}
document.body.classList.add('logged-in');
{% endif %}
});
</script>
{% endblock %}
{% block title %}
{{ nombre[app.request.locale] | default(nombre | first) }}
{% endblock %}
{% block header_title %}
{{ parent() }} {{ 'header.title.course'|trans({}, 'courses') }}
{% endblock %}
{% block header_miga_pan %}
{% set referer = app.request.headers.get('referer') %}
{{ parent() }} /
{% if app.request.headers.get('referer') ends with '/favoritos' %}
<a href="{{ app.request.headers.get('referer') }}">{{ 'breadcrumbs.favorites'|trans }}</a>
{% elseif app.request.headers.get('referer') ends with '/courses/my' %}
<a href="{{ app.request.headers.get('referer') }}">{{ 'breadcrumbs.my_courses'|trans }}</a>
{% elseif app.request.headers.get('referer') matches '#/participante/centers/#' %}
<a href="{{ app.request.headers.get('referer') }}">{{ 'breadcrumbs.centers'|trans }}</a>
{% else %}
<a href="{{ path('course_list') }}">{{ 'breadcrumbs.courses'|trans }}</a>
{% endif %}
/ {{ nombre[app.request.locale] | default(nombre | first) }}
{% endblock %}
{% block content %}
<section id="sidebar">
<div id="calendar-wrapper">
{% set eventosCalendario = [] %}
{% if sesiones is not empty %}
{% set eventosCalendario = sesiones
|map(gs => {
'title': '',
'start': gs.dataHoraInici ? gs.dataHoraInici|date('Y-m-d') : null,
'end': gs.dataHoraFinal ? gs.dataHoraFinal|date('Y-m-d') : null
})
|filter(e => e.start is not null) %}
{% endif %}
{% include 'funcionality/fullcalendar.html.twig' with { positionOnFirstEvent: true, events: eventosCalendario|json_encode , name: 'full_calendar' } %}
</div>
<div class="resume">
<table>
<tr class="estat">
<td>CI</td>
<td>{{ 'label.course_status'|trans({}, 'courses') }}
<br><strong>
{% if actividad.estado is defined %}
{% if actividad.estado == 'interes' %}
{{ actividad.estadoLabel }}
{% elseif actividad.estado == 'en_curso' %}
{{ actividad.estadoLabel }}
{% elseif actividad.estado == 'finalizado' %}
{{ actividad.estadoLabel }}
{% else %}
{{ actividad.estadoLabel }}
{% endif %}
{% else %}
{{ '' }}
{% endif %}
</strong></td>
</tr>
<tr class="modalitat">
<td>M</td>
<td>{{ 'label.modality'|trans({}, 'courses') }}
<br><strong> {{ modalidad[app.request.locale] | default(modalidad | first) }}</strong></td>
</tr>
<tr class="horas">
<td>H</td>
<td>{{ 'label.training_hours'|trans({}, 'courses') }}<br><strong> {{ horas }}</strong></td>
</tr>
<tr class="data">
<td>D</td>
<td>{{ 'label.start_end_date'|trans({}, 'courses') }}<br>
{% if tipo == 'grupo' %}
<strong> {{ fechaInicio is not empty ? fechaInicio|date('d/m/Y') : '--' }}
- {{ fechaFinal is not empty ? fechaFinal|date('d/m/Y') : '--' }}
</strong>
{% else %}
<strong>{{ 'course.fecha_pendiente'|trans({}, 'courses')|default('Fecha pendiente de asignación') }}</strong>
{% endif %}
</td>
</tr>
{% set esFavorito = app.user and app.user.entidadColaboradorasFavorito.contains(entidad) %}
<tr class="entitat{% if esFavorito %} favorite{% endif %}">
<td class="favorite-toggle" data-type="entidad" data-id="{{ entidad.id }}" title="{{ esFavorito ? 'Quitar de favoritos' : 'Añadir a favoritos' }}">{{ esFavorito ? '*' : '' }}</td>
<td {% if app.user %}class="app-user"{% endif %}>
<div>
<span class="titulo-entidad">{{ 'label.training_entity'|trans({}, 'courses') }}</span><br>
<span class="texto-entidad"> {{ entidad|capitalize }}</span>
</div>
{% if app.user %}
<div class="app-user-icon">
<a href="{{ path('course_chat_entidad', {'id': entidad.id}) }}" title="Chatear con {{ entidad }}">
<i class="fas fa-comments"></i>
</a>
</div>
{% endif %}
</td>
</tr>
{% set esFavorito = app.user and actividad.formador and app.user.formadoresFavorito.contains(actividad.formador) %}
<tr class="professional{% if esFavorito %} favorite{% endif %}">
<td class="favorite-toggle" data-type="formador" data-id="{{ actividad.formador ? actividad.formador.id : 0 }}" title="{{ esFavorito ? 'Quitar de favoritos' : 'Añadir a favoritos' }}">{{ esFavorito ? '*' : ''}}</td>
<td>
{% set formadorNombre = actividad.formador.nombre ?? actividad.formador %}
{% set formadorId = actividad.formador.id ?? null %}
<div{% if app.user and actividad.formador %} class="app-user"{% endif %}>
<span class="titulo-professional">{{ 'label.training_professional'|trans({}, 'courses') }}</span><br>
<span class="texto-professional">{{ formadorNombre ?? '--Pendiente--' }}</span>
</div>
{% if app.user and formadorId %}
<div class="app-user-icon">
<a href="{{ path('course_chat_formador', {'id': formadorId}) }}" title="Chatear con {{ formadorNombre }}">
<i class="fas fa-comments"></i>
</a>
</div>
{% endif %}
</td>
</tr>
{% if tipo == 'grupo' %}
<tr class="poblacio">
<td>P</td>
<td>{{ 'label.location'|trans({}, 'courses') }}<br><strong> {{ municipios }}</strong></td>
</tr>
<tr class="centro">
<td>C</td>
<td>{{ 'label.training_center'|trans({}, 'courses') }}<br><strong> {{ centros }}</strong></td>
</tr>
<tr class="web">
<td>W</td>
<td>{{ web }}</td>
</tr>
<tr class="email">
<td>E</td>
<td>{{ email }}</td>
</tr>
<tr class="telefono">
<td>T</td>
<td>{{ telefono }}</td>
</tr>
{% endif %}
</table>
</div>
{% if tipo == 'grupo' and latitud and longitud %}
<div id="mapa">
{% set formattedMarkers = [] %}
{% set formattedMarker = {
'title': '--no api attrib--',
'lon': longitud,
'lat': latitud,
'content': ''
} %}
{% set formattedMarkers = formattedMarkers|merge([formattedMarker]) %}
{% include 'funcionality/google-maps.html.twig' with { markers: formattedMarkers, name: 'Map', readonly: true} %}
</div>
{% endif %}
</section>
{% include '_partials/courses/_detail.html.twig' with {
nombre: nombre,
descripcion: descripcion,
primeraGrupoDeSolicitud: primeraGrupoDeSolicitud
} %}
{# Modal para solicitudes de usuarios no registrados #}
{% include '_partials/courses/_modal_solicitud.html.twig' %}
{# Js gestion favoritos entidad y formador #}
{% include '_partials/courses/favorites.js.twig' %}
{% include '_partials/courses/_js_modal_actions_empresa.html.twig' %}
{% endblock %}