Browse Source

Merge branch 'main' into CLDC-4203-update-bulk-upload-field-numbers

# Conflicts:
#	app/services/bulk_upload/lettings/year2026/row_parser.rb
pull/3189/head
samyou-softwire 3 months ago
parent
commit
945c7622ba
  1. 0
      .erb_lint.yml
  2. 5
      .rubocop.yml
  3. 2
      .ruby-version
  4. 4
      Dockerfile
  5. 11
      Gemfile
  6. 111
      Gemfile.lock
  7. 2
      app/controllers/csv_downloads_controller.rb
  8. 2
      app/controllers/lettings_logs_controller.rb
  9. 2
      app/controllers/lettings_logs_filters_controller.rb
  10. 2
      app/controllers/merge_requests_controller.rb
  11. 2
      app/controllers/sales_logs_filters_controller.rb
  12. 2
      app/helpers/bulk_upload/lettings_log_to_csv.rb
  13. 2
      app/helpers/bulk_upload/sales_log_to_csv.rb
  14. 2
      app/helpers/data_sharing_agreement_helper.rb
  15. 2
      app/helpers/form_page_error_helper.rb
  16. 3
      app/helpers/locations_helper.rb
  17. 4
      app/helpers/merge_requests_helper.rb
  18. 4
      app/helpers/notifications_helper.rb
  19. 3
      app/helpers/question_view_helper.rb
  20. 3
      app/helpers/schemes_helper.rb
  21. 3
      app/mailers/devise_notify_mailer.rb
  22. 10
      app/models/derived_variables/lettings_log_variables.rb
  23. 2
      app/models/derived_variables/shared_logic.rb
  24. 24
      app/models/form/lettings/pages/tenancyother_value_check.rb
  25. 4
      app/models/form/lettings/questions/address_line1.rb
  26. 4
      app/models/form/lettings/questions/address_search.rb
  27. 10
      app/models/form/lettings/questions/age.rb
  28. 4
      app/models/form/lettings/questions/age1.rb
  29. 4
      app/models/form/lettings/questions/age1_known.rb
  30. 10
      app/models/form/lettings/questions/age_known.rb
  31. 4
      app/models/form/lettings/questions/armedforces.rb
  32. 4
      app/models/form/lettings/questions/beds.rb
  33. 4
      app/models/form/lettings/questions/benefits.rb
  34. 4
      app/models/form/lettings/questions/brent_4_weekly.rb
  35. 4
      app/models/form/lettings/questions/brent_bi_weekly.rb
  36. 4
      app/models/form/lettings/questions/brent_monthly.rb
  37. 4
      app/models/form/lettings/questions/brent_weekly.rb
  38. 4
      app/models/form/lettings/questions/builtype.rb
  39. 4
      app/models/form/lettings/questions/chcharge_4_weekly.rb
  40. 4
      app/models/form/lettings/questions/chcharge_bi_weekly.rb
  41. 4
      app/models/form/lettings/questions/chcharge_monthly.rb
  42. 4
      app/models/form/lettings/questions/chcharge_weekly.rb
  43. 4
      app/models/form/lettings/questions/condition_effects.rb
  44. 4
      app/models/form/lettings/questions/county.rb
  45. 4
      app/models/form/lettings/questions/declaration.rb
  46. 4
      app/models/form/lettings/questions/earnings.rb
  47. 4
      app/models/form/lettings/questions/ethnic_arab.rb
  48. 4
      app/models/form/lettings/questions/ethnic_asian.rb
  49. 4
      app/models/form/lettings/questions/ethnic_black.rb
  50. 4
      app/models/form/lettings/questions/ethnic_group.rb
  51. 4
      app/models/form/lettings/questions/ethnic_mixed.rb
  52. 4
      app/models/form/lettings/questions/ethnic_white.rb
  53. 4
      app/models/form/lettings/questions/first_time_property_let_as_social_housing.rb
  54. 4
      app/models/form/lettings/questions/gender_identity1.rb
  55. 4
      app/models/form/lettings/questions/hb.rb
  56. 4
      app/models/form/lettings/questions/hbrentshortfall.rb
  57. 4
      app/models/form/lettings/questions/hhmemb.rb
  58. 4
      app/models/form/lettings/questions/homeless.rb
  59. 4
      app/models/form/lettings/questions/household_charge.rb
  60. 4
      app/models/form/lettings/questions/housingneeds.rb
  61. 4
      app/models/form/lettings/questions/housingneeds_other.rb
  62. 4
      app/models/form/lettings/questions/housingneeds_type.rb
  63. 4
      app/models/form/lettings/questions/illness.rb
  64. 4
      app/models/form/lettings/questions/incfreq.rb
  65. 4
      app/models/form/lettings/questions/irproduct_other.rb
  66. 4
      app/models/form/lettings/questions/is_carehome.rb
  67. 4
      app/models/form/lettings/questions/joint.rb
  68. 4
      app/models/form/lettings/questions/la.rb
  69. 4
      app/models/form/lettings/questions/layear.rb
  70. 4
      app/models/form/lettings/questions/leftreg.rb
  71. 4
      app/models/form/lettings/questions/letting_allocation.rb
  72. 4
      app/models/form/lettings/questions/location_id.rb
  73. 4
      app/models/form/lettings/questions/location_id_search.rb
  74. 4
      app/models/form/lettings/questions/majorrepairs.rb
  75. 4
      app/models/form/lettings/questions/managing_organisation.rb
  76. 4
      app/models/form/lettings/questions/mrcdate.rb
  77. 4
      app/models/form/lettings/questions/nationality.rb
  78. 4
      app/models/form/lettings/questions/nationality_all.rb
  79. 4
      app/models/form/lettings/questions/nationality_all_group.rb
  80. 4
      app/models/form/lettings/questions/needs_type.rb
  81. 4
      app/models/form/lettings/questions/net_income_known.rb
  82. 4
      app/models/form/lettings/questions/offered.rb
  83. 4
      app/models/form/lettings/questions/period.rb
  84. 10
      app/models/form/lettings/questions/person_partner.rb
  85. 2
      app/models/form/lettings/questions/person_sex_registered_at_birth.rb
  86. 10
      app/models/form/lettings/questions/person_working_situation.rb
  87. 4
      app/models/form/lettings/questions/postcode_for_full_address.rb
  88. 4
      app/models/form/lettings/questions/ppcodenk.rb
  89. 4
      app/models/form/lettings/questions/ppostcode_full.rb
  90. 4
      app/models/form/lettings/questions/preg_occ.rb
  91. 4
      app/models/form/lettings/questions/previous_la_known.rb
  92. 4
      app/models/form/lettings/questions/previous_let_type.rb
  93. 4
      app/models/form/lettings/questions/previous_tenure.rb
  94. 4
      app/models/form/lettings/questions/previous_tenure_renewal.rb
  95. 4
      app/models/form/lettings/questions/prevloc.rb
  96. 4
      app/models/form/lettings/questions/property_reference.rb
  97. 4
      app/models/form/lettings/questions/pscharge_4_weekly.rb
  98. 4
      app/models/form/lettings/questions/pscharge_bi_weekly.rb
  99. 4
      app/models/form/lettings/questions/pscharge_monthly.rb
  100. 4
      app/models/form/lettings/questions/pscharge_weekly.rb
  101. Some files were not shown because too many files have changed in this diff Show More

0
.erb-lint.yml → .erb_lint.yml

5
.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

2
.ruby-version

@ -1 +1 @@
3.1.6
3.4.4

4
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

11
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

111
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

2
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

2
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

2
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

2
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

2
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

2
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

2
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

2
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

2
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

3
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)

4
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

4
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 %(<p class="govuk-!-font-weight-bold">#{text}</p>) if @bold # rubocop:disable Rails/HelperInstanceVariable
return %(<p class="govuk-!-font-weight-bold">#{text}</p>) if @bold
%(<p class="govuk-body-m">#{text}</p>)
end

3
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

3
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)

3
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?

10
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!

2
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

24
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

4
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

4
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

10
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

4
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

4
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

10
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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?

10
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)

2
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)

10
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

4
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

4
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

4
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

4
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

4
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

4
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?

4
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

4
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

4
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

4
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

4
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

4
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

4
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

4
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

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save