فهرست منبع

Add missing templates from default template

jmontoyaa 7 سال پیش
والد
کامیت
44a23f6f44

+ 60 - 0
main/template/rainbow/admin/career_dashboard.tpl

@@ -0,0 +1,60 @@
+
+{{ actions }}
+
+{{ form_filter }}
+
+{% for item in data %}
+<div id="career-{{ item.id }}" class="career panel panel-default">
+    <div  class="panel-heading">
+        <h4><a href="{{ _p.web }}main/admin/careers.php?action=edit&id={{ item.id }}">{{ item.name }}</a></h4>
+    </div>
+    <div class="panel-body">
+        {{ item.description }}
+        <table class="table promotions">
+            <thead class="title">
+                <th>{{ 'Promotions' | get_lang }}</th>
+                <th>{{ 'StudyCycle' | get_lang }} </th>
+                <th>{{ 'Courses' | get_lang }} </th>
+            </thead>
+        {% for promotions in item.career %}
+            {% for prom in promotions %}
+                {% set line = prom.sessions|length + 1 %}
+                <tr>
+                    
+                    <td class="promo" rowspan="{{ line }}">
+                        <h4 id="promotion-id-{{ prom.id }}">
+                            <a title="{{ prom.name }}" href="{{ _p.web }}main/admin/promotions.php?action=edit&id={{ prom.id }}">
+                                {{ prom.name }}
+                            </a>
+                        </h4>
+                    </td>
+                    {% if line == 1 %}
+                    <td>&nbsp;</td><td>&nbsp;</td>
+                    {% endif %}
+                </tr>
+                {% for session in prom.sessions %}
+                {% set sessionid = session.data.id %}
+                    <tr>
+                        <td class="cycles">
+                            <h4 id="session-id-{{ sessionid }}">
+                                <a title="{{ session.data.name }}" href="{{ _p.web }}main/session/resume_session.php?id_session={{ sessionid }}">
+                                    {{ session.data.name }}
+                                </a>
+                            </h4>
+                        </td>
+                        <td class="courses">
+                            <ul>
+                            {% for course in session.courses %}
+                            <li><a href="{{ _p.web }}courses/{{ course.directory }}/index.php?id_session={{ sessionid }}" title="{{ course.title }}">{{ course.title }}</a></li>
+                            {% endfor %}
+                            </ul>
+                        </td>
+                    </tr>
+                {% endfor %}
+            {% endfor %}
+        {% endfor %}
+        </table>
+    </div>
+</div>
+{% endfor %}
+

+ 118 - 0
main/template/rainbow/blog/blog.tpl

