diff options
Diffstat (limited to 'perllib/FixMyStreet')
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Report/New.pm | 2 | ||||
-rw-r--r-- | perllib/FixMyStreet/Cobrand/FixMyStreet.pm | 21 |
2 files changed, 22 insertions, 1 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm index 6aaa4531f..66dc20a3a 100644 --- a/perllib/FixMyStreet/App/Controller/Report/New.pm +++ b/perllib/FixMyStreet/App/Controller/Report/New.pm @@ -1141,8 +1141,8 @@ sub generate_map : Private { my $longitude = $c->stash->{longitude}; # Don't do anything if the user skipped the map + $c->stash->{page} = 'new'; if ( $c->stash->{report}->used_map ) { - $c->stash->{page} = 'new'; FixMyStreet::Map::display_map( $c, latitude => $latitude, diff --git a/perllib/FixMyStreet/Cobrand/FixMyStreet.pm b/perllib/FixMyStreet/Cobrand/FixMyStreet.pm index f21d38ff8..159f2f5db 100644 --- a/perllib/FixMyStreet/Cobrand/FixMyStreet.pm +++ b/perllib/FixMyStreet/Cobrand/FixMyStreet.pm @@ -59,5 +59,26 @@ sub get_country_for_ip_address { return mySociety::Gaze::get_country_from_ip($ip); } +sub report_form_extras { + ( { name => 'gender', required => 0 }, { name => 'variant', required => 0 } ) +} + +sub ask_gender_question { + my $self = shift; + + return 1 unless $self->{c}->user; + + my $reports = $self->{c}->model('DB::Problem')->search({ + user_id => $self->{c}->user->id, + extra => { like => '%gender%' } + }, { order_by => { -desc => 'id' } }); + + while (my $report = $reports->next) { + my $gender = $report->get_extra_metadata('gender'); + return 0 if $gender =~ /female|male|other|unknown/; + } + return 1; +} + 1; |