aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/App/Controller
diff options
context:
space:
mode:
Diffstat (limited to 'perllib/FixMyStreet/App/Controller')
-rw-r--r--perllib/FixMyStreet/App/Controller/Dashboard.pm13
-rw-r--r--perllib/FixMyStreet/App/Controller/Report/New.pm19
-rw-r--r--perllib/FixMyStreet/App/Controller/Report/Update.pm14
3 files changed, 26 insertions, 20 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Dashboard.pm b/perllib/FixMyStreet/App/Controller/Dashboard.pm
index 7cdf150aa..866deb98e 100644
--- a/perllib/FixMyStreet/App/Controller/Dashboard.pm
+++ b/perllib/FixMyStreet/App/Controller/Dashboard.pm
@@ -360,21 +360,16 @@ sub generate_csv : Private {
my $fixed_states = FixMyStreet::DB::Result::Problem->fixed_states;
my $closed_states = FixMyStreet::DB::Result::Problem->closed_states;
- my $wards = 0;
- my $comments = 0;
- foreach (@{$c->stash->{csv}->{columns}}) {
- $wards = 1 if $_ eq 'wards';
- $comments = 1 if $_ eq 'acknowledged';
- }
+ my %asked_for = map { $_ => 1 } @{$c->stash->{csv}->{columns}};
my $problems = $c->stash->{csv}->{problems};
while ( my $report = $problems->next ) {
- my $hashref = $report->as_hashref($c);
+ my $hashref = $report->as_hashref($c, \%asked_for);
$hashref->{user_name_display} = $report->anonymous
? '(anonymous)' : $report->user->name;
- if ($comments) {
+ if ($asked_for{acknowledged}) {
for my $comment ($report->comments) {
my $problem_state = $comment->problem_state or next;
next unless $comment->state eq 'confirmed';
@@ -389,7 +384,7 @@ sub generate_csv : Private {
}
}
- if ($wards) {
+ if ($asked_for{wards}) {
$hashref->{wards} = join ', ',
map { $c->stash->{children}->{$_}->{name} }
grep {$c->stash->{children}->{$_} }
diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm
index e4e82f091..a41aeb6ea 100644
--- a/perllib/FixMyStreet/App/Controller/Report/New.pm
+++ b/perllib/FixMyStreet/App/Controller/Report/New.pm
@@ -1300,9 +1300,17 @@ sub save_user_and_report : Private {
if ( $c->cobrand->never_confirm_reports ) {
$report->user->update_or_insert;
$report->confirm();
- } elsif ( $c->forward('created_as_someone_else', [ $c->stash->{bodies} ]) ) {
- # If created on behalf of someone else, we automatically confirm it,
- # but we don't want to update the user account
+ # If created on behalf of someone else, we automatically confirm it,
+ # but we don't want to update the user account
+ } elsif ($c->stash->{contributing_as_another_user}) {
+ $report->set_extra_metadata( contributed_as => 'another_user');
+ $report->set_extra_metadata( contributed_by => $c->user->id );
+ $report->confirm();
+ } elsif ($c->stash->{contributing_as_body}) {
+ $report->set_extra_metadata( contributed_as => 'body' );
+ $report->confirm();
+ } elsif ($c->stash->{contributing_as_anonymous_user}) {
+ $report->set_extra_metadata( contributed_as => 'anonymous_user' );
$report->confirm();
} elsif ( !$report->user->in_storage ) {
# User does not exist.
@@ -1342,11 +1350,6 @@ sub save_user_and_report : Private {
return 1;
}
-sub created_as_someone_else : Private {
- my ($self, $c, $bodies) = @_;
- return $c->stash->{contributing_as_another_user} || $c->stash->{contributing_as_body} || $c->stash->{contributing_as_anonymous_user};
-}
-
=head2 generate_map
Add the html needed to for the map to the stash.
diff --git a/perllib/FixMyStreet/App/Controller/Report/Update.pm b/perllib/FixMyStreet/App/Controller/Report/Update.pm
index 99eae8659..9d97688c5 100644
--- a/perllib/FixMyStreet/App/Controller/Report/Update.pm
+++ b/perllib/FixMyStreet/App/Controller/Report/Update.pm
@@ -444,9 +444,17 @@ sub save_update : Private {
if ( $c->cobrand->never_confirm_updates ) {
$update->user->update_or_insert;
$update->confirm();
- } elsif ( $c->forward('/report/new/created_as_someone_else', [ $update->problem->bodies_str ]) ) {
- # If created on behalf of someone else, we automatically confirm it,
- # but we don't want to update the user account
+ # If created on behalf of someone else, we automatically confirm it,
+ # but we don't want to update the user account
+ } elsif ($c->stash->{contributing_as_another_user}) {
+ $update->set_extra_metadata( contributed_as => 'another_user');
+ $update->set_extra_metadata( contributed_by => $c->user->id );
+ $update->confirm();
+ } elsif ($c->stash->{contributing_as_body}) {
+ $update->set_extra_metadata( contributed_as => 'body' );
+ $update->confirm();
+ } elsif ($c->stash->{contributing_as_anonymous_user}) {
+ $update->set_extra_metadata( contributed_as => 'anonymous_user' );
$update->confirm();
} elsif ( !$update->user->in_storage ) {
# User does not exist.