@@ -0,0 +1,118 @@
+<div class="row">
+    <div class="col-md-3">
+        <div class="sidebar">
+            <div id="calendar-blog" class="panel panel-default">
+                <div class="panel-heading">
+                    {{ 'Calendar'|get_lang }}
+                </div>
+                <div class="panel-body">
+                    {{ calendar }}
+                </div>
+            </div>
+            <div id="search-blog" class="panel panel-default">
+                <div class="panel-heading">
+                    {{ 'Search'|get_lang }}
+                </div>
+                <div class="panel-body">
+                    <form action="blog.php" method="get" enctype="multipart/form-data">
+                        <div class="form-group">
+                            <input type="hidden" name="blog_id" value="{{ id_blog }}"/>
+                            <input type="hidden" name="action" value="view_search_result"/>
+                            <input type="text" class="form-control" size="20" name="q" value="{{ search }}"/>
+                        </div>
+                        <button class="btn btn-default btn-block" type="submit">
+                            <em class="fa fa-search"></em> {{ 'Search'|get_lang }}
+                        </button>
+                    </form>
+                </div>
+            </div>
+            <div id="task-blog" class="panel panel-default">
+                <div class="panel-heading">
+                    {{ 'MyTasks'|get_lang }}
+                </div>
+                <div class="panel-body">
+                    {{ task }}
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <div class="col-md-9">
+        <div class="blog">
+            <div id="blog-header">
+                {% if not search %}
+                    <div class="title">
+                        <h1>{{ title }}</h1>
+                    </div>
+                    <div class="description">
+                        {{ description }}
+                    </div>
+                {% else %}
+                    <div class="title">
+                        <h1>{{ search }}</h1>
+                    </div>
+                {% endif %}
+            </div>
+            <div id="list-articles">
+                {% for item in articles %}
+                    <article id="post-{{ item.id_post }}" class="article-post">
+                        <div class="panel panel-default">
+                            <div class="panel-body">
+                                <h3 class="title-post">
+                                    <a href="{{ _p.web_self ~ '?' ~ _p.web_cid_query ~ '&' ~ {'action':'view_post', 'blog_id':item.id_blog, 'post_id':item.id_post}|url_encode }}#add_comment"
+                                       title="{{ item.title }}">{{ item.title }}</a>
+                                </h3>
+                                <div class="info-post">
+                                    <span class="date"><i class="fa fa-clock-o"></i> {{ item.post_date }}</span>
+                                    <span class='comments'>
+                                        <i class="fa fa-comment-o"></i> {{ item.n_comments }} {{ 'Comments' | get_lang }}
+                                    </span>
+                                    <span class="autor"><i class="fa fa-user"></i> {{ item.autor }}</span>
+                                    <span class="score"><i class="fa fa-star"></i> {{ item.score_ranking }}</span>
+                                </div>
+
+                                {% if item.extract %}
+                                    <div id="post-extract-{{ item.id_post }}" class="show">
+                                        <p>
+                                            {{ item.extract }}
+                                            <button type="button" class="btn btn-link btn-read-more" data-id="{{ item.id_post }}">
+                                                {{ 'ReadMore'|get_lang }}
+                                            </button>
+                                        </p>
+                                    </div>
+                                {% endif %}
+
+                                <div id="post-content-{{ item.id_post }}" class="{{ item.extract ? 'hidden' : '' }}">
+                                    {{ item.content }}
+                                </div>
+
+                                {% if item.files %}
+                                    <div class="well well-sm files">
+                                        <i class="fa fa-paperclip" aria-hidden="true"></i>
+                                        <a href="download.php?file={{ item.files.path }}">{{ item.files.filename }}</a>
+                                    </div>
+                                {% endif %}
+                            </div>
+                        </div>
+                    </article>
+                {% endfor %}
+            </div>
+        </div>
+    </div>
+</div>
+<script>
+    $(document).on('ready', function () {
+        $('.btn-read-more').on('click', function (e) {
+            e.preventDefault();
+
+            var postId = $(this).data('id') || 0;
+
+            if (!postId) {
+                return;
+            }
+
+            $('#post-extract-' + postId).removeClass('show').addClass('hidden');
+            $('#post-content-' + postId).removeClass('hidden').addClass('show');
+        });
+    });
+</script>

+ 7 - 0
main/template/rainbow/blog/layout.tpl

@@ -0,0 +1,7 @@
+<div class="row">
+    <div class="col-md-12">
+        <div class="blog">
+            {{ content }}
+        </div>
+    </div>
+</div>

+ 178 - 0
main/template/rainbow/blog/post.tpl

