diff options
author | Hakim Cassimally <hakim@mysociety.org> | 2015-02-02 15:33:42 +0000 |
---|---|---|
committer | Dave Arter <davea@mysociety.org> | 2015-10-06 09:09:24 +0100 |
commit | 657177eba893c29d6d3f9e4b9f4f24ede5b78bc4 (patch) | |
tree | d26ebbf2474beb467c8f9eff591ab71628de6464 /perllib/FixMyStreet/DB | |
parent | 735536dc5e269f2094d122e49f2c648928db4acb (diff) |
Add "time spent" admin logging.
Mechanism is general, but current implementation only used
for Zurich.
- Zurich: Record time_spent field mysociety/FixMyStreet-Commercial#676
- template changes (including jQuery spinner)
- backend changes to save data are made:
- in log_edit, if supplied
- and time on category change (and arbitrary actions)
- Add update_admin_log to all paths for DM, ensuring that it gets called,
while resetting the `time_spent` parameter, to make sure that
there is never a duplicate record created.
- Also quell warning about using DateTime values in query.
- Also add (seemingly unrelated) parens to stop misparsing of OK line in
questionnaire test now that DT::Format::Pg is used in Zurich cobrand
See mysociety/FixMyStreet-Commercial#676
Diffstat (limited to 'perllib/FixMyStreet/DB')
-rw-r--r-- | perllib/FixMyStreet/DB/Result/AdminLog.pm | 2 | ||||
-rw-r--r-- | perllib/FixMyStreet/DB/Result/Problem.pm | 12 |
2 files changed, 14 insertions, 0 deletions
diff --git a/perllib/FixMyStreet/DB/Result/AdminLog.pm b/perllib/FixMyStreet/DB/Result/AdminLog.pm index fcf909692..d60915cfc 100644 --- a/perllib/FixMyStreet/DB/Result/AdminLog.pm +++ b/perllib/FixMyStreet/DB/Result/AdminLog.pm @@ -37,6 +37,8 @@ __PACKAGE__->add_columns( { data_type => "integer", is_foreign_key => 1, is_nullable => 1 }, "reason", { data_type => "text", default_value => "", is_nullable => 0 }, + "time_spent", + { data_type => "integer", default_value => "0", is_nullable => 0 }, ); __PACKAGE__->set_primary_key("id"); __PACKAGE__->belongs_to( diff --git a/perllib/FixMyStreet/DB/Result/Problem.pm b/perllib/FixMyStreet/DB/Result/Problem.pm index d3a30db4e..637f4acbf 100644 --- a/perllib/FixMyStreet/DB/Result/Problem.pm +++ b/perllib/FixMyStreet/DB/Result/Problem.pm @@ -886,6 +886,18 @@ __PACKAGE__->has_many( } ); +sub get_time_spent { + my $self = shift; + my $admin_logs = $self->admin_log_entries->search({}, + { + group_by => 'object_id', + columns => [ + { sum_time_spent => { sum => 'time_spent' } }, + ] + })->single; + return $admin_logs ? $admin_logs->get_column('sum_time_spent') : 0; +} + # we need the inline_constructor bit as we don't inherit from Moose __PACKAGE__->meta->make_immutable( inline_constructor => 0 ); |