specifically, during bulk uploads an object is validated many times before saving
dirty checks only reset on save meaning after setting the UPRN the process_uprn_change code would run on every validation, leading to many calls
to solve this, add a flag to the log which blocks further UPRN calls if it tries to set the uprn twice to the same value. if different values are returned then continue checking
this offers a tradeoff between number of api calls and also should not break existing functionality
* send confirmation if user is unconfirmed on password reset
* update copy on password reset page if user is unconfirmed
* fixup! update copy on password reset page if user is unconfirmed
also check if they've been sent a confirmation email
otherwise, this text shows if the user doesn't exist
* CLDC-4033 Fix name of variable
* CLDC-4033: Correct name of resource variable
this override function is passed a resource symbol, not a resource object
---------
Co-authored-by: David May-Miller <David.May-Miller@softwire.com>
* CLDC-4046: Remove forcing on Q84 based on Q76 answer
* CLDC-4046: Removing forcing on latter half of Q84 as well
* CLDC-4046: Remove orphaned translations
* CLDC-4086: Fix tests
* Add questions to page, wip
* Add select as conditional question in radio like in logs
* Add existing value
* Add blank default
* Add values to about this organisation page
* Move grabbing values out of view
* Update new org page with js
* Selecting the profit status dependent on the provider type
* Add to org edit page for support users
* Add group logic
* Fix bug on existing orgs when group remains unchanged
* Clear group details if no longer part of a group
* Lint
* JS Lint
* Restore schema
* Remove manual_address_selected
* Revert "Remove manual_address_selected"
This reverts commit 812787fd09.
* Revert "Revert "Remove manual_address_selected""
This reverts commit 8ebd56036f.
* Update migration
* Remove file
* Move update after save
* Move methods to controller
* Update xml export
* Lint
* Update test xml file
* Update current user logic
* Lint
* Lint
* Reorder org js controller
* Lint
* Add tests to helper
* Some tests on the organisation pages
* Fix label text for profit status question in forms
* Add CSV task to update organisation profit status and group member fields
* only associate group on update if validation passes
* Update import raketask to use provided csv
looking into it I couldn't see a use for skip_group_member_validation. it temporarily disables validation but since it's not saved to database it'll make the organisation invalid in the future
opted instead to make all properties valid when importing
* Update tests to check more cases of organisation import
* Make XML tests check unordered file contents
stops tests flakily failing on the order of cols which is not important in xml
* Fix final failing tests
* restore manual_address_selected migration
* fix it's to its
* show the user the group they originally selected if possible when editing group
else fallback to any (oldest) org in the group
* update csv for ingest
---------
Co-authored-by: Manny Dinssa <44172848+Dinssa@users.noreply.github.com>
* Add tasks to just count and surface invalid LettingsLog and SalesLog
* Refactor InvalidLogsHelper module structure
* Refactor InvalidLogsHelper for improved logging and module structure
* Update logging level in InvalidLogsHelper from debug to info for better visibility
* Reorganise includes in invalid_logs.rake
* Refactor InvalidLogsHelper to improve invalid log counting and display
* Enhance logging in InvalidLogsHelper for better tracking of invalid log processing
* Filter logs by status to only process completed entries in InvalidLogsHelper
* Enhance invalid log detection in InvalidLogsHelper to include incomplete subsections and questions
* Separate change organisations name from organisation edit view
* Remove change_name action from organisations_controller for unauthorized access handling
* Add migration for organisation name changes
* Implement organisation name change feature with history tracking
* Update organisation label methods to accept date parameter for accurate historical representation
* Rename change_name view to new and move it for clarity and consistency
* Refactor organisation name change logic to ensure visibility and uniqueness of change dates
* Refactor organisation name changes to use integer for change_type and date for change_date
* Update validation error message for duplicate change dates in organisation name changes
* Update validation logic for change dates to handle immediate changes
* Rename change_date to startdate in organisation name changes and update related logic
* Make change_type nullable in organisation name changes table
* Remove debug logging for organisation name change parameters
* Update conditional question data-info to use startdate instead of scheduled_date
* Bug fix - ensure startdate is set only if not already defined for immediate changes
* Fix immediate_change parameter type casting in organisation name change params
* Refactor name_changes_with_dates method to streamline fetching and status assignment
* Enhance layout in new.html.erb by adding additional grid columns for improved structure
* Update status assignment logic in organisation.rb to reflect active state when no changes exist
* Add validation to ensure start date is before organisation's merge date if present
* Drop organisation_name_changes table if it exists
* Remove organisation_name_changes table from schema
* Add organisation_name_changes table
* Lint fixes
* Lint fixes
* Add FactoryBot definition for organisation_name_change
* Add tests for organisation name changes
* Enhance validations and add tests for organisation name changes
* Lint
* Add tests for OrganisationNameChangesController actions
* Add comments in OrganisationNameChange
* Refactor organisation name change validations to use I18n for error messages
* Fix name method to allow nil date parameter and default to current time
* Update organisation name retrieval to support date parameter in exports
* Remove change_type attribute from organisation name changes
* Lint fix
* Update organisation status logic to account for future start dates of the first change
* Refactor name history display into a partial for better code organization
* Add cancel functionality for scheduled name changes with confirmation page
* lint
* lint
* Update nocharge assignment logic for clarity in lettings_log_variables
* Add Rake tasks to update nocharge with household_charge for current and older logs
* Update nocharge field to be empty in general needs log XML files
* Update nocharge assignment to skip validation during save and add RSpec tests for bulk update task
* Remove nocharges from general needs tests
* Add validation for referral type when permanently decanted from PRP-only housing
* Remove unnecessary error adding, PRP and different landlord is possible
* Update tests
* CLDC-3991 Update working situation answer options to clarify full-time/part-time
* Update working situation copy unable to work
* Keep old copy pre 2025
* Update tests
* Fix flaky test, check regardless of order
* Update test
* Lint
* Buyer Tenant nationality other answer option exclude UK
* Fix answer options count in nationality_all_spec to reflect correct value
* Update nationality_all to use GlobalConstants for answer options and adjust displayed options
* set renewal ppostcode on postcode change
* update test
* don't validate ppostcode format if nil
* reset ppcodenk if ppcode errors
---------
Co-authored-by: Carolyn <carolyn.barker@softwire.com>
* Adjust staircase difference validation to exclude initial purchase
* Update tests
* Keep validation as is, add error to firststair also
* Add method to generate random dates within collection year for logs
* Revert "Update tests"
This reverts commit e708187160.
* Update financial validations tests to reflect new error messages for firststair
* Update sales log test only pick a date up to 14 days away
* Lint
* Adjust merge date for future dates
* Update La test
* Fix date range logic in generate_different_date_within_collection_year method
* Refactor generate_different_date_within_collection_year to use keyword arguments for start and end date overrides in tests
* Refactor sales_log_spec to use descriptive variable names for date overrides
* Refactor merge_requests_helper_spec to use generated merge dates for consistency in tests
* Refactor generate_different_date_within_collection_year
* Refactor sales_log_spec to use generated sale date for duplicate log creation
* Refactor sales_log_spec to use fixed date values for end date and date after end date, mimics change of year without changing year
* Refactor merge_requests_helper_spec to use a fixed merge date for consistency in tests
* Refactor generate_different_date_within_collection_year to handle edge cases and return nil if no available dates
* use separate question text for shared and discounted mscharge from 2025
* refactor and rename copy variables
* Revert "refactor and rename copy variables"
This reverts commit 2d7eadef5a.
* separate out shared ownership leasehold charge into separate service charge question
* Revert "separate out shared ownership leasehold charge into separate service charge question"
This reverts commit 13a930dcb6.
* separate out shared ownership leasehold charge into separate question but same variable
---------
Co-authored-by: Carolyn <carolyn.barker@softwire.com>
* Update expected content
* Update expected content
* Update sales csv with 2025 mappings
* Remove comments
* Remove comments
* Remove comments
* Change hhype to hholdcount, exisiting bug
* Revert "Change hhype to hholdcount, exisiting bug"
This reverts commit ca8aab58ee.
* Update test file
* Add service charge fields to sales log CSV service
* Add created_by_id to SUPPORT_ONLY_ATTRIBUTES in sales log CSV service
* Add tests and CSV files for 2025 sales log export functionality
* Update sales log CSV service to prepare for new service charge fields
* Lint
* Update sales log CSV export labels for 2025
* Lint
* Add service charge fields and conditionally show service charge or mscharge in 2025 CSV
* Remove comments
* 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>
* validate staircasing dates
* validate staircasing percentage totals
* don't show both similar validations at once
* only validate against saledate when saledate present
* format numbers in error message
* add tests for staircasing validations
* linting
* don't block log creation on staircasing date errors
* combine similar validation methods
* update tests
* fix syntax
---------
Co-authored-by: Carolyn <carolyn.barker@softwire.com>
* rename variable for clarity
* remove unused variable
* make reactivating_soon message refer to the soonest, not most recently created
* status check all deactivation periods instead of just one
* handle no open period to reactivate
* test deactivation period related behaviour
* fix reactivation message variable syntax
* use before do instead of let for unreferenced variables
* fix reactivation message syntax for location
* fix test indentation
* remove unused variable - part 2
* lint
* handle edge case of overlapping periods
* end unclosed Timecop freeze causing flaky tests
* remove unused around blocks superseded by befores
* tidying up
* reinstate setup needed to test default date
* fix typo
* explain deactivation period validation logic
* fix setup to test default date
---------
Co-authored-by: Carolyn <carolyn.barker@softwire.com>
Co-authored-by: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com>
* Add sales export to the export service
* Update sales export
* Remove comments and redundant or statement
* Update sales export fields
* Add mrentprestaircasing, update factory and tests
* Enable sales export on test environments
* Update fees mappings for the export
* Upcase fields and rebase changes
* Update some more fields
* Skip bu error on the setup question type
* Lint
* Skip bu error on setup question type for equity calculations
* Skip bu error on setup question type for mrent validations
* Skip bu error on setup question type for stairbought validations
* Add postcode full
* Change back log address search method to only work for uprn selection
* Create address options method for address search
* Remove assignment
* Add tests
* Fix lint
* Fix lint and rewrite