allow to invite party
This commit is contained in:
committed by
Oleksandr Turchyn
parent
3604fb6461
commit
10fbdf6612
@@ -14,6 +14,7 @@ module SubmissionEvents
|
||||
phone_verified: 'Phone verified',
|
||||
start_form: 'Submission started',
|
||||
view_form: 'Form viewed',
|
||||
invite_party: 'Invited',
|
||||
complete_form: 'Submission completed',
|
||||
api_complete_form: 'Submission completed via API'
|
||||
}.freeze
|
||||
|
||||
@@ -10,14 +10,6 @@ module Submissions
|
||||
assign_defined_submitters(submission)
|
||||
assign_linked_submitters(submission)
|
||||
|
||||
if submission.submitters.size == 1 && submission.template.submitters.size == 2 && submission.source != 'embed'
|
||||
submission.submitters.new(
|
||||
account_id: submission.account_id,
|
||||
uuid: submission.template.submitters.find { |e| e['uuid'] != submission.submitters.first.uuid }['uuid'],
|
||||
email: submission.template.author.email
|
||||
)
|
||||
end
|
||||
|
||||
submission
|
||||
end
|
||||
|
||||
|
||||
@@ -39,10 +39,21 @@ module Submissions
|
||||
|
||||
next if submission.submitters.blank?
|
||||
|
||||
maybe_add_invite_submitters(submission, template)
|
||||
|
||||
submission.tap(&:save!)
|
||||
end
|
||||
end
|
||||
|
||||
def maybe_add_invite_submitters(submission, template)
|
||||
template.submitters.each do |item|
|
||||
next if item['invite_by_uuid'].blank? ||
|
||||
submission.template_submitters.any? { |e| e['uuid'] == item['uuid'] }
|
||||
|
||||
submission.template_submitters << item
|
||||
end
|
||||
end
|
||||
|
||||
def maybe_set_template_fields(submission, submitters_attrs, default_submitter_uuid: nil)
|
||||
template_fields = (submission.template_fields || submission.template.fields).deep_dup
|
||||
|
||||
|
||||
@@ -348,13 +348,21 @@ module Submissions
|
||||
|
||||
events_data = submission.submission_events.sort_by(&:event_timestamp).map do |event|
|
||||
submitter = submission.submitters.find { |e| e.id == event.submitter_id }
|
||||
|
||||
text = SubmissionEvents::EVENT_NAMES[event.event_type.to_sym]
|
||||
|
||||
if event.event_type == 'invite_party' &&
|
||||
(invited_submitter = submission.submitters.find { |e| e.uuid == event.data['uuid'] }) &&
|
||||
(name = submission.template_submitters.find { |e| e['uuid'] == event.data['uuid'] }&.dig('name'))
|
||||
text += ['', invited_submitter.name || invited_submitter.email || invited_submitter.phone, name].join(' ')
|
||||
end
|
||||
|
||||
[
|
||||
"#{I18n.l(event.event_timestamp.in_time_zone(account.timezone), format: :long, locale: account.locale)} " \
|
||||
"#{TimeUtils.timezone_abbr(account.timezone, event.event_timestamp)}",
|
||||
composer.document.layout.formatted_text_box(
|
||||
[
|
||||
{ text: SubmissionEvents::EVENT_NAMES[event.event_type.to_sym],
|
||||
font: [FONT_NAME, { variant: :bold }] },
|
||||
{ text:, font: [FONT_NAME, { variant: :bold }] },
|
||||
event.event_type.include?('send_') ? ' to ' : ' by ',
|
||||
if event.event_type.include?('sms') || event.event_type.include?('phone')
|
||||
event.data['phone'] || submitter.phone
|
||||
|
||||
@@ -23,4 +23,11 @@ module Templates
|
||||
|
||||
templates.where(Template.arel_table[:name].lower.matches("%#{keyword.downcase}%"))
|
||||
end
|
||||
|
||||
def filter_undefined_submitters(template)
|
||||
template.submitters.to_a.select do |item|
|
||||
item['invite_by_uuid'].blank? && item['linked_to_uuid'].blank? &&
|
||||
item['is_requester'].blank? && item['email'].blank?
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user