From 5ddf9bdcb3c124e9f6f042d412612cba8bf88093 Mon Sep 17 00:00:00 2001 From: b0ink <40929320+b0ink@users.noreply.github.com> Date: Fri, 16 Oct 2026 16:16:04 +1100 Subject: [PATCH] fix: ensure submission date is saved correctly --- app/models/task.rb | 4 +++- app/views/task/task_pdf.pdf.erb | 2 +- test/models/task_test.rb | 5 +++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/models/task.rb b/app/models/task.rb index a690571330..92d769e8d3 100644 --- a/app/models/task.rb +++ b/app/models/task.rb @@ -1467,6 +1467,7 @@ class TaskAppController < ApplicationController include LatexHelper attr_accessor :task + attr_accessor :submission_date attr_accessor :files attr_accessor :base_path attr_accessor :image_path @@ -1475,6 +1476,7 @@ class TaskAppController < ApplicationController def init(task, is_retry) @task = task + @submission_date = task.submission_date || task.file_uploaded_at || task.task_submissions.maximum(:submission_time) @files = task.in_process_files_for_task(is_retry) @base_path = task.student_work_dir(:in_process, false) @image_path = Rails.root.join('public/assets/images') @@ -1747,7 +1749,7 @@ def create_submission_and_trigger_state_change(user, propagate = true, contribut reverse_jplag_similarities(&:destroy) reverse_moss_similarities(&:destroy) - save + save! end end diff --git a/app/views/task/task_pdf.pdf.erb b/app/views/task/task_pdf.pdf.erb index e279bff132..86c40c525e 100644 --- a/app/views/task/task_pdf.pdf.erb +++ b/app/views/task/task_pdf.pdf.erb @@ -31,7 +31,7 @@ <% else %> <%= lesc @task.student.first_name %> \textsc{<%= lesc @task.student.last_name %>}\\ <%= lesc @task.student.username %>\\ -<%= lesc @task.submission_date.nil? ? "" : @task.submission_date.localtime.strftime("%Y/%m/%d %H:%M") %> +<%= lesc @submission_date.nil? ? "" : @submission_date.localtime.strftime("%Y/%m/%d %H:%M") %> <% end %> \end{flushleft} \end{minipage} diff --git a/test/models/task_test.rb b/test/models/task_test.rb index 3983fc803c..28dcf42ed2 100644 --- a/test/models/task_test.rb +++ b/test/models/task_test.rb @@ -290,11 +290,16 @@ def test_pdf_creation_with_gif assert_equal 201, last_response.status, last_response_body task = project.task_for_task_definition(td) + submission_time = task.file_uploaded_at + assert submission_time + task.update_column(:submission_date, nil) assert task.convert_submission_to_pdf(log_to_stdout: true) path = task.zip_file_path_for_done_task assert path assert File.exist? path assert File.exist? task.final_pdf_path + assert_includes PDF::Reader.new(task.final_pdf_path).pages.first.text, + submission_time.localtime.strftime('%Y/%m/%d %H:%M') td.destroy assert_not File.exist? path