review.html 11.9 KB
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title> Teste </title>
    <link rel="icon" href="/static/favicon.ico">

<!-- MathJax -->
    <script type="text/x-mathjax-config">
        MathJax.Hub.Config({
            tex2jax: {
                inlineMath: [["$$$","$$$"], ["$","$"], ["\\(","\\)"]]
            }
        });
    </script>
    <script type="text/javascript" src="/static/mathjax/MathJax.js?config=TeX-AMS_CHTML-full"></script>

<!-- Bootstrap -->
    <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.min.css">
    <link rel="stylesheet" href="/static/bootstrap/css/bootstrap-theme.min.css"> <!-- optional -->

<!-- other -->
    <link rel="stylesheet" href="/static/font-awesome/css/font-awesome.min.css">
    <link rel="stylesheet" href="/static/css/github.css">  <!-- syntax highlight -->
    <link rel="stylesheet" href="/static/css/sticky-footer-navbar.css">
    <link rel="stylesheet" href="/static/css/test.css">

    <script src="/static/js/jquery.min.js"></script>
    <script src="/static/bootstrap/js/bootstrap.min.js"></script>
</head>
<!-- ===================================================================== -->
<body>
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
  <div class="container-fluid drop-shadow">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">
        Revisão de Prova
      </a>
  </div>
