Skip to content

Commit 7de060c

Browse files
authored
Merge pull request #645 from alphagov/add-easter-message
Add a moderation delay message for Easter
2 parents 1d1c4fa + dbfc33b commit 7de060c

17 files changed

Lines changed: 314 additions & 34 deletions

File tree

Gemfile.lock

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ GEM
159159
logstash-event (1.2.02)
160160
logstash-logger (0.25.1)
161161
logstash-event (~> 1.2)
162-
loofah (2.2.1)
162+
loofah (2.2.2)
163163
crass (~> 1.0.2)
164164
nokogiri (>= 1.5.9)
165165
mail (2.7.0)
@@ -220,8 +220,8 @@ GEM
220220
activesupport (>= 4.2.0.beta, < 5.0)
221221
nokogiri (~> 1.6)
222222
rails-deprecated_sanitizer (>= 1.0.1)
223-
rails-html-sanitizer (1.0.3)
224-
loofah (~> 2.0)
223+
rails-html-sanitizer (1.0.4)
224+
loofah (~> 2.2, >= 2.2.2)
225225
railties (4.2.10)
226226
actionpack (= 4.2.10)
227227
activesupport (= 4.2.10)

app/assets/stylesheets/petitions/_forms.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ select.form-control:hover {
2727
width: 25%;
2828
}
2929

