{# -*- mode: jinja2; -*- #} {# Copyright (C) 2015-2016 lpschedule-generator contributors. See CONTRIBUTORS. This file is part of lpschedule-generator. lpschedule-generator is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. lpschedule-generator is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with lpschedule-generator (see COPYING). If not, see . #} {# macros start #} {# make speakers macro #} {% macro mk_speakers(speakers) %} {% if speakers[0]|lower != 'speakertba' %} {% for speaker in speakers %} {% if loop.last %} {{ speaker }} {% else %} {{ speaker }}, {% endif %} {% endfor %} {% endif %} {% endmacro %} {# make room macro #} {% macro mk_room(room) %} {% if room|lower != 'roomtba' %} {{ room }} {% endif %} {% endmacro %} {# make day header macro #} {% macro mk_day_header(day, collapse_area) %} {% if day|trim != '' %}

{{ day }}

{% endif %} {% endmacro %} {# make timeslot header macro #} {% macro mk_timeslot_header(timeslot, collapse, collapse_area='') %} {% if timeslot|trim != '' %}

{{ timeslot }}

{% endif %} {% endmacro %} {# make session header macro #} {% macro mk_session_header(session) %}

{{ session }}

{% endmacro %} {# desc macro #} {% macro desc(disc_list) %} {% for desc_p in disc_list %}

{{ desc_p }}

{% endfor %} {% endmacro %} {# populate sessions macro #} {% macro populate_sessions(sessions, day_index, timeslot_index) %} {% for session, session_info in sessions.iteritems() %} {# session start #}
{{ mk_session_header(session) }} {{ mk_speakers(session_info['speakers']) }}

{{ mk_room(session_info['room']) }} {% if session_info['desc'][0]|lower == 'desctba' %}

{% else %}

{{ desc(session_info['desc']) }}
{% endif %}
{% endfor %} {# session end #} {% endmacro %} {# populate timeslots macro #} {% macro populate_timeslots(timeslots, day_index) %} {% for timeslot, sessions in timeslots.iteritems() %} {# timeslot start #}
{{ mk_timeslot_header(timeslot) }} {% if sessions|length > 0 %} {{ populate_sessions(sessions, day_index, loop.index) }} {% endif %}
{% endfor %} {# timeslot start #} {% endmacro %} {# lp schedule 2016 template start #} {% for day, timeslots in lp_dict.iteritems() %} {# day start #}
{{ mk_day_header(day) }} {{ populate_timeslots(timeslots, loop.index) }}
{% endfor %} {# day loop end #}