templates/app_reservas/tv_cuerpos.html
{% extends 'app_reservas/base_tv.html' %}
{% load static %}
{% block title %}
Distribución física - Cuerpos
{% endblock title %}
{% block static_css %}
{{ block.super }}
<link rel="stylesheet" href='{% static 'apps/reservas/css/tv_cuerpos.css' %}'>
{% endblock static_css %}
{% block contenido %}
<div id="cuerpos">
{% for cuerpo in cuerpos %}
<div id="cuerpo_{{ cuerpo.numero }}" class="contenedor-calendario">
<h1>{{ cuerpo }}</h1>
<div id="calendar_cuerpo_{{ cuerpo.numero }}" class="calendar"></div>
</div>
{% endfor %}
</div>
{% endblock contenido %}
{% block footer_right %}
<div id="footer-right-image" class="footer-image">
<img src='{% static 'apps/reservas/images/gtlogo-80px.png'%}'></img>
</div>
<div id="footer-right-content">
<p>
Gestión Tecnológica, DiTIC
<br />
Facultad Regional Mendoza
<br />
Universidad Tecnológica Nacional
</p>
</div>
{% endblock footer_right %}
{% block scripts %}
<script>
{% block fullcalendar_js_vars %}
{{ block.super }}
{% endblock fullcalendar_js_vars %}
$(document).ready(function() {
{% for cuerpo in cuerpos %}
$("#calendar_cuerpo_{{ cuerpo.numero }}").fullCalendar({
{% block fullcalendar_defaultView %}
{{ block.super }}
{% endblock fullcalendar_defaultView %}
{% block fullcalendar_base_config %}
{{ block.super }}
{% endblock fullcalendar_base_config %}
resourceColumns: [
{
group: true,
labelText: 'Nivel',
field: 'nivel'
},
{
labelText: 'Recurso',
field: 'title'
},
],
resources: [
{% for nivel in cuerpo.get_niveles %}
{% if not nivel_solicitado or nivel_solicitado == nivel.numero %}
{% for tipo_recurso in nivel.get_recursos %}
{% for recurso in tipo_recurso.elementos %}
{
id: '{{ recurso.id }}',
nivel: '{{ nivel.get_nombre_corto }}',
title: '{{ recurso.get_nombre_corto }}',
},
{% endfor %}
{% endfor %}
{% endif %}
{% endfor %}
],
eventSources: [
{% for nivel in cuerpo.get_niveles %}
{% if not nivel_solicitado or nivel_solicitado == nivel.numero %}
{% for tipo_recurso in nivel.get_recursos %}
{% for recurso in tipo_recurso.elementos %}
{
url: '{% url "recurso_eventos_json" recurso.id %}',
{% if recurso.calendar_color %}
color: '{{ recurso.calendar_color }}',
{% endif %}
},
{% endfor %}
{% endfor %}
{% endif %}
{% endfor %}
],
header: {
{% block fullcalendar_header %}
{{ block.super }}
{% endblock fullcalendar_header %}
},
{% block fullcalendar_loading_callback %}
{{ block.super }}
{% endblock fullcalendar_loading_callback %}
{% block fullcalendar_opciones %}
{{ block.super }}
{% endblock %}
});
{% endfor %}
// Función que genera la transición de cuerpos, al ir quitando el último cuerpo del
// listado, y añadiéndolo al principio del mismo.
function generarTransicionCuerpo() {
var ultimo_cuerpo = $(".contenedor-calendario").last();
ultimo_cuerpo.hide();
$("#cuerpos").prepend(ultimo_cuerpo);
ultimo_cuerpo.fadeIn(1500);
}
// Ejecuta la transición sólo cuando hay más de un cuerpo disponible en la vista.
if ($(".contenedor-calendario").length > 1) {
// Establece la transición de cuerpos cada 10 segundos.
var timer = setInterval(generarTransicionCuerpo, 10000);
}
});
</script>
{% endblock scripts %}