diff options
author | Matthew Somerville <matthew-github@dracos.co.uk> | 2017-06-30 20:08:22 +0100 |
---|---|---|
committer | Matthew Somerville <matthew-github@dracos.co.uk> | 2017-06-30 20:08:22 +0100 |
commit | af5c9769ed7f3d4217d9a5de21cf07aa977737be (patch) | |
tree | 84ff5a5050e7d4e2100df9c884c348ea8317464f /perllib | |
parent | 30dd9d8bd1f4229bf5cb0a8c559ba00dba35b750 (diff) | |
parent | 7b06aae99229d9a5a8544f4aa106682a8c02b497 (diff) |
Merge branch 'issues/forcouncils/193-state-of-the-template'
Diffstat (limited to 'perllib')
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Report.pm | 2 | ||||
-rw-r--r-- | perllib/FixMyStreet/DB/Factories.pm | 25 | ||||
-rw-r--r-- | perllib/FixMyStreet/DB/ResultSet/ResponseTemplate.pm | 27 | ||||
-rw-r--r-- | perllib/FixMyStreet/Roles/ContactExtra.pm | 3 |
4 files changed, 56 insertions, 1 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Report.pm b/perllib/FixMyStreet/App/Controller/Report.pm index 223cea9b4..ef10dc32e 100644 --- a/perllib/FixMyStreet/App/Controller/Report.pm +++ b/perllib/FixMyStreet/App/Controller/Report.pm @@ -315,6 +315,8 @@ sub inspect : Private { if ($c->cobrand->can('council_area_id')) { my $priorities_by_category = FixMyStreet::App->model('DB::ResponsePriority')->by_categories($c->cobrand->council_area_id, @{$c->stash->{contacts}}); $c->stash->{priorities_by_category} = $priorities_by_category; + my $templates_by_category = FixMyStreet::App->model('DB::ResponseTemplate')->by_categories($c->cobrand->council_area_id, @{$c->stash->{contacts}}); + $c->stash->{templates_by_category} = $templates_by_category; } if ( $c->get_param('save') ) { diff --git a/perllib/FixMyStreet/DB/Factories.pm b/perllib/FixMyStreet/DB/Factories.pm index c3060507e..acf88063e 100644 --- a/perllib/FixMyStreet/DB/Factories.pm +++ b/perllib/FixMyStreet/DB/Factories.pm @@ -100,6 +100,31 @@ __PACKAGE__->fields({ ####################### +package FixMyStreet::DB::Factory::ResponseTemplate; + +use parent -norequire, "FixMyStreet::DB::Factory::Base"; + +__PACKAGE__->resultset(FixMyStreet::DB->resultset("ResponseTemplate")); + +__PACKAGE__->fields({ + text => __PACKAGE__->seq(sub { 'Template text #' . (shift()+1) }), +}); + +####################### + +package FixMyStreet::DB::Factory::ResponsePriority; + +use parent "DBIx::Class::Factory"; + +__PACKAGE__->resultset(FixMyStreet::DB->resultset("ResponsePriority")); + +__PACKAGE__->fields({ + name => __PACKAGE__->seq(sub { 'Priority #' . (shift()+1) }), + description => __PACKAGE__->seq(sub { 'Description #' . (shift()+1) }), +}); + +####################### + package FixMyStreet::DB::Factory::Comment; use parent "DBIx::Class::Factory"; diff --git a/perllib/FixMyStreet/DB/ResultSet/ResponseTemplate.pm b/perllib/FixMyStreet/DB/ResultSet/ResponseTemplate.pm new file mode 100644 index 000000000..aa070daa3 --- /dev/null +++ b/perllib/FixMyStreet/DB/ResultSet/ResponseTemplate.pm @@ -0,0 +1,27 @@ +package FixMyStreet::DB::ResultSet::ResponseTemplate; +use base 'DBIx::Class::ResultSet'; + +use Moo; +use HTML::Entities; + +with('FixMyStreet::Roles::ContactExtra'); + +sub join_table { + return 'contact_response_templates'; +} + +sub name_column { + 'title'; +} + +sub map_extras { + my ($rs, @ts) = @_; + return map { + my $out = { id => encode_entities($_->text), name => encode_entities($_->title) }; + $out->{state} = encode_entities($_->state) if $_->state; + $out; + } @ts; +} + +1; + diff --git a/perllib/FixMyStreet/Roles/ContactExtra.pm b/perllib/FixMyStreet/Roles/ContactExtra.pm index d23a094f3..fc6531e54 100644 --- a/perllib/FixMyStreet/Roles/ContactExtra.pm +++ b/perllib/FixMyStreet/Roles/ContactExtra.pm @@ -11,8 +11,9 @@ sub for_bodies { my $attrs = { 'me.body_id' => $bodies, }; + my $order = $rs->can('name_column') ? $rs->name_column() : 'name'; my $filters = { - order_by => 'name', + order_by => $order, join => { $join_table => 'contact' }, distinct => 1, }; |