</nav>
<!-- ===================================================================== -->
<div class="container">
    <div class="jumbotron drop-shadow">
        <big>
            <dl class="dl-horizontal">
                <dt>Prova:</dt><dd>${t['title']}</dd>
                <dt>Nome:</dt><dd>${t['student']['name']}</dd>
                <dt>Número:</dt><dd>${t['student']['number']}</dd>
                <dt>Início:</dt><dd>${t['start_time'][:19]}</dd>
                <dt>Fim:</dt><dd>${t['finish_time'][:19]}</dd>
                <dt>Nota:</dt>
                <dd>
                    % if t['grade'] < 10:
                        <span class="label label-danger">${t['grade']}</span> valores
                    % elif t['grade'] < 15:
                        <span class="label label-warning">${t['grade']}</span> valores
                    % else:
                        <span class="label label-success">${t['grade']}</span> valores
                    % endif
                    % if t['state'] == 'QUIT':
                        (DESISTÊNCIA)
                    % endif
                </dd>
                % if t['comment'] != '':
                    <dt>Comentário:</dt><dd>${t['comment']}</dd>
                % endif
            </dl>
        </big>
        <small>
            <dl class="dl-horizontal">
                <dt>Referência:</dt><dd>${t['ref']}</dd>
                <dt>IP:</dt><dd>${t['student']['ip_address']}</dd>
                <dt>Browser:</dt><dd>${t['student']['user_agent']}</dd>
            </dl>
        </small>
    </div>

    <%!
        from tools import md_to_html_review
    %>
    <%
        total_points = sum(q['points'] for q in t['questions'])
    %>

    % for i,q in enumerate(t['questions']):

        <div class="ui-corner-all custom-corners">
            % if q['type'] == 'information':
                <div class="panel panel-info drop-shadow">
                    <div class="panel-heading clearfix">
                        <h4 class="panel-title pull-left">
                            <i class="fa fa-info-circle" aria-hidden="true"></i>
                            ${q['title']}
                        </h4>
                    </div>
                    <div class="panel-body">
                        ${md_to_html_review(q['text'], q)}
                    </div>
                </div>
            % elif q['type'] == 'warning':
                <div class="alert alert-warning drop-shadow" role="alert">
                    <h4>
                        <i class="fa fa-question-circle" aria-hidden="true"></i>
                        ${q['title']}
                    </h4>
                    <p>
                        ${md_to_html_review(q['text'], q)}
                    </p>
                </div>
            % elif q['type'] == 'alert':
                <div class="alert alert-danger drop-shadow" role="alert">
                    <h4>
                        <i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
                        ${q['title']}
                    </h4>
                    <p>
                        ${md_to_html_review(q['text'], q)}
                    </p>
                </div>
            % else:
                <div class="panel panel-primary drop-shadow">
                    <div class="panel-heading clearfix">
                        <h4 class="panel-title pull-left">
                            ${q['title']}
                        </h4>
                        <div class="pull-right">
                            Classificar&nbsp;
                            % if q['answer'] is not None:
                                <i class="fa fa-check-square-o" aria-hidden="true"></i>
                            % else:
                                <i class="fa fa-square-o" aria-hidden="true"></i>
                            % endif
                        </div>
                    </div>
                    <div class="panel-body" id="example${i}">
                        <div class="question">
                            ${md_to_html_review(q['text'], q)}
                        </div>

                        % if q['type'] == 'radio':
                        <ul class="list-group">
                            % for opt in q['options']:
                                <li class="list-group-item">
                                % if q['answer'] is not None and str(loop.index) == q['answer']:
                                    ${md_to_html_review('<i class="fa fa-dot-circle-o" aria-hidden="true"></i> ' + opt, q)}

                                    % if q['correct'][loop.index] > 0:
                                    <div class="text-right text-success">
                                        <i class="fa fa-thumbs-o-up" aria-hidden="true"></i>
                                    </div>
                                    % else:
                                    <div class="text-right text-danger">
                                        <i class="fa fa-thumbs-o-down" aria-hidden="true"></i>
                                    </div>
                                    % endif

                                % else:
                                    ${md_to_html_review('<i class="fa fa-circle-o" aria-hidden="true"></i> ' + opt, q)}

                                    % if q['correct'][loop.index] > 0:
                                    <div class="text-right text-info">
                                        <i class="fa fa-hand-o-left" aria-hidden="true"></i>
                                    </div>
                                    % endif
                                % endif
                                </li>
                            % endfor
                        </ul>
                        % elif q['type'] == 'checkbox':
                        <ul class="list-group">
                            % for opt in q['options']:
                                <li class="list-group-item">
                                % if q['answer'] is not None and str(loop.index) in q['answer']:
                                    ${md_to_html_review('<i class="fa fa-check-square-o" aria-hidden="true"></i> ' + opt, q)}

                                    % if q['correct'][loop.index] > 0:
                                    <div class="text-right text-success">
                                        <i class="fa fa-thumbs-o-up" aria-hidden="true"></i>
                                    </div>
                                    % elif q['correct'][loop.index] < 0:
                                    <div class="text-right text-danger">
                                        <i class="fa fa-thumbs-o-down" aria-hidden="true"></i>
                                    </div>
                                    % endif

                                % else:
                                    ${md_to_html_review('<i class="fa fa-square-o" aria-hidden="true"></i> ' + opt, q)}

                                    % if q['correct'][loop.index] > 0:
                                    <div class="text-right text-danger">
                                        <i class="fa fa-thumbs-o-down" aria-hidden="true"></i>
                                    </div>
                                    % elif q['correct'][loop.index] < 0:
                                    <div class="text-right text-success">
                                        <i class="fa fa-thumbs-o-up" aria-hidden="true"></i>
                                    </div>
                                    % endif

                                % endif
                                </li>
                            % endfor
                        </ul>
                        % elif q['type'] in ('text', 'text_regex', 'textarea'):
                            <pre>${q['answer'] if q['answer'] is not None else ''}</pre>
                        % endif

                        % if t['show_hints']:
                            % if 'hint' in q:
                                <button class="btn btn-sm btn-warning" type="button" data-toggle="collapse" data-target="#hint-${q['ref']}" aria-expanded="false" aria-controls="hint-${q['ref']}">
                                    Ajuda
                                </button>
                                <div class="collapse" id="hint-${q['ref']}">
                                    <div class="well">
                                        ${md_to_html_review(q['hint'], q)}
                                    </div>
                                </div>
                            % endif  # hint
                        % endif

                        % if t['show_points']:
                            <p class="text-right">
                            <small>(Cotação: ${round(q['points'] / total_points * 20.0, 1)} pontos)</small>
                            <p>
                        % endif

                    </div> <!-- panel-body -->

                % if t['state'] == 'FINISHED':
                    <div class="panel-footer">
                        % if q['grade'] > 0.99:
                        <p class="text-success">
                            <i class="fa fa-thumbs-o-up" aria-hidden="true"></i>
                            ${round(q['grade'] * q['points'] / total_points * 20.0, 2)} pontos<br>
                            ${q['comments']}
                        </p>
                        % elif q['grade'] > 0.49:
                        <p class="text-warning">
                            <i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
                            ${round(q['grade'] * q['points'] / total_points * 20.0, 2)} pontos<br>
                            ${q['comments']}
                        </p>
                        % else:
                        <p class="text-danger">
                            <i class="fa fa-thumbs-o-down" aria-hidden="true"></i>
                            ${round(q['grade'] * q['points'] / total_points * 20.0, 2)} pontos<br>
                            ${q['comments']}
                        </p>
                        % endif
                    </div>
                % endif

                </div> <!-- panel -->
            % endif   # question type
        </div> <!-- ui-corner-all custom-corners -->
    % endfor
</div> <!-- container -->
</body>
</html>