aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/Cobrand/BathNES.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perllib/FixMyStreet/Cobrand/BathNES.pm')
-rw-r--r--perllib/FixMyStreet/Cobrand/BathNES.pm34
1 files changed, 17 insertions, 17 deletions
diff --git a/perllib/FixMyStreet/Cobrand/BathNES.pm b/perllib/FixMyStreet/Cobrand/BathNES.pm
index ea9b26e7a..0ccf488c7 100644
--- a/perllib/FixMyStreet/Cobrand/BathNES.pm
+++ b/perllib/FixMyStreet/Cobrand/BathNES.pm
@@ -193,24 +193,16 @@ sub categories_restriction {
] } );
}
-# Do a manual prefetch, as easier than sorting out quoting 'user'
+# Do a manual prefetch of all staff users for contributed_by lookup
sub _dashboard_user_lookup {
my $self = shift;
my $c = $self->{c};
- # Fetch all the relevant user IDs, and look them up
- my @user_ids = $c->stash->{objects_rs}->search({}, { columns => [ 'user_id' ] })->all;
- @user_ids = map { $_->user_id } @user_ids;
- @user_ids = $c->model('DB::User')->search(
- { id => { -in => \@user_ids } },
- { columns => [ 'id', 'email', 'phone' ] })->all;
-
- # Plus all staff users for contributed_by lookup
- push @user_ids, $c->model('DB::User')->search(
+ my @user_ids = $c->model('DB::User')->search(
{ from_body => { '!=' => undef } },
- { columns => [ 'id', 'email', 'phone' ] })->all;
+ { columns => [ 'id', 'email' ] })->all;
- my %user_lookup = map { $_->id => { email => $_->email, phone => $_->phone } } @user_ids;
+ my %user_lookup = map { $_->id => $_->email } @user_ids;
return \%user_lookup;
}
@@ -225,6 +217,10 @@ sub dashboard_export_updates_add_columns {
push @{$c->stash->{csv}->{columns}}, "staff_user";
push @{$c->stash->{csv}->{columns}}, "user_email";
+ $c->stash->{csv}->{objects} = $c->stash->{csv}->{objects}->search(undef, {
+ '+columns' => ['user.email'],
+ prefetch => 'user',
+ });
my $user_lookup = $self->_dashboard_user_lookup;
$c->stash->{csv}->{extra_data} = sub {
@@ -232,11 +228,11 @@ sub dashboard_export_updates_add_columns {
my $staff_user = '';
if ( my $contributed_by = $report->get_extra_metadata('contributed_by') ) {
- $staff_user = $user_lookup->{$contributed_by}{email};
+ $staff_user = $user_lookup->{$contributed_by};
}
return {
- user_email => $user_lookup->{$report->user_id}{email} || '',
+ user_email => $report->user->email || '',
staff_user => $staff_user,
};
};
@@ -264,6 +260,10 @@ sub dashboard_export_problems_add_columns {
"attribute_data",
];
+ $c->stash->{csv}->{objects} = $c->stash->{csv}->{objects}->search(undef, {
+ '+columns' => ['user.email', 'user.phone'],
+ prefetch => 'user',
+ });
my $user_lookup = $self->_dashboard_user_lookup;
$c->stash->{csv}->{extra_data} = sub {
@@ -271,12 +271,12 @@ sub dashboard_export_problems_add_columns {
my $staff_user = '';
if ( my $contributed_by = $report->get_extra_metadata('contributed_by') ) {
- $staff_user = $user_lookup->{$contributed_by}{email};
+ $staff_user = $user_lookup->{$contributed_by};
}
my $attribute_data = join "; ", map { $_->{name} . " = " . $_->{value} } @{ $report->get_extra_fields };
return {
- user_email => $user_lookup->{$report->user_id}{email} || '',
- user_phone => $user_lookup->{$report->user_id}{phone} || '',
+ user_email => $report->user->email || '',
+ user_phone => $report->user->phone || '',
staff_user => $staff_user,
attribute_data => $attribute_data,
};