Skip to content

Commit

Permalink
WIP commit
Browse files Browse the repository at this point in the history
  • Loading branch information
PeterHattyar committed Jul 29, 2024
1 parent 855cb82 commit bcbb4bb
Show file tree
Hide file tree
Showing 19 changed files with 369 additions and 60 deletions.
9 changes: 9 additions & 0 deletions app/controllers/campaign_requests_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,17 @@ def campaign_request_params
accessibility_confirmation
cookie_and_privacy_notice_confirmation
start_date
start_day
start_month
start_year
end_date
end_day
end_month
end_year
development_start_date
development_start_day
development_start_month
development_start_year
performance_review_contact_email
government_theme
description
Expand Down
2 changes: 1 addition & 1 deletion app/controllers/content_advice_requests_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def content_advice_request_params
:urls,
:contact_number,
requester_attributes: %i[email name collaborator_emails],
time_constraint_attributes: %i[needed_by_date time_constraint_reason],
time_constraint_attributes: %i[needed_by_date needed_by_day needed_by_month needed_by_year time_constraint_reason],
).to_h
end
end
2 changes: 1 addition & 1 deletion app/controllers/content_change_requests_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ def content_change_request_params
:url,
:related_urls,
requester_attributes: %i[email name collaborator_emails],
time_constraint_attributes: %i[not_before_date needed_by_date time_constraint_reason needed_by_time not_before_time],
time_constraint_attributes: %i[not_before_day not_before_month not_before_year needed_by_date needed_by_day needed_by_month needed_by_year time_constraint_reason needed_by_time not_before_time],
).to_h
end
end
2 changes: 1 addition & 1 deletion app/controllers/remove_user_requests_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def remove_user_request_params
:user_email,
:reason_for_removal,
requester_attributes: %i[email name collaborator_emails],
time_constraint_attributes: %i[not_before_date needed_by_date time_constraint_reason],
time_constraint_attributes: %i[needed_by_date time_constraint_reason not_before_day not_before_month not_before_year],
).to_h
end
end
36 changes: 36 additions & 0 deletions app/models/support/gds/campaign.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,17 @@ class Campaign
:cookie_and_privacy_notice_confirmation,
:signed_campaign,
:start_date,
:start_day,
:start_month,
:start_year,
:end_date,
:end_day,
:end_month,
:end_year,
:development_start_date,
:development_start_day,
:development_start_month,
:development_start_year,
:performance_review_contact_email,
:government_theme,
:description,
Expand Down Expand Up @@ -58,6 +67,33 @@ class Campaign

VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :performance_review_contact_email, :ga_contact_email, format: { with: VALID_EMAIL_REGEX }

def start_date
return "" unless start_year.present? && start_month.present? && start_day.present?

date_args = [start_year, start_month, start_day].map(&:to_i)
date = Date.new(*date_args)

"#{date.strftime('%d')}-#{date.strftime('%m')}-#{date.strftime('%Y')}"
end

def end_date
return "" unless end_year.present? && end_month.present? && end_day.present?

date_args = [end_year, end_month, end_day].map(&:to_i)
date = Date.new(*date_args)

"#{date.strftime('%d')}-#{date.strftime('%m')}-#{date.strftime('%Y')}"
end

def development_start_date
return "" unless development_start_year.present? && development_start_month.present? && development_start_day.present?

date_args = [development_start_year, development_start_month, development_start_day].map(&:to_i)
date = Date.new(*date_args)

"#{date.strftime('%d')}-#{date.strftime('%m')}-#{date.strftime('%Y')}"
end
end
end
end
20 changes: 19 additions & 1 deletion app/models/support/requests/time_constraint.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ module Support
module Requests
class TimeConstraint
include ActiveModel::Model
attr_accessor :not_before_date, :not_before_time, :needed_by_date, :needed_by_time, :time_constraint_reason
attr_accessor :not_before_day, :not_before_month, :not_before_year, :not_before_time, :needed_by_day, :needed_by_month, :needed_by_year, :needed_by_time, :time_constraint_reason

validates_date :needed_by_date, allow_blank: true, on_or_after: :today
validates_date :not_before_date, allow_blank: true, on_or_after: :today
Expand All @@ -24,6 +24,24 @@ class TimeConstraint
validates_time :not_before_time, on_or_before: :needed_by_time, unless: proc { |c|
[c.needed_by_date, c.needed_by_time, c.not_before_date, c.not_before_time].any?(&:blank?) || c.needed_by_date != c.not_before_date
}

