aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet
diff options
context:
space:
mode:
Diffstat (limited to 'perllib/FixMyStreet')
-rw-r--r--perllib/FixMyStreet/App.pm36
-rw-r--r--perllib/FixMyStreet/DB/Result/Problem.pm2
-rw-r--r--perllib/FixMyStreet/DB/ResultSet/AlertType.pm2
-rw-r--r--perllib/FixMyStreet/DB/ResultSet/Problem.pm6
-rw-r--r--perllib/FixMyStreet/DB/ResultSet/Questionnaire.pm5
5 files changed, 37 insertions, 14 deletions
diff --git a/perllib/FixMyStreet/App.pm b/perllib/FixMyStreet/App.pm
index 13617a3c0..0d3b024a8 100644
--- a/perllib/FixMyStreet/App.pm
+++ b/perllib/FixMyStreet/App.pm
@@ -349,7 +349,7 @@ sub send_email {
}
sub send_email_cron {
- my ( $c, $params, $env_from, $env_to, $nomail ) = @_;
+ my ( $c, $params, $env_from, $env_to, $nomail, $cobrand, $lang_code ) = @_;
return 1 if $c->is_abuser( $env_to );
@@ -357,15 +357,31 @@ sub send_email_cron {
unpack('h*', random_bytes(5, 1)), FixMyStreet->config('EMAIL_DOMAIN')
);
- $params->{_parameters_}->{signature} = '';
- #$params->{_parameters_}->{signature} = $c->view('Email')->render(
- # $c, 'signature.txt', {
- # additional_template_paths => [
- # FixMyStreet->path_to( 'templates', 'email', $c->cobrand->moniker, $c->stash->{lang_code} )->stringify,
- # FixMyStreet->path_to( 'templates', 'email', $c->cobrand->moniker )->stringify,
- # ]
- # }
- #);
+ # This is all to set the path for the templates processor so we can override
+ # signature and site names in emails using templates in the old style emails.
+ # It's a bit involved as not everywhere we use it knows about the cobrand so
+ # we can't assume there will be one.
+ my $include_path = FixMyStreet->path_to( 'templates', 'email', 'default' )->stringify;
+ if ( $cobrand ) {
+ $include_path =
+ FixMyStreet->path_to( 'templates', 'email', $cobrand->moniker )->stringify . ':'
+ . $include_path;
+ if ( $lang_code ) {
+ $include_path =
+ FixMyStreet->path_to( 'templates', 'email', $cobrand->moniker, $lang_code )->stringify . ':'
+ . $include_path;
+ }
+ }
+ my $tt = Template->new({
+ INCLUDE_PATH => $include_path
+ });
+ my ($sig, $site_name);
+ $tt->process( 'signature.txt', $params, \$sig );
+ $params->{_parameters_}->{signature} = $sig;
+
+ $tt->process( 'site_name.txt', $params, \$site_name );
+ my $site_title = $cobrand ? $cobrand->site_title : '';
+ $params->{_parameters_}->{site_name} = $site_name || $site_title;
$params->{_line_indent} = '';
my $email = mySociety::Locale::in_gb_locale { mySociety::Email::construct_email($params) };
diff --git a/perllib/FixMyStreet/DB/Result/Problem.pm b/perllib/FixMyStreet/DB/Result/Problem.pm
index 7b5460c51..56a915c89 100644
--- a/perllib/FixMyStreet/DB/Result/Problem.pm
+++ b/perllib/FixMyStreet/DB/Result/Problem.pm
@@ -604,7 +604,7 @@ sub body {
$body = join( _(' and '),
map {
my $name = $_->name;
- if (mySociety::Config::get('AREA_LINKS_FROM_PROBLEMS')) {
+ if ($c and mySociety::Config::get('AREA_LINKS_FROM_PROBLEMS')) {
'<a href="' . $_->url($c) . '">' . $name . '</a>';
} else {
$name;
diff --git a/perllib/FixMyStreet/DB/ResultSet/AlertType.pm b/perllib/FixMyStreet/DB/ResultSet/AlertType.pm
index 545b54c60..984e698e0 100644
--- a/perllib/FixMyStreet/DB/ResultSet/AlertType.pm
+++ b/perllib/FixMyStreet/DB/ResultSet/AlertType.pm
@@ -271,6 +271,8 @@ sub _send_aggregated_alert_email(%) {
$sender,
[ $data{alert_email} ],
0,
+ $cobrand,
+ $data{lang}
);
if ($result == mySociety::EmailUtil::EMAIL_SUCCESS) {
diff --git a/perllib/FixMyStreet/DB/ResultSet/Problem.pm b/perllib/FixMyStreet/DB/ResultSet/Problem.pm
index c108f7e29..2f4bc6363 100644
--- a/perllib/FixMyStreet/DB/ResultSet/Problem.pm
+++ b/perllib/FixMyStreet/DB/ResultSet/Problem.pm
@@ -440,7 +440,7 @@ sub send_reports {
lastupdate => \'ms_current_timestamp()',
} );
if ( $cobrand->report_sent_confirmation_email && !$h{anonymous_report}) {
- _send_report_sent_email( $row, \%h, $nomail );
+ _send_report_sent_email( $row, \%h, $nomail, $cobrand );
}
debug_print("send successful: OK", $row->id) if $debug_mode;
} else {
@@ -493,6 +493,7 @@ sub _send_report_sent_email {
my $row = shift;
my $h = shift;
my $nomail = shift;
+ my $cobrand = shift;
my $template = 'confirm_report_sent.txt';
my $template_path = FixMyStreet->path_to( "templates", "email", $row->cobrand, $row->lang, $template )->stringify;
@@ -511,7 +512,8 @@ sub _send_report_sent_email {
},
mySociety::Config::get('CONTACT_EMAIL'),
[ $row->user->email ],
- $nomail
+ $nomail,
+ $cobrand
);
}
diff --git a/perllib/FixMyStreet/DB/ResultSet/Questionnaire.pm b/perllib/FixMyStreet/DB/ResultSet/Questionnaire.pm
index 6f2c19b5e..64ba8ec6a 100644
--- a/perllib/FixMyStreet/DB/ResultSet/Questionnaire.pm
+++ b/perllib/FixMyStreet/DB/ResultSet/Questionnaire.pm
@@ -98,6 +98,8 @@ sub send_questionnaires_period {
. $row->user->email . "\n"
if $params->{verbose};
+ $h{site_name} = $cobrand->site_title();
+
my $result = FixMyStreet::App->send_email_cron(
{
_template_ => $template,
@@ -107,7 +109,8 @@ sub send_questionnaires_period {
},
$sender,
[ $row->user->email ],
- $params->{nomail}
+ $params->{nomail},
+ $cobrand
);
if ($result == mySociety::EmailUtil::EMAIL_SUCCESS) {
print " ...success\n" if $params->{verbose};