* CLDC-4151: Note deprecations of existing referral questions
* CLDC-4151: Add new cols to lettings log model
* CLDC-4151: Add new referrals questions
* CLDC-4151: Remove referral value check
* CLDC-4151: Add new fields to bulk upload
use new fields as presented in bulk upload
* CLDC-4151: Update tests
also add bulk upload file to test with
* CLDC-4151: Ignore tests failing for later tickets
* fixup! CLDC-4151: Add new referrals questions
start q nums from 2026
* CLDC-4151: Add model tests for new questions
* fixup! CLDC-4151: Add new fields to bulk upload
export old_visible_id
set MAX_COLUMNS correctly
check .prp? for prp cols
* fixup! CLDC-4151: Update tests
clarify tests that may update
* fixup! CLDC-4151: Add new fields to bulk upload
handle the old_visible_id not existing
use override org ID only for the output owning ID. it's only passed as eg ORG1
* CLDC-4151: Add new questions to log factory
* fixup! CLDC-4151: Add new fields to bulk upload
leave field_131 validations till later
* CLDC-4188: Add LA flow
splits the referral_register question and pages into two, as its not easy to have the answers be dependent
if the owning organisation changes type, reset the referral register question. the other questions do not need to be reset as they are no longer routed to
* CLDC-4188: Infer referral_register for renewals
needs a new dependencies array for 2026
this handles inferring as well as clearing inferred answers if the prior answer changes
* CLDC-4188: Add validation between prevten and referral_register
block two other validations from previous years
* CLDC-4188: Update tests
* CLDC-4188: Ignore tests failing for future tickets
* CLDC-4188: Update existing tests
needed as should_reset_referral_register? calls a .find()
* fixup! CLDC-4188: Add validation between prevten and referral_register
use .prp?
improve grammar
* fixup! CLDC-4188: Infer referral_register for renewals
extract dependencies to common list
* fixup! CLDC-4188: Update tests
use before and context blocks better
* fixup! CLDC-4188: Update tests
lint
* fixup! CLDC-4188: Update tests
remove unneeded referral_type set
* CLDC-4189: Add PRP flow
* CLDC-4189: Update validation between prevten and referral_register
* CLDC-4189: Add tests
* fixup! CLDC-4189: Add PRP flow
fix typo
Co-authored-by: Oscar Richardson <116292912+oscar-richardson-softwire@users.noreply.github.com>
* fixup! CLDC-4189: Add tests
fix typo
* fixup! CLDC-4189: Add tests
fix missing cases in page specs
use a loop and before blocks for household validation tests
* CLDC-4189: Ensure log is not classed as generan needs if prevten isnt answered
* fixup! CLDC-4189: Add tests
add cases for other internal transfer flow
* CLDC-4151: Add final question numbers
* fixup! CLDC-4189: Update validation between prevten and referral_register
include new code 40 from CLDC-4149
* fixup! CLDC-4151: Add final question numbers
reinstate fallback
* CLDC-4190: Q84 Referral BU validations (#3155)
* CLDC-4151: Note deprecations of existing referral questions
* CLDC-4151: Add new cols to lettings log model
* CLDC-4151: Add new referrals questions
* CLDC-4151: Remove referral value check
* CLDC-4151: Add new fields to bulk upload
use new fields as presented in bulk upload
* CLDC-4151: Update tests
also add bulk upload file to test with
* CLDC-4151: Ignore tests failing for later tickets
* fixup! CLDC-4151: Add new referrals questions
start q nums from 2026
* CLDC-4151: Add model tests for new questions
* fixup! CLDC-4151: Add new fields to bulk upload
export old_visible_id
set MAX_COLUMNS correctly
check .prp? for prp cols
* fixup! CLDC-4151: Update tests
clarify tests that may update
* fixup! CLDC-4151: Add new fields to bulk upload
handle the old_visible_id not existing
use override org ID only for the output owning ID. it's only passed as eg ORG1
* CLDC-4151: Add new questions to log factory
* fixup! CLDC-4151: Add new fields to bulk upload
leave field_131 validations till later
* CLDC-4188: Add LA flow
splits the referral_register question and pages into two, as its not easy to have the answers be dependent
if the owning organisation changes type, reset the referral register question. the other questions do not need to be reset as they are no longer routed to
* CLDC-4188: Infer referral_register for renewals
needs a new dependencies array for 2026
this handles inferring as well as clearing inferred answers if the prior answer changes
* CLDC-4188: Add validation between prevten and referral_register
block two other validations from previous years
* CLDC-4188: Update tests
* CLDC-4188: Ignore tests failing for future tickets
* CLDC-4188: Update existing tests
needed as should_reset_referral_register? calls a .find()
* fixup! CLDC-4188: Add validation between prevten and referral_register
use .prp?
improve grammar
* fixup! CLDC-4188: Infer referral_register for renewals
extract dependencies to common list
* fixup! CLDC-4188: Update tests
use before and context blocks better
* fixup! CLDC-4188: Update tests
lint
* fixup! CLDC-4188: Update tests
remove unneeded referral_type set
* CLDC-4189: Add PRP flow
* CLDC-4189: Update validation between prevten and referral_register
* CLDC-4189: Add tests
* fixup! CLDC-4189: Add PRP flow
fix typo
Co-authored-by: Oscar Richardson <116292912+oscar-richardson-softwire@users.noreply.github.com>
* fixup! CLDC-4189: Add tests
fix typo
* fixup! CLDC-4189: Add tests
fix missing cases in page specs
use a loop and before blocks for household validation tests
* CLDC-4189: Ensure log is not classed as generan needs if prevten isnt answered
* fixup! CLDC-4189: Add tests
add cases for other internal transfer flow
* CLDC-4190: Invalidate all referral fields if any are wrong
* CLDC-4190: Remove other validations on referral fields
* CLDC-4190: Ignore referral validation if BU is renewal
* CLDC-4190: Add tests
* fixup! CLDC-4190: Invalidate all referral fields if any are wrong
add punctuation to comment
name validation fields better
* fixup! CLDC-4190: Add tests
make test names clearer
* CLDC-4190: Final field fixes
---------
Co-authored-by: Oscar Richardson <116292912+oscar-richardson-softwire@users.noreply.github.com>
* CLDC-4191: Q84 Referral CSV and XML export (#3157)
* CLDC-4151: Note deprecations of existing referral questions
* CLDC-4151: Add new cols to lettings log model
* CLDC-4151: Add new referrals questions
* CLDC-4151: Remove referral value check
* CLDC-4151: Add new fields to bulk upload
use new fields as presented in bulk upload
* CLDC-4151: Update tests
also add bulk upload file to test with
* CLDC-4151: Ignore tests failing for later tickets
* fixup! CLDC-4151: Add new referrals questions
start q nums from 2026
* CLDC-4151: Add model tests for new questions
* fixup! CLDC-4151: Add new fields to bulk upload
export old_visible_id
set MAX_COLUMNS correctly
check .prp? for prp cols
* fixup! CLDC-4151: Update tests
clarify tests that may update
* fixup! CLDC-4151: Add new fields to bulk upload
handle the old_visible_id not existing
use override org ID only for the output owning ID. it's only passed as eg ORG1
* CLDC-4151: Add new questions to log factory
* fixup! CLDC-4151: Add new fields to bulk upload
leave field_131 validations till later
* CLDC-4188: Add LA flow
splits the referral_register question and pages into two, as its not easy to have the answers be dependent
if the owning organisation changes type, reset the referral register question. the other questions do not need to be reset as they are no longer routed to
* CLDC-4188: Infer referral_register for renewals
needs a new dependencies array for 2026
this handles inferring as well as clearing inferred answers if the prior answer changes
* CLDC-4188: Add validation between prevten and referral_register
block two other validations from previous years
* CLDC-4188: Update tests
* CLDC-4188: Ignore tests failing for future tickets
* CLDC-4188: Update existing tests
needed as should_reset_referral_register? calls a .find()
* fixup! CLDC-4188: Add validation between prevten and referral_register
use .prp?
improve grammar
* fixup! CLDC-4188: Infer referral_register for renewals
extract dependencies to common list
* fixup! CLDC-4188: Update tests
use before and context blocks better
* fixup! CLDC-4188: Update tests
lint
* fixup! CLDC-4188: Update tests
remove unneeded referral_type set
* CLDC-4189: Add PRP flow
* CLDC-4189: Update validation between prevten and referral_register
* CLDC-4189: Add tests
* fixup! CLDC-4189: Add PRP flow
fix typo
Co-authored-by: Oscar Richardson <116292912+oscar-richardson-softwire@users.noreply.github.com>
* fixup! CLDC-4189: Add tests
fix typo
* fixup! CLDC-4189: Add tests
fix missing cases in page specs
use a loop and before blocks for household validation tests
* CLDC-4189: Ensure log is not classed as generan needs if prevten isnt answered
* fixup! CLDC-4189: Add tests
add cases for other internal transfer flow
* CLDC-4190: Invalidate all referral fields if any are wrong
* CLDC-4190: Remove other validations on referral fields
* CLDC-4190: Ignore referral validation if BU is renewal
* CLDC-4190: Add tests
* fixup! CLDC-4190: Invalidate all referral fields if any are wrong
add punctuation to comment
name validation fields better
* fixup! CLDC-4190: Add tests
make test names clearer
* CLDC-4191: Update CSV export tests
the export happens by default, no changes needed here
* CLDC-4191: Add new referral fields to 2026 exports
remove old referral fields from 2026 exports
ensure new referral fields don't show in pre 2026 exports
* CLDC-4190: Final field fixes
---------
Co-authored-by: Oscar Richardson <116292912+oscar-richardson-softwire@users.noreply.github.com>
---------
Co-authored-by: Oscar Richardson <116292912+oscar-richardson-softwire@users.noreply.github.com>
* CLDC-4142: Add new cols to database
* CLDC-4142: Add questions to flow
optimise household_characteristics as there's a lot of repeated code. should make the sections a bit easier to manage
* CLDC-4142: Add conditional description question
seems to largely just work without needing major tweaks
* CLDC-4142: Ensure description if nil if not shown
looks like there's no automated process for this. without this the description will be "" if not given
* CLDC-4142: Add new question to log factory
* CLDC-4142: Add new fields to BU parser
update BU template file to match
* CLDC-4142: Add new fields to BU file generator
* CLDC-4142: Add new fields to xml export
also improve xml export matcher to report differences
* CLDC-4142: Add final question numbers
* CLDC-4142: Add question specs
* CLDC-4142: Add a PERSON_DETAILS override for gender_same_as_sex
this ensures if details aren't known the field will be redacted
* CLDC-4142: Update model tests
* CLDC-4142: Update CSV export service tests
* CLDC-4142: Update other tests
* fixup! CLDC-4142: Update CSV export service tests
update sales variable definitons too
* fixup! CLDC-4142: Ensure description if nil if not shown
update inferral method name and comment
* CLDC-4142: Update CYA copy as requested
cya for gender_same_as_sex 'no' instead of 'no, enter gender description'
cya for gender_description has the label 'gender identity description'
* CLDC-4142: Use label_from_value for custom CYA text
this replaces @inferred_check_answers_value so it'll work in CSV export too
* CLDC-4177: Create new sex-at-birth question
* CLDC-4177: Update database
* CLDC-4177: Adds SAB form for the primary buyer.
* CLDC-4177: Adds sex-at-birth question for other household members
* CLCD-4177: Unit tests
* CLDC-4177: Misc inclusions where sex is also used
* CLDC-4177: Lint fixes
* CLDC-4177: Do not include sexRAB in pre-2026 exports
* CLDC-4177: Fixes bug with copy key in new page
* CLDC-4177: Changes logic used to decide which fields to export
* CLDC-4177: Linting fixes
* CLDC-4177: Converts new field to lowercase
* CLDC-4177: Satisfy bulk upload tests (not tested manually)
* CLDC-4177: Rename new fields to lowercase
* CLDC-4177: Rename field in bulk upload.
* Fix db casing
* CLDC-4177: remove frozen string literals
* Delete redundant migration
* Remove extraneous lines from schema.rb
* Add new sexrab fields to the :completed trait in the Sales Log factory
* CLDC-4177: remove redundant inferred CYA vals
* CLDC-4177: update bu files
* CLDC-4177: update sales log export service
* CLDC-4177: update schema
* CLDC-4177: linting
* CLDC-4177: update sales log export constants
* CLDC-4177: update factories
* CLDC-4177: lint
* CLDC-4177: csv parser updates
* CLDC-4177: bu field updates
* CLDC-4177: update var def spec
* CLDC-4177: make to_2026_row explicit
* CLDC-4177: use shared field count
* CLDC-4177: refactor to remove max cols going forwards
* CLDC-4141: update schema
* CLDC-4141: update schema
* CLDC-4141: update schema
* CLDC-4141: remove X from factory options
* CLDC-4177: update log var defs
* CLDC-4177: use correct shared field count
* CLDC-4177: remove trailing commas
* CLDC-4177: update bulk upload csv example
* CLDC-4177: update bulk upload csv example
* CLDC-4177: remove sexrab from expected sales export for now
---------
Co-authored-by: oscar-richardson-softwire <oscar.richardson@softwire.com>
Co-authored-by: Nat Dean-Lewis <nat.dean-lewis@softwire.com>
* CLDC-4105: Add working situation illness check to log fields
* CLDC-4105: Add soft validation to main flow
* CLDC-4105: Add tests
soft validations
models
add a label file for this year so the export_codes tests have authentic labels to pull
the old BU completed log answers throw the new soft validation. needed to change illness to 3 to avoid the soft validation as it should be a complete log
* fixup! CLDC-4105: Add working situation illness check to log fields
* fixup! CLDC-4105: Add soft validation to main flow
remove unneeded coalesce
remove unneeded variable
* fixup! CLDC-4105: Add tests
fix after rebase
* fixup! CLDC-4105: Add soft validation to main flow
account for if hhmemb is not answered
* Ask address and UPRN questions for 2026 and later logs
* Fix page tests
* Fix LA and postcode overrides
* Fix resetting address fields and LA
* Add tests for resetting address fields and LA
* Fix lettings log derived fields tests
* Fix lint
* Fix tests
* Clean up lettings log property overrides
* Add comments
* Fix lint
* Add error to location field
* Add error to location field
* Add tests for error on location field
* Refactor property and location postcode matching validation into own function
* Add test for LA override
* Add test for postcode override
* Added `!record.read_attribute(:la)` guard
* Fix lint
* Fix property validation for checking LA is active/in England
* Fix test
* Minor tweaks
* Fix lint
* CLDC-4162: Add parsers for 2026
* CLDC-4162: Integrate 2026 parsers into codebase
* CLDC-4162: Add tests
* CLDC-4162: Update tests for existing years
remove year dependencies where possible
* CLDC-4162: Add example 2026 bulk upload files
* CLDC-4162: Update BU test file generate buttons
* fixup! CLDC-4162: Update BU test file generate buttons
we only need the 14 days validation when the future forms feature toggle is off, otherwise any date can be input
* fixup! CLDC-4162: Integrate 2026 parsers into codebase
improve TODOs
* fixup! CLDC-4162: Add parsers for 2026
add todos for unknown info
* fixup! CLDC-4162: Update tests for existing years
properly mark year specific tests
* fixup! CLDC-4162: Update tests for existing years
use 25 over 2025
* CLDC-4136: Hide question on UI flow
* CLDC-4136: Hide question from CDS export
* CLDC-4136: Hide question from log download csv
* CLDC-4136: Remove question from BU parser
relabel all following fields
* fixup! CLDC-4136: Hide question from CDS export
* fixup! CLDC-4136: Remove question from BU parser
* Revert "fixup! CLDC-4136: Remove question from BU parser"
This reverts commit cda3ec1099.
* Revert "CLDC-4136: Remove question from BU parser"
This reverts commit e4715ee976.
* fixup! Revert "CLDC-4136: Remove question from BU parser"
* fixup! CLDC-4136: Hide question on UI flow
remove from question list instead
* fixup! CLDC-4136: Hide question from CDS export
use correct year in dates
* fixup! fixup! CLDC-4136: Hide question from CDS export
use correct year in all dates
* fixup! CLDC-4136: Hide question on UI flow
update tests to account
* fixup! CLDC-4136: Hide question on UI flow
lint test
* CLDC-4162: Add parsers for 2026
* CLDC-4162: Integrate 2026 parsers into codebase
* CLDC-4162: Add tests
* CLDC-4162: Update tests for existing years
remove year dependencies where possible
* CLDC-4162: Add example 2026 bulk upload files
* CLDC-4162: Update BU test file generate buttons
* fixup! CLDC-4162: Update BU test file generate buttons
we only need the 14 days validation when the future forms feature toggle is off, otherwise any date can be input
* fixup! CLDC-4162: Integrate 2026 parsers into codebase
improve TODOs
* fixup! CLDC-4162: Add parsers for 2026
add todos for unknown info
* fixup! CLDC-4162: Update tests for existing years
properly mark year specific tests
* fixup! CLDC-4162: Update tests for existing years
use 25 over 2025
* fixup! CLDC-4162 Update BU test file generate buttons
---------
Co-authored-by: carolynbarker <8038496+carolynbarker@users.noreply.github.com>
* CLDC-3501: Remove unfinished LogCreator tests
seems unclear what the test looked to verify, an existing log cannot be created
* CLDC-3501: Remove charge not provided test
this was moved to a soft validation in #1359
* CLDC-3501: Remove some year dependencies on LettingsLogController tests
no need to store a json of a complete log, we can generate this dynamically
* CLDC-3501: Reinstate skipped setup test
add some new time helpers to do with crossover periods
* CLDC-3501: Reinstate skipped schemes test
Can be made non specific to the year
* CLDC-3501: Reinstate skipped managing org rake test
the log can never be completed as it is missing info
* CLDC-3501: Reinstate row parser completed test
no changes needed, it already passes
* Add validation message for missing charge fields in bulk upload
* Update error messages for missing charges in row parser tests
* only annotate errors to the other fields if there was an error
---------
Co-authored-by: Samuel <samuel.young@softwire.com>
* Update text copy to use curly apostrophes for consistency
* Update BU text copy to use curly apostrophes for consistency
* Update BU text copy to use curly apostrophes for consistency
* Update text copy to use 'Other' for consistency in instead of 'other'
* Update text copy for 'Reasonable preference reason' fields to improve clarity
* Update tests
* Conditional assignment for irproduct_other based on rent type 2025
* Conditional assignment for irproduct_other based on rent type 2024
* Update irproduct_other attributes to include field_11 in test
* Update irproduct_other attributes to include field_11 in test
* test tests in April
* update tests where 2014 is assumed
* update test where time moving is assumed
* update rake task tests that only affect 2024 logs
* update another 2024 assumption
* handle null period in validation
* give pages different ids in SharedOwnershipInitialPurchase and SharedOwnershipStaircasingTransaction sections
* refactor to remove unnecessary method
* delete some old rake tasks and tests
* CLDC-3899 remove flaky date comparison from tests
* CLDC-3899 fix flaky test occasionally picking bad input
* fix test year setup
* add relat mapping for log_to_csv
* temp disable fail-fast for ease of testing
* specify 2024 in 2024-specific test
* Revert "temp disable fail-fast for ease of testing"
This reverts commit 6993d29866.
* Revert "test tests in April"
This reverts commit f5635dba11.
* pass test in 2024 and 2025
* fix test to 2024
* temp disable fail-fast again
* Revert "temp disable fail-fast again"
This reverts commit 55d3e1c7d8.
---------
Co-authored-by: Carolyn <carolyn.barker@softwire.com>
* remove default from relat mapping
* update valid test data
* fix field number
* add validation messge for other values
---------
Co-authored-by: Carolyn <carolyn.barker@softwire.com>
* Add validation on reasonpref dontknow
* Add test
* Update method
* Update setting errors
* Update test
* Add tests for rake task
* separate out tests
* Test updated at, excluding pre 2024
* Update 2025 row parser
* Clear values if rp_dontknow conflict exists
* Reorder, no change just precautionary
* Put back code removed
* Copy row and csv parser for 2025 lettings
* Add 2025 BU translations file
* Update row parser field number
* Add "apecified accommodation" to rent type mapping
* Update csv parser
* Add prepare your file and connect the csv parser to log creator and validator
* Update test file creation
* Refactor some csv methods, add person relationship mapping
* Update row parser specs
* Further refactor some test helper methods
* Merge update
* add 2025 sales bulk upload parser
* lint and fix typos
* fix typos, field numbers, staircasing tests
* order field_11 values
* test log creator selects correct year's parser
* fix log to csv helper field order
* update factory so test file fully succeeds
* add 2025 BU test file method
* apply new csv syntax
* lint
* lint
* CLDC-3893 update property information field order
* commonise prepare your file page
* also update prep file page for lettings
* CLDC-3893 update test
* lint
* don't error on blank discount if not RTB
---------
Co-authored-by: Carolyn <carolyn.barker@softwire.com>
* Copy update
* Update copy
* Check address options returned is more than 1
* Update test
* Update and add test
* Update error messaging for single and multiple returns
* lint
* Fix lint
* Check correct benefits value in the validation
* Update some tests
* Update validation
* clear invalid benefits
* Update more tests
* Fix world
* Clear the benefits
* Move benefits assign
* CLDC-3330: Use partial postcodes in bulk upload
* Adjust key address fields provided validations
* Use join to only insert space when both parts of postcode are provided
* Make full stops consistent in error messages
* Fix test
* Update few hardcoded errors
* Update join in remaining row parsers
* Update some more tests
* Update more hard coded BU errors
* Fix typo I introduced - bedrooms to bedroom
---------
Co-authored-by: Kat <katrina@kosiak.co.uk>
Co-authored-by: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com>