diff options
author | Dave Arter <davea@mysociety.org> | 2016-09-19 17:58:22 +0100 |
---|---|---|
committer | Dave Arter <davea@mysociety.org> | 2016-09-23 14:46:52 +0100 |
commit | 8471a8500e081d812e8e63d644d7bdcdf1a793ce (patch) | |
tree | 05bcd5d6ed9c089a516377615870028af4146d96 /perllib/FixMyStreet | |
parent | ceb96bff41e318d439d3c1e3957d79bb874e4ed1 (diff) |
Update user reputation when inspecting report
Diffstat (limited to 'perllib/FixMyStreet')
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Report.pm | 7 | ||||
-rw-r--r-- | perllib/FixMyStreet/DB/Result/User.pm | 8 |
2 files changed, 15 insertions, 0 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Report.pm b/perllib/FixMyStreet/App/Controller/Report.pm index 34392782b..d56521fde 100644 --- a/perllib/FixMyStreet/App/Controller/Report.pm +++ b/perllib/FixMyStreet/App/Controller/Report.pm @@ -270,6 +270,8 @@ sub delete :Local :Args(1) { $p->lastupdate( \'current_timestamp' ); $p->update; + $p->user->update_reputation(-1); + $c->model('DB::AdminLog')->create( { admin_user => $c->user->email, object_type => 'problem', @@ -315,6 +317,7 @@ sub inspect : Private { my $valid = 1; my $update_text; + my $reputation_change = 0; if ($permissions->{report_inspect}) { foreach (qw/detailed_location detailed_information traffic_information/) { @@ -325,6 +328,7 @@ sub inspect : Private { $update_text = Utils::cleanup_text( $c->get_param('public_update'), { allow_multiline => 1 } ); if ($update_text) { $problem->set_extra_metadata( inspected => 1 ); + $reputation_change = 1; } else { $valid = 0; $c->stash->{errors} ||= []; @@ -362,6 +366,9 @@ sub inspect : Private { } if ($valid) { + if ( $reputation_change != 0 ) { + $problem->user->update_reputation($reputation_change); + } $problem->update; if ( defined($update_text) ) { $problem->add_to_comments( { diff --git a/perllib/FixMyStreet/DB/Result/User.pm b/perllib/FixMyStreet/DB/Result/User.pm index 405d9e920..8d42d5926 100644 --- a/perllib/FixMyStreet/DB/Result/User.pm +++ b/perllib/FixMyStreet/DB/Result/User.pm @@ -378,4 +378,12 @@ sub is_planned_report { return $self->active_planned_reports->find({ id => $problem->id }); } +sub update_reputation { + my ( $self, $change ) = @_; + + my $reputation = $self->get_extra_metadata('reputation') || 0; + $self->set_extra_metadata( reputation => $reputation + $change); + $self->update; +} + 1; |