use submission completed_at
This commit is contained in:
@@ -15,7 +15,7 @@ module Submissions
|
||||
def call(submission)
|
||||
return nil unless submission
|
||||
|
||||
raise NotCompletedYet unless submission.submitters.all?(&:completed_at?)
|
||||
raise NotCompletedYet unless submission.completed_at?
|
||||
|
||||
total_wait_time ||= 0
|
||||
key = [KEY_PREFIX, submission.id].join(':')
|
||||
|
||||
@@ -104,16 +104,15 @@ module Submissions
|
||||
def filter_by_completed_at(submissions, filters)
|
||||
return submissions unless filters[:completed_at_from].present? || filters[:completed_at_to].present?
|
||||
|
||||
completed_arel = Submitter.arel_table[:completed_at].maximum
|
||||
submissions = submissions.completed.joins(:submitters).group(:id)
|
||||
submissions = submissions.completed
|
||||
|
||||
if filters[:completed_at_from].present?
|
||||
submissions = submissions.having(completed_arel.gteq(filters[:completed_at_from]))
|
||||
submissions = submissions.where(completed_at: filters[:completed_at_from]..)
|
||||
end
|
||||
|
||||
return submissions if filters[:completed_at_to].blank?
|
||||
|
||||
submissions.having(completed_arel.lteq(filters[:completed_at_to].end_of_day))
|
||||
submissions.where(completed_at: ..filters[:completed_at_to].end_of_day)
|
||||
end
|
||||
|
||||
def normalize_filter_params(params, current_user)
|
||||
|
||||
@@ -37,8 +37,8 @@ module Submissions
|
||||
json['fields'] = submission.template_fields || submission.template&.fields
|
||||
end
|
||||
|
||||
if submitters.all?(&:completed_at?)
|
||||
last_submitter = submitters.max_by(&:completed_at)
|
||||
if submission.completed_at?
|
||||
last_submitter = submitters.select(&:completed_at?).max_by(&:completed_at)
|
||||
|
||||
if with_documents
|
||||
json['documents'] = serialized_submitters.find { |e| e['id'] == last_submitter.id }['documents']
|
||||
@@ -49,7 +49,7 @@ module Submissions
|
||||
json['combined_document_url'] ||= maybe_build_combined_url(submitters, submission, params, expires_at:)
|
||||
|
||||
json['status'] = 'completed'
|
||||
json['completed_at'] = last_submitter.completed_at.as_json
|
||||
json['completed_at'] = submission.completed_at.as_json
|
||||
else
|
||||
json['documents'] = [] if with_documents
|
||||
json['audit_log_url'] = nil
|
||||
@@ -73,12 +73,12 @@ module Submissions
|
||||
end
|
||||
|
||||
def maybe_build_combined_url(submitters, submission, params, expires_at: nil)
|
||||
return unless submitters.all?(&:completed_at?)
|
||||
return unless submission.completed_at?
|
||||
|
||||
attachment = submission.combined_document_attachment
|
||||
|
||||
if !attachment && params[:include].to_s.include?('combined_document_url')
|
||||
submitter = submitters.max_by(&:completed_at)
|
||||
submitter = submitters.select(&:completed_at?).max_by(&:completed_at)
|
||||
|
||||
attachment = Submissions::EnsureCombinedGenerated.call(submitter)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user