add expiration duration to template preferences

This commit is contained in:
Alex Turchyn
2025-05-09 18:56:14 +03:00
committed by Pete Matsyburka
parent 7fb148c85c
commit 7b6fc7d06f
7 changed files with 171 additions and 4 deletions
+14
View File
@@ -63,6 +63,7 @@ module Submissions
submission = template.submissions.new(created_by_user: user,
account_id: user.account_id,
source:,
expire_at: params[:expire_at].presence || build_default_expire_at(template),
template_submitters: template.submitters)
submission.submitters.new(email: normalize_email(email),
@@ -207,4 +208,17 @@ module Submissions
Submissions::GenerateCombinedAttachment.call(submission.submitters.completed.order(:completed_at).last)
end
def build_default_expire_at(template)
default_expire_at_duration = template.preferences['default_expire_at_duration'].presence
default_expire_at = template.preferences['default_expire_at'].presence
return if default_expire_at_duration.blank?
if default_expire_at_duration == 'specified_date' && default_expire_at.present?
Time.zone.parse(default_expire_at)
elsif Template::EXPIRATION_DURATIONS[default_expire_at_duration]
Time.current.in_time_zone(template.account.timezone) + Template::EXPIRATION_DURATIONS[default_expire_at_duration]
end
end
end
+2 -1
View File
@@ -16,11 +16,12 @@ module Submissions
set_submission_preferences = submission_preferences.slice('send_email', 'bcc_completed')
set_submission_preferences['send_email'] = true if params['send_completed_email']
expire_at = attrs[:expire_at] || Submissions.build_default_expire_at(template)
submission = template.submissions.new(created_by_user: user, source:,
account_id: user.account_id,
preferences: set_submission_preferences,
expire_at: attrs[:expire_at],
expire_at:,
template_submitters: [], submitters_order:)
template_submitters = template.submitters.deep_dup