diff --git a/.erb-lint.yml b/.erb_lint.yml similarity index 100% rename from .erb-lint.yml rename to .erb_lint.yml diff --git a/.rubocop.yml b/.rubocop.yml index 7bc65bbd8..4a54015a2 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,5 +1,7 @@ require: - rubocop-performance + +plugins: - rubocop-rails - rubocop-rspec @@ -28,3 +30,6 @@ Rails/UnknownEnv: - development - test - review + +RSpec/IndexedLet: + Enabled: false diff --git a/.ruby-version b/.ruby-version index 9cec7165a..f9892605c 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.1.6 +3.4.4 diff --git a/Dockerfile b/Dockerfile index 281fd6ca2..88a7e6a79 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ruby:3.1.6-alpine3.20 as base +FROM ruby:3.4.4-alpine3.20 as base WORKDIR /app @@ -10,7 +10,7 @@ RUN apk add --update --no-cache tzdata && \ # build-base: compilation tools for bundle # yarn: node package manager # postgresql-dev: postgres driver and libraries -RUN apk add --no-cache build-base=0.5-r3 busybox=1.36.1-r29 nodejs=20.15.1-r0 yarn=1.22.22-r0 bash=5.2.26-r0 libpq-dev +RUN apk add --no-cache build-base=0.5-r3 busybox=1.36.1-r29 nodejs=20.15.1-r0 yarn=1.22.22-r0 bash=5.2.26-r0 libpq-dev yaml-dev linux-headers # Bundler version should be the same version as what the Gemfile.lock was bundled with RUN gem install bundler:2.6.4 --no-document diff --git a/Gemfile b/Gemfile index f6e7fdac5..91ed6c8a8 100644 --- a/Gemfile +++ b/Gemfile @@ -3,7 +3,7 @@ source "https://rubygems.org" git_source(:github) { |repo| "https://github.com/#{repo}.git" } -ruby "3.1.6" +ruby "3.4.4" # Bundle edge Rails instead: gem 'rails', github: 'rails/rails', branch: 'main' gem "rails", "~> 7.2.2" @@ -51,7 +51,7 @@ gem "paper_trail-globalid" gem "pundit" # Request rate limiting -gem "rack", ">= 2.2.6.3" +gem "rack", "~> 3.1.20" gem "rack-attack" gem "redis", "~> 4.8" # Receive exceptions and configure alerts @@ -72,9 +72,12 @@ gem "sidekiq-cron" gem "unread" # Pinning versions to address vulnerabilities -gem "nokogiri", "~> 1.18.9" +gem "nokogiri", "~> 1.19.1" gem "thor", "~> 1.4.0" +# Pinning until activesupport is updated to v8.1.2 +gem "connection_pool", "~> 2.5" + group :development, :test do # Check gems for known vulnerabilities gem "bundler-audit" @@ -95,7 +98,7 @@ group :development do # Can be configured to work on production as well see: https://github.com/MiniProfiler/rack-mini-profiler/blob/master/README.md gem "erb_lint", require: false gem "rack-mini-profiler", "~> 3.3.0" - gem "rubocop-govuk", "4.3.0", require: false + gem "rubocop-govuk", "5.2.0", require: false gem "rubocop-performance", require: false gem "rubocop-rails", require: false end diff --git a/Gemfile.lock b/Gemfile.lock index 34bfd3067..4277b9499 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -78,7 +78,7 @@ GEM tzinfo (~> 2.0, >= 2.0.5) addressable (2.8.6) public_suffix (>= 2.0.2, < 6.0) - ast (2.4.2) + ast (2.4.3) auto_strip_attributes (2.6.0) activerecord (>= 4.0) aws-eventstream (1.4.0) @@ -113,15 +113,15 @@ GEM thread_safe (~> 0.3, >= 0.3.1) base64 (0.3.0) bcrypt (3.1.20) - benchmark (0.4.1) - better_html (2.0.2) - actionview (>= 6.0) - activesupport (>= 6.0) + benchmark (0.5.0) + better_html (2.2.0) + actionview (>= 7.0) + activesupport (>= 7.0) ast (~> 2.0) erubi (~> 1.4) parser (>= 2.4) smart_properties - bigdecimal (3.2.2) + bigdecimal (4.0.1) bindex (0.8.1) bootsnap (1.18.3) msgpack (~> 1.2) @@ -151,7 +151,7 @@ GEM coderay (1.1.3) coercible (1.0.0) descendants_tracker (~> 0.0.1) - concurrent-ruby (1.3.5) + concurrent-ruby (1.3.6) connection_pool (2.5.3) crack (1.0.0) bigdecimal @@ -184,12 +184,12 @@ GEM drb (2.2.3) dumb_delegator (1.0.0) encryptor (3.0.0) - erb_lint (0.5.0) + erb_lint (0.9.0) activesupport better_html (>= 2.0.1) parser (>= 2.7.1.4) rainbow - rubocop + rubocop (>= 1) smart_properties erubi (1.13.1) et-orbi (1.2.11) @@ -232,7 +232,7 @@ GEM hashdiff (1.1.0) html-attributes-utils (1.0.2) activesupport (>= 6.1.4.4) - i18n (1.14.7) + i18n (1.14.8) concurrent-ruby (~> 1.0) ice_nine (0.11.2) iniparse (1.5.0) @@ -261,13 +261,15 @@ GEM activerecord kaminari-core (= 1.2.2) kaminari-core (1.2.2) + language_server-protocol (3.17.0.5) launchy (2.5.2) addressable (~> 2.8) + lint_roller (1.1.0) listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) logger (1.7.0) - loofah (2.24.0) + loofah (2.25.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) mail (2.8.1) @@ -279,7 +281,9 @@ GEM matrix (0.4.2) method_source (1.1.0) mini_mime (1.1.5) - minitest (5.25.5) + minitest (6.0.2) + drb (~> 2.0) + prism (~> 1.5) msgpack (1.7.2) multipart-post (2.4.1) nested_form (0.3.2) @@ -295,13 +299,13 @@ GEM net-smtp (0.5.1) net-protocol nio4r (2.7.4) - nokogiri (1.18.9-arm64-darwin) + nokogiri (1.19.1-arm64-darwin) racc (~> 1.4) - nokogiri (1.18.9-x86_64-darwin) + nokogiri (1.19.1-x86_64-darwin) racc (~> 1.4) - nokogiri (1.18.9-x86_64-linux-gnu) + nokogiri (1.19.1-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.18.9-x86_64-linux-musl) + nokogiri (1.19.1-x86_64-linux-musl) racc (~> 1.4) notifications-ruby-client (6.0.0) jwt (>= 1.5, < 3) @@ -317,10 +321,10 @@ GEM paper_trail-globalid (0.2.0) globalid paper_trail (>= 3.0.0) - parallel (1.24.0) + parallel (1.27.0) parallel_tests (4.5.1) parallel - parser (3.3.0.5) + parser (3.3.10.2) ast (~> 2.4.1) racc pg (1.5.5) @@ -328,6 +332,7 @@ GEM pp (0.6.2) prettyprint prettyprint (0.2.0) + prism (1.9.0) propshaft (0.8.0) actionpack (>= 7.0.0) activesupport (>= 7.0.0) @@ -349,7 +354,7 @@ GEM activesupport (>= 3.0.0) raabro (1.4.0) racc (1.8.1) - rack (3.1.18) + rack (3.1.20) rack-attack (6.7.0) rack (>= 1.0, < 4) rack-mini-profiler (3.3.1) @@ -375,7 +380,7 @@ GEM activesupport (= 7.2.2.2) bundler (>= 1.15.0) railties (= 7.2.2.2) - rails-dom-testing (2.2.0) + rails-dom-testing (2.3.0) activesupport (>= 5.0.0) minitest nokogiri (>= 1.6) @@ -409,7 +414,7 @@ GEM redis (4.8.1) redis-client (0.22.1) connection_pool - regexp_parser (2.9.0) + regexp_parser (2.11.3) reline (0.6.0) io-console (~> 0.5) request_store (1.7.0) @@ -439,34 +444,45 @@ GEM rspec-mocks (~> 3.12) rspec-support (~> 3.12) rspec-support (3.13.1) - rubocop (1.25.0) + rubocop (1.82.1) + json (~> 2.3) + language_server-protocol (~> 3.17.0.2) + lint_roller (~> 1.1.0) parallel (~> 1.10) - parser (>= 3.1.0.0) + parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 1.8, < 3.0) - rexml - rubocop-ast (>= 1.15.1, < 2.0) + regexp_parser (>= 2.9.3, < 3.0) + rubocop-ast (>= 1.48.0, < 2.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.15.1) - parser (>= 3.0.1.1) - rubocop-govuk (4.3.0) - rubocop (= 1.25.0) - rubocop-ast (= 1.15.1) - rubocop-rails (= 2.13.2) - rubocop-rake (= 0.6.0) - rubocop-rspec (= 2.7.0) + unicode-display_width (>= 2.4.0, < 4.0) + rubocop-ast (1.49.0) + parser (>= 3.3.7.2) + prism (~> 1.7) + rubocop-capybara (2.22.1) + lint_roller (~> 1.1) + rubocop (~> 1.72, >= 1.72.1) + rubocop-govuk (5.2.0) + rubocop (= 1.82.1) + rubocop-ast (= 1.49.0) + rubocop-capybara (= 2.22.1) + rubocop-rails (= 2.34.3) + rubocop-rake (= 0.7.1) + rubocop-rspec (= 3.9.0) rubocop-performance (1.19.1) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) - rubocop-rails (2.13.2) + rubocop-rails (2.34.3) activesupport (>= 4.2.0) + lint_roller (~> 1.1) rack (>= 1.1) - rubocop (>= 1.7.0, < 2.0) - rubocop-rake (0.6.0) - rubocop (~> 1.0) - rubocop-rspec (2.7.0) - rubocop (~> 1.19) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.44.0, < 2.0) + rubocop-rake (0.7.1) + lint_roller (~> 1.1) + rubocop (>= 1.72.1) + rubocop-rspec (3.9.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) ruby-openai (7.0.1) event_stream_parser (>= 0.3.0, < 2.0.0) faraday (>= 1) @@ -514,7 +530,9 @@ GEM tzinfo (2.0.6) concurrent-ruby (~> 1.0) uk_postcode (2.1.8) - unicode-display_width (2.5.0) + unicode-display_width (3.2.0) + unicode-emoji (~> 4.1) + unicode-emoji (4.2.0) unread (0.14.0) activerecord (>= 6.1) uri (1.0.4) @@ -563,6 +581,7 @@ DEPENDENCIES capybara capybara-lockstep capybara-screenshot + connection_pool (~> 2.5) cssbundling-rails devise devise_two_factor_authentication @@ -579,7 +598,7 @@ DEPENDENCIES json-schema listen (~> 3.3) method_source (~> 1.1) - nokogiri (~> 1.18.9) + nokogiri (~> 1.19.1) notifications-ruby-client overcommit (>= 0.37.0) paper_trail (~> 15.2) @@ -591,7 +610,7 @@ DEPENDENCIES pry-byebug puma (~> 6.4) pundit - rack (>= 2.2.6.3) + rack (~> 3.1.20) rack-attack rack-mini-profiler (~> 3.3.0) rails (~> 7.2.2) @@ -600,7 +619,7 @@ DEPENDENCIES redis (~> 4.8) roo rspec-rails - rubocop-govuk (= 4.3.0) + rubocop-govuk (= 5.2.0) rubocop-performance rubocop-rails ruby-openai @@ -621,7 +640,7 @@ DEPENDENCIES webmock RUBY VERSION - ruby 3.1.6p260 + ruby 3.4.4p0 BUNDLED WITH 2.6.4 diff --git a/app/controllers/csv_downloads_controller.rb b/app/controllers/csv_downloads_controller.rb index 25f70026f..e2a7fb4f1 100644 --- a/app/controllers/csv_downloads_controller.rb +++ b/app/controllers/csv_downloads_controller.rb @@ -5,7 +5,7 @@ class CsvDownloadsController < ApplicationController @csv_download = CsvDownload.find(params[:id]) authorize @csv_download - return render "errors/download_link_expired" if @csv_download.expired? + render "errors/download_link_expired" if @csv_download.expired? end def download diff --git a/app/controllers/lettings_logs_controller.rb b/app/controllers/lettings_logs_controller.rb index 38a89b682..cd2a6ca5a 100644 --- a/app/controllers/lettings_logs_controller.rb +++ b/app/controllers/lettings_logs_controller.rb @@ -190,7 +190,7 @@ private end def resolve_logs! - if @log&.unresolved && @log.location.present? && @log.scheme.present? && @log&.resolve! + if @log&.unresolved && @log.location.present? && @log.scheme.present? && @log.resolve! unresolved_logs_count_for_user = current_user.lettings_logs.unresolved.assigned_to(current_user).count flash.now[:notice] = helpers.flash_notice_for_resolved_logs(unresolved_logs_count_for_user) end diff --git a/app/controllers/lettings_logs_filters_controller.rb b/app/controllers/lettings_logs_filters_controller.rb index 9180737d3..c6ea0ba70 100644 --- a/app/controllers/lettings_logs_filters_controller.rb +++ b/app/controllers/lettings_logs_filters_controller.rb @@ -52,8 +52,6 @@ class LettingsLogsFiltersController < ApplicationController end end -private - def lettings_session_filters params["years"] = [params["years"]] if params["years"].present? lettings_filter_manager.session_filters diff --git a/app/controllers/merge_requests_controller.rb b/app/controllers/merge_requests_controller.rb index 32f7b2d0c..f1878e9ab 100644 --- a/app/controllers/merge_requests_controller.rb +++ b/app/controllers/merge_requests_controller.rb @@ -105,7 +105,7 @@ private answer_options = { "" => "Select an option" } if current_user.support? - Organisation.all.each do |organisation| + Organisation.all.find_each do |organisation| date = @merge_request.merge_date || Time.zone.today answer_options[organisation.id] = organisation.name(date:) end diff --git a/app/controllers/sales_logs_filters_controller.rb b/app/controllers/sales_logs_filters_controller.rb index ffa4f4bc4..70a4c2b49 100644 --- a/app/controllers/sales_logs_filters_controller.rb +++ b/app/controllers/sales_logs_filters_controller.rb @@ -53,8 +53,6 @@ class SalesLogsFiltersController < ApplicationController end end -private - def sales_session_filters params["years"] = [params["years"]] if params["years"].present? sales_filter_manager.session_filters diff --git a/app/helpers/bulk_upload/lettings_log_to_csv.rb b/app/helpers/bulk_upload/lettings_log_to_csv.rb index 799dbece6..11f60773f 100644 --- a/app/helpers/bulk_upload/lettings_log_to_csv.rb +++ b/app/helpers/bulk_upload/lettings_log_to_csv.rb @@ -2,12 +2,10 @@ class BulkUpload::LettingsLogToCsv attr_reader :log, :line_ending, :col_offset, :overrides def initialize(log:, line_ending: "\n", col_offset: 1, overrides: {}) - # rubocop:disable Rails/HelperInstanceVariable @log = log @line_ending = line_ending @col_offset = col_offset @overrides = overrides - # rubocop:enable Rails/HelperInstanceVariable end def row_prefix diff --git a/app/helpers/bulk_upload/sales_log_to_csv.rb b/app/helpers/bulk_upload/sales_log_to_csv.rb index 1171f481f..30833c1c7 100644 --- a/app/helpers/bulk_upload/sales_log_to_csv.rb +++ b/app/helpers/bulk_upload/sales_log_to_csv.rb @@ -2,12 +2,10 @@ class BulkUpload::SalesLogToCsv attr_reader :log, :line_ending, :col_offset, :overrides def initialize(log:, line_ending: "\n", col_offset: 1, overrides: {}) - # rubocop:disable Rails/HelperInstanceVariable @log = log @line_ending = line_ending @col_offset = col_offset @overrides = overrides - # rubocop:enable Rails/HelperInstanceVariable end def row_prefix diff --git a/app/helpers/data_sharing_agreement_helper.rb b/app/helpers/data_sharing_agreement_helper.rb index 79296e6dc..5ab5e3272 100644 --- a/app/helpers/data_sharing_agreement_helper.rb +++ b/app/helpers/data_sharing_agreement_helper.rb @@ -67,7 +67,7 @@ module DataSharingAgreementHelper "12.2. For #{@org_name}: Name: #{@dpo_name}, Postal Address: #{@org_address}, E-mail address: #{@dpo_email}, Telephone number: #{@org_phone}" end end -# rubocop:enable Rails/HelperInstanceVariable + # rubocop:enable Rails/HelperInstanceVariable private diff --git a/app/helpers/form_page_error_helper.rb b/app/helpers/form_page_error_helper.rb index ded09d54c..c2ce87310 100644 --- a/app/helpers/form_page_error_helper.rb +++ b/app/helpers/form_page_error_helper.rb @@ -5,7 +5,7 @@ module FormPageErrorHelper end def remove_duplicate_page_errors(lettings_log) - lettings_log.errors.group_by(&:message).each do |_, errors| + lettings_log.errors.group_by(&:message).each_value do |errors| next if errors.size == 1 errors.shift diff --git a/app/helpers/locations_helper.rb b/app/helpers/locations_helper.rb index 9ef74ca51..b8a111b0c 100644 --- a/app/helpers/locations_helper.rb +++ b/app/helpers/locations_helper.rb @@ -91,7 +91,8 @@ module LocationsHelper def toggle_location_link(location) return govuk_button_link_to "Deactivate this location", scheme_location_new_deactivation_path(location.scheme, location), warning: true if location.active? || location.deactivates_in_a_long_time? - return govuk_button_link_to "Reactivate this location", scheme_location_new_reactivation_path(location.scheme, location) if location.deactivated? && !location.deactivated_by_scheme? + + govuk_button_link_to "Reactivate this location", scheme_location_new_reactivation_path(location.scheme, location) if location.deactivated? && !location.deactivated_by_scheme? end def delete_location_link(location) diff --git a/app/helpers/merge_requests_helper.rb b/app/helpers/merge_requests_helper.rb index 3d9577ce9..6755b4646 100644 --- a/app/helpers/merge_requests_helper.rb +++ b/app/helpers/merge_requests_helper.rb @@ -101,13 +101,13 @@ module MergeRequestsHelper attribute = page if attribute.nil? return nil unless value_exists?(merge_request, attribute) - unless merge_request.status == "request_merged" || merge_request.status == "processing" + unless %w[request_merged processing].include?(merge_request.status) { text: merge_request_action_text(merge_request, attribute), href: send("#{page}_merge_request_path", merge_request, referrer: "check_answers"), visually_hidden_text: page.humanize } end end def merge_outcome_action(merge_request, page) - unless merge_request.status == "request_merged" || merge_request.status == "processing" + unless %w[request_merged processing].include?(merge_request.status) { text: "View", href: send("#{page}_merge_request_path", merge_request), visually_hidden_text: page.humanize } end end diff --git a/app/helpers/notifications_helper.rb b/app/helpers/notifications_helper.rb index 318918134..d3a369b45 100644 --- a/app/helpers/notifications_helper.rb +++ b/app/helpers/notifications_helper.rb @@ -57,7 +57,7 @@ class NotificationRenderer < Redcarpet::Render::HTML def initialize(options = {}) link_class = "govuk-link" link_class += " govuk-link--inverse" if options[:invert_link_colour] - @bold = options[:bold_all_text] # rubocop:disable Rails/HelperInstanceVariable + @bold = options[:bold_all_text] base_options = { escape_html: true, safe_links_only: true, link_attributes: { class: link_class } } super base_options end @@ -78,7 +78,7 @@ class NotificationRenderer < Redcarpet::Render::HTML end def paragraph(text) - return %(

