exam_templates.xml 7.99 KB
<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data>
        <template id="portal_my_home_exam" name="Portal layout : Exam menu entries"
                  inherit_id="portal.portal_breadcrumbs" priority="95">
            <xpath expr="//ol[hasclass('o_portal_submenu')]" position="inside">
                <li>
                    <a href="/exam/title">Exam</a>
                </li>
            </xpath>
        </template>

        <template id="exam_title" name="Exam / Test / Quiz Titles">
            <t t-call="website.layout">
                <h1 class="text-center">Silahkan pilih materi</h1>
                    <t t-foreach="exams" t-as="exam">
                        <div class="mt16 mb16">
                            <h3 class="text-center">
                                <t t-esc="exam.name"/>
                                <a t-attf-href="/exam/#{exam.slug}"><i class="fa fa-arrow-right rounded-circle shadow-sm"/></a>
                            </h3>
                        </div>
                    </t>
            </t>
        </template>

        <template id="exam_question_page" name="Exam / Test / Quiz Questions">
            <t t-call="website.layout">
                <form action="/exam/results" method="post" class="form-horizontal mt32" enctype="multipart/form-data">
                    <input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
                    <div class="wrap">
                        <div class="container">
                            <div class="mt16 mb16">
                                <h1 class="text-center">
                                    <t t-esc="exam.name"/>
                                </h1>
                            </div>
                            <t t-set="question_index" t-value="0"/>

                            <t t-foreach="questions" t-as="question_result">
                                <t t-set="question" t-value="question_result.question_id"/>
                                <t t-set="question_index" t-value="question_index+1"/>
                                <div class="form-group">
                                    <div>
                                        <t t-if="question.question_type == 'multi_choice'">
                                            <p>
                                                <t t-esc="question_index"/>)
                                                <t t-raw="question.question.replace('&lt;p&gt;','').replace('&lt;/p&gt;','')"/>
                                                <t t-if="question.num_correct > 1">
                                                    <span>(select<t t-esc="question.num_correct"/>)
                                                    </span>
                                                </t>
                                            </p>

                                            <t t-foreach="question.question_options" t-as="option">
                                                <t t-if="question.num_correct == 1">
                                                    <input type="radio" t-attf-name="question#{question.id}"
                                                           t-attf-value="#{option.id}" required="True"/>
                                                    <t t-esc="option.option"/>
                                                    <br/>
                                                </t>
                                                <t t-if="question.num_correct > 1">
                                                    <input type="checkbox"
                                                           t-attf-name="question#{question.id}option#{option.id}"
                                                           t-attf-value="#{option.id}"/>
                                                    <t t-esc="option.option"/>
                                                    <br/>
                                                </t>
                                            </t>
                                        </t>

                                        <t t-if="question.question_type == 'fill_blank'">
                                            <script>

                                                window.onload = function() {
                                                $('input[type="text"]').keydown(resizeInput)
                                                };

                                                function resizeInput() {
                                                $(this).attr('size', $(this).val().length);
                                                }

                                            </script>

                                            <h2>
                                                <t t-esc="question_index"/>)
                                                <t t-raw="question.question_rendered"/>
                                            </h2>

                                        </t>

                                    </div>
                                </div>
                            </t>

                            <div class="form-group">
                                <div class="col-md-7 col-sm-8">
                                    <input type="hidden" name="token" t-attf-value="#{token}"/>
                                    <button class="btn btn-primary btn-lg">Finish</button>
                                </div>
                            </div>

                        </div>
                    </div>
                </form>
            </t>
        </template>


        <template id="exam_results" name="Exam / Test / Quiz Results">
            <t t-call="website.layout">
                <div class="wrap">
                    <div class="container">
                        <div class="mt16 mb16">
                            <h1 class="text-center">Results</h1>
                        </div>

                        <div class="mt16 mb16">
                            <h2 class="text-center text-center">
                                <t t-esc="correct_count"/>
                                /
                                <t t-esc="question_count"/>
                                <br/>
                                <t t-esc="percent"/>
                            </h2>
                            <t t-if="exam_result.exam_id.show_correct_questions == True">

                                <style>
                                    td, th {
                                    padding: 5px;
                                    }
                                </style>
                                <table>
                                    <tr>
                                        <th>Question</th>
                                        <th>Correct</th>
                                    </tr>
                                    <t t-foreach="exam_result.results" t-as="question_result">
                                        <tr>
                                            <td>
                                                <t t-esc="question_result.question_id.question.replace('&lt;p&gt;','').replace('&lt;/p&gt;','')"/>
                                            </td>
                                            <td>
                                                <t t-if="question_result.correct == True">
                                                    <span style="color:green;">Correct</span>
                                                </t>
                                                <t t-if="question_result.correct == False">
                                                    <span style="color:red;">Incorrect</span>
                                                </t>
                                            </td>
                                        </tr>
                                    </t>
                                </table>
                            </t>
                        </div>
                    </div>
                </div>
            </t>
        </template>
    </data>
</odoo>