diff --git a/app/assets/javascripts/exams.js.erb b/app/assets/javascripts/exams.js.erb index 0b1d9af19..70863d0b1 100644 --- a/app/assets/javascripts/exams.js.erb +++ b/app/assets/javascripts/exams.js.erb @@ -20,7 +20,7 @@ function init_chronometer(page_question, total) { Timer.start(segundos); } -function save_question(duration) { +function save_question(duration, interrupt_exam=false) { Timer.pause(); var form = $('form.edit_exam_response'); @@ -30,7 +30,7 @@ function save_question(duration) { $.ajax({ url : post_url, type: request_method, - data : form_data + data : form_data + "&interrupt_exam=" + interrupt_exam }).done(function(response){ tempo(response.total_time, 1); }).fail(function(response){ diff --git a/app/controllers/exam_responses_controller.rb b/app/controllers/exam_responses_controller.rb index caa2bd52b..782926d30 100644 --- a/app/controllers/exam_responses_controller.rb +++ b/app/controllers/exam_responses_controller.rb @@ -31,6 +31,11 @@ def update SysLog::Actions.log_info do "[PROVA] Salvou resposta para user_id=#{current_user.try(:id)}, exam_response=#{params[:id]}" end + + if params[:interrupt_exam] == 'true' && exam.uninterrupted + @exam_response.academic_allocation_user.finish_attempt(get_remote_ip) + end + render_exam_response_success_json('updated', total_time_user) else SysLog::Actions.log_info do @@ -50,6 +55,7 @@ def update SysLog::Actions.log_info do "[PROVA] Não salvou resposta para user_id=#{current_user.try(:id)}, exam_response=#{params[:id]} - erro erro com data ou duração - duration_validate: #{duration_validate} - date_validate: #{date_validate} - acu: #{acu.as_json}" end + acu.finish_attempt(get_remote_ip) respond_to do |format| format.js { render :js => "validation_error('#{I18n.t('exam_responses.error.' + 'duration' + '')}');" } end diff --git a/app/views/exams/open.html.haml b/app/views/exams/open.html.haml index 1439c04b6..cc95afd39 100644 --- a/app/views/exams/open.html.haml +++ b/app/views/exams/open.html.haml @@ -24,7 +24,7 @@ }); if(click_pagination==false){ window.onbeforeunload = function () { - save_question(null); + save_question(null, true); return "#{I18n.t('exams.open.refresh')}"; } }