aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet
diff options
context:
space:
mode:
authorDave Arter <davea@mysociety.org>2016-09-19 17:58:22 +0100
committerDave Arter <davea@mysociety.org>2016-09-23 14:46:52 +0100
commit8471a8500e081d812e8e63d644d7bdcdf1a793ce (patch)
tree05bcd5d6ed9c089a516377615870028af4146d96 /perllib/FixMyStreet
parentceb96bff41e318d439d3c1e3957d79bb874e4ed1 (diff)
Update user reputation when inspecting report
Diffstat (limited to 'perllib/FixMyStreet')
-rw-r--r--perllib/FixMyStreet/App/Controller/Report.pm7
-rw-r--r--perllib/FixMyStreet/DB/Result/User.pm8
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;