* feat: wip postcode page
* feat: wip add new flow
* feat: add check answers page, continue updating flow
* feat: add back behaviour
* feat: more flow work
* feat: further flow work and flash notice, name tidying
* feat: add check_answers referrer linking
* feat: add controller and details linking and lint
* refactor: erblinting
* feat: add local_authority page (currenlty separate from edit_local_authority to avoid conflict with add location to newly created scheme path, to be fixed later). also copy and routing updates
* feat: add validations to controller (could later be added to model)
* fix: correct date order
* feat: validate on model (except startdate)
* feat: copy update
* refactor: railsification
* feat: add date model validation
* feat: add updated availability text in check_answers
* feat: more updated dynamic text and linking
* refactor: erblinting
* refactor: cleanup of redundant code
* refactor: remove redundant create
* feat: use rails route
* test: wip tests
* test: wip tests
* feat: add new back behaviour for new scheme path and tests wip
* feat: add more back behaviour for new scheme path and fix local auth validation
* feat: further linking behaviour with routes and referrers, don't add new location automatically to new schemes
* feat: if location with no details added, route to normal path rather than check answers
* test: update model and helper location tests
* test: more test updates
* test: more test updates and remove redundant files
* test: remove redundant tests, add postcode test
* test: add new #new tests
* test: add test for all new controller methods
* test: add more startdate tests
* refactor: erblinting
* test: fix failing tests
* test: update scheme test
* feat: respond to PR comments
* feat: make postcode clear only if changed
* feat: add _update methods
* refactor: simplify validation and location_edit_path method
* refactor: add helper method for action text
* refactor: remove redundant logic
* refactor: simplify routing
* refactor: reintroduce location_params
* refactor: use presence validation for postcode
* refactor: use presence validation for la
* feat: validate confirmed
* tests: make tests pass with new startdate validation
* WIP
* refactor: simplify display attributes helpers and update tests
* refactor: linting
* feat: design change to save behaviour
* test: fix failing tests
* feat: location code copy tweak
* refactor: remove redundant function
* refactor: remove add_another_location and new location page
* feat: simplify startdate validations to move to model, use scheme available_from date for in range validation
* test: fix failing tests
* refactor: linting
* feat: remove name validation as a result of PO review
* test: update tests
* refactor: remove redundant context
Co-authored-by: James Rose <james@jbpr.net>
* Conditionally display a correct review log text
* do not allow the aswers from previous collection windows to be changed
* does not let the user navigate to questions for previous collection year logs
* Fix tests
* Add some docs
* Extract collection period check into a before_action and change path to rails route
* update the tasklist message
* Mark log as impacted by deactivation when location is deactivated
* Display affected logs in the table
* Route affected logs to tenancy start date question
* Update routes to get the tenancy start date page from form
* update next_page_redirect_path
* rename column
* Fix tests
* Add next_unresolved_page_id to pages
* Update unresulved when the log is corrected
* Mark logs as unresolved when scheme gets deactivated
* display correct content when there are no unresolved logs
* mark logs resolved after the user leaves check answers page
* Display link in success banner and reset banner when the link is clicked
* display inset hint text for unresolved log questions
* Display unresolved logs banner
* update banner message
* Persist the link in the banner
* update inset text
* Update success banner text
* Add unresolved and created_by scopes
* rename method
* add unresolved_log_redirect_page_id to form + typo and route
* Add UnresolvedLogHelper and extract flack notice message
* pluralize and return early
* remove flash[:notice] = nil
* to keep it consistent for sales log
* Extract unresolved path and fix a link
* extract resolve method and fix attribute nme
* update path
* typo
* add start of bulk upload logs journey
* split upload controller into 2
* add year page to bulk upload journey
* bulk upload years now dynamic
* bulk upload journey: add copy for prepare file
* add link to bulk upload template
* add placeholder for upload your file page
* handle bulk upload when not in crossover
* fix tests around bulk upload redirect
* fix typos in bulk upload jouney
* feat: remove redundant cols from locations table
* feat: add status col to locations table
* test: start adding status tag tests
* test: pick the simplest format for the tag helper tests
* feat: make the locations table (plus related content above & below) 2/3 width
* feat: add incomplete to location status method
* test: all status tag helpers
* test: update test text to match what's being tested
* test: update locations list test in locations_controller_spec.rb
* test: update locations list test in schemes feature tests
* test: that status=incomplete when mandatory info is missing
* feat: simplify logic for incomplete status
Co-authored-by: James Rose <james@jbpr.net>
* feat: hide new locations table layout behind feature flag
* feat: use route helpers to get scheme_location path
* feat: simplify "scheme_id: @scheme.id" to "@scheme"
* feat: reference location, not @location, in scheme_location_path
* feat: reorder postcode and code in locations table
* feat: change ' ' to "" in location_spec
* feat: update wording and ordering for 'view location details' page
* test: re-add tests for locations page when new layout not enabled
* test: check for mobility_type and location_admin_district in locations_controller as support user
* test: update locations helper test to match new field naming and ordering
* feat: always scale locations list by 2/3, not just when new layout used
* feat: scale the scheme details page by 2/3 to match the locations list page
* feat: only make scheme details and locations pages 2/3 scale if feature toggle on
* test: mock new locations layout feature toggle in tests
* feat: use the existing location_toggle_enabled instead of new_locations_table_layout_enabled
* refactor: don't use html inside ruby in locations index page
* refactor: use Rails routes in all places in locations index page
* style: lint
* feat: move logic from views/schemes/show into schemes_helper
* refactor: make consistent the removal of fields from SchemeHelper base_attributes
* test: improvements to tests
* test: make 'returns correct display attributes' tests sensible
* test: check scheme toggle off => no scheme status shown
* style: correct indentation in spec/helpers/schemes_helper_spec.rb
* test: that when owning = managing, "Organisation providing support" hidden
* style: lint code
* test: don't set scheme id explicitly in schemes_helper_spec
* style: reorder tag helper spec to match tag helper
* refactor: ensure display_scheme_attributes always takes user type
* test: make location incomplete status depend on location.confirmed
* test: add missing location validations for nil postcode & mobility type
Co-authored-by: James Rose <james@jbpr.net>
* feat: add scheme reactivation behaviour
* test: add tests
* refactor: linting
* fix: find deactivation periods by scheme/location ids rather than just the first
* feat: add activating_soon status to location (not to schemes as they have no startdate field)
* feat: fix logic and add tests fo activating soon
* fix: check for startdate presence
* route deactivated scheme to reactivation page
* Render correct reactivate question content
* refactor into a helper
* display successful reactivation banner for default date
* Save reactivation date
* Add reactivation errors
* lint and fix url in tests
* make toggle translations generic
* Add reactivation status
* Reuse date validation messages
* Show deactivate this location when location is reactivating soon
* Display correct confirmation banner
* Add validation for reactivation date before deactivation date
* Improve availability label
* Use current collection start date if created at is later than that
* Update paths
* Fix controller and don't display the previous day if location availability start afterwards
* refactor availability label
* Filter out active periods
* lint
* Refactor active_period method into the model
* Allow deactivations and reactivations from available from date instead of start of the collection date
* Prevent deactivations during deactivated periods
* lint
* typo
* Remove active periods that last 1 day (because they get deactivated on the same day)
* Move the active_periods into helper
* extract remove_overlapping_and_empty_periods into a separate method
* Remove nested deactivation periods
* Make deactivate/reactvate location form use location_deactivation_period model
* refactor toggle date methods
* extract shared condition
* update validations
* refactor validations
* Update schemes deactivation form to use dectivation model
* Refactor
* lint
* remove redundant location_id and update scheme controller
* update active_periods
* Remove deactivation date from schemes and add scheme deactivation periods table
* Update affected logs when a scheme gets deactivated
* Update status method
* Display availability timeline
* Update flash notice message
* feat: wip update scheme summary page
* feat: wip deactivate scheme schemes page
* feat: wip toggle active page
* feat: wip set deactivation_date to a datetime (to be more specific times later_
* Change conditional question controller to accommodate all models
* feat: add specific datetimes for deactivation
* feat: correct date and add notice
* feat: wip error behaviour
* feat: wip errors
* feat: wip errors refactoring
* feat: wip errors more refactoring
* refactor: linting
* feat: add second error in correct position and wip date range error
* feat: remove unneccessary db field
* feat: change type values to strings
* refactor: tidy up controller logic
* refactor: use same structure as locations deactivation
* feat: add general partially missing date input error
* feat: add tests ("updates existing scheme with valid deactivation date and renders scheme page" still wip) and add new partially nil date behaviour to locations controller
* feat: fix tests, add status tag behaviour and remove unnecessary nils
* refactor: linting
* refactor: erblinting
* refactor: remove redundant line
* refactor: respond to PR comments 1
* refactor: respond to PR comments 2
* refactor: respond to PR comments 3
* refactor: respond to PR comments 3 (locations side)
* fix: remove @locations in location model
* fix: remove @locations in location model
* fix: update status names
* feat: wip validation update
* feat: add validation to model layer
* feat: further separate scheme deactivation behaviour
* test: update tests to new flow
* feat: respond to pr comments and add dynamic success text
* feat: duplicate behaviour schemes -> locations (+ tests)
* refactor: linting
* refactor: typo and remove unnecessary line for this PR
* refactor: feature toggle simplification
* Refactor locations and schemes controller actions
- Rename confirmation partials to `deactivate_confirm.html.erb` so that they match the actions in which they belong to
- Make all deactivation date comparision UTC time
* feat: update deactivation_date validation and add tests
* refactor: linting
Co-authored-by: Kat <katrina@kosiak.co.uk>
Co-authored-by: James Rose <james@jbpr.net>
* Add scopes to OrganisationRelationship
* Update seeds to have more than one org relationships
* Pass current_user to questions
* Add new questions
* Use feature flag
* Update specs
* Address comments
* add deactivation_date to locations
* Change conditional question controller to accommodate all models
* UI spike
* Update toggle-active views and render them correctly
* Display 2 errors
* Update errors
* Extract text to translation file
* Add collection start date
* Add out of range validation
* Update affected logs label
* lint
* Add status method
* update the displayed status tags
* Keep deactivation_date_type selected if an error occurs
* refactor deactivation_date_type to use default and other as options instead of 1 and 2
* refactor
* refactor
* update lettings logs
* Add reactivate ocation button and path
* Fix controller and update deactivate confirm page
* Don't actually update the logs data when deactivating a location
* lint and typos
* update a path
* update current_collection_start_date
* Remove unused scope
* CLDC-1620 Add Google Tag Manager scripts to layout
* Update app/views/layouts/application.html.erb
Co-authored-by: James Rose <james@jbpr.net>
* CLDC-1620 Extract GTM IDs to helper
Co-authored-by: James Rose <james@jbpr.net>
* feat: add 2022 rent range data, update rake task for population of this
* feat: change file format so ranges_rent_id is recognised
* feat: add updated error messages and casing
* tests: make tests pass
* feat: ensure there is a location_code in all locations and use this (and beds = 0) for supported housing rent validations
* feat: fix general needs validation behaviour
* feat: add local authorities enum to location.rb
* feat: ensure case when beds > 4 is accounted for
* feat: add error messages on property postcode page as well as la page
* feat: add error messages on scheme_id and location_id as well as la page
* feat: add error messages on scheme_id and location_id as well as la page
* feat: null coalescing and validations on changing las to one that invalidates rent in supported housing
* feat: nil protection
* refactor: linting
* refactor: combining duplicated logic
* tests: add hard validation tests split by needstype
* feat: update validations when beds > 4
* feat: update validations when beds > 4
* refactor: simplification, use preivous la method
* refactor: response to PR comments, fixing beds.negative validation
* feat: remove dynamic local auth name text from interruption screens - to be added back in later if this becomes a priority, would need some work on adding local auth name to log for supported housing logs not just leaving it in the location
* feat: add 2022 rent range data, update rake task for population of this
* feat: change file format so ranges_rent_id is recognised
* feat: add updated error messages and casing
* tests: make tests pass
* wip
* Rename managing_agents column
* add managing relationship
* f
* feat: add my features branched off managing agents branch
* feat: update nav behaviour
* feat: simplify housing_providers view
* feat: fix pluralise to default to plural rather than singular
* feat: remove managing agent related code so can be merged directly
* tests: update tests and add new ones for housing_providers
* refactor: rubocop conciliation
* tests: fix failing navigation tests
* tests: one more plural test
* refactor: erb linting
* refactor: erb linting
* feat: right-align "Remove" text
* feat: update nokogiri to pass bundler-audit
* feat: grey out search button
* feat: remove section-break
Co-authored-by: Jack S <jacopo.scotti@softwire.com>
* feat: add la manual edit page
* feat: make autocomplete accesible and la readable
* feat: add correct skip and linking behaviour, also rename fallback page
* feat: add page not found and tidy la list
* feat: add redirection behaviour
* feat: add coping with nil add_another_location query string
* test: add postcodes mocks to return local authorities
* feat: validate local authority to not be nil or "Select an option"
* feat: persist add_another_location even on validation failure
* feat: remove url query parsing, put validation before values added to db
* refactor: spacing
* tests: add new tests for edit-local-authority
* tests: remove redundant bangs
* Add abstract log class and sales log class
Created a parent log class for sales log and lettings log. Any bits common
to both sales and lettings can live in the parent class. As the sales log
functionality is built up any commonalities with lettings log can be extracted
into the parent log class. The sales log model is set up without a json form
and instead the form is defined in code - like the setup section of the lettings
log.
* update sales logs controller
* update lettings controller specs
* update filter method name
* update organisations controller
* use lettings method
* Add deleted tests back
* lint
Co-authored-by: Kat <katrina@madetech.com>
Co-authored-by: Kat <kosiak.katrina@gmail.com>
This renames the case_log to lettings_log as everything we've written so
far has been geared towards lettings of social housing so it makes sense to
have the name describe this. This is also a precursor to adding in stuff for
sales logs (whatever shape that takes)
Co-authored-by: James Rose <james@jbpr.net>
* only stock owning orgs see schemes in nav bar
* lint
* added to organisation factory and fixed tests
* removed schemes from secondary navigation bar for non stock owning orgs
* test
* lint
* remove factory la
* Mark scheme location as confirmed
* Route to check your answers after any changes are made to the scheme. Display change for all editable fields
* Add some functionality
* Display banners and redirect to check answers after editing location name
* Remove a test
* update locations confirmation
* reuse can_change_scheme_answer?
* Use path helpers
* Redirect to view scheme when trying to access create form pages for the scheme
(cherry picked from commit 761bf97dc2)
* add before action for confirmed schemes
* update location path
* lint
Co-authored-by: Dushan Despotovic <dushan@madetech.com>
* shows incomplete tag if the scheme is not confirmed
* displays a link to check answers page if the scheme is incomplete
* return schemes with no location when searching
* update tests
* lint
* reset managing org for sheme
* only display schemes with managing org id
* only display relevant answers in show scheme page
* tests
* check arrangement type from saved scheme if incoming params for it is nil
* don't override managing org id if it's coming through as nil
* convert to use values that won't change for checks
* Revert "convert to use values that won't change for checks" because the value coming through from the params is the value and not a key
This reverts commit 50053ec0cf233e3a6c36db9af2528c354d3d60e7.
* Test
* check constant values
* Add test case for controller, check if the scheme is confirmed before displaying
* validate all the required scheme questions are answered
* fix ui
* fix test
* Add test, change error message wording
* Display error message next to the relevant field
* update context and query
* lint
Co-authored-by: Dushan Despotovic <dushan@madetech.com>
* Add mobility type question
* Remove wheelchair_adaptation, use mobility_type to infer wchair
* Add validatio to mobility type
* tests
* Rebase main
* CYA test
* extract selection methods into a helper
* infer case_log values from schemes
* only display relevant property information questions
* Add unittype_sh column
* Display the correct number of completed sections
* fix schema and migration
* Fix test failing in CI
This test was failing due to some different between UTC and BST time as the
record from the DB comes back with a UTC timezone. Comparing the integer values
of both will ensure that both timestamps are identical and should fix the
issue in the CI where it thinks the values are different
* only run query for scheme locations size once
Co-authored-by: Dushan <dushan@madetech.com>
* extract TYPE_OF_UNIT_MAP
* lint
* Use find insted of select
Co-authored-by: Dushan Despotovic <dushan@madetech.com>
* location cell ref
* extracted regex into initializer
* extracted regex into initializer - part 2
* added PostcodeService to extract behavior
* rubo
* better test name
* moved .delete.upcase to the PostcodeService class
* added test to check locations
* added test to click to change location
* added edit name to routes and front
* edit name request specs
* finilised
* tab nav helper test
* specs for update
* rubo
* added last step
* not finding postcode field
* testing being direct to add locations page after submitting support questions
* added route to locations controller
* location controller spec
* location controller
* added template for new
* next step in feature
* added postcode
* added name to locations
* removed total units from schemes
* moved total units to locations
* changed type of unit type in db
* using type of units
* add locations page is finished
* purged total units and added test for location create
* creating location
* testing creating location as data provider
* fixed factory
* refacotred update/create and added test creating location as a coord user
* testing returning back to create page if create another location is selected
* testing returning back to create page if create another location is selected - part 2
* thanks rubocop
* thanks rubocop
* testing back from new location
* returned tests back
* testing clickable locations link
* testing clickable locations link under correct context
* correctly looking table
* table with caption
* wip
* fixed failing exisiting tests
* fixed failing exisiting tests - part 2
* validating postcode case logs style
* validating postcode specs
* validating postcode specs debugger removed
* navigation when editing location
* spike creating new location after addition
* small refactoring
* added test to add another location from locations page
* added test to amend a location
* added test to amend a location - part 2
* testing location cell
* added wheelchair adaptions to the unit tyupe
* rebased
* testing postcode missing
* testing creating schem for a different org for coordinator
* testing new scheme for a different org for coordinator
* upcasing all postcodes before creation
* testing edge cases around postcodes and yes or no for another location
* create locations with support user
* details locations specs
* update locations specs
* rubocop
* checking raising error
* fixed failed test
* switched yes and no for wheelchairs
* routes refactoring
* fixed routing - WIP
* further chanegs
* feature tests passing
* correct page when errros
* redundant page
* moving viewing locations away from schemes controller
* new is fixed
* create fixed
* fixed locations specs
* fixed tab nav specs
* completed location specs
* lint
* added test to find link to create a new scheme
* added button to create a new scheme
* testing arriving to the new scheme form
* non exsiting link to controller new action
* SPIKEEEE
* first page complete
* posting to create
* refactored scheme to enums
* refactored new scheme page to use enums as well
* views
* SPIKE WIP
* SPIKE WIP
* SPIKE WIP
* drawing list of scheme details
* expanded on feature seeing more fields to fill in
* expanded on feature seeing more fields to fill in 2nd page
* refactored
* working back buttons
* working flash
* more change in wip
* default value for org
* working spike
* some spacing
* filling answers
* spike finished
* correct name for details
* testing fill in details
* removed gem and further tests
* Add has other client group field to schemes. Display it in the check answers. Fix tests and routing
* remove details view and path
Co-authored-by: baarkerlounger <baarkerlounger@users.noreply.github.com>
* WIP change update paths
* Implement changing answers (except the details one)
* Add details page back for editing scheme details
* added missing test for support questions and nested check answers under correct context
* checking the back functionality
* rubo and lint
* checking the back functionality for primary gourp
* checking the back functionality for confirm secondary
* checking the back functionality for secondary group
* checking the back functionality for support answers
* checking the back functionality for returning to check answers from details page
* checking the back functionality for returning to check answers from primary group page
* checking the back functionality for secondary group confirm yes
* checking the back functionality for secondary group confirm yes - fixed
* checking the back functionality for secondary group
* checking the back functionality for secondary group -fixed
* checking the back functionality for returning from support page
* Do not display secondary client group if the scheme doesn't have one
* Add details path to schemes controller update method
* Add more tests for back button
* Add tests for new controller method
* Add tests for creating schemes as data coordinator
* fixed schema
* added test for missing params when creating scheme
* create for support user with or withotu required param
* code to get controller render errors when required param is missing
* code to implement correct validation
* code to implement correct validation - part 2
* highlight missing field
* doing silly dance to get correct field highlighted on the error
* testing patch for schemes
* testing patch for schemes - correct path
* small refactoring
* testing primary client group update via regular path
* testing primary client group update via check answers page
* testing confirm secondary group update with YES NO and returning from check answers page
* testing updating secondary client group update and returning from check answers page
* testing support answers and returning from check answers page
* testing details and returning from check answers page
* weird path when no names supplied
* rubocop
* lost in rebasing
* started id to code refactoring
* model specs remastered
* fixed scheme controller specs
* further refactorings
* fixing feature schemes
* final touches
* removed code from db
* remaining code purged
* rubocop
* included check for owning org field
* checking for stock owning org selection
* added stock owning org
* added stock owning org on new page
* added stock owning org to details
* removed total units
* managing related schems properly via Org
* managing related schems properly via Org - rubocop
* small refactoring
* small refactoring - 2
* small refactoring - 3
* tests for owned_schemes and managed_schemes
* rubocop
* added tests for support user creating scheme
* rubocop -a
* tests for a primary-client-group
* tests for a secondary-client-group
* tests for a confirm-secondary-client-group
* tests for a check-answers
* tests for a details
* rubocop
* redundant action in controller
* Trigger WF
* switched to int for confirm
* flashing test
* flashing test for support user
* flashing test rubocop
Co-authored-by: Kat <katrina@madetech.com>
Co-authored-by: baarkerlounger <baarkerlounger@users.noreply.github.com>
* failing test for having service and location tabs on the show page
* links on the page
* asking for locations in the link
* created locations
* linked locations to schemes
* locations migration and model
* testing seeing locations
* rubocop
* failing feature to see locations on the page
* route to locations
* controller action plus other bits
* added facatory and view for locations
* supported housing to schemes
* supported housing to schemes - part 2
* supported housing to schemes - part 3
* correct route
* controller test for locations
* added view for locations
* correct and compact view for locations
* testing all attributes on the page
* testing heading
* testing title
* refactored views
* refactored views
* fixed county
* testing pagination
* testing and coding pagy bits for locations
* testing and coding pagy bits for locations page 2
* added tests for support user
* small refactoring of before actions and tests for 401 and 404
* small refactoring
* Trigger WF
* simplified return
* fixing spec failures
* fixed names
* testing back link
* oops
* required changes from comments
* required changes from comments
* renums
* fixed failing tests
* typo
* Managing agent to by
* tests for scheme_items
* added steps to view links to indiividual schemes
* testing there are links to the schemes not just names
* testing there are links to the schemes not just names -2
* added links failing due to no route
* looks per spec
* failing spec for tab helper
* added new attributes to the scheme
* added test for scheme.primary_client_group
* testing clicking to individual scheme
* empty template for show
* testing users not signed in
* testing I can see scheme details on the page
* converting int to strings in scheme model
* better view, seeds and factory
* highlight supported housing for support user
* simplified and extended sab nab logic
* rubocop and redundant check removed
* tests and code to make sure users are highlighted
* tests and code to make sure supported housing is highlighted
* full feature for support user to visit scheme show page
* extended features and filing feature when coordinator viewing scheme for a different org
* returning not found if coordinator user tries to see unrelated scheme
* rubocop
* fixed typos etc
* fixed types for schemes
* Trigger WF
* correct expectation