def not_before_date
return "" unless not_before_year.present? && not_before_month.present? && not_before_day.present?

date_args = [not_before_year, not_before_month, not_before_day].map(&:to_i)
date = Date.new(*date_args)

"#{date.strftime('%d')}-#{date.strftime('%m')}-#{date.strftime('%Y')}"
end

def needed_by_date
return "" unless needed_by_year.present? && needed_by_month.present? && needed_by_day.present?

date_args = [needed_by_year, needed_by_month, needed_by_day].map(&:to_i)
date = Date.new(*date_args)

"#{date.strftime('%d')}-#{date.strftime('%m')}-#{date.strftime('%Y')}"
end
end
end
end
66 changes: 60 additions & 6 deletions app/views/campaign_requests/_request_details.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,27 @@
Start date of campaign site<abbr title="required">*</abbr>
<% end %>
</span>
<span class="form-wrapper">
<%= r.text_field :start_date, required: true, aria: { required: true }, placeholder: "dd-mm-yyyy", value: r.object.start_date, class: "input-md-2 form-control", data: { module: "calendar", format: "dd-mm-yy", min_date: 0 } %>

<%# <span class="form-wrapper">
<%= r.text_field :start_date, required: true, aria: { required: true }, placeholder: "dd-mm-yyyy", value: r.object.start_date, class: "input-md-2 form-control", data: { module: "calendar", format: "dd-mm-yy", min_date: 0 }
</span> %>
<br>

<span class="govuk-date-input__item">
<%= r.label :start_day, "Day", class: "govuk-label govuk-date-input__label" %>
<%= r.text_field :start_day, required: false, value: r.object.start_day, class: "govuk-input govuk-date-input__input govuk-input--width-2", id: "start-day" %>
</span>

<span class="govuk-date-input__item">
<%= r.label :start_month, "Month", class: "govuk-label govuk-date-input__label" %>
<%= r.text_field :start_month, required: false, value: r.object.start_month, class: "govuk-input govuk-date-input__input govuk-input--width-2", id: "start-month" %>
</span>

<span class="govuk-date-input__item">
<%= r.label :start_year, "Year", class: "govuk-label govuk-date-input__label" %>
<%= r.text_field :start_year, required: false, value: r.object.start_year, class: "govuk-input govuk-date-input__input govuk-input--width-4", id: "start-year" %>
</span>

</div>

<div class="form-group">
Expand All @@ -89,9 +107,27 @@
Proposed end date of campaign site<abbr title="required">*</abbr>
<% end %>
</span>
<span class="form-wrapper">
<%= r.text_field :end_date, required: true, aria: { required: true }, placeholder: "dd-mm-yyyy", value: r.object.end_date, class: "input-md-2 form-control", data: { module: "calendar", format: "dd-mm-yy", min_date: 0 } %>

<%# <span class="form-wrapper">
<%= r.text_field :end_date, required: true, aria: { required: true }, placeholder: "dd-mm-yyyy", value: r.object.end_date, class: "input-md-2 form-control", data: { module: "calendar", format: "dd-mm-yy", min_date: 0 }
</span> %>
<br>

<span class="govuk-date-input__item">
<%= r.label :end_day, "Day", class: "govuk-label govuk-date-input__label" %>
<%= r.text_field :end_day, required: false, value: r.object.end_day, class: "govuk-input govuk-date-input__input govuk-input--width-2", id: "end-day" %>
</span>

<span class="govuk-date-input__item">
<%= r.label :end_month, "Month", class: "govuk-label govuk-date-input__label" %>
<%= r.text_field :end_month, required: false, value: r.object.end_month, class: "govuk-input govuk-date-input__input govuk-input--width-2", id: "end-month" %>
</span>

<span class="govuk-date-input__item">
<%= r.label :end_year, "Year", class: "govuk-label govuk-date-input__label" %>
<%= r.text_field :end_year, required: false, value: r.object.end_year, class: "govuk-input govuk-date-input__input govuk-input--width-4", id: "end-year" %>
</span>

</div>

<div class="form-group">
Expand All @@ -100,9 +136,27 @@
Site build to commence on<abbr title="required">*</abbr>
<% end %>
</span>
<span class="form-wrapper">
<%= r.text_field :development_start_date, required: true, aria: { required: true }, placeholder: "dd-mm-yyyy", value: r.object.development_start_date, class: "input-md-2 form-control", data: { module: "calendar", format: "dd-mm-yy", min_date: 0 } %>