@@ -0,0 +1,178 @@
+{% macro comment_template(item) %}
+    <div class="media {{ item.iid }}">
+        <div class="media-left">
+            <a href="{{ item.user_info.profile_url }}">
+                <img class="media-object thumbnail avatar"
+                     src="{{ item.user_info.avatar }}"
+                     alt="{{ item.user_info.complete_name }}">
+            </a>
+        </div>
+        <div class="media-body">
+            <div class="pull-right">
+                {{ item.actions }}
+            </div>
+            <h4 class="media-heading"
+                id="comment-{{ item.iid }}-title">{{ item.title }}</h4>
+            <ul class="info-post list-inline">
+                <li class="date">
+                    <i class="fa fa-clock-o"></i> {{ item.comment_date }}
+                </li>
+                <li class="autor">
+                    <i class="fa fa-user"></i>
+                    <a href="{{ item.user_info.profile_url }}">
+                        {{ item.user_info.complete_name }}
+                    </a>
+                </li>
+                <li class="score">
+                    <i class="fa fa-star"
+                       aria-hidden="true"></i> {{ item.score_ranking }}
+                </li>
+            </ul>
+            <div id="comment-{{ item.iid }}-content">
+                {{ item.content }}
+            </div>
+            {% if item.files %}
+                <aside class="well well-sm files">
+                    <i class="fa fa-paperclip" aria-hidden="true"></i>
+                    <a href="download.php?file={{ item.files.path }}">{{ item.files.filename }}</a>
+                    <p>{{ item.files.comment }}</p>
+                </aside>
+            {% endif %}
+
+            <div class="ranking">
+                {{ item.form_ranking }}
+            </div>
+
+            {% import _self as nested %}
+
+            {% for item2 in item.comments %}
+                {{ nested.comment_template(item2) }}
+            {% endfor %}
+        </div>
+    </div>
+{% endmacro %}
+
+{% import _self as nested %}
+
+<div class="row">
+    <div class="col-md-3">
+        <div class="sidebar">
+            <div id="calendar-blog" class="panel panel-default">
+                <div class="panel-heading">
+                    {{ 'Calendar'|get_lang }}
+                </div>
+                <div class="panel-body">
+                    {{ calendar }}
+                </div>
+            </div>
+            <div id="search-blog" class="panel panel-default">
+                <div class="panel-heading">
+                    {{ 'Search'|get_lang }}
+                </div>
+                <div class="panel-body">
+                    <form action="blog.php" method="get" enctype="multipart/form-data">
+                        <div class="form-group">
+                            <input type="hidden" name="blog_id" value="{{ id_blog }}"/>
+                            <input type="hidden" name="action" value="view_search_result"/>
+                            <input type="text" class="form-control" size="20" name="q" value="{{ search }}"/>
+                        </div>
+                        <button class="btn btn-default btn-block" type="submit">
+                            <em class="fa fa-search"></em> {{ 'Search'|get_lang }}
+                        </button>
+                    </form>
+                </div>
+            </div>
+            <div id="task-blog" class="panel panel-default">
+                <div class="panel-heading">
+                    {{ 'MyTasks'|get_lang }}
+                </div>
+                <div class="panel-body">
+                    {{ task }}
+                </div>
+            </div>
+        </div>
+    </div>
+    <div class="col-md-9">
+        <div class="blog" id="post-{{ post.id_post }}">
+            <div class="panel panel-default" id="blog-header">
+                <div class="panel-heading">
+                    <div id="post-action" class="text-right">
+                        <div class="btn-group btn-group-sm" role="group" aria-label="{{ 'Actions'|get_lang }}">
+                            {{ post.actions }}
+                        </div>
+                    </div>
+                </div>
+                <div class="panel-body">
+                    <article>
+                        <div class="article-header">
+                            <div class="title">
+                                <h1 title="{{ post.title }}">{{ post.title }}</h1>
+                            </div>
+                            <ul class="info-post list-inline">
+                                <li class="date">
+                                    <i class="fa fa-clock-o" aria-hidden="true"></i> {{ post.post_date }}
+                                </li>
+                                <li class="comments">
+                                    <i class="fa fa-comment-o"
+                                       aria-hidden="true"></i> {{ 'XComments'|get_lang|format(post.n_comments) }}
+                                </li>
+                                <li class="autor">
+                                    <i class="fa fa-user" aria-hidden="true"></i>
+                                    <a href="{{ _p.web }}main/social/profile.php?u={{ post.id_author }}">{{ post.author }}</a>
+                                </li>
+                                <li class="score">
+                                    <i class="fa fa-star" aria-hidden="true"></i> {{ post.score_ranking }}
+                                </li>
+                            </ul>
+                        </div>
+                        <div class="content-post">
+                            {{ post.content }}
+                        </div>
+                        {% if post.files %}
+                            <aside class="well well-sm files">
+                                <i class="fa fa-paperclip" aria-hidden="true"></i>
+                                <a href="download.php?file={{ post.files.path }}">{{ post.files.filename }}</a>
+                            </aside>
+                        {% endif %}
+
+                        {{ post.frm_rating ?: '' }}
+                    </article>
+                    <div class="comments-post">
+                        <h3 class="title">{{ 'XComments'|get_lang|format(post.n_comments) }}</h3>
+                        <div id="list-comments" class="media-list">
+                            {% for item in post.comments %}
+                                {{ nested.comment_template(item) }}
+                            {% endfor %}
+                        </div>
+                    </div>
+                    <div class="form-post">
+                        {{ post.form_html }}
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </div>
+</div>
+
+<script>
+    $(document).on('ready', function () {
+        $('.btn-reply-to').on('click', function (e) {
+            e.preventDefault();
+
+            var id = $(this).data('id') || 0;
+
+            if (!id) {
+                return;
+            }
+
+            var $frm = $('form#add_post'),
+                title = $('#comment-' + id + '-title'),
+                content = $('#comment-' + id + '-content');
+
+            $frm.find('[name="comment_parent_id"]').val(id);
+            $frm.find('[name="title"]').val('Re: ' + title.text().trim());
+            CKEDITOR.instances.comment.setData('<blockquote>' + content.text().trim() + '</blockquote><br>');
+        });
+    });
+</script>

