aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/Cobrand
diff options
context:
space:
mode:
authorDave Whiteland <dave@mysociety.org>2012-10-03 17:47:25 +0100
committerDave Whiteland <dave@mysociety.org>2012-10-03 17:47:25 +0100
commit272dba7ce6d59d81b52579dd4c5fc7d65e9bec20 (patch)
treecabbefec7823061781050ffb002a38ce53d68f56 /perllib/FixMyStreet/Cobrand
parent39c1b648b30e67ceb8912a35b386eb4ee23857b8 (diff)
parentf16a3e96b65394089d10c46c1d67cf82c67e72dd (diff)
Merge branch 'fmb-read-only'
Conflicts: db/schema.sql perllib/FixMyStreet/DB/Result/Contact.pm perllib/FixMyStreet/DB/Result/Problem.pm
Diffstat (limited to 'perllib/FixMyStreet/Cobrand')
-rw-r--r--perllib/FixMyStreet/Cobrand/Default.pm49
-rw-r--r--perllib/FixMyStreet/Cobrand/FixMyBarangay.pm50
-rw-r--r--perllib/FixMyStreet/Cobrand/UK.pm18
3 files changed, 103 insertions, 14 deletions
diff --git a/perllib/FixMyStreet/Cobrand/Default.pm b/perllib/FixMyStreet/Cobrand/Default.pm
index 8d0b5ab50..cfc9455b5 100644
--- a/perllib/FixMyStreet/Cobrand/Default.pm
+++ b/perllib/FixMyStreet/Cobrand/Default.pm
@@ -645,7 +645,34 @@ Get stats to display on the council reports page
sub get_report_stats { return 0; }
-sub get_council_sender { return 'Email' };
+sub get_council_sender {
+ my ( $self, $area_id, $area_info, $category ) = @_;
+
+ my $send_method;
+
+ my $council_config = FixMyStreet::App->model("DB::Open311conf")->search( { area_id => $area_id } )->first;
+ $send_method = $council_config->send_method if $council_config;
+
+ if ( $council_config && $council_config->can_be_devolved ) {
+ # look up via category
+ my $config = FixMyStreet::App->model("DB::Contact")->search( { area_id => $area_id, category => $category } )->first;
+ if ( $config->send_method ) {
+ return { method => $config->send_method, config => $config };
+ } else {
+ return { method => $send_method, config => $council_config };
+ }
+ } elsif ( $send_method ) {
+ return { method => $send_method, config => $council_config };
+ }
+
+ return $self->_fallback_council_sender( $area_id, $area_info, $category );
+}
+
+sub _fallback_council_sender {
+ my ( $self, $area_id, $area_info, $category ) = @_;
+
+ return { method => 'Email' };
+};
sub example_places {
my $e = FixMyStreet->config('EXAMPLE_PLACES') || [ 'High Street', 'Main Street' ];
@@ -653,6 +680,24 @@ sub example_places {
return $e;
}
+=head2 only_authed_can_create
+
+If true, only users with the from_council flag set are able to create reports.
+
+=cut
+
+sub only_authed_can_create {
+ return 0;
+}
+
+=head2 areas_on_around
+
+If set to an arrayref, will plot those area ID(s) from mapit on all the /around pages.
+
+=cut
+
+sub areas_on_around {}
+
sub process_extras {}
=head 2 pin_colour
@@ -678,5 +723,7 @@ Used in some cobrands to improve the intial display for Internet Explorer.
sub tweak_all_reports_map {}
+sub can_support_problems { return 0; }
+
1;
diff --git a/perllib/FixMyStreet/Cobrand/FixMyBarangay.pm b/perllib/FixMyStreet/Cobrand/FixMyBarangay.pm
new file mode 100644
index 000000000..e2a8e9f87
--- /dev/null
+++ b/perllib/FixMyStreet/Cobrand/FixMyBarangay.pm
@@ -0,0 +1,50 @@
+package FixMyStreet::Cobrand::FixMyBarangay;
+use base 'FixMyStreet::Cobrand::Default';
+
+use strict;
+use warnings;
+
+sub path_to_web_templates {
+ my $self = shift;
+ return [
+ FixMyStreet->path_to( 'templates/web', $self->moniker )->stringify,
+ FixMyStreet->path_to( 'templates/web/fixmystreet' )->stringify
+ ];
+}
+
+sub country {
+ return 'PH';
+}
+
+sub language_domain { 'FixMyBarangay' }
+
+sub area_types {
+ return [ 'BGY' ];
+}
+
+sub disambiguate_location {
+ return {
+ country => 'ph',
+ bing_country => 'Philippines',
+ };
+}
+
+sub site_title {
+ my ($self) = @_;
+ return 'FixMyBarangay';
+}
+
+sub only_authed_can_create {
+ return 1;
+}
+
+sub areas_on_around {
+ return [ 1, 2 ];
+}
+
+sub can_support_problems {
+ return 1;
+}
+
+1;
+
diff --git a/perllib/FixMyStreet/Cobrand/UK.pm b/perllib/FixMyStreet/Cobrand/UK.pm
index 0d6f98590..75f6ba061 100644
--- a/perllib/FixMyStreet/Cobrand/UK.pm
+++ b/perllib/FixMyStreet/Cobrand/UK.pm
@@ -31,19 +31,11 @@ sub disambiguate_location {
};
}
-sub get_council_sender {
- my ( $self, $area_id, $area_info ) = @_;
-
- my $send_method;
-
- my $council_config = FixMyStreet::App->model("DB::Open311conf")->search( { area_id => $area_id } )->first;
- $send_method = $council_config->send_method if $council_config;
-
- return $send_method if $send_method;
-
- return 'London' if $area_info->{type} eq 'LBO';
- return 'NI' if $area_info->{type} eq 'LGD';
- return 'Email';
+sub _fallback_council_sender {
+ my ( $self, $area_id, $area_info, $category ) = @_;
+ return { method => 'London' } if $area_info->{type} eq 'LBO';
+ return { method => 'NI' } if $area_info->{type} eq 'LGD';
+ return { method => 'Email' };
}
sub process_extras {