<%# <span class="form-wrapper">
<%= r.text_field :development_start_date, required: true, aria: { required: true }, placeholder: "dd-mm-yyyy", value: r.object.development_start_date, class: "input-md-2 form-control", data: { module: "calendar", format: "dd-mm-yy", min_date: 0 }
</span> %>
<br>

<span class="govuk-date-input__item">
<%= r.label :development_start_day, "Day", class: "govuk-label govuk-date-input__label" %>
<%= r.text_field :development_start_day, required: false, value: r.object.development_start_day, class: "govuk-input govuk-date-input__input govuk-input--width-2", id: "development-start-day" %>
</span>

<span class="govuk-date-input__item">
<%= r.label :development_start_month, "Month", class: "govuk-label govuk-date-input__label" %>
<%= r.text_field :development_start_month, required: false, value: r.object.development_start_month, class: "govuk-input govuk-date-input__input govuk-input--width-2", id: "development-start-month" %>
</span>

<span class="govuk-date-input__item">
<%= r.label :development_start_year, "Year", class: "govuk-label govuk-date-input__label" %>
<%= r.text_field :development_start_year, required: false, value: r.object.development_start_year, class: "govuk-input govuk-date-input__input govuk-input--width-4", id: "development-start-year" %>
</span>

</div>
<p class="help-block">
We expect the website to go live within 1 month of approval
Expand Down
25 changes: 21 additions & 4 deletions app/views/content_advice_requests/_request_details.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,29 @@
</legend>

<div class="form-group">
<span class="form-label">
<%= r.label :needed_by_date, "Is there a date you need to have a response by?" %>
<h4>
<%= "Is there a date you need to have a response by?" %>
</h4>

<%# <span class="form-wrapper">
<%= r.text_field :needed_by_date, placeholder: "dd-mm-yyyy", value: r.object.needed_by_date, class: "input-md-2 form-control", data: { module: "calendar", format: "dd-mm-yy", min_date: 0 }
</span> %>

<span class="govuk-date-input__item">
<%= r.label :needed_by_day, "Day", class: "govuk-label govuk-date-input__label" %>
<%= r.text_field :needed_by_day, required: false, value: r.object.needed_by_day, class: "govuk-input govuk-date-input__input govuk-input--width-2", id: "needed-by-day" %>
</span>
<span class="form-wrapper">
<%= r.text_field :needed_by_date, placeholder: "dd-mm-yyyy", value: r.object.needed_by_date, class: "input-md-2 form-control", data: { module: "calendar", format: "dd-mm-yy", min_date: 0 } %>

<span class="govuk-date-input__item">
<%= r.label :needed_by_month, "Month", class: "govuk-label govuk-date-input__label" %>
<%= r.text_field :needed_by_month, required: false, value: r.object.needed_by_month, class: "govuk-input govuk-date-input__input govuk-input--width-2", id: "needed-by-month" %>
</span>

<span class="govuk-date-input__item">
<%= r.label :needed_by_year, "Year", class: "govuk-label govuk-date-input__label" %>
<%= r.text_field :needed_by_year, required: false, value: r.object.needed_by_year, class: "govuk-input govuk-date-input__input govuk-input--width-4", id: "needed-by-year" %>
</span>

</div>

<div class="form-group">
Expand Down
1 change: 1 addition & 0 deletions app/views/layouts/application.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
<%= csp_meta_tag %>
<%= stylesheet_link_tag "legacy/application", :media => "all" %>
<%= javascript_include_tag "legacy/application" %>
<%= stylesheet_link_tag "application", :media => "all" %>
<% end %>
<% content_for :favicon do %>
Expand Down
42 changes: 36 additions & 6 deletions app/views/remove_user_requests/_request_details.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,44 @@
</div>

<%= f.fields_for :time_constraint do |r| %>

<h4>
<%= "MUST NOT be removed BEFORE" %>
</h4>

<div id="date-hint" class="govuk-hint">
For example, 27 3 2007
</div>

<div class="form-group">
<span class="form-label">
<%= r.label :not_before_date, "MUST NOT be removed BEFORE" %>
</span>
<span class="form-wrapper">
<%= r.text_field :not_before_date, required: false, placeholder: "dd-mm-yyyy", value: r.object.not_before_date, class: "input-md-2 form-control", data: { module: "calendar", format: "dd-mm-yy", min_date: 0 } %>
</span>

<div class="govuk-date-input" id="not-before-date-input">

<div class="govuk-date-input__item">
<div class="govuk-form-group">
<%= r.label :not_before_day, "Day", class: "govuk-label govuk-date-input__label" %>
<%= r.text_field :not_before_day, required: false, value: r.object.not_before_day, class: "govuk-input govuk-date-input__input govuk-input--width-2", id: "not-before-day" %>
</div>
</div>