+ 101 - 0
main/template/rainbow/exercise/reading_comprehension.tpl

@@ -0,0 +1,101 @@
+<div id="question-{{ id }}" class="question-reading-comprehension-container">
+    <div class="question-reading-comprehension-overlay"></div>
+    <div id="question-{{ id }}-text" class="center-block question-reading-comprehension-text" onselectstart="return false">
+        {{ text }}
+    </div>
+</div>
+
+<style>
+    .question-reading-comprehension-container {
+        position: relative;
+    }
+    .question-reading-comprehension-container .question-reading-comprehension-overlay {
+        bottom: 0;
+        left: 0;
+        position: absolute;
+        right: 0;
+        top: 0;
+    }
+    .question-reading-comprehension-text {
+        text-align: justify;
+        -webkit-touch-callout: none;
+        -webkit-user-select: none;
+        -khtml-user-select: none;
+        -moz-user-select: none;
+        -ms-user-select: none;
+        user-select: none;
+    }
+    .question-reading-comprehension-text .text-highlight {
+        color: transparent;
+        -webkit-text-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
+        -khtml-text-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
+        -moz-text-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
+        -ms-text-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
+        text-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
+    }
+    .question-reading-comprehension-text .text-highlight.active {
+        color: #000;
+        -webkit-text-shadow: none;
+        -khtml-text-shadow: none;
+        -moz-text-shadow: none;
+        -ms-text-shadow: none;
+        text-shadow: none;
+    }
+    .question-reading-comprehension-text .text-highlight.border {
+        color: #bbb;
+        -webkit-text-shadow: none;
+        -khtml-text-shadow: none;
+        -moz-text-shadow: none;
+        -ms-text-shadow: none;
+        text-shadow: none;
+    }
+    .question-reading-comprehension-text br {
+        margin-bottom: 1em;
+    }
+    .radio.hide-reading-answers, .question_title.hide-reading-answers {
+        display: none;
+    }
+</style>
+
+<script>
+    $(document).on('ready', function () {
+        var index = 0,
+            $questionTexts = $('#question-{{ id }}-text .text-highlight'),
+            total = $questionTexts.length;
+
+        function updateView()
+        {
+            $questionTexts.removeClass('active border');
+
+            if (index == total - 1) {
+                $('#question_div_{{ id }} .radio, #question_div_{{ id }} .question_title').removeClass('hide-reading-answers');
+            }
+
+            if (index >= total) {
+                window.clearInterval(timeOuId);
+
+                return;
+            }
+
+            var prev = index > 0 ? $('#question-{{ id }}-text .text-highlight').get(index - 1) : null,
+                current = $questionTexts.get(index),
+                next = index < total ? $('#question-{{ id }}-text .text-highlight').get(index + 1) : null;
+
+            $(current).addClass('active');
+
+            if (prev) {
+                $(prev).addClass('border');
+            }
+
+            if (next) {
+                $(next).addClass('border');
+            }
+
+            index++;
+        }
+
+        updateView();
+
+        var timeOuId = window.setInterval(updateView, {{ refresh_time }} * 1000);
+    });
+</script>

