summaryrefslogtreecommitdiffstats
path: root/libreplanet-templates
diff options
context:
space:
mode:
authorrsiddharth <rsd@gnu.org>2016-02-13 21:32:06 -0500
committerrsiddharth <rsd@gnu.org>2016-02-13 21:32:06 -0500
commit4d2309123cef988d6e52d388b87c29b53d1ff247 (patch)
treec7b39fb22e3112b97b8a22379da5020ece651779 /libreplanet-templates
parent2872337665a0f9e9d9f61ed47bdb44bebcfbb48a (diff)
Templates are now at /libreplanet-templates/
Diffstat (limited to 'libreplanet-templates')
-rw-r--r--libreplanet-templates/2016/lp-schedule.jinja2123
-rw-r--r--libreplanet-templates/2016/lp-speakers.jinja2124
2 files changed, 247 insertions, 0 deletions
diff --git a/libreplanet-templates/2016/lp-schedule.jinja2 b/libreplanet-templates/2016/lp-schedule.jinja2
new file mode 100644
index 0000000..0f0e372
--- /dev/null
+++ b/libreplanet-templates/2016/lp-schedule.jinja2
@@ -0,0 +1,123 @@
+{# -*- mode: jinja2; -*- #}
+{#
+ Copyright (C) 2015 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
+ <http://www.gnu.org/licenses/>.
+#}
+
+{# macros start #}
+
+{# make speakers macro #}
+{% macro mk_speakers(speakers) %}
+ <span class="program-session-speaker">
+ {% for speaker in speakers %}
+ {% if loop.last %}
+ {{ speaker }}
+ {% else %}
+ {{ speaker }},
+ {% endif %}
+ {% endfor %}
+ </span>
+{% endmacro %}
+
+{# make room macro #}
+{% macro mk_room(room) %}
+ {% if room|lower != 'roomtba' %}
+ <span class="label label-default">{{ room }}</span>
+ {% endif %}
+{% endmacro %}
+
+{# make day header macro #}
+{% macro mk_day_header(day, collapse_area) %}
+ {% if day|trim != '' %}
+ <header class="program-day-header">
+ <hgroup>
+ <h2>{{ day }}</h2>
+ </hgroup>
+ </header>
+ {% endif %}
+{% endmacro %}
+
+{# make timeslot header macro #}
+{% macro mk_timeslot_header(timeslot, collapse, collapse_area='') %}
+ {% if timeslot|trim != '' %}
+ <header class="program-timeslot-header">
+ <hgroup>
+ <h2>{{ timeslot }}</h2>
+ </hgroup>
+ </header>
+ {% endif %}
+{% endmacro %}
+
+{# make session header macro #}
+{% macro mk_session_header(session) %}
+ <header class="program-session-header">
+ <hgroup>
+ <h2>{{ session }}</h2>
+ </hgroup>
+ </header>
+{% endmacro %}
+
+{# desc macro #}
+{% macro desc(disc_list) %}
+ {% for desc_p in disc_list %}
+ <p>{{ desc_p }}</p>
+ {% endfor %}
+{% endmacro %}
+
+{# populate sessions macro #}
+{% macro populate_sessions(sessions, day_index, timeslot_index) %}
+ {% for session, session_info in sessions.iteritems() %} {# session start #}
+ <section id="day-{{ day_index }}-timeslot-{{ timeslot_index }}-session-{{ loop.index }}" class="program-session">
+ {{ mk_session_header(session) }}
+ {{ mk_speakers(session_info['speakers']) }}
+ <p class="program-session-room-details">
+ {{ mk_room(session_info['room']) }}
+ <button class="btn btn-default btn-xs"
+ data-toggle="collapse" aria-expanded="false"
+ aria-controls="day-{{ day_index }}-timeslot-{{ timeslot_index }}-session-{{ loop.index }}-collapse"
+ data-target="#day-{{ day_index }}-timeslot-{{ timeslot_index }}-session-{{ loop.index }}-collapse">
+ Details
+ </button>
+ </p>
+ <div class="collapse in"
+ id="day-{{ day_index }}-timeslot-{{ timeslot_index }}-session-{{ loop.index }}-collapse">
+ {{ desc(session_info['desc']) }}
+ </div> <!-- day-{{ day_index }}-timeslot-{{ timeslot_index }}-session-{{ loop.index }}-collapse end -->
+ </section> <!-- day-{{ day_index }}-timeslot-{{ timeslot_index }}-session-{{ loop.index }} end -->
+ {% endfor %} {# session end #}
+{% endmacro %}
+
+{# populate timeslots macro #}
+{% macro populate_timeslots(timeslots, day_index) %}
+ {% for timeslot, sessions in timeslots.iteritems() %} {# timeslot start #}
+ <article id="day-{{ day_index }}-timeslot-{{ loop.index }}" class="program-timeslot">
+ {{ mk_timeslot_header(timeslot) }}
+ {% if sessions|length > 0 %}
+ {{ populate_sessions(sessions, day_index, loop.index) }}
+ {% endif %}
+ </article> <!-- day-{{ day_index }}-timeslot-{{ loop.index }} end -->
+ {% endfor %} {# timeslot start #}
+{% endmacro %}
+
+{# lp schedule 2016 template start #}
+{% for day, timeslots in lp_dict.iteritems() %} {# day start #}
+ <article id="day-{{ loop.index }}-program" class="program-day">
+ {{ mk_day_header(day) }}
+ {{ populate_timeslots(timeslots, loop.index) }}
+ </article> <!-- day-{{ loop.index }} end -->
+{% endfor %} {# day loop end #}
diff --git a/libreplanet-templates/2016/lp-speakers.jinja2 b/libreplanet-templates/2016/lp-speakers.jinja2
new file mode 100644
index 0000000..5c1c132
--- /dev/null
+++ b/libreplanet-templates/2016/lp-speakers.jinja2
@@ -0,0 +1,124 @@
+{# -*- mode: jinja2; -*- #}
+{#
+ Copyright (C) 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
+ <http://www.gnu.org/licenses/>.
+#}
+
+
+{# make speakers header macro #}
+{% macro mk_speakers_header(speaker_type) %}
+ <header class="{{ speaker_type }}-header">
+ <hgroup>
+ {% if speaker_type == 'keynote-speakers' %}
+ <h2>Keynote speakers</h2>
+ {% else %}
+ <h2>Speakers</h2>
+ {% endif %}
+ </hgroup>
+ </header>
+{% endmacro %}
+
+{# make keynote speaker header macro #}
+{% macro mk_keynote_speaker_header(speaker, id) %}
+ <header id="{{ id }}" class="keynote-speaker-header">
+ <hgroup>
+ <h2>{{ speaker }}</h2>
+ </hgroup>
+ </header>
+{% endmacro %}
+
+{# make speaker header macro #}
+{% macro mk_speaker_header(speaker, id) %}
+ <header id="{{ id }}" class="speaker-header">
+ <hgroup>
+ <h2>{{ speaker }}</h2>
+ </hgroup>
+ </header>
+{% endmacro %}
+
+{# make bio macro #}
+{% macro mk_bio(bio_list) %}
+ {% for bio_p in bio_list %}
+ <p>{{ bio_p }}</p>
+ {% endfor %}
+{% endmacro %}
+
+{# populate keynote speakers macro #}
+{% macro populate_keynote_speakers(speakers) %}
+ {% for speaker in speakers %}
+ <section class="speaker-block" id="lp-keynote-speaker-{{ loop.index }}">
+ <!-- keynote-speaker-{{ loop.index }} row start -->
+ <div class="row">
+ {% if speaker.img_url %}
+ <!-- keynote-speaker-{{ loop.index }} img column start -->
+ <div class="col-md-3 col-sm-4 col-xs-5">
+ <img class="img-responsive" src="{{ speaker.img_url }}"
+ alt="[ {{ speaker.img_alt }} ]" />
+ </div> <!-- keynote-speaker-{{ loop.index }} img column end -->
+ <!-- keynote-speaker-{{ loop.index }} content column start -->
+ <div class="col-md-9 col-sm-8 col-xs-7">
+ {% else %}
+ <!-- keynote-speaker-{{ loop.index }} content column start -->
+ <div class="col-md-offset-3 col-sm-offset-4 col-xs-offset-5 col-md-9 col-sm-8 col-xs-7">
+ {% endif %}
+ {{ mk_keynote_speaker_header(speaker.speaker, speaker.id) }}
+ {{ mk_bio(speaker.bio) }}
+ </div> <!-- keynote-speaker-{{ loop.index }} content column end -->
+ </div> <!-- keynote-speaker-{{ loop.index }} row end -->
+ </section>
+ {% endfor %}
+{% endmacro %}
+
+{# populate speakers macro #}
+{% macro populate_speakers(speakers) %}
+ {% for speaker in speakers %}
+ <section class="speaker-block" id="lp-speaker-{{ loop.index }}">
+ <div class="row"> <!-- speaker-{{ loop.index }} row start -->
+ {% if speaker.img_url %}
+ <!-- speaker-{{ loop.index }} img column start -->
+ <div class="col-md-2 col-sm-3 col-xs-4">
+ <img class="img-responsive" src="{{ speaker.img_url }}"
+ alt="[ {{ speaker.img_alt }} ]" />
+ </div> <!-- speaker-{{ loop.index }} img column end -->
+ <!-- speaker-{{ loop.index }} content column start -->
+ <div class="col-md-10 col-sm-9 col-xs-8">
+ {% else %}
+ <!-- speaker-{{ loop.index }} content column start -->
+ <div class="col-md-offset-2 col-sm-offset-3 col-xs-offset-4 col-md-10 col-sm-9 col-xs-8">
+ {% endif %}
+ {{ mk_speaker_header(speaker.speaker, speaker.id) }}
+ {{ mk_bio(speaker.bio) }}
+ </div> <!-- speaker-{{ loop.index }} content column end -->
+ </div> <!-- speaker-{{ loop.index }} row end -->
+ </section>
+ {% endfor %}
+{% endmacro %}
+
+{# lp speakers 2016 template start #}
+{% for speaker_type, speakers in lp_dict.iteritems() %}
+ <article class="speakers-block" id="lp-{{ speaker_type }}">
+ {% if speaker_type == 'keynote-speakers' %}
+ {{ mk_speakers_header(speaker_type) }}
+ {{ populate_keynote_speakers(speakers) }}
+ {% elif speaker_type == 'speakers' %}
+ {{ mk_speakers_header(speaker_type) }}
+ {{ populate_speakers(speakers) }}
+ {% endif %}
+ </article>
+{% endfor %}
+{# lp speakers 2016 template end #}