Prova:
${t['title']}
Nome:
${t['student']['name']}
Número:
${t['student']['number']}
Início:
${t['start_time'][:19]}
Fim:
${t['finish_time'][:19]}
Nota:
% if t['grade'] < 10: ${t['grade']} valores % elif t['grade'] < 15: ${t['grade']} valores % else: ${t['grade']} valores % endif % if t['state'] == 'QUIT': (DESISTÊNCIA) % endif
% if t['comment'] != '':
Comentário:
${t['comment']}
% endif
Referência:
${t['ref']}
IP:
${t['student']['ip_address']}
Browser:
${t['student']['user_agent']}
<%! from tools import md_to_html_review %> <% total_points = sum(q['points'] for q in t['questions']) %> % for i,q in enumerate(t['questions']):
% if q['type'] == 'information':

${q['title']}

${md_to_html_review(q['text'], q)}
% elif q['type'] == 'warning': % elif q['type'] == 'alert': % else:

${q['title']}

Classificar  % if q['answer'] is not None: % else: % endif
${md_to_html_review(q['text'], q)}
% if q['type'] == 'radio':
    % for opt in q['options']:
  • % if q['answer'] is not None and str(loop.index) == q['answer']: ${md_to_html_review(' ' + opt, q)} % if q['correct'][loop.index] > 0:
    % else:
    % endif % else: ${md_to_html_review(' ' + opt, q)} % if q['correct'][loop.index] > 0:
    % endif % endif
  • % endfor
% elif q['type'] == 'checkbox':
    % for opt in q['options']:
  • % if q['answer'] is not None and str(loop.index) in q['answer']: ${md_to_html_review(' ' + opt, q)} % if q['correct'][loop.index] > 0:
    % elif q['correct'][loop.index] < 0:
    % endif % else: ${md_to_html_review(' ' + opt, q)} % if q['correct'][loop.index] > 0:
    % elif q['correct'][loop.index] < 0:
    % endif % endif
  • % endfor
% elif q['type'] in ('text', 'text_regex', 'textarea'):
${q['answer'] if q['answer'] is not None else ''}
% endif % if t['show_hints']: % if 'hint' in q:
${md_to_html_review(q['hint'], q)}
% endif # hint % endif % if t['show_points']:

(Cotação: ${round(q['points'] / total_points * 20.0, 1)} pontos)

% endif

% if t['state'] == 'FINISHED': % endif
% endif # question type
% endfor