Skip to content

Commit

Permalink
[Northamptonshire] restrict title to 120 characters
Browse files Browse the repository at this point in the history
Prevent people from using very long titles.

Fixes mysociety/societyworks#1344
  • Loading branch information
struan committed Apr 3, 2019
1 parent 4200423 commit cc70303
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 2 deletions.
8 changes: 8 additions & 0 deletions perllib/FixMyStreet/Cobrand/Northamptonshire.pm
Original file line number Diff line number Diff line change
Expand Up @@ -94,4 +94,12 @@ sub open311_config {
# sending updates not part of initial phase
sub should_skip_sending_update { 1; }

sub report_validation {
my ($self, $report, $errors) = @_;

if ( length( $report->title ) > 120 ) {
$errors->{title} = sprintf( _('Summaries are limited to %s characters in length. Please shorten your summary'), 120 );
}
}

1;
1 change: 1 addition & 0 deletions t/Mock/MapIt.pm
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ my @PLACES = (
[ 'LE15 0GJ', 52.670447, -0.727877, 2600, 'Rutland County Council', 'CTY'],
[ 'BR1 3UH', 51.4021, 0.01578, 2482, 'Bromley Council', 'LBO' ],
[ 'BR1 3UH', 51.402096, 0.015784, 2482, 'Bromley Council', 'LBO' ],
[ 'NN1 1NS', 52.236251, 0.892052, 2234, 'Northamptonshire County Council', 'CTY' ],
[ '?', 50.78301, -0.646929 ],
[ 'GU51 4AE', 51.279456, -0.846216, 2333, 'Hart District Council', 'DIS', 2227, 'Hampshire County Council', 'CTY' ],
[ 'WS1 4NH', 52.563074, -1.991032, 2535, 'Sandwell Borough Council', 'MTD' ],
Expand Down
28 changes: 27 additions & 1 deletion t/app/controller/report_new.t
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ for my $body (
{ area_id => 2232, name => 'Lincolnshire County Council' },
{ area_id => 2237, name => 'Oxfordshire County Council' },
{ area_id => 2600, name => 'Rutland County Council' },
{ area_id => 2234, name => 'Northamptonshire County Council' },
) {
my $body_obj = $mech->create_body_ok($body->{area_id}, $body->{name});
push @bodies, $body_obj;
Expand Down Expand Up @@ -133,6 +134,11 @@ my $contact15 = $mech->create_contact_ok(
category => 'Trees',
email => 'trees-2600@example.com',
);
my $contact16 = $mech->create_contact_ok(
body_id => $body_ids{2234}, # Northamptonshire
category => 'Trees',
email => 'trees-2234@example.com',
);

# test that the various bit of form get filled in and errors correctly
# generated.
Expand Down Expand Up @@ -614,14 +620,34 @@ foreach my $test (
changes => { },
errors => [ 'Please enter a subject', 'Please enter some details', 'Emails are limited to 50 characters in length.', 'Phone numbers are limited to 20 characters in length.', 'Names are limited to 50 characters in length.'],
},
{
msg => 'Northamptonshire validation',
pc => 'NN1 1NS',
fields => {
title => 'This is a very long title that should fail the validation as it is really much too long to pass the validation of 120 characters',
detail => '',
photo1 => '',
photo2 => '',
photo3 => '',
name => 'A User',
may_show_name => '1',
username => 'user@example.org',
phone => '',
category => 'Trees',
password_sign_in => '',
password_register => '',
},
changes => { },
errors => [ 'Summaries are limited to 120 characters in length. Please shorten your summary', 'Please enter some details'],
},
)
{
subtest "check form errors where $test->{msg}" => sub {
$mech->get_ok('/around');

# submit initial pc form
FixMyStreet::override_config {
ALLOWED_COBRANDS => [ { fixmystreet => '.' }, 'bromley', 'oxfordshire', 'rutland', 'lincolnshire', 'buckinghamshire' ],
ALLOWED_COBRANDS => [ { fixmystreet => '.' }, 'bromley', 'oxfordshire', 'rutland', 'lincolnshire', 'buckinghamshire', 'northamptonshire' ],
MAPIT_URL => 'http://mapit.uk/',
}, sub {
$mech->submit_form_ok( { with_fields => { pc => $test->{pc} } },
Expand Down
5 changes: 4 additions & 1 deletion templates/web/base/js/translation_strings.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@

translation_strings = {
update: '[% loc('Please enter a message') | replace("'", "\\'") %]',
title: '[% loc('Please enter a subject') | replace("'", "\\'") %]',
title: {
required: '[% loc('Please enter a subject') | replace("'", "\\'") %]',
maxlength: '[% loc('Summaries are limited to {0} characters in length. Please shorten your summary') | replace("'", "\\'") %]',
},
detail: {
required: '[% loc('Please enter some details') | replace("'", "\\'") %]',
maxlength: '[% loc('Reports are limited to {0} characters in length. Please shorten your report') | replace("'", "\\'") %]',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,5 +43,11 @@ body_validation_rules = {
email: {
maxlength: 50
}
},
'Northamptonshire County Council': {
title: {
required: true,
maxlength: 120
},
}
};

0 comments on commit cc70303

Please sign in to comment.