diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index 73b20c0..4a2ad6d 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -31,6 +31,20 @@ class HomeController < ApplicationController SendEmailJob.perform_later(@email_message.id) end + def order_meeting + @dotation = Dotation.friendly.find(params[:d]) + @consultation_email = ConsultationEmail.new() + end + + def order_meeting_save + @dotation = Dotation.friendly.find(params[:d]) + @consultation_email = ConsultationEmail.new(consultation_email_params) + @consultation_email.dotation_id = @dotation.id + return unless @consultation_email.save + + SendContactEmailJob.perform_later(@consultation_email.id) + end + def show @dotation = Dotation.friendly.find(params[:id]) @company_sizes = CompanySize.all @@ -88,4 +102,9 @@ class HomeController < ApplicationController def email_messages_params params.require(:email_message).permit(:subject, :email, :message) end + + def consultation_email_params + params.require(:consultation_email).permit(:phone_number, :email, + :project_value) + end end diff --git a/app/jobs/send_contact_email_job.rb b/app/jobs/send_contact_email_job.rb new file mode 100644 index 0000000..3a4bac7 --- /dev/null +++ b/app/jobs/send_contact_email_job.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +class SendContactEmailJob < ApplicationJob + queue_as :default + + def perform(consult_email_id) + consultation_email = ConsultationEmail.where(id: consult_email_id).first + return if consultation_email.blank? + + NotifyEmailMailer.with(email: consultation_email).contact_dotation.deliver + end +end diff --git a/app/mailers/notify_email_mailer.rb b/app/mailers/notify_email_mailer.rb index cb8343b..f79f350 100644 --- a/app/mailers/notify_email_mailer.rb +++ b/app/mailers/notify_email_mailer.rb @@ -11,12 +11,8 @@ class NotifyEmailMailer < ApplicationMailer end def contact_dotation - @email_filter = FilterForEmail.where(id: params[:email_filter]).first - @dotation = Dotation.where(id: params[:dotation_id]).first - @email_params = { - i: @email_filter.email, - k: @email_filter.unique_name - } - mail(to: @email_filter.email, subject: 'Pojawiła się nowa dotacja') + @consultation_email = ConsultationEmail.where(id: params[:email]).first + @dotation = @consultation_email.dotation + mail(to: @dotation.partner.link_url, subject: 'Prośba o wsparcie w sprawie dotacji') end end diff --git a/app/models/consultation_email.rb b/app/models/consultation_email.rb new file mode 100644 index 0000000..a02d265 --- /dev/null +++ b/app/models/consultation_email.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +# Consulatation emails +class ConsultationEmail < ApplicationRecord + # == Constants ============================================================ + PROJECT_VALUES = { + 1 => '0 - 1 mln.', + 2 => '1 - 2 mln.', + 3 => '2 - 3 mln.', + 4 => '3 mln i powyżej' + }.freeze + # == Attributes =========================================================== + + # == Extensions =========================================================== + + # == Relationships ======================================================== + belongs_to :dotation + # == Validations ========================================================== + validates :phone_number, presence: true + validates :email, presence: true + validates :project_value, presence: true + # == Scopes =============================================================== + + # == Callbacks ============================================================ + + # == Class Methods ======================================================== + + # == Instance Methods ===================================================== +end diff --git a/app/models/partner.rb b/app/models/partner.rb index 87bb7a6..3504834 100644 --- a/app/models/partner.rb +++ b/app/models/partner.rb @@ -13,6 +13,8 @@ class Partner < ApplicationRecord # == Validations ========================================================== validates :name, presence: true + validates :description, presence: true + validates :link_url, presence: true # == Scopes =============================================================== # == Callbacks ============================================================ diff --git a/app/views/experts/_form.html.erb b/app/views/experts/_form.html.erb index 6467a3a..4d963bc 100644 --- a/app/views/experts/_form.html.erb +++ b/app/views/experts/_form.html.erb @@ -6,7 +6,7 @@
<%= I18n.t('consultation_email.form_line2') %>
+| + |
|
+ Witaj, + Pojawiła się nowa prośba w pozyskaniu dotacji <%= @dotation.formal_name %> + Nadawca wiadomości: <%= @consultation_email.email %> + Numer telefonu: <%= @consultation_email.phone_number %> + Wartość projektu: <%= ConsultationEmail::PROJECT_VALUES[@consultation_email.project_value] %> + |
+