30+
.form-control-auto {
31+
width: auto;
32+
}
33+
3034
.form-group {
3135
margin-bottom: $gutter;
3236
clear: both;
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
class Admin::HolidaysController < Admin::AdminController
2+
before_action :require_sysadmin
3+
before_action :fetch_holiday
4+
5+
def edit
6+
respond_to do |format|
7+
format.html
8+
end
9+
end
10+
11+
def update
12+
if @holiday.update(holiday_params)
13+
redirect_to edit_admin_site_url, notice: :site_updated
14+
else
15+
respond_to do |format|
16+
format.html { render :edit }
17+
end
18+
end
19+
end
20+
21+
private
22+
23+
def fetch_holiday
24+
@holiday = Holiday.instance
25+
end
26+
27+
def holiday_params
28+
params.require(:holiday).permit(*holiday_attributes)
29+
end
30+
31+
def holiday_attributes
32+
%i[christmas_start christmas_end easter_start easter_end]
33+
end
34+
end

app/helpers/date_time_helper.rb

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,10 @@ def scheduled_for_debate_in_words(date, today = Date.current)
5959
end
6060

6161
def christmas_period?(today = Date.current)
62-
if today.mon == 12
63-
today.day > 21 ? true : false
64-
elsif today.mon == 1
65-
today.day < 5 ? true : false
66-
else
67-
false
68-
end
62+
Holiday.christmas?(today)
63+
end
64+
65+
def easter_period?(today = Date.current)
66+
Holiday.easter?(today)
6967
end
7068
end

app/models/holiday.rb

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
class Holiday < ActiveRecord::Base
2+
class << self
3+
def before_remove_const
4+
Thread.current[:__holiday__] = nil
5+
end
6+
7+
def instance
8+
Thread.current[:__holiday__] ||= first_or_create(defaults)
9+
end
10+
11+
def christmas?(today = Date.current)
12+
instance.christmas?(today)
13+
end
14+
15+
def easter?(today = Date.current)
16+
instance.easter?(today)
17+
end
18+
19+
private
20+
21+
def defaults
22+
{
23+
christmas_start: '2017-12-22',
24+
christmas_end: '2018-01-04',
25+
easter_start: '2018-03-30',
26+
easter_end: '2018-04-09'
27+
}
28+
end
29+
end
30+
31+
def christmas?(today = Date.current)
32+
christmas.cover?(today)
33+
end
34+
35+
def easter?(today = Date.current)
36+
easter.cover?(today)
37+
end
38+
39+
private
40+
41+
def christmas
42+
christmas_start..christmas_end
43+
end
44+
45+
def easter
46+
easter_start..easter_end
47+
end
48+
end

app/models/invalidation.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
require 'textacular/searchable'
2+
13
class Invalidation < ActiveRecord::Base
24
extend Searchable(:id, :summary, :details, :petition_id)
35
include Browseable
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<h1>Edit Site</h1>
2+
3+
<div class="grid-row">
4+
<div class="grid-column">
5+
<%= render "admin/shared/site_tabs" %>
6+
</div>
7+
8+
<div class="column-two-thirds extra-gutter">
9+
<%= form_for @holiday, url: admin_holidays_url do |form| %>
10+
<div class="form-group">
11+
<label class="form-label" for="holiday_christmas_start">Christmas period</label>
12+
<%= form.date_select :christmas_start, {}, tabindex: increment, class: 'form-control form-control-auto' %>
13+
14+
<%= form.date_select :christmas_end, {}, tabindex: increment, class: 'form-control form-control-auto' %>
15+
</div>
16+
17+
<div class="form-group">
18+
<label class="form-label" for="holiday_easter_start">Easter period</label>
19+
<%= form.date_select :easter_start, {}, tabindex: increment, class: 'form-control form-control-auto' %>
20+
21+
<%= form.date_select :easter_end, {}, tabindex: increment, class: 'form-control form-control-auto' %>
22+
</div>
23+
24+
<%= form.submit 'Save', class: 'button' %>
25+
<%= link_to 'Cancel', admin_root_path, class: 'button-secondary' %>
26+
<% end %>
27+
</div>
28+
</div>
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<p class="tabs">
2+
<% if params[:tab] == "petitions" %>
3+
<%= link_to "Description", edit_admin_site_path %> |
4+
Petitions |
5+
<%= link_to "Moderation", edit_admin_site_path(tab: 'moderation') %> |
6+
<%= link_to "Access", edit_admin_site_path(tab: 'access') %> |
7+
<%= link_to "Holidays", edit_admin_holidays_path %>
8+
<% elsif params[:tab] == "moderation" %>
9+
<%= link_to "Description", edit_admin_site_path %> |
10+
<%= link_to "Petitions", edit_admin_site_path(tab: 'petitions') %> |
11+
Moderation |
12+
<%= link_to "Access", edit_admin_site_path(tab: 'access') %> |
13+
<%= link_to "Holidays", edit_admin_holidays_path %>
14+
<% elsif params[:tab] == "access" %>
15+
<%= link_to "Description", edit_admin_site_path %> |
16+
<%= link_to "Petitions", edit_admin_site_path(tab: 'petitions') %> |
17+
<%= link_to "Moderation", edit_admin_site_path(tab: 'moderation') %> |
18+
Access |
19+
<%= link_to "Holidays", edit_admin_holidays_path %>
20+
<% elsif controller_name == "holidays" %>
21+
<%= link_to "Description", edit_admin_site_path %> |
22+
<%= link_to "Petitions", edit_admin_site_path(tab: 'petitions') %> |
23+
<%= link_to "Moderation", edit_admin_site_path(tab: 'moderation') %> |
24+
<%= link_to "Access", edit_admin_site_path(tab: 'access') %> |
25+
Holidays
26+
<% else %>
27+
Description |
28+
<%= link_to "Petitions", edit_admin_site_path(tab: 'petitions') %> |
29+
<%= link_to "Moderation", edit_admin_site_path(tab: 'moderation') %> |
30+
<%= link_to "Access", edit_admin_site_path(tab: 'access') %> |
31+
<%= link_to "Holidays", edit_admin_holidays_path %>
32+
<% end %>
33+
</p>

app/views/admin/sites/edit.html.erb

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,7 @@
22

33
<div class="grid-row">
44
<div class="grid-column">
5-
<p class="tabs">
6-
<% if params[:tab] == "petitions" %>
7-
<%= link_to "Description", edit_admin_site_path %> |
8-
Petitions |
9-
<%= link_to "Moderation", edit_admin_site_path(tab: 'moderation') %> |
10-
<%= link_to "Access", edit_admin_site_path(tab: 'access') %>
11-
<% elsif params[:tab] == "moderation" %>
12-
<%= link_to "Description", edit_admin_site_path %> |
13-
<%= link_to "Petitions", edit_admin_site_path(tab: 'petitions') %> |
14-
Moderation |
15-
<%= link_to "Access", edit_admin_site_path(tab: 'access') %>
16-
<% elsif params[:tab] == "access" %>
17-
<%= link_to "Description", edit_admin_site_path %> |
18-
<%= link_to "Petitions", edit_admin_site_path(tab: 'petitions') %> |
19-
<%= link_to "Moderation", edit_admin_site_path(tab: 'moderation') %> |
20-
Access
21-
<% else %>
22-
Description |
23-
<%= link_to "Petitions", edit_admin_site_path(tab: 'petitions') %> |
24-
<%= link_to "Moderation", edit_admin_site_path(tab: 'moderation') %> |
25-
<%= link_to "Access", edit_admin_site_path(tab: 'access') %>
26-
<% end %>
27-
</p>
5+
<%= render "admin/shared/site_tabs" %>
286
</div>
297

308
<div class="column-two-thirds extra-gutter">

app/views/sponsor_mailer/sponsor_signed_email_on_threshold.html.erb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
<% if christmas_period? %>
88
<p><%= @sponsor_count %> people have supported your petition so far. We’re checking your petition to make sure it meets the petition standards. If it does, we’ll publish it. This usually takes a week or less but over the Christmas period it may take us a little longer than usual. We’ll check your petition as quickly as we can.</p>
9+
<% elsif easter_period? %>
10+
<p><%= @sponsor_count %> people have supported your petition so far. We’re checking your petition to make sure it meets the petition standards. If it does, we’ll publish it. This usually takes a week or less but over the Easter period it may take us a little longer than usual. We’ll check your petition as quickly as we can.</p>
911
<% else %>
1012
<p><%= @sponsor_count %> people have supported your petition so far. We’re checking your petition to make sure it meets the petition standards. If it does, we’ll publish it. This usually takes a week or less.</p>
1113
<% end %>

0 commit comments

Comments
 (0)