#{text}

) if @bold # rubocop:disable Rails/HelperInstanceVariable + return %(

#{text}

) if @bold %(

#{text}

) end diff --git a/app/helpers/question_view_helper.rb b/app/helpers/question_view_helper.rb index acb4fa959..0c4b6337f 100644 --- a/app/helpers/question_view_helper.rb +++ b/app/helpers/question_view_helper.rb @@ -44,7 +44,8 @@ module QuestionViewHelper def select_option_name(value) return value.service_name if value.respond_to?(:service_name) return value["name"] if value.is_a?(Hash) && value["name"].present? - return value["postcode"] if value.is_a?(Location) + + value["postcode"] if value.is_a?(Location) end private diff --git a/app/helpers/schemes_helper.rb b/app/helpers/schemes_helper.rb index 753f33917..e72250c6e 100644 --- a/app/helpers/schemes_helper.rb +++ b/app/helpers/schemes_helper.rb @@ -12,7 +12,8 @@ module SchemesHelper def toggle_scheme_link(scheme) return govuk_button_link_to "Deactivate this scheme", scheme_new_deactivation_path(scheme), warning: true if scheme.active? || scheme.deactivates_in_a_long_time? - return govuk_button_link_to "Reactivate this scheme", scheme_new_reactivation_path(scheme) if scheme.deactivated? || scheme.deactivating_soon? + + govuk_button_link_to "Reactivate this scheme", scheme_new_reactivation_path(scheme) if scheme.deactivated? || scheme.deactivating_soon? end def delete_scheme_link(scheme) diff --git a/app/mailers/devise_notify_mailer.rb b/app/mailers/devise_notify_mailer.rb index 5ee3fd898..4065e3aa9 100644 --- a/app/mailers/devise_notify_mailer.rb +++ b/app/mailers/devise_notify_mailer.rb @@ -92,8 +92,7 @@ class DeviseNotifyMailer < Devise::Mailer def email_changed?(record) ( - record.confirmable_template == User::CONFIRMABLE_TEMPLATE_ID && ( - record.unconfirmed_email.present? && record.unconfirmed_email != record.email) + record.confirmable_template == User::CONFIRMABLE_TEMPLATE_ID && record.unconfirmed_email.present? && record.unconfirmed_email != record.email ) || ( record.versions.last.changeset.key?("unconfirmed_email") && record.confirmed? diff --git a/app/models/derived_variables/lettings_log_variables.rb b/app/models/derived_variables/lettings_log_variables.rb index 19a58d916..6c88c3221 100644 --- a/app/models/derived_variables/lettings_log_variables.rb +++ b/app/models/derived_variables/lettings_log_variables.rb @@ -254,7 +254,7 @@ private def clear_inapplicable_derived_values! reset_invalidated_derived_values!(dependencies) - if (startdate_changed? || renewal_changed?) && (renewal_was == 1 && startdate_was&.between?(Time.zone.local(2021, 4, 1), Time.zone.local(2022, 3, 31))) + if (startdate_changed? || renewal_changed?) && renewal_was == 1 && startdate_was&.between?(Time.zone.local(2021, 4, 1), Time.zone.local(2022, 3, 31)) self.underoccupation_benefitcap = nil end if renewal_changed? && renewal_was == 1 @@ -270,7 +270,7 @@ private self.wchair = nil self.location_id = nil end - if form.start_year_2024_or_later? && (unittype_gn_changed? && unittype_gn_was == 2) + if form.start_year_2024_or_later? && unittype_gn_changed? && unittype_gn_was == 2 self.beds = nil end end @@ -439,13 +439,15 @@ private def get_lar return 1 if rent_type == 2 - return 2 if rent_type == 1 + + 2 if rent_type == 1 end def get_irproduct return 1 if rent_type == 3 return 2 if rent_type == 4 - return 3 if rent_type == 5 + + 3 if rent_type == 5 end def clear_gender_description_unless_gender_not_same_as_sex! diff --git a/app/models/derived_variables/shared_logic.rb b/app/models/derived_variables/shared_logic.rb index c326cb8c9..4b76d83d8 100644 --- a/app/models/derived_variables/shared_logic.rb +++ b/app/models/derived_variables/shared_logic.rb @@ -9,7 +9,7 @@ private previously_in_derived_state = dependency[:conditions].all? { |attribute, value| send("#{attribute}_was") == value } next unless previously_in_derived_state - dependency[:derived_values].each do |derived_attribute, _derived_value| + dependency[:derived_values].each_key do |derived_attribute| Rails.logger.debug("Cleared derived #{derived_attribute} value") send("#{derived_attribute}=", nil) end diff --git a/app/models/form/lettings/pages/tenancyother_value_check.rb b/app/models/form/lettings/pages/tenancyother_value_check.rb new file mode 100644 index 000000000..391b06eab --- /dev/null +++ b/app/models/form/lettings/pages/tenancyother_value_check.rb @@ -0,0 +1,24 @@ +class Form::Lettings::Pages::TenancyotherValueCheck < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "tenancyother_value_check" + @copy_key = "lettings.soft_validations.tenancyother_value_check" + @depends_on = [{ "tenancyother_might_be_introductory_or_starter_period?" => true }] + @title_text = { + "translation" => "forms.#{form.start_date.year}.#{@copy_key}.title_text", + "arguments" => [{ "key" => "tenancyother", "i18n_template" => "tenancyother" }], + } + @informative_text = { + "translation" => "forms.#{form.start_date.year}.#{@copy_key}.informative_text", + "arguments" => [], + } + end + + def questions + @questions ||= [Form::Lettings::Questions::TenancyotherValueCheck.new(nil, nil, self)] + end + + def interruption_screen_question_ids + %w[startertenancy tenancy tenancyother] + end +end diff --git a/app/models/form/lettings/questions/address_line1.rb b/app/models/form/lettings/questions/address_line1.rb index 4b1f67931..2f88b210e 100644 --- a/app/models/form/lettings/questions/address_line1.rb +++ b/app/models/form/lettings/questions/address_line1.rb @@ -7,7 +7,7 @@ class Form::Lettings::Questions::AddressLine1 < ::Form::Question @type = "text" @plain_label = true @disable_clearing_if_not_routed_or_dynamic_answer_options = true - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @hide_question_number_on_page = true end @@ -18,5 +18,5 @@ class Form::Lettings::Questions::AddressLine1 < ::Form::Question ].select(&:present?).join("\n") end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 12, 2024 => 13, 2025 => 17 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 12, 2024 => 13, 2025 => 17, 2026 => 17 }.freeze end diff --git a/app/models/form/lettings/questions/address_search.rb b/app/models/form/lettings/questions/address_search.rb index c6abe9a6c..eb970a5e5 100644 --- a/app/models/form/lettings/questions/address_search.rb +++ b/app/models/form/lettings/questions/address_search.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::AddressSearch < ::Form::Question @copy_key = "lettings.property_information.address_search" @plain_label = true @bottom_guidance_partial = "address_search" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @hide_question_number_on_page = true end @@ -38,5 +38,5 @@ class Form::Lettings::Questions::AddressSearch < ::Form::Question answer_options(log, user).transform_values { |value| value["value"] } || {} end - QUESTION_NUMBER_FROM_YEAR = { 2024 => 12, 2025 => 16 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2024 => 12, 2025 => 16, 2026 => 16 }.freeze end diff --git a/app/models/form/lettings/questions/age.rb b/app/models/form/lettings/questions/age.rb index f35abe61e..61e70fe05 100644 --- a/app/models/form/lettings/questions/age.rb +++ b/app/models/form/lettings/questions/age.rb @@ -19,11 +19,17 @@ class Form::Lettings::Questions::Age < ::Form::Question base_question_number = case form.start_date.year when 2023 31 - else + when 2024 + 30 + when 2025 30 + when 2026 + 27 + else + 27 end - base_question_number + (4 * @person_index) + base_question_number + (form.person_question_count * @person_index) end def hint_text diff --git a/app/models/form/lettings/questions/age1.rb b/app/models/form/lettings/questions/age1.rb index 72d89096c..428fabd42 100644 --- a/app/models/form/lettings/questions/age1.rb +++ b/app/models/form/lettings/questions/age1.rb @@ -10,8 +10,8 @@ class Form::Lettings::Questions::Age1 < ::Form::Question @max = 120 @min = 16 @step = 1 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 32, 2024 => 31 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 32, 2024 => 31, 2025 => 31, 2026 => 30 }.freeze end diff --git a/app/models/form/lettings/questions/age1_known.rb b/app/models/form/lettings/questions/age1_known.rb index e54d7993b..753fdd2cb 100644 --- a/app/models/form/lettings/questions/age1_known.rb +++ b/app/models/form/lettings/questions/age1_known.rb @@ -8,10 +8,10 @@ class Form::Lettings::Questions::Age1Known < ::Form::Question @answer_options = ANSWER_OPTIONS @conditional_for = { "age1" => [0] } @hidden_in_check_answers = { "depends_on" => [{ "age1_known" => 0 }, { "age1_known" => 1 }] } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { "0" => { "value" => "Yes" }, "1" => { "value" => "No" } }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 32, 2024 => 31 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 32, 2024 => 31, 2025 => 31, 2026 => 30 }.freeze end diff --git a/app/models/form/lettings/questions/age_known.rb b/app/models/form/lettings/questions/age_known.rb index 2f5d7ce0b..c4bb65c2e 100644 --- a/app/models/form/lettings/questions/age_known.rb +++ b/app/models/form/lettings/questions/age_known.rb @@ -23,10 +23,16 @@ class Form::Lettings::Questions::AgeKnown < ::Form::Question base_question_number = case form.start_date.year when 2023 31 - else + when 2024 + 30 + when 2025 30 + when 2026 + 27 + else + 27 end - base_question_number + (4 * @person_index) + base_question_number + (form.person_question_count * @person_index) end end diff --git a/app/models/form/lettings/questions/armedforces.rb b/app/models/form/lettings/questions/armedforces.rb index 9bfe4b643..32aac69ca 100644 --- a/app/models/form/lettings/questions/armedforces.rb +++ b/app/models/form/lettings/questions/armedforces.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Armedforces < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -18,5 +18,5 @@ class Form::Lettings::Questions::Armedforces < ::Form::Question "6" => { "value" => "Don’t know" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 66, 2024 => 65 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 66, 2024 => 65, 2025 => 65, 2026 => 72 }.freeze end diff --git a/app/models/form/lettings/questions/beds.rb b/app/models/form/lettings/questions/beds.rb index 1bafa3ddf..1e59c367c 100644 --- a/app/models/form/lettings/questions/beds.rb +++ b/app/models/form/lettings/questions/beds.rb @@ -7,12 +7,12 @@ class Form::Lettings::Questions::Beds < ::Form::Question @max = 12 @min = 1 @step = 1 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def derived?(log) log.is_bedsit? end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 22 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 22, 2024 => 22, 2025 => 22, 2026 => 21 }.freeze end diff --git a/app/models/form/lettings/questions/benefits.rb b/app/models/form/lettings/questions/benefits.rb index f5f2a3ee1..4ab922215 100644 --- a/app/models/form/lettings/questions/benefits.rb +++ b/app/models/form/lettings/questions/benefits.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Benefits < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -16,5 +16,5 @@ class Form::Lettings::Questions::Benefits < ::Form::Question "4" => { "value" => "Don’t know" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 90, 2024 => 89 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 90, 2024 => 89, 2025 => 89, 2026 => 97 }.freeze end diff --git a/app/models/form/lettings/questions/brent_4_weekly.rb b/app/models/form/lettings/questions/brent_4_weekly.rb index 7087571fd..319b495a5 100644 --- a/app/models/form/lettings/questions/brent_4_weekly.rb +++ b/app/models/form/lettings/questions/brent_4_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::Brent4Weekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every 4 weeks" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 95, 2024 => 94, 2025 => 92 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 95, 2024 => 94, 2025 => 92, 2026 => 100 }.freeze end diff --git a/app/models/form/lettings/questions/brent_bi_weekly.rb b/app/models/form/lettings/questions/brent_bi_weekly.rb index 1a20fd61c..d33863756 100644 --- a/app/models/form/lettings/questions/brent_bi_weekly.rb +++ b/app/models/form/lettings/questions/brent_bi_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::BrentBiWeekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every 2 weeks" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 95, 2024 => 94, 2025 => 92 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 95, 2024 => 94, 2025 => 92, 2026 => 100 }.freeze end diff --git a/app/models/form/lettings/questions/brent_monthly.rb b/app/models/form/lettings/questions/brent_monthly.rb index 245bde158..8e71bb8ec 100644 --- a/app/models/form/lettings/questions/brent_monthly.rb +++ b/app/models/form/lettings/questions/brent_monthly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::BrentMonthly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every month" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 95, 2024 => 94, 2025 => 92 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 95, 2024 => 94, 2025 => 92, 2026 => 100 }.freeze end diff --git a/app/models/form/lettings/questions/brent_weekly.rb b/app/models/form/lettings/questions/brent_weekly.rb index c913816fc..706f94b3d 100644 --- a/app/models/form/lettings/questions/brent_weekly.rb +++ b/app/models/form/lettings/questions/brent_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::BrentWeekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every week" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 95, 2024 => 94, 2025 => 92 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 95, 2024 => 94, 2025 => 92, 2026 => 100 }.freeze end diff --git a/app/models/form/lettings/questions/builtype.rb b/app/models/form/lettings/questions/builtype.rb index 8c34beca1..55f76536c 100644 --- a/app/models/form/lettings/questions/builtype.rb +++ b/app/models/form/lettings/questions/builtype.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::Builtype < ::Form::Question @id = "builtype" @type = "radio" @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -12,5 +12,5 @@ class Form::Lettings::Questions::Builtype < ::Form::Question "1" => { "value" => "Purpose built" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 20 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 20, 2024 => 20, 2025 => 20 }.freeze end diff --git a/app/models/form/lettings/questions/chcharge_4_weekly.rb b/app/models/form/lettings/questions/chcharge_4_weekly.rb index 341010eb0..403ab3e75 100644 --- a/app/models/form/lettings/questions/chcharge_4_weekly.rb +++ b/app/models/form/lettings/questions/chcharge_4_weekly.rb @@ -9,9 +9,9 @@ class Form::Lettings::Questions::Chcharge4Weekly < ::Form::Question @step = 0.01 @prefix = "£" @suffix = " every 4 weeks" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 94, 2024 => 93 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 94, 2024 => 93, 2025 => 93, 2026 => 101 }.freeze end diff --git a/app/models/form/lettings/questions/chcharge_bi_weekly.rb b/app/models/form/lettings/questions/chcharge_bi_weekly.rb index 0343839ca..274b26d0d 100644 --- a/app/models/form/lettings/questions/chcharge_bi_weekly.rb +++ b/app/models/form/lettings/questions/chcharge_bi_weekly.rb @@ -9,9 +9,9 @@ class Form::Lettings::Questions::ChchargeBiWeekly < ::Form::Question @step = 0.01 @prefix = "£" @suffix = " every 2 weeks" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 94, 2024 => 93 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 94, 2024 => 93, 2025 => 93, 2026 => 101 }.freeze end diff --git a/app/models/form/lettings/questions/chcharge_monthly.rb b/app/models/form/lettings/questions/chcharge_monthly.rb index 9e68eb18f..967295d45 100644 --- a/app/models/form/lettings/questions/chcharge_monthly.rb +++ b/app/models/form/lettings/questions/chcharge_monthly.rb @@ -9,9 +9,9 @@ class Form::Lettings::Questions::ChchargeMonthly < ::Form::Question @step = 0.01 @prefix = "£" @suffix = " every month" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 94, 2024 => 93 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 94, 2024 => 93, 2025 => 93, 2026 => 101 }.freeze end diff --git a/app/models/form/lettings/questions/chcharge_weekly.rb b/app/models/form/lettings/questions/chcharge_weekly.rb index 3c8b995eb..d27d586b4 100644 --- a/app/models/form/lettings/questions/chcharge_weekly.rb +++ b/app/models/form/lettings/questions/chcharge_weekly.rb @@ -9,9 +9,9 @@ class Form::Lettings::Questions::ChchargeWeekly < ::Form::Question @step = 0.01 @prefix = "£" @suffix = " every week" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 94, 2024 => 93 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 94, 2024 => 93, 2025 => 93, 2026 => 101 }.freeze end diff --git a/app/models/form/lettings/questions/condition_effects.rb b/app/models/form/lettings/questions/condition_effects.rb index 1821f6e98..af967d17e 100644 --- a/app/models/form/lettings/questions/condition_effects.rb +++ b/app/models/form/lettings/questions/condition_effects.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::ConditionEffects < ::Form::Question @type = "checkbox" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -27,5 +27,5 @@ class Form::Lettings::Questions::ConditionEffects < ::Form::Question "illness_type_10" => { "value" => "Other" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 74, 2024 => 73 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 74, 2024 => 73, 2025 => 73, 2026 => 80 }.freeze end diff --git a/app/models/form/lettings/questions/county.rb b/app/models/form/lettings/questions/county.rb index 12585fa8e..b634fd6dc 100644 --- a/app/models/form/lettings/questions/county.rb +++ b/app/models/form/lettings/questions/county.rb @@ -6,9 +6,9 @@ class Form::Lettings::Questions::County < ::Form::Question @type = "text" @plain_label = true @disable_clearing_if_not_routed_or_dynamic_answer_options = true - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @hide_question_number_on_page = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 12, 2024 => 13, 2025 => 17 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 12, 2024 => 13, 2025 => 17, 2026 => 17 }.freeze end diff --git a/app/models/form/lettings/questions/declaration.rb b/app/models/form/lettings/questions/declaration.rb index 3261452cd..6a2572487 100644 --- a/app/models/form/lettings/questions/declaration.rb +++ b/app/models/form/lettings/questions/declaration.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Declaration < ::Form::Question @type = "checkbox" @check_answers_card_number = 0 unless form.start_year_2024_or_later? @top_guidance_partial = "privacy_notice_tenant" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -26,5 +26,5 @@ class Form::Lettings::Questions::Declaration < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 30, 2024 => 11 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 30, 2024 => 11, 2025 => 11, 2026 => 11 }.freeze end diff --git a/app/models/form/lettings/questions/earnings.rb b/app/models/form/lettings/questions/earnings.rb index 4d3437052..13482135e 100644 --- a/app/models/form/lettings/questions/earnings.rb +++ b/app/models/form/lettings/questions/earnings.rb @@ -15,9 +15,9 @@ class Form::Lettings::Questions::Earnings < ::Form::Question { "label" => " every month", "depends_on" => { "incfreq" => 2 } }, { "label" => " every year", "depends_on" => { "incfreq" => 3 } }, ] - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 88, 2024 => 87 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 88, 2024 => 87, 2025 => 87, 2026 => 95 }.freeze end diff --git a/app/models/form/lettings/questions/ethnic_arab.rb b/app/models/form/lettings/questions/ethnic_arab.rb index d642c1a1b..582d92704 100644 --- a/app/models/form/lettings/questions/ethnic_arab.rb +++ b/app/models/form/lettings/questions/ethnic_arab.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::EthnicArab < ::Form::Question @type = "radio" @check_answers_card_number = 1 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -18,5 +18,5 @@ class Form::Lettings::Questions::EthnicArab < ::Form::Question }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 35, 2024 => 34 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 35, 2024 => 34, 2025 => 34, 2026 => 34 }.freeze end diff --git a/app/models/form/lettings/questions/ethnic_asian.rb b/app/models/form/lettings/questions/ethnic_asian.rb index 7fb309bba..f488249a6 100644 --- a/app/models/form/lettings/questions/ethnic_asian.rb +++ b/app/models/form/lettings/questions/ethnic_asian.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::EthnicAsian < ::Form::Question @type = "radio" @check_answers_card_number = 1 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -27,5 +27,5 @@ class Form::Lettings::Questions::EthnicAsian < ::Form::Question }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 35, 2024 => 34 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 35, 2024 => 34, 2025 => 34, 2026 => 34 }.freeze end diff --git a/app/models/form/lettings/questions/ethnic_black.rb b/app/models/form/lettings/questions/ethnic_black.rb index e3a88259e..f6902eb35 100644 --- a/app/models/form/lettings/questions/ethnic_black.rb +++ b/app/models/form/lettings/questions/ethnic_black.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::EthnicBlack < ::Form::Question @type = "radio" @check_answers_card_number = 1 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -21,5 +21,5 @@ class Form::Lettings::Questions::EthnicBlack < ::Form::Question }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 35, 2024 => 34 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 35, 2024 => 34, 2025 => 34, 2026 => 34 }.freeze end diff --git a/app/models/form/lettings/questions/ethnic_group.rb b/app/models/form/lettings/questions/ethnic_group.rb index 16bdfc4ba..c1c0be096 100644 --- a/app/models/form/lettings/questions/ethnic_group.rb +++ b/app/models/form/lettings/questions/ethnic_group.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::EthnicGroup < ::Form::Question @type = "radio" @check_answers_card_number = 1 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -18,5 +18,5 @@ class Form::Lettings::Questions::EthnicGroup < ::Form::Question "17" => { "value" => "Tenant prefers not to say" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 34, 2024 => 33 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 34, 2024 => 33, 2025 => 33, 2026 => 33 }.freeze end diff --git a/app/models/form/lettings/questions/ethnic_mixed.rb b/app/models/form/lettings/questions/ethnic_mixed.rb index 14d1f213b..f12f997b6 100644 --- a/app/models/form/lettings/questions/ethnic_mixed.rb +++ b/app/models/form/lettings/questions/ethnic_mixed.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::EthnicMixed < ::Form::Question @type = "radio" @check_answers_card_number = 1 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -24,5 +24,5 @@ class Form::Lettings::Questions::EthnicMixed < ::Form::Question }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 35, 2024 => 34 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 35, 2024 => 34, 2025 => 34, 2026 => 34 }.freeze end diff --git a/app/models/form/lettings/questions/ethnic_white.rb b/app/models/form/lettings/questions/ethnic_white.rb index 74430d840..98ebe78f3 100644 --- a/app/models/form/lettings/questions/ethnic_white.rb +++ b/app/models/form/lettings/questions/ethnic_white.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::EthnicWhite < ::Form::Question @copy_key = "lettings.household_characteristics.ethnic.ethnic_background_white" @type = "radio" @check_answers_card_number = 1 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -27,5 +27,5 @@ class Form::Lettings::Questions::EthnicWhite < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 35, 2024 => 34 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 35, 2024 => 34, 2025 => 34, 2026 => 34 }.freeze end diff --git a/app/models/form/lettings/questions/first_time_property_let_as_social_housing.rb b/app/models/form/lettings/questions/first_time_property_let_as_social_housing.rb index 09e6ece30..c9fb77abf 100644 --- a/app/models/form/lettings/questions/first_time_property_let_as_social_housing.rb +++ b/app/models/form/lettings/questions/first_time_property_let_as_social_housing.rb @@ -3,7 +3,7 @@ class Form::Lettings::Questions::FirstTimePropertyLetAsSocialHousing < ::Form::Q super @id = "first_time_property_let_as_social_housing" @type = "radio" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -21,5 +21,5 @@ class Form::Lettings::Questions::FirstTimePropertyLetAsSocialHousing < ::Form::Q form.start_year_2024_or_later? ? "This is a re-let of existing social housing stock." : "This is a re-let of existing social housing." end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 14, 2024 => 15, 2025 => 12 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 14, 2024 => 15, 2025 => 12, 2026 => 12 }.freeze end diff --git a/app/models/form/lettings/questions/gender_identity1.rb b/app/models/form/lettings/questions/gender_identity1.rb index 411bcd3d0..f3d86fde0 100644 --- a/app/models/form/lettings/questions/gender_identity1.rb +++ b/app/models/form/lettings/questions/gender_identity1.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::GenderIdentity1 < ::Form::Question @type = "radio" @check_answers_card_number = 1 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -16,5 +16,5 @@ class Form::Lettings::Questions::GenderIdentity1 < ::Form::Question "R" => { "value" => "Tenant prefers not to say" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 33, 2024 => 32 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 33, 2024 => 32, 2025 => 32 }.freeze end diff --git a/app/models/form/lettings/questions/hb.rb b/app/models/form/lettings/questions/hb.rb index 51da058b8..f9204e65a 100644 --- a/app/models/form/lettings/questions/hb.rb +++ b/app/models/form/lettings/questions/hb.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Hb < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -17,5 +17,5 @@ class Form::Lettings::Questions::Hb < ::Form::Question "3" => { "value" => "Don’t know" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 89, 2024 => 88 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 89, 2024 => 88, 2025 => 88, 2026 => 96 }.freeze end diff --git a/app/models/form/lettings/questions/hbrentshortfall.rb b/app/models/form/lettings/questions/hbrentshortfall.rb index 294423815..dfc323c3a 100644 --- a/app/models/form/lettings/questions/hbrentshortfall.rb +++ b/app/models/form/lettings/questions/hbrentshortfall.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Hbrentshortfall < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -15,5 +15,5 @@ class Form::Lettings::Questions::Hbrentshortfall < ::Form::Question "3" => { "value" => "Don’t know" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 99, 2024 => 98, 2025 => 96 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 99, 2024 => 98, 2025 => 96, 2026 => 104 }.freeze end diff --git a/app/models/form/lettings/questions/hhmemb.rb b/app/models/form/lettings/questions/hhmemb.rb index 88328a869..614b2b27e 100644 --- a/app/models/form/lettings/questions/hhmemb.rb +++ b/app/models/form/lettings/questions/hhmemb.rb @@ -8,9 +8,9 @@ class Form::Lettings::Questions::Hhmemb < ::Form::Question @max = 8 @min = 1 @step = 1 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @check_answers_card_title = "Household" if form.start_year_2026_or_later? end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 31, 2024 => 30 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 31, 2024 => 30, 2025 => 30, 2026 => 29 }.freeze end diff --git a/app/models/form/lettings/questions/homeless.rb b/app/models/form/lettings/questions/homeless.rb index 1194fa929..44e03f937 100644 --- a/app/models/form/lettings/questions/homeless.rb +++ b/app/models/form/lettings/questions/homeless.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Homeless < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -13,5 +13,5 @@ class Form::Lettings::Questions::Homeless < ::Form::Question "1" => { "value" => "No" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 79, 2024 => 78 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 79, 2024 => 78, 2025 => 78, 2026 => 85 }.freeze end diff --git a/app/models/form/lettings/questions/household_charge.rb b/app/models/form/lettings/questions/household_charge.rb index 60fee977d..32bdee4a6 100644 --- a/app/models/form/lettings/questions/household_charge.rb +++ b/app/models/form/lettings/questions/household_charge.rb @@ -5,10 +5,10 @@ class Form::Lettings::Questions::HouseholdCharge < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { "0" => { "value" => "Yes" }, "1" => { "value" => "No" } }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 91, 2024 => 90 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 91, 2024 => 90, 2025 => 90, 2026 => 98 }.freeze end diff --git a/app/models/form/lettings/questions/housingneeds.rb b/app/models/form/lettings/questions/housingneeds.rb index 03c80d5cb..29f0b5882 100644 --- a/app/models/form/lettings/questions/housingneeds.rb +++ b/app/models/form/lettings/questions/housingneeds.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Housingneeds < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -15,5 +15,5 @@ class Form::Lettings::Questions::Housingneeds < ::Form::Question "3" => { "value" => "Don’t know" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 70, 2024 => 69 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 70, 2024 => 69, 2025 => 69, 2026 => 76 }.freeze end diff --git a/app/models/form/lettings/questions/housingneeds_other.rb b/app/models/form/lettings/questions/housingneeds_other.rb index d99812535..d8915e936 100644 --- a/app/models/form/lettings/questions/housingneeds_other.rb +++ b/app/models/form/lettings/questions/housingneeds_other.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::HousingneedsOther < ::Form::Question @copy_key = "lettings.household_needs.housingneeds_type.housingneeds_other" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -24,5 +24,5 @@ class Form::Lettings::Questions::HousingneedsOther < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 72, 2024 => 71 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 72, 2024 => 71, 2025 => 71, 2026 => 78 }.freeze end diff --git a/app/models/form/lettings/questions/housingneeds_type.rb b/app/models/form/lettings/questions/housingneeds_type.rb index 50b9c3742..15b5782d5 100644 --- a/app/models/form/lettings/questions/housingneeds_type.rb +++ b/app/models/form/lettings/questions/housingneeds_type.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::HousingneedsType < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -17,5 +17,5 @@ class Form::Lettings::Questions::HousingneedsType < ::Form::Question "3" => { "value" => "None of the listed options" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 71, 2024 => 70 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 71, 2024 => 70, 2025 => 70, 2026 => 77 }.freeze end diff --git a/app/models/form/lettings/questions/illness.rb b/app/models/form/lettings/questions/illness.rb index f92a7a04a..4bc3667fb 100644 --- a/app/models/form/lettings/questions/illness.rb +++ b/app/models/form/lettings/questions/illness.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Illness < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -15,5 +15,5 @@ class Form::Lettings::Questions::Illness < ::Form::Question "3" => { "value" => "Tenant prefers not to say" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 73, 2024 => 72 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 73, 2024 => 72, 2025 => 72, 2026 => 79 }.freeze end diff --git a/app/models/form/lettings/questions/incfreq.rb b/app/models/form/lettings/questions/incfreq.rb index d4384218e..74e24f439 100644 --- a/app/models/form/lettings/questions/incfreq.rb +++ b/app/models/form/lettings/questions/incfreq.rb @@ -7,7 +7,7 @@ class Form::Lettings::Questions::Incfreq < ::Form::Question @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS @hidden_in_check_answers = true - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -16,5 +16,5 @@ class Form::Lettings::Questions::Incfreq < ::Form::Question "3" => { "value" => "Yearly" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 87, 2024 => 86 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 87, 2024 => 86, 2025 => 86, 2026 => 94 }.freeze end diff --git a/app/models/form/lettings/questions/irproduct_other.rb b/app/models/form/lettings/questions/irproduct_other.rb index b004d5dc2..993fcbf54 100644 --- a/app/models/form/lettings/questions/irproduct_other.rb +++ b/app/models/form/lettings/questions/irproduct_other.rb @@ -4,8 +4,8 @@ class Form::Lettings::Questions::IrproductOther < ::Form::Question @id = "irproduct_other" @copy_key = "lettings.setup.rent_type.irproduct_other" @type = "text" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 6, 2024 => 8 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 6, 2024 => 8, 2025 => 8, 2026 => 8 }.freeze end diff --git a/app/models/form/lettings/questions/is_carehome.rb b/app/models/form/lettings/questions/is_carehome.rb index 25dae3fc6..ea2df6eac 100644 --- a/app/models/form/lettings/questions/is_carehome.rb +++ b/app/models/form/lettings/questions/is_carehome.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::IsCarehome < ::Form::Question @type = "radio" @check_answers_card_number = 0 @conditional_for = { "chcharge" => [1] } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -23,5 +23,5 @@ class Form::Lettings::Questions::IsCarehome < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 93, 2024 => 92 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 93, 2024 => 92, 2025 => 92, 2026 => 100 }.freeze end diff --git a/app/models/form/lettings/questions/joint.rb b/app/models/form/lettings/questions/joint.rb index 2542cd1c7..11f6749a6 100644 --- a/app/models/form/lettings/questions/joint.rb +++ b/app/models/form/lettings/questions/joint.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Joint < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -15,5 +15,5 @@ class Form::Lettings::Questions::Joint < ::Form::Question "3" => { "value" => "Don’t know" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 25, 2024 => 25, 2025 => 26 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 25, 2024 => 25, 2025 => 26, 2026 => 25 }.freeze end diff --git a/app/models/form/lettings/questions/la.rb b/app/models/form/lettings/questions/la.rb index c6d6f8240..d4d6954d2 100644 --- a/app/models/form/lettings/questions/la.rb +++ b/app/models/form/lettings/questions/la.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::La < ::Form::Question @type = "select" @check_answers_card_number = nil @hint_text = "" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @disable_clearing_if_not_routed_or_dynamic_answer_options = true end @@ -13,5 +13,5 @@ class Form::Lettings::Questions::La < ::Form::Question { "" => "Select an option" }.merge(LocalAuthority.active(form.start_date).england.map { |la| [la.code, la.name] }.to_h) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 13, 2024 => 14, 2025 => 18 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 13, 2024 => 14, 2025 => 18, 2026 => 18 }.freeze end diff --git a/app/models/form/lettings/questions/layear.rb b/app/models/form/lettings/questions/layear.rb index fdaad6c22..d8fa0a3a8 100644 --- a/app/models/form/lettings/questions/layear.rb +++ b/app/models/form/lettings/questions/layear.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::Layear < ::Form::Question @id = "layear" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -36,5 +36,5 @@ class Form::Lettings::Questions::Layear < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 75, 2024 => 74 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 75, 2024 => 74, 2025 => 74, 2026 => 81 }.freeze end diff --git a/app/models/form/lettings/questions/leftreg.rb b/app/models/form/lettings/questions/leftreg.rb index 9b90566cf..3e81b52c0 100644 --- a/app/models/form/lettings/questions/leftreg.rb +++ b/app/models/form/lettings/questions/leftreg.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Leftreg < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -16,5 +16,5 @@ class Form::Lettings::Questions::Leftreg < ::Form::Question "3" => { "value" => "Person prefers not to say" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 67, 2024 => 66 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 67, 2024 => 66, 2025 => 66, 2026 => 73 }.freeze end diff --git a/app/models/form/lettings/questions/letting_allocation.rb b/app/models/form/lettings/questions/letting_allocation.rb index 08310da13..2029335c4 100644 --- a/app/models/form/lettings/questions/letting_allocation.rb +++ b/app/models/form/lettings/questions/letting_allocation.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::LettingAllocation < ::Form::Question @id = "letting_allocation" @type = "checkbox" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -28,5 +28,5 @@ class Form::Lettings::Questions::LettingAllocation < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 84, 2024 => 83 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 84, 2024 => 83, 2025 => 83, 2026 => 90 }.freeze end diff --git a/app/models/form/lettings/questions/location_id.rb b/app/models/form/lettings/questions/location_id.rb index 5bc316476..80e34aac0 100644 --- a/app/models/form/lettings/questions/location_id.rb +++ b/app/models/form/lettings/questions/location_id.rb @@ -10,7 +10,7 @@ class Form::Lettings::Questions::LocationId < ::Form::Question "needstype": 2, }, } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? @disable_clearing_if_not_routed_or_dynamic_answer_options = true @top_guidance_partial = "finding_location" end @@ -55,5 +55,5 @@ private false end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 10, 2024 => 5 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 10, 2024 => 5, 2025 => 5, 2026 => 5 }.freeze end diff --git a/app/models/form/lettings/questions/location_id_search.rb b/app/models/form/lettings/questions/location_id_search.rb index 5e1734b51..e64125fda 100644 --- a/app/models/form/lettings/questions/location_id_search.rb +++ b/app/models/form/lettings/questions/location_id_search.rb @@ -10,7 +10,7 @@ class Form::Lettings::Questions::LocationIdSearch < ::Form::Question "needstype": 2, }, } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? @disable_clearing_if_not_routed_or_dynamic_answer_options = true @top_guidance_partial = "finding_location" end @@ -50,5 +50,5 @@ private false end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 10, 2024 => 5 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 10, 2024 => 5, 2025 => 5, 2026 => 5 }.freeze end diff --git a/app/models/form/lettings/questions/majorrepairs.rb b/app/models/form/lettings/questions/majorrepairs.rb index a0c8a3a5c..b9b740cb1 100644 --- a/app/models/form/lettings/questions/majorrepairs.rb +++ b/app/models/form/lettings/questions/majorrepairs.rb @@ -6,10 +6,10 @@ class Form::Lettings::Questions::Majorrepairs < ::Form::Question @type = "radio" @answer_options = ANSWER_OPTIONS @conditional_for = { "mrcdate" => [1] } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { "1" => { "value" => "Yes" }, "0" => { "value" => "No" } }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 24 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 24, 2024 => 24, 2025 => 24, 2026 => 23 }.freeze end diff --git a/app/models/form/lettings/questions/managing_organisation.rb b/app/models/form/lettings/questions/managing_organisation.rb index 9c766ebe0..bf1b23c54 100644 --- a/app/models/form/lettings/questions/managing_organisation.rb +++ b/app/models/form/lettings/questions/managing_organisation.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::ManagingOrganisation < ::Form::Question @id = "managing_organisation_id" @derived = true @type = "select" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? end def answer_options(log = nil, user = nil) @@ -83,5 +83,5 @@ private true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 2 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 2, 2024 => 2, 2025 => 2, 2026 => 2 }.freeze end diff --git a/app/models/form/lettings/questions/mrcdate.rb b/app/models/form/lettings/questions/mrcdate.rb index 0c311d186..33c511887 100644 --- a/app/models/form/lettings/questions/mrcdate.rb +++ b/app/models/form/lettings/questions/mrcdate.rb @@ -4,8 +4,8 @@ class Form::Lettings::Questions::Mrcdate < ::Form::Question @id = "mrcdate" @copy_key = "lettings.property_information.property_major_repairs.mrcdate" @type = "date" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 24 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 24, 2024 => 24, 2025 => 24, 2026 => 23 }.freeze end diff --git a/app/models/form/lettings/questions/nationality.rb b/app/models/form/lettings/questions/nationality.rb index 8c4a700c1..a966f68f7 100644 --- a/app/models/form/lettings/questions/nationality.rb +++ b/app/models/form/lettings/questions/nationality.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Nationality < ::Form::Question @type = "radio" @check_answers_card_number = 1 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -19,5 +19,5 @@ class Form::Lettings::Questions::Nationality < ::Form::Question "13" => { "value" => "Tenant prefers not to say" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 36, 2024 => 35 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 36, 2024 => 35, 2025 => 35, 2026 => 34 }.freeze end diff --git a/app/models/form/lettings/questions/nationality_all.rb b/app/models/form/lettings/questions/nationality_all.rb index a4bb750a1..368c0ffb5 100644 --- a/app/models/form/lettings/questions/nationality_all.rb +++ b/app/models/form/lettings/questions/nationality_all.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::NationalityAll < ::Form::Question @type = "select" @check_answers_card_number = 1 @answer_options = GlobalConstants::COUNTRIES_ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_label(log, _current_user = nil) @@ -17,7 +17,7 @@ class Form::Lettings::Questions::NationalityAll < ::Form::Question @answer_options.reject { |key, _| key == "826" } end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 36, 2024 => 35 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 36, 2024 => 35, 2025 => 35, 2026 => 35 }.freeze def label_from_value(value) return unless value diff --git a/app/models/form/lettings/questions/nationality_all_group.rb b/app/models/form/lettings/questions/nationality_all_group.rb index 559b1c9a0..0c4ed5d90 100644 --- a/app/models/form/lettings/questions/nationality_all_group.rb +++ b/app/models/form/lettings/questions/nationality_all_group.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::NationalityAllGroup < ::Form::Question @type = "radio" @check_answers_card_number = 1 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @conditional_for = { "nationality_all" => [12] } @hidden_in_check_answers = { "depends_on" => [{ "nationality_all_group" => 12 }] } end @@ -17,5 +17,5 @@ class Form::Lettings::Questions::NationalityAllGroup < ::Form::Question "0" => { "value" => "Tenant prefers not to say" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 36, 2024 => 35 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 36, 2024 => 35, 2025 => 35, 2026 => 35 }.freeze end diff --git a/app/models/form/lettings/questions/needs_type.rb b/app/models/form/lettings/questions/needs_type.rb index 9c32e30f9..87f331c07 100644 --- a/app/models/form/lettings/questions/needs_type.rb +++ b/app/models/form/lettings/questions/needs_type.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::NeedsType < ::Form::Question @id = "needstype" @type = "radio" @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? @top_guidance_partial = "needs_type" if form.start_year_2026_or_later? end @@ -13,5 +13,5 @@ class Form::Lettings::Questions::NeedsType < ::Form::Question "2" => { "value" => "Supported housing" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 3 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 3, 2024 => 3, 2025 => 3, 2026 => 3 }.freeze end diff --git a/app/models/form/lettings/questions/net_income_known.rb b/app/models/form/lettings/questions/net_income_known.rb index 01c3bcaa3..4bcbe7fd1 100644 --- a/app/models/form/lettings/questions/net_income_known.rb +++ b/app/models/form/lettings/questions/net_income_known.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::NetIncomeKnown < ::Form::Question @check_answers_card_number = 0 @top_guidance_partial = "what_counts_as_income" @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -16,5 +16,5 @@ class Form::Lettings::Questions::NetIncomeKnown < ::Form::Question "2" => { "value" => "Tenant prefers not to say" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 86, 2024 => 85 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 86, 2024 => 85, 2025 => 85, 2026 => 93 }.freeze end diff --git a/app/models/form/lettings/questions/offered.rb b/app/models/form/lettings/questions/offered.rb index c1aae8d32..38eccb40d 100644 --- a/app/models/form/lettings/questions/offered.rb +++ b/app/models/form/lettings/questions/offered.rb @@ -8,8 +8,8 @@ class Form::Lettings::Questions::Offered < ::Form::Question @max = 150 @min = 0 @step = 1 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 18 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 18, 2024 => 18, 2025 => 18, 2026 => 18 }.freeze end diff --git a/app/models/form/lettings/questions/period.rb b/app/models/form/lettings/questions/period.rb index 6f98bd2a8..a0fb51d9f 100644 --- a/app/models/form/lettings/questions/period.rb +++ b/app/models/form/lettings/questions/period.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Period < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -22,7 +22,7 @@ class Form::Lettings::Questions::Period < ::Form::Question "10" => { "value" => "Weekly for 53 weeks" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 92, 2024 => 91 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 92, 2024 => 91, 2025 => 91, 2026 => 99 }.freeze def displayed_answer_options(log, _user) return ANSWER_OPTIONS if log.managing_organisation.nil? diff --git a/app/models/form/lettings/questions/person_partner.rb b/app/models/form/lettings/questions/person_partner.rb index 98a22a448..c7b673131 100644 --- a/app/models/form/lettings/questions/person_partner.rb +++ b/app/models/form/lettings/questions/person_partner.rb @@ -21,11 +21,17 @@ class Form::Lettings::Questions::PersonPartner < ::Form::Question base_question_number = case form.start_date.year when 2023 30 - else + when 2024 + 29 + when 2025 29 + when 2026 + 28 + else + 28 end - base_question_number + (4 * @person_index) + base_question_number + (form.person_question_count * @person_index) end def derived?(log) diff --git a/app/models/form/lettings/questions/person_sex_registered_at_birth.rb b/app/models/form/lettings/questions/person_sex_registered_at_birth.rb index e5c54058f..819cc2df1 100644 --- a/app/models/form/lettings/questions/person_sex_registered_at_birth.rb +++ b/app/models/form/lettings/questions/person_sex_registered_at_birth.rb @@ -18,7 +18,7 @@ class Form::Lettings::Questions::PersonSexRegisteredAtBirth < ::Form::Question def question_number base_question_number = 29 - base_question_number + (5 * @person_index) + base_question_number + (form.person_question_count * @person_index) end def label_from_value(value, _log = nil, _user = nil) diff --git a/app/models/form/lettings/questions/person_working_situation.rb b/app/models/form/lettings/questions/person_working_situation.rb index 74e11d030..0089416fb 100644 --- a/app/models/form/lettings/questions/person_working_situation.rb +++ b/app/models/form/lettings/questions/person_working_situation.rb @@ -57,10 +57,16 @@ class Form::Lettings::Questions::PersonWorkingSituation < ::Form::Question base_question_number = case form.start_date.year when 2023 33 - else + when 2024 + 32 + when 2025 32 + when 2026 + 31 + else + 31 end - base_question_number + (4 * @person_index) + base_question_number + (form.person_question_count * @person_index) end end diff --git a/app/models/form/lettings/questions/postcode_for_full_address.rb b/app/models/form/lettings/questions/postcode_for_full_address.rb index 114cf0db5..84c93f7d7 100644 --- a/app/models/form/lettings/questions/postcode_for_full_address.rb +++ b/app/models/form/lettings/questions/postcode_for_full_address.rb @@ -18,10 +18,10 @@ class Form::Lettings::Questions::PostcodeForFullAddress < ::Form::Question } @plain_label = true @disable_clearing_if_not_routed_or_dynamic_answer_options = true - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @hide_question_number_on_page = true @bottom_guidance_partial = "address_fallback" end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 12, 2024 => 13, 2025 => 17 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 12, 2024 => 13, 2025 => 17, 2026 => 17 }.freeze end diff --git a/app/models/form/lettings/questions/ppcodenk.rb b/app/models/form/lettings/questions/ppcodenk.rb index 5eec607eb..7cf7c63c2 100644 --- a/app/models/form/lettings/questions/ppcodenk.rb +++ b/app/models/form/lettings/questions/ppcodenk.rb @@ -8,7 +8,7 @@ class Form::Lettings::Questions::Ppcodenk < ::Form::Question @answer_options = ANSWER_OPTIONS @conditional_for = { "ppostcode_full" => [0] } @hidden_in_check_answers = { "depends_on" => [{ "ppcodenk" => 0 }, { "ppcodenk" => 1 }] } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @disable_clearing_if_not_routed_or_dynamic_answer_options = true end @@ -17,5 +17,5 @@ class Form::Lettings::Questions::Ppcodenk < ::Form::Question "1" => { "value" => "No" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 80, 2024 => 79 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 80, 2024 => 79, 2025 => 79, 2026 => 86 }.freeze end diff --git a/app/models/form/lettings/questions/ppostcode_full.rb b/app/models/form/lettings/questions/ppostcode_full.rb index 804576ca1..41feded8f 100644 --- a/app/models/form/lettings/questions/ppostcode_full.rb +++ b/app/models/form/lettings/questions/ppostcode_full.rb @@ -13,9 +13,9 @@ class Form::Lettings::Questions::PpostcodeFull < ::Form::Question }] @check_answers_card_number = 0 @inferred_answers = { "prevloc" => { "is_previous_la_inferred" => true } } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @disable_clearing_if_not_routed_or_dynamic_answer_options = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 80, 2024 => 79 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 80, 2024 => 79, 2025 => 79, 2026 => 86 }.freeze end diff --git a/app/models/form/lettings/questions/preg_occ.rb b/app/models/form/lettings/questions/preg_occ.rb index 1ad1bd1f5..03bae1c04 100644 --- a/app/models/form/lettings/questions/preg_occ.rb +++ b/app/models/form/lettings/questions/preg_occ.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::PregOcc < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -15,5 +15,5 @@ class Form::Lettings::Questions::PregOcc < ::Form::Question "3" => { "value" => "Tenant prefers not to say" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 69, 2024 => 68 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 69, 2024 => 68, 2025 => 68, 2026 => 75 }.freeze end diff --git a/app/models/form/lettings/questions/previous_la_known.rb b/app/models/form/lettings/questions/previous_la_known.rb index 2145e9d1f..b8721ff46 100644 --- a/app/models/form/lettings/questions/previous_la_known.rb +++ b/app/models/form/lettings/questions/previous_la_known.rb @@ -8,11 +8,11 @@ class Form::Lettings::Questions::PreviousLaKnown < ::Form::Question @answer_options = ANSWER_OPTIONS @conditional_for = { "prevloc" => [1] } @hidden_in_check_answers = { "depends_on" => [{ "previous_la_known" => 0 }, { "previous_la_known" => 1 }] } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @disable_clearing_if_not_routed_or_dynamic_answer_options = true end ANSWER_OPTIONS = { "1" => { "value" => "Yes" }, "0" => { "value" => "No" } }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 81, 2024 => 80 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 81, 2024 => 80, 2025 => 80, 2026 => 87 }.freeze end diff --git a/app/models/form/lettings/questions/previous_let_type.rb b/app/models/form/lettings/questions/previous_let_type.rb index 8c35df84c..660e42869 100644 --- a/app/models/form/lettings/questions/previous_let_type.rb +++ b/app/models/form/lettings/questions/previous_let_type.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::PreviousLetType < ::Form::Question @id = "unitletas" @type = "radio" @answer_options = answer_options - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -41,7 +41,7 @@ class Form::Lettings::Questions::PreviousLetType < ::Form::Question "3" => { "value" => "Don’t know" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 16, 2024 => 17, 2025 => 14 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 16, 2024 => 17, 2025 => 14, 2026 => 14 }.freeze def answer_options return ANSWER_OPTIONS_AFTER_2025 if form.start_year_2025_or_later? diff --git a/app/models/form/lettings/questions/previous_tenure.rb b/app/models/form/lettings/questions/previous_tenure.rb index 47647b03c..65a3911b2 100644 --- a/app/models/form/lettings/questions/previous_tenure.rb +++ b/app/models/form/lettings/questions/previous_tenure.rb @@ -12,7 +12,7 @@ class Form::Lettings::Questions::PreviousTenure < ::Form::Question else ANSWER_OPTIONS end - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -103,5 +103,5 @@ class Form::Lettings::Questions::PreviousTenure < ::Form::Question "25" => { "value" => "Any other accommodation" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 78, 2024 => 77 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 78, 2024 => 77, 2025 => 77, 2026 => 84 }.freeze end diff --git a/app/models/form/lettings/questions/previous_tenure_renewal.rb b/app/models/form/lettings/questions/previous_tenure_renewal.rb index e932fd218..20f0900bb 100644 --- a/app/models/form/lettings/questions/previous_tenure_renewal.rb +++ b/app/models/form/lettings/questions/previous_tenure_renewal.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::PreviousTenureRenewal < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = form.start_year_2025_or_later? ? ANSWER_OPTIONS_2025 : ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -22,5 +22,5 @@ class Form::Lettings::Questions::PreviousTenureRenewal < ::Form::Question "6" => { "value" => "Other supported housing" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 78, 2024 => 77 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 78, 2024 => 77, 2025 => 77, 2026 => 84 }.freeze end diff --git a/app/models/form/lettings/questions/prevloc.rb b/app/models/form/lettings/questions/prevloc.rb index 4ad7dbf11..0bf445956 100644 --- a/app/models/form/lettings/questions/prevloc.rb +++ b/app/models/form/lettings/questions/prevloc.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::Prevloc < ::Form::Question @type = "select" @inferred_check_answers_value = [{ "condition" => { "previous_la_known" => 0 }, "value" => "Not known" }] @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @disable_clearing_if_not_routed_or_dynamic_answer_options = true end @@ -14,5 +14,5 @@ class Form::Lettings::Questions::Prevloc < ::Form::Question { "" => "Select an option" }.merge(LocalAuthority.active(form.start_date).map { |la| [la.code, la.name] }.to_h) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 81, 2024 => 80 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 81, 2024 => 80, 2025 => 80, 2026 => 87 }.freeze end diff --git a/app/models/form/lettings/questions/property_reference.rb b/app/models/form/lettings/questions/property_reference.rb index d4587ffe8..e81d4b6a2 100644 --- a/app/models/form/lettings/questions/property_reference.rb +++ b/app/models/form/lettings/questions/property_reference.rb @@ -4,8 +4,8 @@ class Form::Lettings::Questions::PropertyReference < ::Form::Question @id = "propcode" @type = "text" @width = 10 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 8, 2024 => 10 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 8, 2024 => 10, 2025 => 10, 2026 => 10 }.freeze end diff --git a/app/models/form/lettings/questions/pscharge_4_weekly.rb b/app/models/form/lettings/questions/pscharge_4_weekly.rb index 565be72c9..233e87854 100644 --- a/app/models/form/lettings/questions/pscharge_4_weekly.rb +++ b/app/models/form/lettings/questions/pscharge_4_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::Pscharge4Weekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every 4 weeks" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 97, 2024 => 96, 2025 => 94 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 97, 2024 => 96, 2025 => 94, 2026 => 102 }.freeze end diff --git a/app/models/form/lettings/questions/pscharge_bi_weekly.rb b/app/models/form/lettings/questions/pscharge_bi_weekly.rb index b8bb94f40..dcd1df89f 100644 --- a/app/models/form/lettings/questions/pscharge_bi_weekly.rb +++ b/app/models/form/lettings/questions/pscharge_bi_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::PschargeBiWeekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every 2 weeks" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 97, 2024 => 96, 2025 => 94 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 97, 2024 => 96, 2025 => 94, 2026 => 102 }.freeze end diff --git a/app/models/form/lettings/questions/pscharge_monthly.rb b/app/models/form/lettings/questions/pscharge_monthly.rb index ccbd2655b..b5c175ceb 100644 --- a/app/models/form/lettings/questions/pscharge_monthly.rb +++ b/app/models/form/lettings/questions/pscharge_monthly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::PschargeMonthly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every month" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 97, 2024 => 96, 2025 => 94 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 97, 2024 => 96, 2025 => 94, 2026 => 102 }.freeze end diff --git a/app/models/form/lettings/questions/pscharge_weekly.rb b/app/models/form/lettings/questions/pscharge_weekly.rb index 9b0a0e320..4bf327c08 100644 --- a/app/models/form/lettings/questions/pscharge_weekly.rb +++ b/app/models/form/lettings/questions/pscharge_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::PschargeWeekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every week" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 97, 2024 => 96, 2025 => 94 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 97, 2024 => 96, 2025 => 94, 2026 => 102 }.freeze end diff --git a/app/models/form/lettings/questions/reason.rb b/app/models/form/lettings/questions/reason.rb index 7f0cd86a0..a40d9d134 100644 --- a/app/models/form/lettings/questions/reason.rb +++ b/app/models/form/lettings/questions/reason.rb @@ -10,7 +10,7 @@ class Form::Lettings::Questions::Reason < ::Form::Question 20, ], } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -132,5 +132,5 @@ class Form::Lettings::Questions::Reason < ::Form::Question }.freeze, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2024 => 76 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2024 => 76, 2025 => 76, 2026 => 83 }.freeze end diff --git a/app/models/form/lettings/questions/reason_renewal.rb b/app/models/form/lettings/questions/reason_renewal.rb index c00bd2581..d5fccca67 100644 --- a/app/models/form/lettings/questions/reason_renewal.rb +++ b/app/models/form/lettings/questions/reason_renewal.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::ReasonRenewal < ::Form::Question @type = "radio" @copy_key = "lettings.household_situation.reason.#{page.id}.reason" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @conditional_for = { "reasonother" => [ 20, @@ -37,5 +37,5 @@ class Form::Lettings::Questions::ReasonRenewal < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 77, 2024 => 76 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 77, 2024 => 76, 2025 => 76, 2026 => 83 }.freeze end diff --git a/app/models/form/lettings/questions/reasonable_preference_reason.rb b/app/models/form/lettings/questions/reasonable_preference_reason.rb index 75b450b91..485ad830f 100644 --- a/app/models/form/lettings/questions/reasonable_preference_reason.rb +++ b/app/models/form/lettings/questions/reasonable_preference_reason.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::ReasonablePreferenceReason < ::Form::Question @type = "checkbox" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -17,5 +17,5 @@ class Form::Lettings::Questions::ReasonablePreferenceReason < ::Form::Question "rp_dontknow" => { "value" => "Don’t know" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 83, 2024 => 82 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 83, 2024 => 82, 2025 => 82, 2026 => 89 }.freeze end diff --git a/app/models/form/lettings/questions/reasonother.rb b/app/models/form/lettings/questions/reasonother.rb index 7e600916b..b92a7b8f4 100644 --- a/app/models/form/lettings/questions/reasonother.rb +++ b/app/models/form/lettings/questions/reasonother.rb @@ -5,8 +5,8 @@ class Form::Lettings::Questions::Reasonother < ::Form::Question @copy_key = "lettings.household_situation.reason.#{@page.id}.reasonother" @type = "text" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 77, 2024 => 76 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 77, 2024 => 76, 2025 => 76, 2026 => 83 }.freeze end diff --git a/app/models/form/lettings/questions/reasonpref.rb b/app/models/form/lettings/questions/reasonpref.rb index e63f65584..f54e98c15 100644 --- a/app/models/form/lettings/questions/reasonpref.rb +++ b/app/models/form/lettings/questions/reasonpref.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Reasonpref < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -15,5 +15,5 @@ class Form::Lettings::Questions::Reasonpref < ::Form::Question "3" => { "value" => "Don’t know" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 82, 2024 => 81 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 82, 2024 => 81, 2025 => 81, 2026 => 88 }.freeze end diff --git a/app/models/form/lettings/questions/referral_direct.rb b/app/models/form/lettings/questions/referral_direct.rb index d79065df7..5373f3f3f 100644 --- a/app/models/form/lettings/questions/referral_direct.rb +++ b/app/models/form/lettings/questions/referral_direct.rb @@ -7,7 +7,7 @@ class Form::Lettings::Questions::ReferralDirect < ::Form::Question @copy_key = "lettings.household_situation.referral.direct" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options diff --git a/app/models/form/lettings/questions/referral_general_needs.rb b/app/models/form/lettings/questions/referral_general_needs.rb index 6c9f159e4..f2b2167a3 100644 --- a/app/models/form/lettings/questions/referral_general_needs.rb +++ b/app/models/form/lettings/questions/referral_general_needs.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::ReferralGeneralNeeds < ::Form::Question @copy_key = "lettings.household_situation.referral.general_needs.la" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -93,5 +93,5 @@ class Form::Lettings::Questions::ReferralGeneralNeeds < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84, 2025 => 84 }.freeze end diff --git a/app/models/form/lettings/questions/referral_general_needs_prp.rb b/app/models/form/lettings/questions/referral_general_needs_prp.rb index 492f32c8f..37d222961 100644 --- a/app/models/form/lettings/questions/referral_general_needs_prp.rb +++ b/app/models/form/lettings/questions/referral_general_needs_prp.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::ReferralGeneralNeedsPrp < ::Form::Question @copy_key = "lettings.household_situation.referral.general_needs.prp" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -102,5 +102,5 @@ class Form::Lettings::Questions::ReferralGeneralNeedsPrp < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84, 2025 => 84 }.freeze end diff --git a/app/models/form/lettings/questions/referral_hsc.rb b/app/models/form/lettings/questions/referral_hsc.rb index f049b6359..d589768a5 100644 --- a/app/models/form/lettings/questions/referral_hsc.rb +++ b/app/models/form/lettings/questions/referral_hsc.rb @@ -7,7 +7,7 @@ class Form::Lettings::Questions::ReferralHsc < ::Form::Question @copy_key = "lettings.household_situation.referral.hsc" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options diff --git a/app/models/form/lettings/questions/referral_justice.rb b/app/models/form/lettings/questions/referral_justice.rb index f222f5fe8..ccd836a2f 100644 --- a/app/models/form/lettings/questions/referral_justice.rb +++ b/app/models/form/lettings/questions/referral_justice.rb @@ -7,7 +7,7 @@ class Form::Lettings::Questions::ReferralJustice < ::Form::Question @copy_key = "lettings.household_situation.referral.justice" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options diff --git a/app/models/form/lettings/questions/referral_la.rb b/app/models/form/lettings/questions/referral_la.rb index 352457964..ede72194c 100644 --- a/app/models/form/lettings/questions/referral_la.rb +++ b/app/models/form/lettings/questions/referral_la.rb @@ -7,7 +7,7 @@ class Form::Lettings::Questions::ReferralLa < ::Form::Question @copy_key = "lettings.household_situation.referral.la" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options diff --git a/app/models/form/lettings/questions/referral_prp.rb b/app/models/form/lettings/questions/referral_prp.rb index 825967a3f..b0aed7b98 100644 --- a/app/models/form/lettings/questions/referral_prp.rb +++ b/app/models/form/lettings/questions/referral_prp.rb @@ -7,7 +7,7 @@ class Form::Lettings::Questions::ReferralPrp < ::Form::Question @copy_key = "lettings.household_situation.referral.prp" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options diff --git a/app/models/form/lettings/questions/referral_supported_housing.rb b/app/models/form/lettings/questions/referral_supported_housing.rb index 3a7ba04ac..2caddc8e2 100644 --- a/app/models/form/lettings/questions/referral_supported_housing.rb +++ b/app/models/form/lettings/questions/referral_supported_housing.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::ReferralSupportedHousing < ::Form::Question @copy_key = "lettings.household_situation.referral.supported_housing.la" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -93,5 +93,5 @@ class Form::Lettings::Questions::ReferralSupportedHousing < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84, 2025 => 84 }.freeze end diff --git a/app/models/form/lettings/questions/referral_supported_housing_prp.rb b/app/models/form/lettings/questions/referral_supported_housing_prp.rb index d0236f4af..89f02a723 100644 --- a/app/models/form/lettings/questions/referral_supported_housing_prp.rb +++ b/app/models/form/lettings/questions/referral_supported_housing_prp.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::ReferralSupportedHousingPrp < ::Form::Question @copy_key = "lettings.household_situation.referral.supported_housing.prp" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -105,5 +105,5 @@ class Form::Lettings::Questions::ReferralSupportedHousingPrp < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84, 2025 => 84 }.freeze end diff --git a/app/models/form/lettings/questions/referral_type.rb b/app/models/form/lettings/questions/referral_type.rb index b4bb87515..b84e85155 100644 --- a/app/models/form/lettings/questions/referral_type.rb +++ b/app/models/form/lettings/questions/referral_type.rb @@ -7,7 +7,7 @@ class Form::Lettings::Questions::ReferralType < ::Form::Question @copy_key = "lettings.household_situation.referral.type" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options diff --git a/app/models/form/lettings/questions/renewal.rb b/app/models/form/lettings/questions/renewal.rb index e78d98247..71007166b 100644 --- a/app/models/form/lettings/questions/renewal.rb +++ b/app/models/form/lettings/questions/renewal.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::Renewal < ::Form::Question @id = "renewal" @type = "radio" @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? end ANSWER_OPTIONS = { @@ -13,5 +13,5 @@ class Form::Lettings::Questions::Renewal < ::Form::Question } .freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 4, 2024 => 6 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 4, 2024 => 6, 2025 => 6, 2026 => 6 }.freeze end diff --git a/app/models/form/lettings/questions/rent_type.rb b/app/models/form/lettings/questions/rent_type.rb index 7700c5284..5940c18dc 100644 --- a/app/models/form/lettings/questions/rent_type.rb +++ b/app/models/form/lettings/questions/rent_type.rb @@ -7,7 +7,7 @@ class Form::Lettings::Questions::RentType < ::Form::Question @top_guidance_partial = "rent_type_definitions" @answer_options = answer_options @conditional_for = { "irproduct_other" => [5] } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? end ANSWER_OPTIONS = { @@ -29,7 +29,7 @@ class Form::Lettings::Questions::RentType < ::Form::Question "6" => { "value" => "Specified accommodation - exempt accommodation, managed properties, refuges and local authority hostels" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 6, 2024 => 8 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 6, 2024 => 8, 2025 => 8, 2026 => 8 }.freeze def answer_options form.start_year_2025_or_later? ? ANSWER_OPTIONS_2025 : ANSWER_OPTIONS diff --git a/app/models/form/lettings/questions/reservist.rb b/app/models/form/lettings/questions/reservist.rb index 023f1655d..f6e97c3d8 100644 --- a/app/models/form/lettings/questions/reservist.rb +++ b/app/models/form/lettings/questions/reservist.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Reservist < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -15,5 +15,5 @@ class Form::Lettings::Questions::Reservist < ::Form::Question "3" => { "value" => "Person prefers not to say" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 68, 2024 => 67 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 68, 2024 => 67, 2025 => 67, 2026 => 74 }.freeze end diff --git a/app/models/form/lettings/questions/rsnvac.rb b/app/models/form/lettings/questions/rsnvac.rb index 42c8d9f92..48523b284 100644 --- a/app/models/form/lettings/questions/rsnvac.rb +++ b/app/models/form/lettings/questions/rsnvac.rb @@ -3,7 +3,7 @@ class Form::Lettings::Questions::Rsnvac < ::Form::Question super @id = "rsnvac" @type = "radio" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -98,5 +98,5 @@ class Form::Lettings::Questions::Rsnvac < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 17, 2024 => 18, 2025 => 15 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 17, 2024 => 18, 2025 => 15, 2026 => 15 }.freeze end diff --git a/app/models/form/lettings/questions/rsnvac_first_let.rb b/app/models/form/lettings/questions/rsnvac_first_let.rb index 01389871c..16d6219b6 100644 --- a/app/models/form/lettings/questions/rsnvac_first_let.rb +++ b/app/models/form/lettings/questions/rsnvac_first_let.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::RsnvacFirstLet < ::Form::Question @id = "rsnvac" @type = "radio" @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -13,5 +13,5 @@ class Form::Lettings::Questions::RsnvacFirstLet < ::Form::Question "15" => { "value" => "First let of new-build property" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 15, 2024 => 16, 2025 => 13 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 15, 2024 => 16, 2025 => 13, 2026 => 13 }.freeze end diff --git a/app/models/form/lettings/questions/scharge_4_weekly.rb b/app/models/form/lettings/questions/scharge_4_weekly.rb index 8c4156774..e95f5b1d2 100644 --- a/app/models/form/lettings/questions/scharge_4_weekly.rb +++ b/app/models/form/lettings/questions/scharge_4_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::Scharge4Weekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every 4 weeks" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 96, 2024 => 95, 2025 => 93 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 96, 2024 => 95, 2025 => 93, 2026 => 101 }.freeze end diff --git a/app/models/form/lettings/questions/scharge_bi_weekly.rb b/app/models/form/lettings/questions/scharge_bi_weekly.rb index 7803f8b37..24904797e 100644 --- a/app/models/form/lettings/questions/scharge_bi_weekly.rb +++ b/app/models/form/lettings/questions/scharge_bi_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::SchargeBiWeekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every 2 weeks" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 96, 2024 => 95, 2025 => 93 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 96, 2024 => 95, 2025 => 93, 2026 => 101 }.freeze end diff --git a/app/models/form/lettings/questions/scharge_monthly.rb b/app/models/form/lettings/questions/scharge_monthly.rb index 073d4a772..631192bd4 100644 --- a/app/models/form/lettings/questions/scharge_monthly.rb +++ b/app/models/form/lettings/questions/scharge_monthly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::SchargeMonthly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every month" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 96, 2024 => 95, 2025 => 93 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 96, 2024 => 95, 2025 => 93, 2026 => 101 }.freeze end diff --git a/app/models/form/lettings/questions/scharge_weekly.rb b/app/models/form/lettings/questions/scharge_weekly.rb index b6befbad3..5f8aa9843 100644 --- a/app/models/form/lettings/questions/scharge_weekly.rb +++ b/app/models/form/lettings/questions/scharge_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::SchargeWeekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every week" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 96, 2024 => 95, 2025 => 93 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 96, 2024 => 95, 2025 => 93, 2026 => 101 }.freeze end diff --git a/app/models/form/lettings/questions/scheme_id.rb b/app/models/form/lettings/questions/scheme_id.rb index 862ef3130..c9b371f40 100644 --- a/app/models/form/lettings/questions/scheme_id.rb +++ b/app/models/form/lettings/questions/scheme_id.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::SchemeId < ::Form::Question @answer_options = answer_options @top_guidance_partial = "finding_scheme" @bottom_guidance_partial = "scheme_selection" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? @inferred_answers = { "location.name": { "scheme_has_multiple_locations?": false, @@ -56,5 +56,5 @@ private false end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 9, 2024 => 4 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 9, 2024 => 4, 2025 => 4, 2026 => 4 }.freeze end diff --git a/app/models/form/lettings/questions/sheltered.rb b/app/models/form/lettings/questions/sheltered.rb index 35a16ae05..ca684c7af 100644 --- a/app/models/form/lettings/questions/sheltered.rb +++ b/app/models/form/lettings/questions/sheltered.rb @@ -3,7 +3,7 @@ class Form::Lettings::Questions::Sheltered < ::Form::Question super @id = "sheltered" @type = "radio" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -27,5 +27,5 @@ class Form::Lettings::Questions::Sheltered < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 29, 2024 => 29, 2025 => 25 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 29, 2024 => 29, 2025 => 25, 2026 => 24 }.freeze end diff --git a/app/models/form/lettings/questions/starter_tenancy_type.rb b/app/models/form/lettings/questions/starter_tenancy_type.rb index dfda74bc0..4224781bd 100644 --- a/app/models/form/lettings/questions/starter_tenancy_type.rb +++ b/app/models/form/lettings/questions/starter_tenancy_type.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::StarterTenancyType < ::Form::Question @type = "radio" @check_answers_card_number = 0 @conditional_for = { "tenancyother" => [3] } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -65,5 +65,5 @@ class Form::Lettings::Questions::StarterTenancyType < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 27, 2024 => 27, 2025 => 28 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 27, 2024 => 27, 2025 => 28, 2026 => 27 }.freeze end diff --git a/app/models/form/lettings/questions/startertenancy.rb b/app/models/form/lettings/questions/startertenancy.rb index 6bec6a360..464e5d3a6 100644 --- a/app/models/form/lettings/questions/startertenancy.rb +++ b/app/models/form/lettings/questions/startertenancy.rb @@ -5,10 +5,10 @@ class Form::Lettings::Questions::Startertenancy < ::Form::Question @type = "radio" @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { "1" => { "value" => "Yes" }, "2" => { "value" => "No" } }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 26, 2024 => 26, 2025 => 27 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 26, 2024 => 26, 2025 => 27, 2026 => 26 }.freeze end diff --git a/app/models/form/lettings/questions/stock_owner.rb b/app/models/form/lettings/questions/stock_owner.rb index 466b08e3f..6d2ee1d64 100644 --- a/app/models/form/lettings/questions/stock_owner.rb +++ b/app/models/form/lettings/questions/stock_owner.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::StockOwner < ::Form::Question @id = "owning_organisation_id" @derived = true @type = "select" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? end def answer_options(log = nil, user = nil) @@ -86,5 +86,5 @@ private "#{name} (inactive as of #{merge_date.to_fs(:govuk_date)})" end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 1 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 1, 2024 => 1, 2025 => 1, 2026 => 1 }.freeze end diff --git a/app/models/form/lettings/questions/supcharg_4_weekly.rb b/app/models/form/lettings/questions/supcharg_4_weekly.rb index 227aead7a..1e3c502b2 100644 --- a/app/models/form/lettings/questions/supcharg_4_weekly.rb +++ b/app/models/form/lettings/questions/supcharg_4_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::Supcharg4Weekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every 4 weeks" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 98, 2024 => 97, 2025 => 95 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 98, 2024 => 97, 2025 => 95, 2026 => 103 }.freeze end diff --git a/app/models/form/lettings/questions/supcharg_bi_weekly.rb b/app/models/form/lettings/questions/supcharg_bi_weekly.rb index e01783122..4ad8048b8 100644 --- a/app/models/form/lettings/questions/supcharg_bi_weekly.rb +++ b/app/models/form/lettings/questions/supcharg_bi_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::SupchargBiWeekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every 2 weeks" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 98, 2024 => 97, 2025 => 95 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 98, 2024 => 97, 2025 => 95, 2026 => 103 }.freeze end diff --git a/app/models/form/lettings/questions/supcharg_monthly.rb b/app/models/form/lettings/questions/supcharg_monthly.rb index 25da179d2..85060eda9 100644 --- a/app/models/form/lettings/questions/supcharg_monthly.rb +++ b/app/models/form/lettings/questions/supcharg_monthly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::SupchargMonthly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every month" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 98, 2024 => 97, 2025 => 95 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 98, 2024 => 97, 2025 => 95, 2026 => 103 }.freeze end diff --git a/app/models/form/lettings/questions/supcharg_weekly.rb b/app/models/form/lettings/questions/supcharg_weekly.rb index c6f7a666d..e34473e17 100644 --- a/app/models/form/lettings/questions/supcharg_weekly.rb +++ b/app/models/form/lettings/questions/supcharg_weekly.rb @@ -12,9 +12,9 @@ class Form::Lettings::Questions::SupchargWeekly < ::Form::Question @result_field = "tcharge" @prefix = "£" @suffix = " every week" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 98, 2024 => 97, 2025 => 95 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 98, 2024 => 97, 2025 => 95, 2026 => 103 }.freeze end diff --git a/app/models/form/lettings/questions/tenancy_length.rb b/app/models/form/lettings/questions/tenancy_length.rb index a3155f8c0..27ac9dbdc 100644 --- a/app/models/form/lettings/questions/tenancy_length.rb +++ b/app/models/form/lettings/questions/tenancy_length.rb @@ -9,8 +9,8 @@ class Form::Lettings::Questions::TenancyLength < ::Form::Question @max = 150 @min = 0 @step = 1 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 28, 2024 => 28, 2025 => 29 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 28, 2024 => 28, 2025 => 29, 2026 => 28 }.freeze end diff --git a/app/models/form/lettings/questions/tenancy_length_affordable_rent.rb b/app/models/form/lettings/questions/tenancy_length_affordable_rent.rb index 58b83fe90..f26adbe6f 100644 --- a/app/models/form/lettings/questions/tenancy_length_affordable_rent.rb +++ b/app/models/form/lettings/questions/tenancy_length_affordable_rent.rb @@ -9,8 +9,8 @@ class Form::Lettings::Questions::TenancyLengthAffordableRent < ::Form::Question @max = 150 @min = 0 @step = 1 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 28, 2024 => 28, 2025 => 29 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 28, 2024 => 28, 2025 => 29, 2026 => 28 }.freeze end diff --git a/app/models/form/lettings/questions/tenancy_length_intermediate_rent.rb b/app/models/form/lettings/questions/tenancy_length_intermediate_rent.rb index c85583d95..ed3a13b0c 100644 --- a/app/models/form/lettings/questions/tenancy_length_intermediate_rent.rb +++ b/app/models/form/lettings/questions/tenancy_length_intermediate_rent.rb @@ -9,8 +9,8 @@ class Form::Lettings::Questions::TenancyLengthIntermediateRent < ::Form::Questio @max = 150 @min = 0 @step = 1 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 28, 2024 => 28, 2025 => 29 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 28, 2024 => 28, 2025 => 29, 2026 => 28 }.freeze end diff --git a/app/models/form/lettings/questions/tenancy_length_periodic.rb b/app/models/form/lettings/questions/tenancy_length_periodic.rb index e7f9336ec..85041680e 100644 --- a/app/models/form/lettings/questions/tenancy_length_periodic.rb +++ b/app/models/form/lettings/questions/tenancy_length_periodic.rb @@ -9,8 +9,8 @@ class Form::Lettings::Questions::TenancyLengthPeriodic < ::Form::Question @max = 150 @min = 0 @step = 1 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 28, 2024 => 28, 2025 => 29 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 28, 2024 => 28, 2025 => 29, 2026 => 28 }.freeze end diff --git a/app/models/form/lettings/questions/tenancy_other.rb b/app/models/form/lettings/questions/tenancy_other.rb index 8a8a94108..6f455fead 100644 --- a/app/models/form/lettings/questions/tenancy_other.rb +++ b/app/models/form/lettings/questions/tenancy_other.rb @@ -5,8 +5,8 @@ class Form::Lettings::Questions::TenancyOther < ::Form::Question @copy_key = "lettings.tenancy_information.tenancy.#{page.id}.tenancyother" @type = "text" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 27, 2024 => 27, 2025 => 28 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 27, 2024 => 27, 2025 => 28, 2026 => 27 }.freeze end diff --git a/app/models/form/lettings/questions/tenancy_start_date.rb b/app/models/form/lettings/questions/tenancy_start_date.rb index b7d82b399..fc5137626 100644 --- a/app/models/form/lettings/questions/tenancy_start_date.rb +++ b/app/models/form/lettings/questions/tenancy_start_date.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::TenancyStartDate < ::Form::Question @id = "startdate" @type = "date" @unresolved_hint_text = "Some scheme details have changed, and now this log needs updating. Check that the tenancy start date is correct." - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? end def date_example_override(log) @@ -20,5 +20,5 @@ class Form::Lettings::Questions::TenancyStartDate < ::Form::Question I18n.t("forms.#{form.start_date.year}.#{copy_key}.example", default: "", example_date:) end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 5, 2024 => 7 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 5, 2024 => 7, 2025 => 7, 2026 => 7 }.freeze end diff --git a/app/models/form/lettings/questions/tenancy_type.rb b/app/models/form/lettings/questions/tenancy_type.rb index 96fda2687..d2b9a5925 100644 --- a/app/models/form/lettings/questions/tenancy_type.rb +++ b/app/models/form/lettings/questions/tenancy_type.rb @@ -6,7 +6,7 @@ class Form::Lettings::Questions::TenancyType < ::Form::Question @type = "radio" @check_answers_card_number = 0 @conditional_for = { "tenancyother" => [3] } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -65,5 +65,5 @@ class Form::Lettings::Questions::TenancyType < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 27, 2024 => 27, 2025 => 28 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 27, 2024 => 27, 2025 => 28, 2026 => 27 }.freeze end diff --git a/app/models/form/lettings/questions/tenancyother_value_check.rb b/app/models/form/lettings/questions/tenancyother_value_check.rb new file mode 100644 index 000000000..309de7169 --- /dev/null +++ b/app/models/form/lettings/questions/tenancyother_value_check.rb @@ -0,0 +1,13 @@ +class Form::Lettings::Questions::TenancyotherValueCheck < ::Form::Question + def initialize(id, hsh, page) + super + @id = "tenancyother_value_check" + @copy_key = "lettings.soft_validations.tenancyother_value_check" + @type = "interruption_screen" + @check_answers_card_number = 0 + @answer_options = ANSWER_OPTIONS + @hidden_in_check_answers = { "depends_on" => [{ "tenancyother_value_check" => 0 }, { "tenancyother_value_check" => 1 }] } + end + + ANSWER_OPTIONS = { "0" => { "value" => "Yes" }, "1" => { "value" => "No" } }.freeze +end diff --git a/app/models/form/lettings/questions/tenant_code.rb b/app/models/form/lettings/questions/tenant_code.rb index 7b7be3cac..36b3d0aee 100644 --- a/app/models/form/lettings/questions/tenant_code.rb +++ b/app/models/form/lettings/questions/tenant_code.rb @@ -4,8 +4,8 @@ class Form::Lettings::Questions::TenantCode < ::Form::Question @id = "tenancycode" @type = "text" @width = 10 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present? + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) if form.start_date.present? end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 7, 2024 => 9 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 7, 2024 => 9, 2025 => 9, 2026 => 9 }.freeze end diff --git a/app/models/form/lettings/questions/town_or_city.rb b/app/models/form/lettings/questions/town_or_city.rb index 5673b7f01..6db52c92d 100644 --- a/app/models/form/lettings/questions/town_or_city.rb +++ b/app/models/form/lettings/questions/town_or_city.rb @@ -6,9 +6,9 @@ class Form::Lettings::Questions::TownOrCity < ::Form::Question @type = "text" @plain_label = true @disable_clearing_if_not_routed_or_dynamic_answer_options = true - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @hide_question_number_on_page = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 12, 2024 => 13, 2025 => 17 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 12, 2024 => 13, 2025 => 17, 2026 => 17 }.freeze end diff --git a/app/models/form/lettings/questions/tshortfall.rb b/app/models/form/lettings/questions/tshortfall.rb index ced2a426a..a271f9e06 100644 --- a/app/models/form/lettings/questions/tshortfall.rb +++ b/app/models/form/lettings/questions/tshortfall.rb @@ -21,9 +21,9 @@ class Form::Lettings::Questions::Tshortfall < ::Form::Question { "label" => " every week for 52 weeks", "depends_on" => { "period" => 1 } }, { "label" => " every week for 53 weeks", "depends_on" => { "period" => 10 } }, ] - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 100, 2024 => 99, 2025 => 97 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 100, 2024 => 99, 2025 => 97, 2026 => 105 }.freeze end diff --git a/app/models/form/lettings/questions/tshortfall_known.rb b/app/models/form/lettings/questions/tshortfall_known.rb index 8ba0b038c..97b41a09b 100644 --- a/app/models/form/lettings/questions/tshortfall_known.rb +++ b/app/models/form/lettings/questions/tshortfall_known.rb @@ -7,10 +7,10 @@ class Form::Lettings::Questions::TshortfallKnown < ::Form::Question @check_answers_card_number = 0 @answer_options = ANSWER_OPTIONS @conditional_for = { "tshortfall" => [0] } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { "0" => { "value" => "Yes" }, "1" => { "value" => "No" } }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 100, 2024 => 99, 2025 => 97 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 100, 2024 => 99, 2025 => 97, 2026 => 105 }.freeze end diff --git a/app/models/form/lettings/questions/unittype_gn.rb b/app/models/form/lettings/questions/unittype_gn.rb index ad8298929..34391bf83 100644 --- a/app/models/form/lettings/questions/unittype_gn.rb +++ b/app/models/form/lettings/questions/unittype_gn.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::UnittypeGn < ::Form::Question @id = "unittype_gn" @type = "radio" @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -18,5 +18,5 @@ class Form::Lettings::Questions::UnittypeGn < ::Form::Question "6" => { "value" => "Other" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 19 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 19, 2024 => 19, 2025 => 19, 2026 => 19 }.freeze end diff --git a/app/models/form/lettings/questions/uprn.rb b/app/models/form/lettings/questions/uprn.rb index 7f1f240f9..98ffb75c2 100644 --- a/app/models/form/lettings/questions/uprn.rb +++ b/app/models/form/lettings/questions/uprn.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::Uprn < ::Form::Question @copy_key = "lettings.property_information.uprn.uprn" @type = "text" @width = 10 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @inferred_check_answers_value = [ { "condition" => { "uprn_known" => 0 }, @@ -35,5 +35,5 @@ class Form::Lettings::Questions::Uprn < ::Form::Question "\n\n#{value.join("\n")}" end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 11, 2024 => 12, 2025 => 16 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 11, 2024 => 12, 2025 => 16, 2026 => 16 }.freeze end diff --git a/app/models/form/lettings/questions/uprn_known.rb b/app/models/form/lettings/questions/uprn_known.rb index 6ac70e415..5dab0f35a 100644 --- a/app/models/form/lettings/questions/uprn_known.rb +++ b/app/models/form/lettings/questions/uprn_known.rb @@ -18,7 +18,7 @@ class Form::Lettings::Questions::UprnKnown < ::Form::Question { "uprn_known" => 1 }, ], } - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -30,5 +30,5 @@ class Form::Lettings::Questions::UprnKnown < ::Form::Question I18n.t("validations.property.uprn_known.invalid") end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 11, 2024 => 12, 2025 => 16 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 11, 2024 => 12, 2025 => 16, 2026 => 16 }.freeze end diff --git a/app/models/form/lettings/questions/voiddate.rb b/app/models/form/lettings/questions/voiddate.rb index 3bce8a7b8..afdbb01ae 100644 --- a/app/models/form/lettings/questions/voiddate.rb +++ b/app/models/form/lettings/questions/voiddate.rb @@ -3,9 +3,9 @@ class Form::Lettings::Questions::Voiddate < ::Form::Question super @id = "voiddate" @type = "date" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) @top_guidance_partial = "void_date" end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 23 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 23, 2024 => 23, 2025 => 23, 2026 => 22 }.freeze end diff --git a/app/models/form/lettings/questions/waityear.rb b/app/models/form/lettings/questions/waityear.rb index 5c81fdedc..7e0f2b77e 100644 --- a/app/models/form/lettings/questions/waityear.rb +++ b/app/models/form/lettings/questions/waityear.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::Waityear < ::Form::Question @id = "waityear" @type = "radio" @check_answers_card_number = 0 - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -49,5 +49,5 @@ class Form::Lettings::Questions::Waityear < ::Form::Question }.freeze end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 76, 2024 => 75 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 76, 2024 => 75, 2025 => 75, 2026 => 82 }.freeze end diff --git a/app/models/form/lettings/questions/wheelchair.rb b/app/models/form/lettings/questions/wheelchair.rb index 9da5399e6..289e298f5 100644 --- a/app/models/form/lettings/questions/wheelchair.rb +++ b/app/models/form/lettings/questions/wheelchair.rb @@ -4,7 +4,7 @@ class Form::Lettings::Questions::Wheelchair < ::Form::Question @id = "wchair" @type = "radio" @answer_options = ANSWER_OPTIONS - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end ANSWER_OPTIONS = { @@ -12,5 +12,5 @@ class Form::Lettings::Questions::Wheelchair < ::Form::Question "2" => { "value" => "No" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2023 => 21 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 21, 2024 => 21, 2025 => 21, 2026 => 20 }.freeze end diff --git a/app/models/form/lettings/questions/working_situation1.rb b/app/models/form/lettings/questions/working_situation1.rb index 6098eb136..0a0221579 100644 --- a/app/models/form/lettings/questions/working_situation1.rb +++ b/app/models/form/lettings/questions/working_situation1.rb @@ -5,7 +5,7 @@ class Form::Lettings::Questions::WorkingSituation1 < ::Form::Question @type = "radio" @check_answers_card_number = 1 @answer_options = answer_options - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end def answer_options @@ -40,5 +40,5 @@ class Form::Lettings::Questions::WorkingSituation1 < ::Form::Question end end - QUESTION_NUMBER_FROM_YEAR = { 2023 => 37, 2024 => 36 }.freeze + QUESTION_NUMBER_FROM_YEAR = { 2023 => 37, 2024 => 36, 2025 => 36, 2026 => 36 }.freeze end diff --git a/app/models/form/lettings/subsections/tenancy_information.rb b/app/models/form/lettings/subsections/tenancy_information.rb index b65039b8d..e6ff48457 100644 --- a/app/models/form/lettings/subsections/tenancy_information.rb +++ b/app/models/form/lettings/subsections/tenancy_information.rb @@ -12,6 +12,7 @@ class Form::Lettings::Subsections::TenancyInformation < ::Form::Subsection Form::Lettings::Pages::StarterTenancy.new("starter_tenancy", nil, self), Form::Lettings::Pages::TenancyType.new(nil, nil, self), Form::Lettings::Pages::StarterTenancyType.new(nil, nil, self), + (Form::Lettings::Pages::TenancyotherValueCheck.new(nil, nil, self) if form.start_year_2026_or_later?), Form::Lettings::Pages::TenancyLength.new(nil, nil, self), Form::Lettings::Pages::TenancyLengthAffordableRent.new(nil, nil, self), Form::Lettings::Pages::TenancyLengthIntermediateRent.new(nil, nil, self), diff --git a/app/models/form/question.rb b/app/models/form/question.rb index e5bc0c9a6..be90899f9 100644 --- a/app/models/form/question.rb +++ b/app/models/form/question.rb @@ -367,7 +367,7 @@ private inferred_answer["value"] if inferred_answer.present? end - # every year currently visible should be specified. + # every year currently visible should have an explicit question number specified. # however, form_handler.rb will still initialise the next form even if its not visible. # so we have a fallback to the latest year for these future years so all question have a question number. def get_question_number_from_hash(hash) diff --git a/app/models/form/sales/pages/deposit.rb b/app/models/form/sales/pages/deposit.rb index 4fc5e1b83..411cfb270 100644 --- a/app/models/form/sales/pages/deposit.rb +++ b/app/models/form/sales/pages/deposit.rb @@ -23,6 +23,7 @@ class Form::Sales::Pages::Deposit < ::Form::Page def copy_key return "sales.sale_information.deposit.shared_ownership" if @ownershipsch == 1 return "sales.sale_information.deposit.discounted_ownership" if @ownershipsch == 2 - return "sales.sale_information.deposit.outright_sale" if @ownershipsch == 3 + + "sales.sale_information.deposit.outright_sale" if @ownershipsch == 3 end end diff --git a/app/models/form/sales/questions/deposit_amount.rb b/app/models/form/sales/questions/deposit_amount.rb index 9fe7a7ce1..ede6335e1 100644 --- a/app/models/form/sales/questions/deposit_amount.rb +++ b/app/models/form/sales/questions/deposit_amount.rb @@ -29,12 +29,14 @@ class Form::Sales::Questions::DepositAmount < ::Form::Question def top_guidance_partial return "financial_calculations_shared_ownership" if @ownershipsch == 1 return "financial_calculations_discounted_ownership" if @ownershipsch == 2 - return "financial_calculations_outright_sale" if @ownershipsch == 3 + + "financial_calculations_outright_sale" if @ownershipsch == 3 end def copy_key return "sales.sale_information.deposit.shared_ownership" if @ownershipsch == 1 return "sales.sale_information.deposit.discounted_ownership" if @ownershipsch == 2 - return "sales.sale_information.deposit.outright_sale" if @ownershipsch == 3 + + "sales.sale_information.deposit.outright_sale" if @ownershipsch == 3 end end diff --git a/app/models/form/sales/questions/mortgage_amount.rb b/app/models/form/sales/questions/mortgage_amount.rb index 0d2bda4fd..a61dce8f3 100644 --- a/app/models/form/sales/questions/mortgage_amount.rb +++ b/app/models/form/sales/questions/mortgage_amount.rb @@ -26,6 +26,7 @@ class Form::Sales::Questions::MortgageAmount < ::Form::Question def top_guidance_partial return "financial_calculations_shared_ownership" if @ownershipsch == 1 return "financial_calculations_discounted_ownership" if @ownershipsch == 2 - return "financial_calculations_outright_sale" if @ownershipsch == 3 + + "financial_calculations_outright_sale" if @ownershipsch == 3 end end diff --git a/app/models/form/sales/questions/mortgageused.rb b/app/models/form/sales/questions/mortgageused.rb index a0079b1b4..fc5818886 100644 --- a/app/models/form/sales/questions/mortgageused.rb +++ b/app/models/form/sales/questions/mortgageused.rb @@ -41,6 +41,7 @@ class Form::Sales::Questions::Mortgageused < ::Form::Question def top_guidance_partial return "financial_calculations_shared_ownership" if @ownershipsch == 1 return "financial_calculations_discounted_ownership" if @ownershipsch == 2 - return "financial_calculations_outright_sale" if @ownershipsch == 3 + + "financial_calculations_outright_sale" if @ownershipsch == 3 end end diff --git a/app/models/form/sales/questions/purchase_price.rb b/app/models/form/sales/questions/purchase_price.rb index 56810eae4..d37d549ce 100644 --- a/app/models/form/sales/questions/purchase_price.rb +++ b/app/models/form/sales/questions/purchase_price.rb @@ -30,6 +30,7 @@ class Form::Sales::Questions::PurchasePrice < ::Form::Question def top_guidance_partial return "financial_calculations_discounted_ownership" if @ownership_sch == 2 - return "financial_calculations_outright_sale" if @ownership_sch == 3 + + "financial_calculations_outright_sale" if @ownership_sch == 3 end end diff --git a/app/models/form/subsection.rb b/app/models/form/subsection.rb index 3b74e29a5..41431b06f 100644 --- a/app/models/form/subsection.rb +++ b/app/models/form/subsection.rb @@ -1,5 +1,5 @@ class Form::Subsection - attr_accessor :id, :label, :section, :pages, :depends_on, :form + attr_accessor :id, :label, :section, :pages, :depends_on def initialize(id, hsh, section) @id = id diff --git a/app/models/lettings_log.rb b/app/models/lettings_log.rb index c3b72fbdd..d70d0e012 100644 --- a/app/models/lettings_log.rb +++ b/app/models/lettings_log.rb @@ -482,7 +482,7 @@ class LettingsLog < Log def is_london_rent? # 2: London Affordable Rent # 4: London Living Rent - rent_type == 2 || rent_type == 4 + [2, 4].include?(rent_type) end def previous_tenancy_was_foster_care? @@ -714,7 +714,7 @@ class LettingsLog < Log end def affordable_or_social_rent? - renttype == 1 || renttype == 2 + [1, 2].include?(renttype) end def no_or_unknown_other_housing_needs? @@ -931,7 +931,7 @@ private num_of_weeks = NUM_OF_WEEKS_FROM_PERIOD[period] return "" unless value && num_of_weeks - format_as_currency((value * 52 / num_of_weeks)) + format_as_currency(value * 52 / num_of_weeks) end def fully_wheelchair_accessible? diff --git a/app/models/sales_log.rb b/app/models/sales_log.rb index d4d23f44d..cf9e0dd44 100644 --- a/app/models/sales_log.rb +++ b/app/models/sales_log.rb @@ -533,7 +533,7 @@ class SalesLog < Log end def is_not_staircasing? - staircase == 2 || staircase == 3 + [2, 3].include?(staircase) end def stairowned_100? diff --git a/app/models/validations/sales/sale_information_validations.rb b/app/models/validations/sales/sale_information_validations.rb index f34eec790..063c16599 100644 --- a/app/models/validations/sales/sale_information_validations.rb +++ b/app/models/validations/sales/sale_information_validations.rb @@ -136,7 +136,7 @@ module Validations::Sales::SaleInformationValidations def validate_grant_amount(record) return unless record.saledate && record.form.start_year_2024_or_later? - return unless record.grant && (record.type == 8 || record.type == 21) + return unless record.grant && [8, 21].include?(record.type) unless record.grant.between?(9_000, 16_000) record.errors.add :grant, I18n.t("validations.sales.sale_information.grant.out_of_range") diff --git a/app/models/validations/sales/soft_validations.rb b/app/models/validations/sales/soft_validations.rb index 2bc574774..3569c379f 100644 --- a/app/models/validations/sales/soft_validations.rb +++ b/app/models/validations/sales/soft_validations.rb @@ -144,7 +144,7 @@ module Validations::Sales::SoftValidations def grant_outside_common_range? return unless grant && type && saledate - return if form.start_year_2024_or_later? && (type == 21 || type == 8) + return if form.start_year_2024_or_later? && [21, 8].include?(type) !grant.between?(9_000, 16_000) end diff --git a/app/models/validations/shared_validations.rb b/app/models/validations/shared_validations.rb index 530735213..4558a5a36 100644 --- a/app/models/validations/shared_validations.rb +++ b/app/models/validations/shared_validations.rb @@ -56,11 +56,11 @@ module Validations::SharedValidations next unless incorrect_accuracy - case question.step - when 0.01 then record.errors.add question.id.to_sym, I18n.t("validations.shared.numeric.nearest_hundredth", field:) - when 0.1 then record.errors.add question.id.to_sym, I18n.t("validations.shared.numeric.nearest_tenth", field:) - when 1 then record.errors.add question.id.to_sym, :not_integer, message: I18n.t("validations.shared.numeric.whole_number", field:) - when 10 then record.errors.add question.id.to_sym, I18n.t("validations.shared.numeric.nearest_ten", field:) + case question.step.to_d + when BigDecimal("0.01") then record.errors.add question.id.to_sym, I18n.t("validations.shared.numeric.nearest_hundredth", field:) + when BigDecimal("0.1") then record.errors.add question.id.to_sym, I18n.t("validations.shared.numeric.nearest_tenth", field:) + when BigDecimal("1") then record.errors.add question.id.to_sym, :not_integer, message: I18n.t("validations.shared.numeric.whole_number", field:) + when BigDecimal("10") then record.errors.add question.id.to_sym, I18n.t("validations.shared.numeric.nearest_ten", field:) else record.errors.add question.id.to_sym, I18n.t("validations.shared.numeric.nearest_step", field:, step: question.step) end diff --git a/app/models/validations/soft_validations.rb b/app/models/validations/soft_validations.rb index 9b6816dd1..ea17d0601 100644 --- a/app/models/validations/soft_validations.rb +++ b/app/models/validations/soft_validations.rb @@ -194,6 +194,16 @@ module Validations::SoftValidations PHRASES_LIKELY_TO_INDICATE_EXISTING_REASON_CATEGORY_REGEX.match?(reasonother) end + PHRASES_LIKELY_TO_INDICATE_INTRODUCTORY_OR_STARTER_PERIOD = %w[introductory intro starter].freeze + + PHRASES_LIKELY_TO_INDICATE_INTRODUCTORY_OR_STARTER_PERIOD_REGEX = Regexp.union( + PHRASES_LIKELY_TO_INDICATE_INTRODUCTORY_OR_STARTER_PERIOD.map { |phrase| Regexp.new("\\b[^[:alpha]]*#{phrase}[^[:alpha:]]*\\b", Regexp::IGNORECASE) }, + ) + + def tenancyother_might_be_introductory_or_starter_period? + PHRASES_LIKELY_TO_INDICATE_INTRODUCTORY_OR_STARTER_PERIOD_REGEX.match?(tenancyother) + end + def multiple_partners? return unless hhmemb diff --git a/app/policies/location_policy.rb b/app/policies/location_policy.rb index 3b4a22131..966cfe35c 100644 --- a/app/policies/location_policy.rb +++ b/app/policies/location_policy.rb @@ -32,7 +32,7 @@ class LocationPolicy def delete? return false unless user.support? - return false unless location.status == :incomplete || location.status == :deactivated + return false unless %i[incomplete deactivated].include?(location.status) !has_any_logs_in_editable_collection_period end diff --git a/app/policies/organisation_policy.rb b/app/policies/organisation_policy.rb index 9c5fc4449..4db37b5ea 100644 --- a/app/policies/organisation_policy.rb +++ b/app/policies/organisation_policy.rb @@ -20,7 +20,7 @@ class OrganisationPolicy def delete? return false unless user.support? - return false unless organisation.status == :deactivated || organisation.status == :merged + return false unless %i[deactivated merged].include?(organisation.status) !has_any_logs_in_editable_collection_period end diff --git a/app/policies/scheme_policy.rb b/app/policies/scheme_policy.rb index 54a2b9e89..6fa9ac95a 100644 --- a/app/policies/scheme_policy.rb +++ b/app/policies/scheme_policy.rb @@ -71,7 +71,7 @@ class SchemePolicy def delete? return false unless user.support? - return false unless scheme.status == :incomplete || scheme.status == :deactivated + return false unless %i[incomplete deactivated].include?(scheme.status) !has_any_logs_in_editable_collection_period end diff --git a/app/services/bulk_upload/lettings/year2023/row_parser.rb b/app/services/bulk_upload/lettings/year2023/row_parser.rb index 70aa4951e..1e8b9db56 100644 --- a/app/services/bulk_upload/lettings/year2023/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2023/row_parser.rb @@ -536,7 +536,7 @@ private end def validate_valid_radio_option - log.attributes.each do |question_id, _v| + log.attributes.each_key do |question_id| question = log.form.get_question(question_id, log) next unless question&.type == "radio" @@ -1321,22 +1321,26 @@ private def scheme_field return :field_16 if log_uses_new_scheme_id? - return :field_15 if log_uses_old_scheme_id? + + :field_15 if log_uses_old_scheme_id? end def scheme_id return field_16.strip if log_uses_new_scheme_id? - return field_15 if log_uses_old_scheme_id? + + field_15 if log_uses_old_scheme_id? end def location_field return :field_17 if log_uses_new_scheme_id? - return :field_16 if log_uses_old_scheme_id? + + :field_16 if log_uses_old_scheme_id? end def location_id return field_17 if log_uses_new_scheme_id? - return field_16 if log_uses_old_scheme_id? + + field_16 if log_uses_old_scheme_id? end def scheme_or_management_group @@ -1424,7 +1428,8 @@ private ].each do |hash| define_method("age#{hash[:person]}_known?") do return 1 if public_send(hash[:field]) == "R" - return 0 if send("person_#{hash[:person]}_present?") + + 0 if send("person_#{hash[:person]}_present?") end end @@ -1488,7 +1493,8 @@ private def housingneeds_other return 1 if field_86 == 1 - return 0 if [field_83, field_84, field_85].include?(1) + + 0 if [field_83, field_84, field_85].include?(1) end def prevloc @@ -1555,7 +1561,7 @@ private end def earnings - field_122.round if field_122.present? + field_122.presence&.round end def tshortfall_known diff --git a/app/services/bulk_upload/lettings/year2024/row_parser.rb b/app/services/bulk_upload/lettings/year2024/row_parser.rb index 66d46ead5..1ba683f66 100644 --- a/app/services/bulk_upload/lettings/year2024/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2024/row_parser.rb @@ -562,7 +562,7 @@ class BulkUpload::Lettings::Year2024::RowParser private def validate_valid_radio_option - log.attributes.each do |question_id, _v| + log.attributes.each_key do |question_id| question = log.form.get_question(question_id, log) next unless question&.type == "radio" @@ -1455,7 +1455,8 @@ private ].each do |hash| define_method("age#{hash[:person]}_known?") do return 1 if public_send(hash[:field]) == "R" - return 0 if send("person_#{hash[:person]}_present?") + + 0 if send("person_#{hash[:person]}_present?") end end @@ -1519,7 +1520,8 @@ private def housingneeds_other return 1 if field_82 == 1 - return 0 if [field_79, field_80, field_81].include?(1) + + 0 if [field_79, field_80, field_81].include?(1) end def prevloc @@ -1595,7 +1597,7 @@ private end def earnings - field_119.round if field_119.present? + field_119.presence&.round end def tshortfall_known diff --git a/app/services/bulk_upload/lettings/year2025/row_parser.rb b/app/services/bulk_upload/lettings/year2025/row_parser.rb index 0745056d2..9887c42be 100644 --- a/app/services/bulk_upload/lettings/year2025/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2025/row_parser.rb @@ -561,7 +561,7 @@ class BulkUpload::Lettings::Year2025::RowParser private def validate_valid_radio_option - log.attributes.each do |question_id, _v| + log.attributes.each_key do |question_id| question = log.form.get_question(question_id, log) next unless question&.type == "radio" @@ -1452,7 +1452,8 @@ private ].each do |hash| define_method("age#{hash[:person]}_known?") do return 1 if public_send(hash[:field]) == "R" - return 0 if send("person_#{hash[:person]}_present?") + + 0 if send("person_#{hash[:person]}_present?") end end @@ -1516,7 +1517,8 @@ private def housingneeds_other return 1 if field_82 == 1 - return 0 if [field_79, field_80, field_81].include?(1) + + 0 if [field_79, field_80, field_81].include?(1) end def prevloc @@ -1592,7 +1594,7 @@ private end def earnings - field_119.round if field_119.present? + field_119.presence&.round end def tshortfall_known diff --git a/app/services/bulk_upload/lettings/year2026/row_parser.rb b/app/services/bulk_upload/lettings/year2026/row_parser.rb index 8c25ac2ed..547ced717 100644 --- a/app/services/bulk_upload/lettings/year2026/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2026/row_parser.rb @@ -600,7 +600,7 @@ class BulkUpload::Lettings::Year2026::RowParser private def validate_valid_radio_option - log.attributes.each do |question_id, _v| + log.attributes.each_key do |question_id| question = log.form.get_question(question_id, log) next unless question&.type == "radio" @@ -1566,7 +1566,8 @@ private ].each do |hash| define_method("age#{hash[:person]}_known?") do return 1 if public_send(hash[:field]) == "R" - return 0 if send("person_#{hash[:person]}_present?") + + 0 if send("person_#{hash[:person]}_present?") end end @@ -1630,7 +1631,8 @@ private def housingneeds_other return 1 if field_97 == 1 - return 0 if [field_94, field_95, field_96].include?(1) + + 0 if [field_94, field_95, field_96].include?(1) end def prevloc @@ -1706,7 +1708,7 @@ private end def earnings - field_137.round if field_137.present? + field_137.presence&.round end def tshortfall_known diff --git a/app/services/bulk_upload/sales/year2023/row_parser.rb b/app/services/bulk_upload/sales/year2023/row_parser.rb index ddcf18b6a..75f964e7c 100644 --- a/app/services/bulk_upload/sales/year2023/row_parser.rb +++ b/app/services/bulk_upload/sales/year2023/row_parser.rb @@ -915,7 +915,7 @@ private attributes["mortlen"] = mortlen attributes["proplen"] = proplen if proplen&.positive? - attributes["proplen_asked"] = attributes["proplen"]&.present? ? 0 : 1 + attributes["proplen_asked"] = attributes["proplen"].present? ? 0 : 1 attributes["jointmore"] = field_15 attributes["staircase"] = field_87 attributes["privacynotice"] = field_29 @@ -992,7 +992,8 @@ private ].each do |hash| define_method("age#{hash[:person]}_known?") do return 1 if public_send(hash[:field]) == "R" - return 0 if send("person_#{hash[:person]}_present?") + + 0 if send("person_#{hash[:person]}_present?") end end @@ -1050,72 +1051,84 @@ private def sale_type return field_8 if shared_ownership? return field_9 if discounted_ownership? - return field_10 if outright_sale? + + field_10 if outright_sale? end def value return field_103 if shared_ownership? return field_116 if discounted_ownership? - return field_127 if outright_sale? + + field_127 if outright_sale? end def mortgage return field_106 if shared_ownership? return field_120 if discounted_ownership? - return field_129 if outright_sale? + + field_129 if outright_sale? end def extrabor return field_110 if shared_ownership? return field_124 if discounted_ownership? - return field_133 if outright_sale? + + field_133 if outright_sale? end def deposit return field_111 if shared_ownership? return field_125 if discounted_ownership? - return field_134 if outright_sale? + + field_134 if outright_sale? end def mscharge return field_114 if shared_ownership? return field_126 if discounted_ownership? - return field_135 if outright_sale? + + field_135 if outright_sale? end def mortgagelender return field_107 if shared_ownership? return field_121 if discounted_ownership? - return field_130 if outright_sale? + + field_130 if outright_sale? end def mortgagelenderother return field_108 if shared_ownership? return field_122 if discounted_ownership? - return field_131 if outright_sale? + + field_131 if outright_sale? end def mortlen return field_109 if shared_ownership? return field_123 if discounted_ownership? - return field_132 if outright_sale? + + field_132 if outright_sale? end def proplen return field_86 if shared_ownership? - return field_115 if discounted_ownership? + + field_115 if discounted_ownership? end def mortgageused return field_105 if shared_ownership? return field_119 if discounted_ownership? - return field_128 if outright_sale? + + field_128 if outright_sale? end def mortgageused_field return :field_105 if shared_ownership? return :field_119 if discounted_ownership? - return :field_128 if outright_sale? + + :field_128 if outright_sale? end def owning_organisation @@ -1263,7 +1276,7 @@ private end def validate_valid_radio_option - log.attributes.each do |question_id, _v| + log.attributes.each_key do |question_id| question = log.form.get_question(question_id, log) next if question_id == "type" diff --git a/app/services/bulk_upload/sales/year2024/row_parser.rb b/app/services/bulk_upload/sales/year2024/row_parser.rb index a1b214182..879bdbb3f 100644 --- a/app/services/bulk_upload/sales/year2024/row_parser.rb +++ b/app/services/bulk_upload/sales/year2024/row_parser.rb @@ -938,7 +938,7 @@ private attributes["mortlen"] = mortlen attributes["proplen"] = proplen if proplen&.positive? - attributes["proplen_asked"] = attributes["proplen"]&.present? ? 0 : 1 + attributes["proplen_asked"] = attributes["proplen"].present? ? 0 : 1 attributes["jointmore"] = field_16 attributes["staircase"] = field_86 attributes["privacynotice"] = field_18 @@ -1026,7 +1026,8 @@ private ].each do |hash| define_method("age#{hash[:person]}_known?") do return 1 if public_send(hash[:field]) == "R" - return 0 if send("person_#{hash[:person]}_present?") + + 0 if send("person_#{hash[:person]}_present?") end end @@ -1084,64 +1085,75 @@ private def sale_type return field_9 if shared_ownership? return field_10 if discounted_ownership? - return field_11 if outright_sale? + + field_11 if outright_sale? end def value return field_101 if shared_ownership? return field_114 if discounted_ownership? - return field_125 if outright_sale? + + field_125 if outright_sale? end def mortgage return field_104 if shared_ownership? return field_118 if discounted_ownership? - return field_127 if outright_sale? + + field_127 if outright_sale? end def extrabor return field_108 if shared_ownership? return field_122 if discounted_ownership? - return field_129 if outright_sale? + + field_129 if outright_sale? end def deposit return field_109 if shared_ownership? return field_123 if discounted_ownership? - return field_130 if outright_sale? + + field_130 if outright_sale? end def mscharge return field_112 if shared_ownership? return field_124 if discounted_ownership? - return field_131 if outright_sale? + + field_131 if outright_sale? end def mortgagelender return field_105 if shared_ownership? - return field_119 if discounted_ownership? + + field_119 if discounted_ownership? end def mortgagelenderother return field_106 if shared_ownership? - return field_120 if discounted_ownership? + + field_120 if discounted_ownership? end def mortlen return field_107 if shared_ownership? return field_121 if discounted_ownership? - return field_128 if outright_sale? + + field_128 if outright_sale? end def proplen return field_85 if shared_ownership? - return field_113 if discounted_ownership? + + field_113 if discounted_ownership? end def mortgageused return field_103 if shared_ownership? return field_117 if discounted_ownership? - return field_126 if outright_sale? + + field_126 if outright_sale? end def value_fields @@ -1393,7 +1405,7 @@ private end def validate_valid_radio_option - log.attributes.each do |question_id, _v| + log.attributes.each_key do |question_id| question = log.form.get_question(question_id, log) next if question_id == "type" diff --git a/app/services/bulk_upload/sales/year2025/row_parser.rb b/app/services/bulk_upload/sales/year2025/row_parser.rb index a78b9fe5d..19094f6c6 100644 --- a/app/services/bulk_upload/sales/year2025/row_parser.rb +++ b/app/services/bulk_upload/sales/year2025/row_parser.rb @@ -906,7 +906,7 @@ private attributes["mortlen"] = mortlen attributes["proplen"] = proplen if proplen&.positive? - attributes["proplen_asked"] = attributes["proplen"]&.present? ? 0 : 1 + attributes["proplen_asked"] = attributes["proplen"].present? ? 0 : 1 attributes["jointmore"] = field_13 attributes["staircase"] = field_10 attributes["privacynotice"] = field_15 @@ -1008,7 +1008,8 @@ private ].each do |hash| define_method("age#{hash[:person]}_known?") do return 1 if public_send(hash[:field]) == "R" - return 0 if send("person_#{hash[:person]}_present?") + + 0 if send("person_#{hash[:person]}_present?") end end @@ -1076,58 +1077,68 @@ private def sale_type return field_9 if shared_ownership? - return field_11 if discounted_ownership? + + field_11 if discounted_ownership? end def value return field_86 if shared_ownership_initial_purchase? return field_113 if discounted_ownership? - return field_107 if staircasing? + + field_107 if staircasing? end def equity return field_87 if shared_ownership_initial_purchase? - return field_108 if staircasing? + + field_108 if staircasing? end def mortgage return field_89 if shared_ownership? - return field_117 if discounted_ownership? + + field_117 if discounted_ownership? end def extrabor - return field_119 if discounted_ownership? + field_119 if discounted_ownership? end def deposit return field_91 if shared_ownership? - return field_120 if discounted_ownership? + + field_120 if discounted_ownership? end def mrent return field_93 if shared_ownership_initial_purchase? - return field_111 if staircasing? + + field_111 if staircasing? end def mscharge return field_94 if shared_ownership? - return field_121 if discounted_ownership? + + field_121 if discounted_ownership? end def mortlen return field_90 if shared_ownership? - return field_118 if discounted_ownership? + + field_118 if discounted_ownership? end def proplen return field_79 if shared_ownership? - return field_112 if discounted_ownership? + + field_112 if discounted_ownership? end def mortgageused return field_88 if shared_ownership_initial_purchase? return field_116 if discounted_ownership? - return field_109 if staircasing? + + field_109 if staircasing? end def value_fields @@ -1369,7 +1380,7 @@ private end def validate_valid_radio_option - log.attributes.each do |question_id, _v| + log.attributes.each_key do |question_id| question = log.form.get_question(question_id, log) next if question_id == "type" diff --git a/app/services/bulk_upload/sales/year2026/row_parser.rb b/app/services/bulk_upload/sales/year2026/row_parser.rb index adb7cc6a2..08d56fe37 100644 --- a/app/services/bulk_upload/sales/year2026/row_parser.rb +++ b/app/services/bulk_upload/sales/year2026/row_parser.rb @@ -934,7 +934,7 @@ private attributes["mortlen"] = mortlen attributes["proplen"] = proplen if proplen&.positive? - attributes["proplen_asked"] = attributes["proplen"]&.present? ? 0 : 1 + attributes["proplen_asked"] = attributes["proplen"].present? ? 0 : 1 attributes["jointmore"] = field_13 attributes["staircase"] = field_10 attributes["privacynotice"] = field_15 @@ -1036,7 +1036,8 @@ private ].each do |hash| define_method("age#{hash[:person]}_known?") do return 1 if public_send(hash[:field]) == "R" - return 0 if send("person_#{hash[:person]}_present?") + + 0 if send("person_#{hash[:person]}_present?") end end @@ -1104,58 +1105,68 @@ private def sale_type return field_9 if shared_ownership? - return field_11 if discounted_ownership? + + field_11 if discounted_ownership? end def value return field_86 if shared_ownership_initial_purchase? return field_113 if discounted_ownership? - return field_107 if staircasing? + + field_107 if staircasing? end def equity return field_87 if shared_ownership_initial_purchase? - return field_108 if staircasing? + + field_108 if staircasing? end def mortgage return field_89 if shared_ownership? - return field_117 if discounted_ownership? + + field_117 if discounted_ownership? end def extrabor - return field_119 if discounted_ownership? + field_119 if discounted_ownership? end def deposit return field_91 if shared_ownership? - return field_120 if discounted_ownership? + + field_120 if discounted_ownership? end def mrent return field_93 if shared_ownership_initial_purchase? - return field_111 if staircasing? + + field_111 if staircasing? end def mscharge return field_94 if shared_ownership? - return field_121 if discounted_ownership? + + field_121 if discounted_ownership? end def mortlen return field_90 if shared_ownership? - return field_118 if discounted_ownership? + + field_118 if discounted_ownership? end def proplen return field_79 if shared_ownership? - return field_112 if discounted_ownership? + + field_112 if discounted_ownership? end def mortgageused return field_88 if shared_ownership_initial_purchase? return field_116 if discounted_ownership? - return field_109 if staircasing? + + field_109 if staircasing? end def value_fields @@ -1398,7 +1409,7 @@ private end def validate_valid_radio_option - log.attributes.each do |question_id, _v| + log.attributes.each_key do |question_id| question = log.form.get_question(question_id, log) next if question_id == "type" diff --git a/app/services/csv/lettings_log_csv_service.rb b/app/services/csv/lettings_log_csv_service.rb index 003515ac9..dd3be8595 100644 --- a/app/services/csv/lettings_log_csv_service.rb +++ b/app/services/csv/lettings_log_csv_service.rb @@ -398,12 +398,14 @@ module Csv def label_if_boolean_value(value) return "Yes" if value == true - return "No" if value == false + + "No" if value == false end def conventional_yes_no_label(value) return "Yes" if value == 1 - return "No" if value&.zero? + + "No" if value&.zero? end end end diff --git a/app/services/csv/sales_log_csv_service.rb b/app/services/csv/sales_log_csv_service.rb index ed16653f1..07ccad82c 100644 --- a/app/services/csv/sales_log_csv_service.rb +++ b/app/services/csv/sales_log_csv_service.rb @@ -408,7 +408,8 @@ module Csv def label_if_boolean_value(value) return "Yes" if value == true - return "No" if value == false + + "No" if value == false end end end diff --git a/app/services/documentation_generator.rb b/app/services/documentation_generator.rb index c2005f320..58c2031f7 100644 --- a/app/services/documentation_generator.rb +++ b/app/services/documentation_generator.rb @@ -93,7 +93,7 @@ class DocumentationGenerator interruption_screen_pages = form.pages.select { |page| page.questions.first.type == "interruption_screen" } interruption_screen_pages_grouped_by_question = interruption_screen_pages.group_by { |page| page.questions.first.id } - interruption_screen_pages_grouped_by_question.each do |_question_id, pages| + interruption_screen_pages_grouped_by_question.each_value do |pages| pages.map do |page| save_soft_validation(form, page, validation_descriptions, log_type) end diff --git a/app/services/exports/organisation_export_constants.rb b/app/services/exports/organisation_export_constants.rb index 6c78a55db..7ffbfd223 100644 --- a/app/services/exports/organisation_export_constants.rb +++ b/app/services/exports/organisation_export_constants.rb @@ -23,6 +23,6 @@ module Exports::OrganisationExportConstants "dpo_email", "profit_status", "group", - "status" + "status", ] end diff --git a/app/services/filter_manager.rb b/app/services/filter_manager.rb index 7757ad39e..69e895809 100644 --- a/app/services/filter_manager.rb +++ b/app/services/filter_manager.rb @@ -121,7 +121,7 @@ class FilterManager new_filters = new_filters.except("user") if params["assigned_to"] == "all" new_filters["user"] = current_user.id.to_s if params["assigned_to"] == "you" - new_filters = new_filters.except("user_text_search") if params["assigned_to"] == "all" || params["assigned_to"] == "you" + new_filters = new_filters.except("user_text_search") if %w[all you].include?(params["assigned_to"]) new_filters = new_filters.except("owning_organisation_text_search") if params["owning_organisation_select"] == "all" new_filters = new_filters.except("managing_organisation_text_search") if params["managing_organisation_select"] == "all" end diff --git a/app/views/form/_checkbox_question.html.erb b/app/views/form/_checkbox_question.html.erb index b4feb12bd..d3c52c270 100644 --- a/app/views/form/_checkbox_question.html.erb +++ b/app/views/form/_checkbox_question.html.erb @@ -16,7 +16,7 @@ hint: { text: option["hint"] }, checked: @log[key] == 1, exclusive: after_divider, - link_errors: index.zero? ? true : nil, + link_errors: index.zero? || nil, **stimulus_html_attributes(question) %> <% end %> <% end %> diff --git a/app/views/form/_interruption_screen_question.html.erb b/app/views/form/_interruption_screen_question.html.erb index c0063e477..9aa38ca5d 100644 --- a/app/views/form/_interruption_screen_question.html.erb +++ b/app/views/form/_interruption_screen_question.html.erb @@ -18,7 +18,7 @@
<%= f.govuk_submit "Confirm and continue" %> <%= govuk_link_to( - (@page.skip_text || "Skip for now"), - (@page.skip_href(@log) || send(@log.form.next_page_redirect_path(@page, @log, current_user, ignore_answered: true), @log)), + @page.skip_text || "Skip for now", + @page.skip_href(@log) || send(@log.form.next_page_redirect_path(@page, @log, current_user, ignore_answered: true), @log), ) %>
diff --git a/app/views/form/_radio_question.html.erb b/app/views/form/_radio_question.html.erb index bf6abb0d0..e810d7b7a 100644 --- a/app/views/form/_radio_question.html.erb +++ b/app/views/form/_radio_question.html.erb @@ -28,14 +28,14 @@ key, label: { text: options["value"] }, hint: { text: options["hint"] }, - link_errors: index.zero? ? true : nil, + link_errors: index.zero? || nil, **stimulus_html_attributes(question) %> <% else %> <%= f.govuk_radio_button question.id.to_sym, key, label: { text: options["value"] }, hint: { text: options["hint"] }, - link_errors: index.zero? ? true : nil, + link_errors: index.zero? || nil, **stimulus_html_attributes(question) do %> <%= render partial: "#{conditional_question.type}_question", locals: { question: conditional_question, diff --git a/app/views/rails_admin/main/_submit_buttons.html.erb b/app/views/rails_admin/main/_submit_buttons.html.erb index 241624c4e..1768ce2b3 100644 --- a/app/views/rails_admin/main/_submit_buttons.html.erb +++ b/app/views/rails_admin/main/_submit_buttons.html.erb @@ -1,6 +1,6 @@
- +