add name and phone to submitter details

This commit is contained in:
Alex Turchyn
2023-09-03 14:05:31 +03:00
parent b1b46cf998
commit a80e20234f
41 changed files with 575 additions and 343 deletions
+12 -8
View File
@@ -16,18 +16,22 @@ module ReplaceEmailVariables
slug: submitter.slug, **Docuseal.default_url_options
)
submission_link =
Rails.application.routes.url_helpers.submission_url(
submitter.submission, **Docuseal.default_url_options
)
if submitter.submission
submission_link =
Rails.application.routes.url_helpers.submission_url(
submitter.submission, **Docuseal.default_url_options
)
end
text = text.gsub(TEMAPLTE_NAME, submitter.template.name)
text = text.gsub(SUBMITTER_EMAIL, submitter.email)
text = text.gsub(TEMAPLTE_NAME, submitter.template.name) if submitter.template
text = text.gsub(SUBMITTER_EMAIL, submitter.email) if submitter.email
text = text.gsub(SUBMITTER_LINK, submitter_link)
text = text.gsub(SUBMISSION_LINK, submission_link)
text = text.gsub(SUBMISSION_LINK, submission_link) if submission_link
text = text.gsub(DOCUMENTS_LINKS, build_documents_links_text(submitter))
text.gsub(ACCOUNT_NAME, submitter.template.account.name)
text.gsub(ACCOUNT_NAME, submitter.template.account.name) if submitter.template
text
end
def build_documents_links_text(submitter)
+7 -5
View File
@@ -11,33 +11,35 @@ module Submissions
submission.save!
end
def create_from_emails(template:, user:, emails:, source:, send_email: false)
def create_from_emails(template:, user:, emails:, source:, mark_as_sent: false)
emails = emails.to_s.scan(User::EMAIL_REGEXP) unless emails.is_a?(Array)
emails.map do |email|
submission = template.submissions.new(created_by_user: user, source:, template_submitters: template.submitters)
submission.submitters.new(email:,
uuid: template.submitters.first['uuid'],
sent_at: send_email ? Time.current : nil)
sent_at: mark_as_sent ? Time.current : nil)
submission.tap(&:save!)
end
end
def create_from_submitters(template:, user:, submissions_attrs:, source:, send_email: false)
def create_from_submitters(template:, user:, submissions_attrs:, source:, mark_as_sent: false)
submissions_attrs.map do |attrs|
submission = template.submissions.new(created_by_user: user, source:, template_submitters: template.submitters)
attrs[:submitters].each_with_index do |submitter_attrs, index|
uuid =
submitter_attrs[:uuid].presence ||
template.submitters.find { |e| e['name'] == submitter_attrs[:name] }&.dig('uuid') ||
template.submitters.find { |e| e['name'] == submitter_attrs[:role] }&.dig('uuid') ||
template.submitters[index]&.dig('uuid')
next if uuid.blank?
submission.submitters.new(email: submitter_attrs[:email],
sent_at: send_email ? Time.current : nil,
phone: submitter_attrs[:phone].to_s.gsub(/[^0-9+]/, ''),
name: submitter_attrs[:name],
sent_at: mark_as_sent && submitter_attrs[:email].present? ? Time.current : nil,
values: submitter_attrs[:values] || {},
uuid:)
end
+9 -1
View File
@@ -91,15 +91,23 @@ module Submissions
def build_submission_data(submitter, submitter_name, submitters_count)
[
{
name: column_name('Name', submitter_name, submitters_count),
value: submitter.name
},
{
name: column_name('Email', submitter_name, submitters_count),
value: submitter.email
},
{
name: column_name('Phone', submitter_name, submitters_count),
value: submitter.phone
},
{
name: column_name('Completed At', submitter_name, submitters_count),
value: submitter.completed_at
}
]
].reject { |e| e[:value].blank? }
end
def column_name(name, submitter_name, submitters_count = 1)
+10
View File
@@ -28,4 +28,14 @@ module Submitters
record: submitter
)
end
def send_signature_requests(submitters, params)
return unless params[:send_email] == true || params[:send_email] == '1'
submitters.each do |submitter|
next if submitter.email.blank?
SubmitterMailer.invitation_email(submitter, message: params[:message]).deliver_later!
end
end
end
+1 -1
View File
@@ -14,7 +14,7 @@ module Submitters
.except('uuid', 'values', 'slug')
.merge('values' => values,
'documents' => documents,
'submitter_name' => submitter_name)
'role' => submitter_name)
end
def build_values_array(submitter)