+ 10 - 0
main/template/rainbow/export/pdf_footer.tpl

@@ -0,0 +1,10 @@
+<table border="0" class="full-width border-top page-footer">
+    <tr>
+        <td class="text-left">
+            <strong>{{ _s.institution }}</strong>
+        </td>
+        <td class="text-right">
+            <strong>{PAGENO} / {nb}</strong>
+        </td>
+    </tr>
+</table>

+ 11 - 0
main/template/rainbow/export/pdf_header.tpl

@@ -0,0 +1,11 @@
+<table border="0" width="100%" class="pdf-header">
+    <tr>
+        <td width="30%">
+            {{ organization }}
+        </td>
+        <td width="80%" style="text-align: right; font-size: 12px; color: #666666;">
+            <strong>{{ teacher_name }}</strong>
+        </td>
+    </tr>
+</table>
+

+ 95 - 0
main/template/rainbow/layout/page_footer.tpl

@@ -0,0 +1,95 @@
+<footer id="footer-section" class="sticky-footer bgfooter">
+    <div class="container">
+        <div class="pre-footer">
+            {% if plugin_pre_footer is not null %}
+            <div id="plugin_pre_footer">
+                {{ plugin_pre_footer }}
+            </div>
+            {% endif %}
+        </div>
+        <div class="sub-footer">
+            <div class="row">
+                <div class="col-md-4">
+                    {% if session_teachers is not null %}
+                    <div class="session-teachers">
+                        {{ session_teachers }}
+                    </div>
+                    {% endif %}
+                    {% if teachers is not null %}
+                    <div class="teachers">
+                        {{ teachers }}
+                    </div>
+                    {% endif %}
+                    {% if plugin_footer_left is not null %}
+                    <div id="plugin_footer_left">
+                        {{ plugin_footer_left }}
+                    </div>
+                    {% endif %}
+                </div>
+                <div class="col-md-4">
+                    {% if plugin_footer_center is not null %}
+                    <div id="plugin_footer_center">
+                        {{ plugin_footer_center }}
+                    </div>
+                    {% endif %}
+                </div>
+                <div class="col-md-4 text-right">
+                    {% if administrator_name is not null %}
+                    <div class="administrator-name">
+                        {{ administrator_name }}
+                    </div>
+                    {% endif %}
+
+                    {% if _s.software_name is not empty %}
+                        <div class="software-name">
+                            <a href="{{_p.web}}" target="_blank">
+                                {{ "PoweredByX" |get_lang | format(_s.software_name) }}
+                            </a>&copy; {{ "now"|date("Y") }}
+                        </div>
+                    {% endif %}
+
+                    {% if plugin_footer_right is not null %}
+                    <div id="plugin_footer_right">
+                        {{ plugin_footer_right }}
+                    </div>
+                    {% endif %}
+                </div>
+            </div>
+        </div>
+        <div class="extra-footer">
+            {{ footer_extra_content }}
+        </div>
+    </div>
+</footer>
+
+<div class="modal fade" id="expand-image-modal" tabindex="-1" role="dialog" aria-labelledby="expand-image-modal-title" aria-hidden="true">
+    <div class="modal-dialog modal-lg">
+        <div class="modal-content">
+            <div class="modal-header">
+                <button type="button" class="close" data-dismiss="modal" aria-label="{{ "Close" | get_lang }}"><span aria-hidden="true">&times;</span></button>
+                <h4 class="modal-title" id="expand-image-modal-title">&nbsp;</h4>
+            </div>
+            <div class="modal-body">
+            </div>
+        </div>
+    </div>
+</div>
+{# Global modal, load content by AJAX call to href attribute on anchor tag with 'ajax' class #}
+<div class="modal fade" id="global-modal" tabindex="-1" role="dialog" aria-labelledby="global-modal-title" aria-hidden="true">
+    <div class="modal-dialog modal-lg">
+        <div class="modal-content">
+            <div class="modal-header">
+                <button type="button" class="close" data-dismiss="modal" aria-label="{{ "Close" | get_lang }}">
+                    <span aria-hidden="true">&times;</span>
+                </button>
+                <h4 class="modal-title" id="global-modal-title">&nbsp;</h4>
+            </div>
+            <div class="modal-body">
+            </div>
+        </div>
+    </div>
+</div>
+
+{% include template ~ '/layout/footer.js.tpl' %}
+
+{{ execution_stats }}

+ 26 - 0
main/template/rainbow/learnpath/scorm_list.tpl

@@ -0,0 +1,26 @@
+{% if data_list is not empty %}
+<div id="learning_path_toc" class="scorm-list">
+    <div class="scorm-body">
+        <h1 class="scorm-title">{{ lp_title_scorm }}</h1>
+        <div id="inner_lp_toc" class="inner_lp_toc scrollbar-light">
+            {% for item in data_list %}
+                <div id="toc_{{ item.id }}" class="{{ item.class }}">
+                    {% if item.type == 'dir' %}
+                        <div class="section {{ item.css_level }}" title="{{ item.description }}">
+                            {{ item.title }}
+                        </div>
+                    {% else %}
+                        <div class="item {{ item.css_level }}" title="{{ item.description }}">
+                            <a name="atoc_{{ item.id }}"></a>
+                            <a class="items-list" href="#" onclick="switch_item('{{ item.current_id }}','{{ item.id }}'); return false;" >
+                                {{ item.title }}
+                            </a>
+                        </div>
+                    {% endif %}
+                </div>
+            {% endfor %}
+        </div>
+    </div>
+</div>
+{% endif %}
+{{ accorden_toc }}

+ 13 - 0
main/template/rainbow/mail/new_user_mail_to_admin.tpl

@@ -0,0 +1,13 @@
+<h4>{{ 'UserRegistered'|get_lang }}</h4>
+<ul>
+    {% if is_western_name_order %}
+        <li>{{ 'FirstName'|get_lang }}: {{ user.getFirstName() }}</li>
+        <li>{{ 'LastName' }}: {{ user.getLastName() }}</li>
+    {% else  %}
+        <li>{{ 'LastName' }}: {{ user.getLastName() }}</li>
+        <li>{{ 'FirstName' }}: {{ user.getFirstName() }}</li>
+    {% endif %}
+    <li>{{ 'Email'|get_lang }}: {{ user.getEmail() }}</li>
+    <li>{{ 'Status'|get_lang }}: {{ user.getStatus() }}</li>
+</ul>
+<p>{{ 'ManageUser'|get_lang }}: <a href="{{ manageUrl }}">{{ manageUrl }}</a></p>

+ 33 - 0
main/template/rainbow/my_space/works_in_session_report.tpl

@@ -0,0 +1,33 @@
+{{ form }}
+
+{% if session %}
+    <h3 class="page-header">{{ session.name }}</h3>
+    <div class="table-responsive">
+        <table class="table table-hover table-striped">
+            <thead>
+                <tr>
+                    <th>{{ 'OfficialCode'|get_lang }}</th>
+                    <th>{{ 'StudentName'|get_lang }}</th>
+                    <th>{{ 'TimeSpentOnThePlatform'|get_lang }}</th>
+                    <th>{{ 'FirstLoginInPlatform'|get_lang }}</th>
+                    <th>{{ 'LatestLoginInPlatform'|get_lang }}</th>
+
+                    {% for course_code in courses %}
+                        <th title="{{ header.title }}">{{ course_code }} <br />({{ 'BestScore' | get_lang }})</th>
+                        <th>{{ 'Progress'|get_lang }}</th>
+                        <th>{{ 'LastSentWorkDate'|get_lang }}</th>
+                    {% endfor %}
+                </tr>
+            </thead>
+            <tbody>
+                {% for user in users %}
+                    <tr>
+                        {% for data in user %}
+                            <td>{{ data }}</td>
+                        {% endfor %}
+                    </tr>
+                {% endfor %}
+            </tbody>
+        </table>
+    </div>
+{% endif %}

+ 142 - 0
main/template/rainbow/skill/issued_all.tpl

@@ -0,0 +1,142 @@
+{% for badge in user_badges %}
+    <div class="row issued">
+        <div class="col-md-5">
+            <div class="thumbnail">
+                <figure class="text-center">
+                    <img class="img-responsive center-block" src="{{ badge.issue_info.skill_badge_image }}" alt="{{ badge.issue_info.skill_name }}">
+                    <figcaption>
+                        <p class="lead">{{ badge.issue_info.skill_name }}</p>
+                        {% if badge.issue_info.skill_short_code %}
+                            <p>{{ badge.issue_info.skill_short_code }}</p>
+                        {% endif %}
+                    </figcaption>
+                </figure>
+                <div class="caption">
+                    {% if badge.issue_info.skill_description %}
+                        <p>{{ badge.issue_info.skill_description }}</p>
+                    {% endif %}
+                    {% if badge.issue_info.skill_criteria %}
+                        <h3>{{ 'CriteriaToEarnTheBadge'|get_lang }}</h3>
+                        <p>{{ badge.issue_info.skill_criteria }}</p>
+                    {% endif %}
+                </div>
+            </div>
+            {% if badge.allow_download_export %}
+                {% if badge.badge_error %}
+                    <hr>
+                    <div class="alert alert-danger"> {{ 'BakedBadgeProblem'|get_lang }}</div>
+                {% else %}
+                    <p class="text-center">
+                        <a href="{{ badge.personal_badge }}" class="btn btn-primary" target="_new" download="badge">
+                            <em class="fa fa-download fa-fw"></em> {{ 'DownloadBadge'|get_lang }}
+                        </a>
+                    </p>
+                {% endif %}
+                <hr>
+                <p class="text-center">
+                    <a href="#" class="btn btn-success" id="badge-export-button-{{ badge.issue_info.id }}">
+                        <em class="fa fa-external-link-square fa-fw"></em> {{ 'ExportBadge'|get_lang }}
+                    </a>
+                </p>
+                <div class='col-md-12 text-center'>
+                    <h5><b> {{ 'ShareWithYourFriends' | get_lang }} </b></h5>
+                    <a href="http://www.facebook.com/sharer.php?u={{ _p.web }}badge/{{ badge.issue_info.id }}" target="_new">
+                        <em class='fa fa-facebook-square fa-3x text-info' aria-hidden='true'></em>
+                    </a>
+                    <a href="https://twitter.com/home?status={{ 'IHaveObtainedSkillXOnY' | get_lang |format(skill_info.name, _s.site_name)}} - {{ _p.web }}badge/{{ badge.issue_info.id }}" target="_new">
+                        <em class='fa fa-twitter-square fa-3x text-light' aria-hidden='true'></em>
+                    </a>
+                </div>
+            {% endif %}
+        </div>
+        <div class="col-md-7">
+            <h3>{{ 'RecipientDetails'|get_lang }}</h3>
+            <p class="lead">{{ badge.issue_info.user_complete_name }}</p>
+            <h4>{{ 'SkillAcquiredAt'|get_lang }}</h4>
+            <ul class="fa-ul">
+                <li>
+                    {% if badge.issue_info.source_name %}
+                        <em class="fa-li fa fa-clock-o fa-fw"></em> {{ 'TimeXThroughCourseY'|get_lang|format(badge.issue_info.datetime, badge.issue_info.source_name) }}
+                    {% else %}
+                        <em class="fa-li fa fa-clock-o fa-fw"></em> {{ badge.issue_info.datetime }}
+                    {% endif %}
+                    {% if badge.issue_info.argumentation %}
+                        {% if badge.issue_info.argumentation %}
+                            <b><p style="font-style: italic;">{{ 'UserXIndicated'|get_lang|format(badge.issue_info.argumentation_author_name) }} </p></b>
+                        {% endif %}
+                        <p>{{ badge.issue_info.argumentation }}</p>
+                    {% endif %}
+                </li>
+            </ul>
+            <h4>{{ 'AcquiredLevel'|get_lang }}</h4>
+            <ul class="fa-ul">
+                <li>
+                    <em class="fa-li fa fa-check-circle-o fa-fw"></em> {{ badge.issue_info.acquired_level }}
+                </li>
+            </ul>
+
+            {% if badge.allow_comment %}
+                <hr>
+                <div class="panel panel-info">
+                    <div class="panel-heading">
+                        <em class="fa fa-check-circle-o fa-fw" aria-hidden="true"></em> {{ 'ChangeAcquiredLevel'|get_lang }}
+                    </div>
+                    <div class="panel-body">
+                        {{ badge.acquired_level_form }}
+                    </div>
+                </div>
+                <hr>
+                <div class="panel panel-info">
+                    <div class="panel-heading">
+                        <em class="fa fa-comment-o fa-fw" aria-hidden="true"></em> {{ 'XComments'|get_lang|format(badge.issue_info.comments|length) }}
+                        /
+                        <em class="fa fa-thumbs-o-up fa-fw" aria-hidden="true"></em> {{ 'AverageRatingX'|get_lang|format(badge.issue_info.feedback_average) }}
+                    </div>
+                    <div class="panel-body">
+                        {{ badge.comment_form }}
+                        <hr>
+                        {% for comment in badge.issue_info.comments %}
+                            <article class="media">
+                                <div class="media-body">
+                                    <h4 class="media-heading">{{ comment.giver_complete_name }}</h4>
+                                    <p><small>{{ comment.datetime }}</small></p>
+                                    <p>{{ comment.text }}</p>
+                                </div>
+                                <div class="media-right text-right">
+                                    <div style="width: 80px;">
+                                        {% if comment.value %}
+                                            <em class="fa fa-certificate fa-fw" aria-label="{{ 'AverageRating' }}"></em>
+                                            <span class="sr-only">{{ 'AverageRating' }}</span> {{ comment.value }}
+                                        {% endif %}
+                                    </div>
+                                </div>
+                            </article>
+                        {% else %}
+                            <p>{{ 'WithoutComment'|get_lang }}</p>
+                        {% endfor %}
+                    </div>
+                </div>
+            {% else %}
+                <hr>
+                <p class="lead">
+                    <em class="fa fa-comment-o fa-fw" aria-hidden="true"></em> {{ 'XComments'|get_lang|format(badge.issue_info.comments|length) }}
+                    /
+                    <em class="fa fa-thumbs-o-up fa-fw" aria-hidden="true"></em> {{ 'AverageRatingX'|get_lang|format(badge.issue_info.feedback_average) }}
+                </p>
+            {% endif %}
+        </div>
+    </div>
+    {% if badge.allow_download_export %}
+        <script>
+            $(document).on('ready', function () {
+                $('#badge-export-button-{{ badge.issue_info.id }}').on('click', function (e) {
+                    e.preventDefault();
+
+                    OpenBadges.issue({{ badge.issue_info.badge_assertion|json_encode() }});
+                });
+            });
+        </script>
+    {% endif %}
+    <br />
+    <br />
+{% endfor %}