diff options
Diffstat (limited to 'perllib/FixMyStreet')
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Report.pm | 3 | ||||
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Report/New.pm | 12 | ||||
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Test.pm | 3 | ||||
-rw-r--r-- | perllib/FixMyStreet/DB/Result/Problem.pm | 6 | ||||
-rw-r--r-- | perllib/FixMyStreet/DB/ResultSet/DefectType.pm | 2 | ||||
-rw-r--r-- | perllib/FixMyStreet/DB/ResultSet/ResponsePriority.pm | 8 | ||||
-rw-r--r-- | perllib/FixMyStreet/DB/ResultSet/ResponseTemplate.pm | 2 | ||||
-rw-r--r-- | perllib/FixMyStreet/Roles/ContactExtra.pm | 2 | ||||
-rw-r--r-- | perllib/FixMyStreet/TestMech.pm | 31 |
9 files changed, 28 insertions, 41 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Report.pm b/perllib/FixMyStreet/App/Controller/Report.pm index 81d5b18b5..98c4aba17 100644 --- a/perllib/FixMyStreet/App/Controller/Report.pm +++ b/perllib/FixMyStreet/App/Controller/Report.pm @@ -413,7 +413,8 @@ sub inspect : Private { if ($c->cobrand->can('body')) { my $priorities_by_category = FixMyStreet::App->model('DB::ResponsePriority')->by_categories( $c->stash->{contacts}, - body_id => $c->cobrand->body->id + body_id => $c->cobrand->body->id, + problem => $problem, ); $c->stash->{priorities_by_category} = $priorities_by_category; my $templates_by_category = FixMyStreet::App->model('DB::ResponseTemplate')->by_categories( diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm index d676e2856..037e1992a 100644 --- a/perllib/FixMyStreet/App/Controller/Report/New.pm +++ b/perllib/FixMyStreet/App/Controller/Report/New.pm @@ -29,8 +29,8 @@ Create a new report, or complete a partial one. submit_problem: true if a problem has been submitted, at all. submit_sign_in: true if the sign in button has been clicked by logged out user. -submit_register: true if the register/confirm by email button has been clicked -by logged out user. +submit_register(_mobile): true if the register/confirm by email button has been clicked +by logged out user, or submit button clicked by logged in user. =head2 location (required) @@ -1046,7 +1046,13 @@ sub process_report : Private { $report->detail( $detail ); # mobile device type - $report->service( $params{service} ) if $params{service}; + if ($params{service}) { + $report->service($params{service}); + } elsif ($c->get_param('submit_register_mobile')) { + $report->service('mobile'); + } elsif ($c->get_param('submit_register')) { + $report->service('desktop'); + } # set these straight from the params $report->category( _ $params{category} ) if $params{category}; diff --git a/perllib/FixMyStreet/App/Controller/Test.pm b/perllib/FixMyStreet/App/Controller/Test.pm index 19a8c5321..ce54f004f 100644 --- a/perllib/FixMyStreet/App/Controller/Test.pm +++ b/perllib/FixMyStreet/App/Controller/Test.pm @@ -61,6 +61,9 @@ sub setup : Path('/_test/setup') : Args(1) { }); $category->update; $c->response->body("OK"); + } elsif ($test eq 'simple-service-check') { + my $problem = FixMyStreet::DB->resultset("Problem")->search(undef, { order_by => { -desc => 'id' } })->first; + $c->response->body($problem->service); } } diff --git a/perllib/FixMyStreet/DB/Result/Problem.pm b/perllib/FixMyStreet/DB/Result/Problem.pm index 705f07f79..cd5e876b4 100644 --- a/perllib/FixMyStreet/DB/Result/Problem.pm +++ b/perllib/FixMyStreet/DB/Result/Problem.pm @@ -780,7 +780,11 @@ alphabetical order of name. sub response_priorities { my $self = shift; - return $self->result_source->schema->resultset('ResponsePriority')->for_bodies($self->bodies_str_ids, $self->category); + my $rs = $self->result_source->schema->resultset('ResponsePriority')->for_bodies($self->bodies_str_ids, $self->category); + $rs->search([ + 'me.deleted' => 0, + 'me.id' => $self->response_priority_id, + ]); } =head2 defect_types diff --git a/perllib/FixMyStreet/DB/ResultSet/DefectType.pm b/perllib/FixMyStreet/DB/ResultSet/DefectType.pm index 5b1247129..c4c11042f 100644 --- a/perllib/FixMyStreet/DB/ResultSet/DefectType.pm +++ b/perllib/FixMyStreet/DB/ResultSet/DefectType.pm @@ -12,7 +12,7 @@ sub join_table { } sub map_extras { - my ($rs, @ts) = @_; + my ($rs, $params, @ts) = @_; return map { my $meta = $_->get_extra_metadata(); my %extra = map { $_ => $meta->{$_} } keys %$meta; diff --git a/perllib/FixMyStreet/DB/ResultSet/ResponsePriority.pm b/perllib/FixMyStreet/DB/ResultSet/ResponsePriority.pm index 96f7cf7a0..af605afa6 100644 --- a/perllib/FixMyStreet/DB/ResultSet/ResponsePriority.pm +++ b/perllib/FixMyStreet/DB/ResultSet/ResponsePriority.pm @@ -12,8 +12,12 @@ sub join_table { } sub map_extras { - my ($rs, @ts) = @_; - return map { { id => $_->id, name => $_->name } } @ts; + my ($rs, $params, @ts) = @_; + my $current = $params->{problem} && $params->{problem}->response_priority_id || 0; + return + map { { id => $_->id, name => $_->name } } + grep { !$_->deleted || $_->id == $current } + @ts; } 1; diff --git a/perllib/FixMyStreet/DB/ResultSet/ResponseTemplate.pm b/perllib/FixMyStreet/DB/ResultSet/ResponseTemplate.pm index 46fcba153..88ecc2f94 100644 --- a/perllib/FixMyStreet/DB/ResultSet/ResponseTemplate.pm +++ b/perllib/FixMyStreet/DB/ResultSet/ResponseTemplate.pm @@ -14,7 +14,7 @@ sub name_column { } sub map_extras { - my ($rs, @ts) = @_; + my ($rs, $params, @ts) = @_; return map { my $out = { id => $_->text, name => $_->title }; $out->{state} = $_->state if $_->state; diff --git a/perllib/FixMyStreet/Roles/ContactExtra.pm b/perllib/FixMyStreet/Roles/ContactExtra.pm index 73b1d3e6a..9615b0f0c 100644 --- a/perllib/FixMyStreet/Roles/ContactExtra.pm +++ b/perllib/FixMyStreet/Roles/ContactExtra.pm @@ -45,7 +45,7 @@ sub by_categories { $_->$join_table == 0 # There's no category at all on this defect type/template/priority || (grep { $_->contact_id == $contact->get_column('id') } $_->$join_table) } @results; - @ts = $rs->map_extras(@ts); + @ts = $rs->map_extras(\%params, @ts); $extras{$contact->category} = JSON::XS->new->encode(\@ts); } diff --git a/perllib/FixMyStreet/TestMech.pm b/perllib/FixMyStreet/TestMech.pm index f6854fc98..7f7104d3d 100644 --- a/perllib/FixMyStreet/TestMech.pm +++ b/perllib/FixMyStreet/TestMech.pm @@ -609,29 +609,6 @@ sub get_ok_json { return decode_json( $res->content ); } -sub delete_body { - my $mech = shift; - my $body = shift; - - $mech->delete_problems_for_body($body->id); - $mech->delete_defect_type($_) for $body->defect_types; - $mech->delete_contact($_) for $body->contacts; - $mech->delete_user($_) for $body->users; - $_->delete for $body->response_templates; - $_->delete for $body->response_priorities; - $body->body_areas->delete; - $body->delete; -} - -sub delete_contact { - my $mech = shift; - my $contact = shift; - - $contact->contact_response_templates->delete_all; - $contact->contact_response_priorities->delete_all; - $contact->delete; -} - sub delete_problems_for_body { my $mech = shift; my $body = shift; @@ -646,14 +623,6 @@ sub delete_problems_for_body { } } -sub delete_defect_type { - my $mech = shift; - my $defect_type = shift; - - $defect_type->contact_defect_types->delete_all; - $defect_type->delete; -} - sub delete_response_template { my $mech = shift; my $response_template = shift; |