<div class="govuk-date-input__item">
<div class="govuk-form-group">
<%= r.label :not_before_month, "Month", class: "govuk-label govuk-date-input__label" %>
<%= r.text_field :not_before_month, required: false, value: r.object.not_before_month, class: "govuk-input govuk-date-input__input govuk-input--width-2", id: "not-before-month" %>
</div>
</div>

<div class="govuk-date-input__item">
<div class="govuk-form-group">
<%= r.label :not_before_year, "Year", class: "govuk-label govuk-date-input__label" %>
<%= r.text_field :not_before_year, required: false, value: r.object.not_before_year, class: "govuk-input govuk-date-input__input govuk-input--width-4", id: "not-before-year" %>
</div>
</div>

</div>

</div>

<% end %>

<div class="form-group">
Expand Down
43 changes: 39 additions & 4 deletions app/views/support/_time_constraint.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,26 @@
<span class="form-label">
<%= r.label :needed_by_date, "Deadline" %>
</span>
<span class="form-wrapper">
<%= r.text_field :needed_by_date, required: false, placeholder: "dd-mm-yyyy", value: r.object.needed_by_date, class: "input-md-2 form-control", data: { module: "calendar", format: "dd-mm-yy", min_date: 0 } %>
<br>

<%# <span class="form-wrapper">
<%= r.text_field :needed_by_date, required: false, placeholder: "dd-mm-yyyy", value: r.object.needed_by_date, class: "input-md-2 form-control", data: { module: "calendar", format: "dd-mm-yy", min_date: 0 }
</span> %>

<span class="govuk-date-input__item">
<%= r.label :needed_by_day, "Day", class: "govuk-label govuk-date-input__label" %>
<%= r.text_field :needed_by_day, required: false, value: r.object.needed_by_day, class: "govuk-input govuk-date-input__input govuk-input--width-2", id: "needed-by-day" %>
</span>

<span class="govuk-date-input__item">
<%= r.label :needed_by_month, "Month", class: "govuk-label govuk-date-input__label" %>
<%= r.text_field :needed_by_month, required: false, value: r.object.needed_by_month, class: "govuk-input govuk-date-input__input govuk-input--width-2", id: "needed-by-month" %>
</span>

<span class="govuk-date-input__item">
<%= r.label :needed_by_year, "Year", class: "govuk-label govuk-date-input__label" %>
<%= r.text_field :needed_by_year, required: false, value: r.object.needed_by_year, class: "govuk-input govuk-date-input__input govuk-input--width-4", id: "needed-by-year" %>
</span>
</div>

<div class="form-group">
Expand All @@ -26,9 +43,27 @@
<span class="form-label">
<%= r.label :not_before_date, "Must not be published before" %>
</span>
<span class="form-wrapper">
<%= r.text_field :not_before_date, required: false, placeholder: "dd-mm-yyyy", value: r.object.not_before_date, class: "input-md-2 form-control", data: { module: "calendar", format: "dd-mm-yy", min_date: 0 } %>
<br>

<%# <span class="form-wrapper">
<%= r.text_field :not_before_date, required: false, placeholder: "dd-mm-yyyy", value: r.object.not_before_date, class: "input-md-2 form-control", data: { module: "calendar", format: "dd-mm-yy", min_date: 0 }
</span> %>

<span class="govuk-date-input__item">
<%= r.label :not_before_day, "Day", class: "govuk-label govuk-date-input__label" %>
<%= r.text_field :not_before_day, required: false, value: r.object.not_before_day, class: "govuk-input govuk-date-input__input govuk-input--width-2", id: "not-before-day" %>
</span>

<span class="govuk-date-input__item">
<%= r.label :not_before_month, "Month", class: "govuk-label govuk-date-input__label" %>
<%= r.text_field :not_before_month, required: false, value: r.object.not_before_month, class: "govuk-input govuk-date-input__input govuk-input--width-2", id: "not-before-month" %>
</span>

<span class="govuk-date-input__item">
<%= r.label :not_before_year, "Year", class: "govuk-label govuk-date-input__label" %>
<%= r.text_field :not_before_year, required: false, value: r.object.not_before_year, class: "govuk-input govuk-date-input__input govuk-input--width-4", id: "not-before-year" %>
</span>

</div>

<div class="form-group">
Expand Down
Loading

0 comments on commit bcbb4bb

Please sign in to comment.