Skip to content

Commit bdc822e

Browse files
authored
Merge pull request #663 from alphagov/update-map-link
Update map link and add additional ones
2 parents a1fccab + 87bb19e commit bdc822e

7 files changed

Lines changed: 35 additions & 3 deletions

File tree

app/controllers/petitions_controller.rb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
class PetitionsController < ApplicationController
44
before_action :redirect_to_valid_state, only: [:index]
55
before_action :do_not_cache, except: [:index, :show]
6+
before_action :set_cors_headers, only: [:index, :show, :count], if: :json_request?
67

78
before_action :redirect_to_home_page_if_dissolved, only: [:new, :check, :check_results, :create]
89
before_action :redirect_to_home_page_unless_opened, only: [:index, :new, :check, :check_results, :create]
@@ -17,7 +18,6 @@ class PetitionsController < ApplicationController
1718
before_action :redirect_to_moderation_info_url, if: :in_moderation?, only: [:gathering_support, :show]
1819
before_action :redirect_to_petition_url, if: :moderated?, only: [:gathering_support, :moderation_info]
1920

20-
before_action :set_cors_headers, only: [:index, :show, :count], if: :json_request?
2121
after_action :set_content_disposition, if: :csv_request?, only: [:index]
2222

2323
def index
@@ -95,9 +95,13 @@ def redirect_to_home_page_unless_opened
9595
redirect_to home_url unless Parliament.opened?
9696
end
9797

98+
def request_format
99+
request.format.json? ? :json : nil
100+
end
101+
98102
def redirect_to_archived_petition_if_archived
99103
if petition = Archived::Petition.find_by(id: petition_id)
100-
redirect_to archived_petition_url(petition_id) if petition.parliament.archived?
104+
redirect_to archived_petition_url(petition_id, format: request_format) if petition.parliament.archived?
101105
end
102106
end
103107

app/models/archived/petition.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ class Petition < ActiveRecord::Base
5959
default_scope { preload(:parliament) }
6060

6161
delegate :threshold_for_response, :threshold_for_debate, to: :parliament
62+
delegate :show_on_a_map?, to: :parliament
6263

6364
with_options allow_nil: true, prefix: true do
6465
delegate :name, :email, to: :creator

app/models/parliament.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
class Parliament < ActiveRecord::Base
44
include ActiveSupport::NumberHelper
55

6+
CUTOFF_DATE = Date.civil(2015, 5, 7)
7+
68
has_many :petitions, inverse_of: :parliament, class_name: "Archived::Petition"
79

810
class << self
@@ -184,4 +186,8 @@ def formatted_threshold_for_response
184186
def formatted_threshold_for_debate
185187
number_to_delimited(threshold_for_debate)
186188
end
189+
190+
def show_on_a_map?
191+
opening_at > CUTOFF_DATE
192+
end
187193
end

app/views/archived/petitions/show.html.erb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@
6666
<div class="signature-count-graph" aria-hidden="true">
6767
<span class="signature-count-current" style="width: <%= archived_threshold_percentage(@petition) %>"></span>
6868
</div>
69+
<% if @petition.show_on_a_map? %>
70+
<p class="signatures-on-a-map">
71+
<a href="https://petitionmap.unboxedconsulting.com/?petition=<%= @petition.id %>">Show on a map</a>
72+
</p>
73+
<% end %>
6974
<p class="signature-count-goal">
7075
<%= number_with_delimiter(archived_threshold(@petition)) %>
7176
</p>

app/views/petitions/_closed_petition_show.html.erb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@
3333
<div class="signature-count-graph" aria-hidden="true">
3434
<span class="signature-count-current" style="width: <%= signatures_threshold_percentage(petition) %>"></span>
3535
</div>
36+
<p class="signatures-on-a-map">
37+
<a href="https://petitionmap.unboxedconsulting.com/?petition=<%= petition.id %>">Show on a map</a>
38+
</p>
3639
<p class="signature-count-goal">
3740
<%= number_with_delimiter(current_threshold(petition)) %>
3841
</p>

app/views/petitions/_open_petition_show.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<span class="signature-count-current" style="width: <%= signatures_threshold_percentage(petition) %>"></span>
2323
</div>
2424
<p class="signatures-on-a-map">
25-
<a href="http://petitionmap.unboxedconsulting.com/?petition=<%= petition.id %>">Show on a map</a>
25+
<a href="https://petitionmap.unboxedconsulting.com/?petition=<%= petition.id %>">Show on a map</a>
2626
</p>
2727
<p class="signature-count-goal">
2828
<%= number_with_delimiter(current_threshold(petition)) %>

spec/requests/archived_petition_show_spec.rb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,19 @@
2727
get "/archived/petitions/#{petition.id}.xml"
2828
expect(response.status).to eq(406)
2929
end
30+
31+
context "when accessing the old url" do
32+
before do
33+
get "/petitions/#{petition.id}.json"
34+
end
35+
36+
it "redirects to the archive url" do
37+
expect(response).to redirect_to("/archived/petitions/#{petition.id}.json")
38+
expect(access_control_allow_origin).to eq('*')
39+
expect(access_control_allow_methods).to eq('GET')
40+
expect(access_control_allow_headers).to eq('Origin, X-Requested-With, Content-Type, Accept')
41+
end
42+
end
3043
end
3144

3245
describe "links" do

0 commit comments

Comments
 (0)