Move info about the hoster into its own module
This commit is contained in:
parent
9029be4f0f
commit
47940d8977
51 changed files with 205 additions and 73 deletions
|
@ -32,7 +32,7 @@ module Controllers::User::Authorization
|
|||
store_location
|
||||
if current_user
|
||||
flash[:notice] =
|
||||
"It looks like you're not allowed to access that page. If this seems like a mistake, please contact #{Houdini.support_email}"
|
||||
"It looks like you're not allowed to access that page. If this seems like a mistake, please contact #{Houdini.hoster.support_email}"
|
||||
redirect_to root_path
|
||||
else
|
||||
msg ||= 'We need to sign you in before you can do that.'
|
||||
|
|
|
@ -11,6 +11,6 @@ class AdminMailer < BaseMailer
|
|||
def notify_failed_gift(donation, campaign_gift_option)
|
||||
@campaign_gift_option = campaign_gift_option
|
||||
@donation = donation
|
||||
mail subject: "Tried to associate donation #{donation.id} with campaign gift option #{campaign_gift_option.id} which is out of stock", to: Houdini.support_email, from: Houdini.support_email
|
||||
mail subject: "Tried to associate donation #{donation.id} with campaign gift option #{campaign_gift_option.id} which is out of stock", to: Houdini.hoster.support_email, from: Houdini.hoster.support_email
|
||||
end
|
||||
end
|
||||
|
|
|
@ -7,6 +7,6 @@ class BaseMailer < ActionMailer::Base
|
|||
include Devise::Controllers::UrlHelpers
|
||||
include ApplicationHelper
|
||||
helper ApplicationHelper
|
||||
default from: Houdini.support_email
|
||||
default from: Houdini.hoster.support_email
|
||||
layout 'email'
|
||||
end
|
||||
|
|
|
@ -7,12 +7,12 @@ class GenericMailer < BaseMailer
|
|||
@from_email = from_email
|
||||
@from_name = from_name
|
||||
@message = message
|
||||
mail(to: to_email, from: "#{from_name} <#{Houdini.support_email}>", reply_to: from_email, subject: subject.to_s)
|
||||
mail(to: to_email, from: "#{from_name} <#{Houdini.hoster.support_email}>", reply_to: from_email, subject: subject.to_s)
|
||||
end
|
||||
|
||||
# For sending a system notice to super admins
|
||||
def admin_notice(options)
|
||||
@from_email = Houdini.support_email
|
||||
@from_email = Houdini.hoster.support_email
|
||||
@from_name = 'CC Bot'
|
||||
@message = options[:body]
|
||||
emails = QueryUsers.super_admin_emails
|
||||
|
|
|
@ -14,10 +14,10 @@ class ImportRequest < ApplicationRecord
|
|||
rescue Exception => e
|
||||
body = "Import failed. Error: #{e}"
|
||||
GenericMailer.generic_mail(
|
||||
Houdini.support_email, Houdini.support_email, # FROM
|
||||
Houdini.hoster.support_email, Houdini.hoster.support_email, # FROM
|
||||
body,
|
||||
'Import error', # SUBJECT
|
||||
Houdini.support_email, Houdini.support_email # TO
|
||||
Houdini.hoster.support_email, Houdini.hoster.support_email # TO
|
||||
).deliver
|
||||
end
|
||||
end
|
||||
|
|
|
@ -16,7 +16,7 @@ Unfortunately, the credit card we currently have on file (<%= @card.name %>, exp
|
|||
<br>
|
||||
|
||||
<p>
|
||||
If you have any questions or concerns, please feel free to call us (888) 204-8792 or to email <%= Houdini.support_email %> and we'll respond promptly to help.
|
||||
If you have any questions or concerns, please feel free to call us (888) 204-8792 or to email <%= Houdini.hoster.support_email %> and we'll respond promptly to help.
|
||||
</p>
|
||||
<br>
|
||||
<br>
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
<p> By cancelling your subscription, we will move you onto the <strong>2.0% tier</strong> and your card will no longer get charged. </p>
|
||||
|
||||
<p> Contact <%= Houdini.support_email %> if you need any help with exports or migrations. </p>
|
||||
<p> Contact <%= Houdini.hoster.support_email %> if you need any help with exports or migrations. </p>
|
||||
|
||||
<p>
|
||||
<form action="/nonprofits/<%=@nonprofit.id%>/billing_subscription/cancel" method="post">
|
||||
|
|
|
@ -48,7 +48,7 @@ link_to_campaign: content_tag(:strong,
|
|||
|
||||
<p><%= t('campaign_mailer.if_you_need_help_email_support',
|
||||
email_support: content_tag(:strong,
|
||||
Houdini.support_email)
|
||||
Houdini.hoster.support_email)
|
||||
)%></p>
|
||||
|
||||
<%= render 'emails/sig' %>
|
||||
|
|
|
@ -13,9 +13,9 @@
|
|||
|
||||
<span class='globalFooter-sub-item'>
|
||||
<% if current_user %>
|
||||
<% if Houdini.terms_and_privacy&.help_url %><span><%= link_to("Help", Houdini.terms_and_privacy.help_url) %></span><% end %>
|
||||
<% if Houdini.hoster.terms_and_privacy&.help_url %><span><%= link_to("Help", Houdini.terms_and_privacy.help_url) %></span><% end %>
|
||||
<% else %>
|
||||
<% if Houdini.terms_and_privacy&.about_url %><span><%= link_to("About", Houdini.terms_and_privacy.about_url) %></span><% end %>
|
||||
<% if Houdini.hoster.terms_and_privacy&.about_url %><span><%= link_to("About", Houdini.terms_and_privacy.about_url) %></span><% end %>
|
||||
<% end %>
|
||||
</span>
|
||||
<span class='globalFooter-sub-item'>
|
||||
|
|
|
@ -5,5 +5,5 @@
|
|||
<p>All the best,</p>
|
||||
<p>
|
||||
The CommitChange Team<br>
|
||||
<a href="<%= Houdini.support_email %>"><%= Houdini.support_email %></a>
|
||||
<a href="<%= Houdini.hoster.support_email %>"><%= Houdini.hoster.support_email %></a>
|
||||
</p>
|
||||
|
|
|
@ -18,6 +18,6 @@
|
|||
<p><strong>Note:</strong> You can still share an unpublished event, but it will not show up on your nonprofit profile page or on your event listing page.</p>
|
||||
<br>
|
||||
|
||||
<p>If you need some help getting your event up and running, don't hesitate to contact <strong><%= Houdini.support_email %></strong>.</p>
|
||||
<p>If you need some help getting your event up and running, don't hesitate to contact <strong><%= Houdini.hoster.support_email %></strong>.</p>
|
||||
|
||||
<%= render 'emails/sig' %>
|
||||
|
|
|
@ -6,6 +6,6 @@
|
|||
|
||||
<p>Note: your generated CSV file will be automatically deleted from our servers after seven days. Don't worry; you can always visit your payments panel and export a new CSV file.</p>
|
||||
|
||||
<p>If you have any questions about this export, please contact <a href="mailto:<%= Houdini.support_email %>"><%= Houdini.support_email %></a>.</p>
|
||||
<p>If you have any questions about this export, please contact <a href="mailto:<%= Houdini.hoster.support_email %>"><%= Houdini.hoster.support_email %></a>.</p>
|
||||
|
||||
<%= render 'emails/sig' %>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE -%>
|
||||
<p>Your export from <%= Format::Date.simple @export.created_at %> did not succeed due to a technical error.</p>
|
||||
<p>While CommitChange engineers have been notified, don't hesitate to contact
|
||||
<a href="mailto:<%= Houdini.support_email %>"><%= Houdini.support_email %></a> with the following information:</p>
|
||||
<a href="mailto:<%= Houdini.hoster.support_email %>"><%= Houdini.hoster.support_email %></a> with the following information:</p>
|
||||
|
||||
<ul>
|
||||
<li>Export ID: <%= @export.id %></li>
|
||||
|
|
|
@ -6,6 +6,6 @@
|
|||
|
||||
<p>Note: your generated CSV file will be automatically deleted from our servers after seven days. Don't worry; you can always visit your recurring donations panel and export a new CSV file.</p>
|
||||
|
||||
<p>If you have any questions about this export, please contact <a href="mailto:<%= Houdini.support_email %>"><%= Houdini.support_email %></a>.</p>
|
||||
<p>If you have any questions about this export, please contact <a href="mailto:<%= Houdini.hoster.support_email %>"><%= Houdini.hoster.support_email %></a>.</p>
|
||||
|
||||
<%= render 'emails/sig' %>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE -%>
|
||||
<p>Your export from <%= Format::Date.simple @export.created_at %> did not succeed due to a technical error.</p>
|
||||
<p>While CommitChange engineers have been notified, don't hesitate to contact
|
||||
<a href="mailto:<%= Houdini.support_email %>"><%= Houdini.support_email %></a> with the following information:</p>
|
||||
<a href="mailto:<%= Houdini.hoster.support_email %>"><%= Houdini.hoster.support_email %></a> with the following information:</p>
|
||||
|
||||
<ul>
|
||||
<li>Export ID: <%= @export.id %></li>
|
||||
|
|
|
@ -4,6 +4,6 @@
|
|||
|
||||
<p>Note: your generated CSV file will be automatically deleted from our servers after seven days. Don't worry; you can always visit your recurring donations panel and export a new CSV file.</p>
|
||||
|
||||
<p>If you have any questions about this export, please contact <a href="mailto:<%= Houdini.support_email %>"><%= Houdini.support_email %></a>.</p>
|
||||
<p>If you have any questions about this export, please contact <a href="mailto:<%= Houdini.hoster.support_email %>"><%= Houdini.hoster.support_email %></a>.</p>
|
||||
|
||||
<%= render 'emails/sig' %>
|
|
@ -1,6 +1,6 @@
|
|||
<p>Your export from <%= Format::Date.simple @export.created_at %> did not succeed due to a technical error.</p>
|
||||
<p>While CommitChange engineers have been notified, don't hesitate to contact
|
||||
<a href="mailto:<%= Houdini.support_email %>"><%= Houdini.support_email %></a> with the following information:</p>
|
||||
<a href="mailto:<%= Houdini.hoster.support_email %>"><%= Houdini.hoster.support_email %></a> with the following information:</p>
|
||||
|
||||
<ul>
|
||||
<li>Export ID: <%= @export.id %></li>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
<p>To view your new payments data, visit: <a href='<%= root_url %>nonprofits/<%= @nonprofit.id %>/payments'>payment history.</a></p>
|
||||
|
||||
<p>If you have any questions about this import, please contact <%= Houdini.support_email %>.</p>
|
||||
<p>If you have any questions about this import, please contact <%= Houdini.hoster.support_email %>.</p>
|
||||
|
||||
|
||||
<%= render 'emails/sig' %>
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
<% if @theme == 'minimal' %>
|
||||
<div class="minimalFooter">
|
||||
<div class="container">
|
||||
<span>© <%= Time.current.year %> <%= Houdini.general.name %></span>
|
||||
<% if Houdini.terms_and_privacy&.about_url %><span><%= link_to("About", Houdini.terms_and_privacy.about_url) %></span><% end %>
|
||||
<span>© <%= Time.current.year %> <%= Houdini.hoster.legal_name %></span>
|
||||
<% if Houdini.hoster.terms_and_privacy&.about_url %><span><%= link_to("About", Houdini.terms_and_privacy.about_url) %></span><% end %>
|
||||
<span><%= link_to( t("footer.terms_and_privacy"), :static_terms_and_privacy) %></span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
<% unless current_role?([:nonprofit_admin,:nonprofit_associate]) %>
|
||||
<section class='sideNav-section'>
|
||||
<% if Houdini.terms_and_privacy&.help_url %>
|
||||
<% if Houdini.hoster.terms_and_privacy&.help_url %>
|
||||
<a class='sideNav-link' href="<%=Houdini.terms_and_privacy.help_url %>">
|
||||
<i class='sideNav-icon icon-bubble-ask-2'></i>
|
||||
<span class='sideNav-text'>Help</span>
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
</a>
|
||||
<% if current_role?([:nonprofit_admin,:nonprofit_associate]) %>
|
||||
|
||||
<% if Houdini.terms_and_privacy&.help_url %>
|
||||
<% if Houdini.hoster.terms_and_privacy&.help_url %>
|
||||
<a class='sideNav-link' href='<%=Houdini.terms_and_privacy.help_url %>'>
|
||||
<i class='sideNav-icon icon-question-mark'></i>
|
||||
<span class='sideNav-text'>Help</span>
|
||||
|
|
|
@ -8,6 +8,6 @@
|
|||
|
||||
<p>If you would like to get in touch with your supporter, you can email them at <a href="mailto:<%= @profile.user.email %>"><%= @profile.user.email %></a>.</p><br>
|
||||
|
||||
<p>If you need help or have any questions, don't hesitate to contact us at <strong><%= Houdini.support_email %></strong>.</p>
|
||||
<p>If you need help or have any questions, don't hesitate to contact us at <strong><%= Houdini.hoster.support_email %></strong>.</p>
|
||||
|
||||
<%= render 'emails/sig' %>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
<p><strong><a href='<%= root_url + "/nonprofits/#{@nonprofit.id}/payouts" %>'>Visit your payouts page to get everything sorted out.</a></strong></p>
|
||||
|
||||
<p>As always, if you have any questions, please send us a note at <%= Houdini.support_email %></p>
|
||||
<p>As always, if you have any questions, please send us a note at <%= Houdini.hoster.support_email %></p>
|
||||
|
||||
<%= render 'emails/sig' %>
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ Your invoice for the month of <%= @month_name %> has been paid and the receipt i
|
|||
CommitChange Inc.
|
||||
<br>Oakland, CA
|
||||
<br>EIN 46-3123854
|
||||
<br><%= Houdini.support_email %>
|
||||
<br><%= Houdini.hoster.support_email %>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
|
|
@ -12,6 +12,6 @@
|
|||
|
||||
<p><a href='<%= confirmation_nonprofits_bank_account_url(@nonprofit, :t => @bank_account.confirmation_token) %>' class='button'>Confirm Change</a></p>
|
||||
|
||||
<p>If you think something is wrong with this change, please contact <a href='mailto:<%= Houdini.support_email %>'><%= Houdini.support_email %></a>.</p>
|
||||
<p>If you think something is wrong with this change, please contact <a href='mailto:<%= Houdini.hoster.support_email %>'><%= Houdini.hoster.support_email %></a>.</p>
|
||||
|
||||
<%= render 'emails/sig' %>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
<p>If the above looks correct, we don't need any futher actions. The transfer will complete within 1-3 business days.</p><br>
|
||||
|
||||
<p><strong>If anything looks incorrect</strong>, please contact <a href='mailto:<%= Houdini.support_email %>'><%= Houdini.support_email %></a>.</p>
|
||||
<p><strong>If anything looks incorrect</strong>, please contact <a href='mailto:<%= Houdini.hoster.support_email %>'><%= Houdini.hoster.support_email %></a>.</p>
|
||||
|
||||
<%= render 'emails/sig' %>
|
||||
|
||||
|
|
|
@ -4,11 +4,11 @@
|
|||
|
||||
<%= render 'payout_table', payout: @payout %>
|
||||
|
||||
<p>Look for the deposit with in the above net amount with <strong><%= Houdini.support_email %></strong> in the statement.</p>
|
||||
<p>Look for the deposit with in the above net amount with <strong><%= Houdini.hoster.support_email %></strong> in the statement.</p>
|
||||
|
||||
<p><%= link_to 'Visit this link', nonprofits_payouts_url(@nonprofit) %> to view your detailed payout history.</p><br>
|
||||
|
||||
<p><strong>If anything looks incorrect</strong>, please contact <a href='mailto:<%= Houdini.support_email %>'><%= Houdini.support_email %></a>.</p>
|
||||
<p><strong>If anything looks incorrect</strong>, please contact <a href='mailto:<%= Houdini.hoster.support_email %>'><%= Houdini.hoster.support_email %></a>.</p>
|
||||
|
||||
<%= render 'emails/sig' %>
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ Here are a few things you can do right away to get up and running:
|
|||
</ul>
|
||||
|
||||
<p>
|
||||
If you need help or have any questions, our support team is just a phone call or email away. You can contact us directly at <%= Houdini.support_email %> or 888-204-8792.
|
||||
If you need help or have any questions, our support team is just a phone call or email away. You can contact us directly at <%= Houdini.hoster.support_email %> or 888-204-8792.
|
||||
</p>
|
||||
|
||||
<%= render 'emails/sig' %>
|
||||
|
|
|
@ -18,5 +18,5 @@
|
|||
<p>The bank account for this nonprofit was never initially confirmed.</p>
|
||||
<% end %>
|
||||
|
||||
<p>If you think this was in error, please contact <%= mail_to '<%= Houdini.support_email %>' %>
|
||||
<p>If you think this was in error, please contact <%= mail_to '<%= Houdini.hoster.support_email %>' %>
|
||||
</div>
|
||||
|
|
|
@ -10,6 +10,6 @@
|
|||
Once you've started completing these tasks, you'll see your dashboard come to life with helpful data and reminders.
|
||||
</span>
|
||||
|
||||
<% if Houdini.terms_and_privacy&.help_url %> If you need help with any these tasks, visit our <%= link_to("Help Center", Houdini.terms_and_privacy.help_url) %>.<% end %>
|
||||
<% if Houdini.hoster.terms_and_privacy&.help_url %> If you need help with any these tasks, visit our <%= link_to("Help Center", Houdini.terms_and_privacy.help_url) %>.<% end %>
|
||||
</p>
|
||||
</div>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
<p class='notification'>
|
||||
<!--= show_if payment_details.data.dispute -->
|
||||
One of your supporters has disputed a charge (ie. made a charge-back), meaning they have called their bank and claimed that the charge was unauthorized. You need to collect evidence, via email, that the supporter intended to make the charge. Please contact <%= Houdini.support_email %> so we can help resolve this for you.
|
||||
One of your supporters has disputed a charge (ie. made a charge-back), meaning they have called their bank and claimed that the charge was unauthorized. You need to collect evidence, via email, that the supporter intended to make the charge. Please contact <%= Houdini.hoster.support_email %> so we can help resolve this for you.
|
||||
</p>
|
||||
|
||||
<table class='table--small'>
|
||||
|
|
|
@ -67,6 +67,6 @@
|
|||
<div class='modal-body'>
|
||||
<p>Success! The confirmation email to activate your bank account has been successfully re-sent. Expect it to arrive in your inbox within a few minutes. If you can't find it, be sure to check your spam folder.</p>
|
||||
<p><blockquote>Why do we require this confirmation? It proves that you have access to both your <%= Houdini.general.name %> account and your email account, preventing anybody from changing your organization's bank account if you leave your CommitChange account signed in on a shared computer.</blockquote></p>
|
||||
<p>If you still have trouble finding the confirmation email, please contact <a href='mailto:<%= Houdini.support_email %>'><%= Houdini.support_email %></a>.</p>
|
||||
<p>If you still have trouble finding the confirmation email, please contact <a href='mailto:<%= Houdini.hoster.support_email %>'><%= Houdini.hoster.support_email %></a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
</p>
|
||||
<% end %>
|
||||
|
||||
<p class='note u-marginTop--10'>If you have any questions about your current plan, please contact <a href='mailto:<%= Houdini.support_email %>'><%= Houdini.support_email %></a></p>
|
||||
<p class='note u-marginTop--10'>If you have any questions about your current plan, please contact <a href='mailto:<%= Houdini.hoster.support_email %>'><%= Houdini.hoster.support_email %></a></p>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
|
@ -3,11 +3,11 @@
|
|||
<% content_for :title, "Terms and Privacy" %>
|
||||
<div class="container"><h1>Terms and Privacy</h1>
|
||||
|
||||
<% if Houdini.terms_and_privacy&.terms_url %>
|
||||
<% if Houdini.hoster.terms_and_privacy&.terms_url %>
|
||||
<h2><a href="<%= Houdini.terms_and_privacy.terms_url %>">Terms of Use</a></h2>
|
||||
<% end %>
|
||||
|
||||
<% if Houdini.terms_and_privacy&.privacy_url %>
|
||||
<% if Houdini.hoster.terms_and_privacy&.privacy_url %>
|
||||
<h2><a href="<%= Houdini.terms_and_privacy.privacy_url %>">Privacy Policy</a></h2>
|
||||
<% end %>
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ require "rails/test_unit/railtie"
|
|||
# Require the gems listed in Gemfile, including any gems
|
||||
# you've limited to :test, :development, or :production.
|
||||
Bundler.require(*Rails.groups)
|
||||
# require File.expand_path('lib/htp') # Hamster Table Print
|
||||
|
||||
module Commitchange
|
||||
class Application < Rails::Application
|
||||
config.load_defaults '5.0'
|
||||
|
@ -110,3 +110,6 @@ module Commitchange
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
# we want to add the houdini configuration
|
||||
require_relative './houdini_config'
|
9
config/houdini_config.rb
Executable file
9
config/houdini_config.rb
Executable file
|
@ -0,0 +1,9 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
# License: AGPL-3.0-or-later WITH WTO-AP-3.0-or-later
|
||||
# Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE
|
||||
|
||||
# customize Houdini configuration here.
|
||||
Rails.application.configure do
|
||||
config.houdini.hoster.legal_name = 'SET config.houdini.hoster.legal_name IN app/config/houdini_config.rb'
|
||||
end
|
|
@ -8,7 +8,7 @@ Devise.setup do |config|
|
|||
# ==> Mailer Configuration
|
||||
# Configure the e-mail address which will be shown in Devise::Mailer,
|
||||
# note that it will be overwritten if you use your own mailer class with default "from" parameter.
|
||||
config.mailer_sender = Houdini.support_email
|
||||
config.mailer_sender = Houdini.hoster.support_email
|
||||
|
||||
# Configure the class responsible to send e-mails.
|
||||
# config.mailer = "Devise::Mailer"
|
||||
|
|
|
@ -6,4 +6,4 @@ require 'stripe'
|
|||
|
||||
#Stripe.api_key = Houdini.payment_providers.stripe.stripe.private_key
|
||||
|
||||
Rails.application.config.houdini.support_email = "support@email.com"
|
||||
#Rails.application.config.Houdini.hoster.support_email = "support@email.com"
|
||||
|
|
16
docs/event_definitions/Hoster.ts
Normal file
16
docs/event_definitions/Hoster.ts
Normal file
|
@ -0,0 +1,16 @@
|
|||
// License: LGPL-3.0-or-later
|
||||
|
||||
/**
|
||||
* Describes the hoster of this instance of Houdini
|
||||
*/
|
||||
export interface Hoster {
|
||||
casual_name: string;
|
||||
legal_name: string;
|
||||
main_admin_email: string;
|
||||
support_email: string;
|
||||
terms_and_privacy:{
|
||||
about_url?: string;
|
||||
help_url?: string;
|
||||
privacy_url?: string;
|
||||
};
|
||||
}
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
# License: AGPL-3.0-or-later WITH WTO-AP-3.0-or-later
|
||||
# Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE
|
||||
require "houdini/engine"
|
||||
|
||||
module Houdini
|
||||
extend ActiveSupport::Autoload
|
||||
|
@ -14,6 +13,8 @@ module Houdini
|
|||
autoload :EventPublisher
|
||||
autoload :WebhookAdapter
|
||||
autoload :NonprofitCreation
|
||||
autoload :Hoster
|
||||
autoload :EngineInitializers
|
||||
|
||||
mattr_accessor :intl, :maintenance, :ccs
|
||||
|
||||
|
@ -32,12 +33,15 @@ module Houdini
|
|||
mattr_accessor :show_state_field, default: true
|
||||
|
||||
mattr_accessor :nonprofits_must_be_vetted, default: false
|
||||
mattr_accessor :terms_and_privacy, default: {}
|
||||
mattr_accessor :button_host
|
||||
|
||||
mattr_accessor :support_email
|
||||
mattr_accessor :hoster, default: Houdini::Hoster
|
||||
|
||||
mattr_accessor :core_classes, default: {supporter: 'Supporter', nonprofit: 'Nonprofit'}
|
||||
|
||||
mattr_accessor :event_publisher, default: Houdini::EventPublisher.new
|
||||
|
||||
end
|
||||
|
||||
# need to have Houdini loaded first before we can add engine
|
||||
require "houdini/engine"
|
||||
|
|
|
@ -54,12 +54,7 @@ module Houdini
|
|||
|
||||
config.houdini.show_state_field = true
|
||||
|
||||
config.houdini.intl = ActiveSupport::OrderedOptions.new
|
||||
config.houdini.intl.language = :en
|
||||
config.houdini.intl.available_locales = [:en, :de, :es, :fr, :it, :nl, :pl, :ro]
|
||||
config.houdini.intl.all_countries = nil
|
||||
config.houdini.intl.currencies = ["usd"]
|
||||
config.houdini.intl.all_currencies = nil
|
||||
|
||||
|
||||
config.houdini.nonprofits_must_be_vetted = false
|
||||
|
||||
|
@ -73,10 +68,10 @@ module Houdini
|
|||
|
||||
config.houdini.listeners = []
|
||||
|
||||
initializer 'houdini.set_configuration', before: 'factory_bot.set_fixture_replacement' do |app|
|
||||
initializer 'houdini.set_configuration', before: 'houdini.finish_configuration' do |app|
|
||||
app.config.to_prepare do
|
||||
Houdini.core_classes = app.config.houdini.core_classes
|
||||
Houdini.support_email = app.config.houdini.support_email || ActionMailer::Base.default[:from]
|
||||
|
||||
|
||||
Houdini.button_host = app.config.houdini.button_host ||
|
||||
ActionMailer::Base.default_url_options[:host]
|
||||
|
@ -90,14 +85,6 @@ module Houdini
|
|||
options = app.config.houdini.ccs_options || {}
|
||||
Houdini.ccs = Houdini::Ccs.build(ccs,
|
||||
**options)
|
||||
Houdini.terms_and_privacy = app.config.houdini.terms_and_privacy
|
||||
|
||||
Houdini.intl = Houdini::Intl.new(app.config.houdini.intl.to_h)
|
||||
Houdini.intl.all_countries ||= ISO3166::Country.all.map(&:alpha2)
|
||||
Houdini.intl.all_currencies ||= Money::Currency.table
|
||||
raise("The language #{Houdini.intl.language} is not listed \
|
||||
in the provided locales: #{Houdini.intl.available_locales.join(', ')}") if Houdini.intl.available_locales.map(&:to_s)
|
||||
.none?{|l| l == Houdini.intl.language.to_s}
|
||||
|
||||
Houdini.maintenance = Houdini::Maintenance.new(app.config.houdini.maintenance.to_h)
|
||||
|
||||
|
@ -114,5 +101,11 @@ in the provided locales: #{Houdini.intl.available_locales.join(', ')}") if Houdi
|
|||
Houdini.event_publisher.subscribe_all(app.config.houdini.listeners)
|
||||
end
|
||||
end
|
||||
|
||||
initializer 'houdini.finish_configuration', before: 'factory_bot.set_fixture_replacement' do |app|
|
||||
# nothing to do, we just want to make sure we have proper initializer order
|
||||
end
|
||||
|
||||
include Houdini::EngineInitializers
|
||||
end
|
||||
end
|
||||
|
|
16
gems/bess/lib/houdini/engine_initializers.rb
Normal file
16
gems/bess/lib/houdini/engine_initializers.rb
Normal file
|
@ -0,0 +1,16 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
# License: AGPL-3.0-or-later WITH WTO-AP-3.0-or-later
|
||||
# Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE
|
||||
|
||||
# loads all of the engine initializer modules for Houdini
|
||||
module Houdini::EngineInitializers
|
||||
extend ActiveSupport::Concern
|
||||
extend ActiveSupport::Autoload
|
||||
initializer_path = File.expand_path(File.join(File.dirname(__FILE__), 'engine_initializers'))
|
||||
initializers = Dir.glob("#{initializer_path}/*").to_a
|
||||
initializers.each do |file|
|
||||
autoload File.basename(file, '.rb').camelize.to_sym
|
||||
include "Houdini::EngineInitializers::#{File.basename(file, '.rb').camelize}".constantize
|
||||
end
|
||||
end
|
26
gems/bess/lib/houdini/engine_initializers/hoster.rb
Normal file
26
gems/bess/lib/houdini/engine_initializers/hoster.rb
Normal file
|
@ -0,0 +1,26 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
# License: AGPL-3.0-or-later WITH WTO-AP-3.0-or-later
|
||||
# Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE
|
||||
module Houdini::EngineInitializers
|
||||
# an engine initializer for information about the hoster
|
||||
module Hoster
|
||||
extend ActiveSupport::Concern
|
||||
included do
|
||||
initializer 'houdini.hoster.set_configs',
|
||||
before: 'houdini.finish_configs' do |app|
|
||||
app.config.to_prepare do
|
||||
options = app.config.houdini.hoster
|
||||
|
||||
options.support_email ||= ActionMailer::Base.default[:from]
|
||||
options.main_admin_email ||= ActionMailer::Base.default[:from]
|
||||
|
||||
options.each { |k, v| Houdini::Hoster.send("#{k}=", v) }
|
||||
end
|
||||
end
|
||||
|
||||
config.houdini.hoster = ActiveSupport::OrderedOptions.new
|
||||
config.houdini.hoster.terms_and_privacy = ActiveSupport::OrderedOptions.new
|
||||
end
|
||||
end
|
||||
end
|
32
gems/bess/lib/houdini/engine_initializers/intl.rb
Normal file
32
gems/bess/lib/houdini/engine_initializers/intl.rb
Normal file
|
@ -0,0 +1,32 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
# License: AGPL-3.0-or-later WITH WTO-AP-3.0-or-later
|
||||
# Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE
|
||||
module Houdini::EngineInitializers
|
||||
# engine initializer for everything international
|
||||
module Intl
|
||||
extend ActiveSupport::Concern
|
||||
included do
|
||||
initializer 'houdini.intl.set_configs',
|
||||
before: 'houdini.finish_configs' do |app|
|
||||
app.config.to_prepare do
|
||||
Houdini.intl = Houdini::Intl.new(app.config.houdini.intl.to_h)
|
||||
Houdini.intl.all_countries ||= ISO3166::Country.all.map(&:alpha2)
|
||||
Houdini.intl.all_currencies ||= Money::Currency.table
|
||||
if Houdini.intl.available_locales.map(&:to_s)
|
||||
.none? { |l| l == Houdini.intl.language.to_s }
|
||||
raise("The language #{Houdini.intl.language} is not listed \
|
||||
in the provided locales: #{Houdini.intl.available_locales.join(', ')}")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
config.houdini.intl = ActiveSupport::OrderedOptions.new
|
||||
config.houdini.intl.language = :en
|
||||
config.houdini.intl.available_locales = %i[en de es fr it nl pl ro]
|
||||
config.houdini.intl.all_countries = nil
|
||||
config.houdini.intl.currencies = ['usd']
|
||||
config.houdini.intl.all_currencies = nil
|
||||
end
|
||||
end
|
||||
end
|
32
gems/bess/lib/houdini/hoster.rb
Normal file
32
gems/bess/lib/houdini/hoster.rb
Normal file
|
@ -0,0 +1,32 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
# License: AGPL-3.0-or-later WITH WTO-AP-3.0-or-later
|
||||
# Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE
|
||||
module Houdini::Hoster
|
||||
# (required) - the legal name of the hoster
|
||||
mattr_accessor :legal_name
|
||||
|
||||
# (optional but STRONGLY RECOMMENDED) - the email used for receiving emails
|
||||
# and notifications which deal with contacting the admin
|
||||
mattr_accessor :main_admin_email
|
||||
|
||||
mattr_writer :casual_name
|
||||
|
||||
## (optional, defaults to legal_name) - a more casual name of the website As an example
|
||||
## if your hoster was HoudiniCo LLC, you might use HoudiniCo or
|
||||
## CustomHoudiniInstance here. We use this for possessive nouns and similar.
|
||||
def self.casual_name
|
||||
@@casual_name || Houdini::Hoster.legal_name
|
||||
end
|
||||
|
||||
# has casual_name been set?
|
||||
def self.casual_name?
|
||||
@@casual_name.present?
|
||||
end
|
||||
|
||||
# (optional) - the email address for contacting support
|
||||
mattr_accessor :support_email
|
||||
|
||||
# terms_and_privacy
|
||||
mattr_accessor :terms_and_privacy
|
||||
end
|
|
@ -5,11 +5,11 @@
|
|||
module FetchNonprofitEmail
|
||||
def self.with_charge(charge)
|
||||
nonprofit = charge.nonprofit
|
||||
nonprofit.email.blank? ? Houdini.support_email : nonprofit.email
|
||||
nonprofit.email.blank? ? Houdini.hoster.support_email : nonprofit.email
|
||||
end
|
||||
|
||||
def self.with_donation(donation)
|
||||
nonprofit = donation.nonprofit
|
||||
nonprofit.email.blank? ? Houdini.support_email : nonprofit.email
|
||||
nonprofit.email.blank? ? Houdini.hoster.support_email : nonprofit.email
|
||||
end
|
||||
end
|
||||
|
|
|
@ -14,7 +14,7 @@ module Format
|
|||
|
||||
# Format a nonprofit name into an email <from> header
|
||||
def self.email_from_np(np_name)
|
||||
"\"#{np_name.delete(',').delete('"')}\" <#{Houdini.support_email}>"
|
||||
"\"#{np_name.delete(',').delete('"')}\" <#{Houdini.hoster.support_email}>"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -19,8 +19,9 @@ task :heroku_scheduled_job, [:name] => :environment do |_t, args|
|
|||
rescue Exception => e
|
||||
results += "Failure: #{e}\n"
|
||||
end
|
||||
|
||||
GenericMailer.admin_notice(
|
||||
subject: "Scheduled job results on CommitChange for '#{job_name}'",
|
||||
subject: "Scheduled job results on #{Houdini.hoster.casual_name} for '#{job_name}'",
|
||||
body: results.empty? ? 'No jobs to run today.' : results
|
||||
).deliver_later
|
||||
end
|
||||
|
|
|
@ -15,12 +15,12 @@ describe FetchNonprofitEmail, pending: true do
|
|||
|
||||
it 'returns support@commitchange.com if Nonprofit email is blank' do
|
||||
charge.nonprofit.email = ''
|
||||
expect(FetchNonprofitEmail.with_charge(charge)).to eq(Houdini.support_email)
|
||||
expect(FetchNonprofitEmail.with_charge(charge)).to eq(Houdini.hoster.support_email)
|
||||
end
|
||||
|
||||
it 'returns support@commitchange.com if Nonprofit email is nil' do
|
||||
charge.nonprofit.email = nil
|
||||
expect(FetchNonprofitEmail.with_charge(charge)).to eq(Houdini.support_email)
|
||||
expect(FetchNonprofitEmail.with_charge(charge)).to eq(Houdini.hoster.support_email)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -8,7 +8,7 @@ require 'format/name'
|
|||
describe Format::Name do
|
||||
describe '.email_from_np' do
|
||||
before(:each) do
|
||||
Houdini.support_email = 'support@email.com'
|
||||
Houdini.hoster.support_email = 'support@email.com'
|
||||
end
|
||||
it 'gives the name, minus commas, with our email in brackets' do
|
||||
result = Format::Name.email_from_np('Test, X, Y')
|
||||
|
|
|
@ -19,8 +19,8 @@ RSpec.describe AdminMailer, type: :mailer do
|
|||
|
||||
it 'renders the headers for mail without desc' do
|
||||
expect(mail.subject).to eq("Tried to associate donation #{donation.id} with campaign gift option #{campaign_gift_option.id} which is out of stock")
|
||||
expect(mail.to).to eq([Houdini.support_email])
|
||||
expect(mail.from).to eq([Houdini.support_email])
|
||||
expect(mail.to).to eq([Houdini.hoster.support_email])
|
||||
expect(mail.from).to eq([Houdini.hoster.support_email])
|
||||
end
|
||||
|
||||
it 'renders the body without desc' do
|
||||
|
@ -29,8 +29,8 @@ RSpec.describe AdminMailer, type: :mailer do
|
|||
|
||||
it 'renders the headers on mail with desc' do
|
||||
expect(mail_with_desc.subject).to eq("Tried to associate donation #{donation.id} with campaign gift option #{campaign_gift_option_with_desc.id} which is out of stock")
|
||||
expect(mail_with_desc.to).to eq([Houdini.support_email])
|
||||
expect(mail_with_desc.from).to eq([Houdini.support_email])
|
||||
expect(mail_with_desc.to).to eq([Houdini.hoster.support_email])
|
||||
expect(mail_with_desc.from).to eq([Houdini.hoster.support_email])
|
||||
end
|
||||
|
||||
it 'renders the body with desc' do
|
||||
|
|
Loading…
Reference in a new issue