* Add previous, current and next forms to form handler
* Add current, previous and next sales forms to form handler
* Implement current_lettings_form, current_sales_form and store year and form type in form
* refactor lettings_forms
* Use current, previous and next forms in lettings log model
* Use current, previous and next forms in sales log model
* use current, previous and next forms in csv service
* Remove "startyear_endyear" forms from form handler
* Remove name from form initializer and add an optional start year
* refactor get_form
* update csv test, fix form initialize
* rebase fix
* Refactor form_name_from_start_year method out
* remove unused variable
* fix typo, add date tests
* rebase, fix tests
* add comment to before test block
* Change the FormHandler back to only contain the form objects
* extract name
* 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>
* Prevents location from being cleared when it has been changed alongside the scheme
* Handles visible IDs not being system unique
* Hides the location correctly
* Add an organisation question for the support user (WIP)
Co-authored-by: baarkerlounger <baarkerlounger@users.noreply.github.com>
* All the things are green
* Add user question
* Restrict shown answer options based on already answered questions
* Derive managing org
* Guard against missing DB connection
* Remove empty file
* Only select the fields we actually need
* All is redundant
* Fix spec description
* Fix comments
Co-authored-by: Kat <katrina@madetech.com>
Co-authored-by: baarkerlounger <baarkerlounger@users.noreply.github.com>
* Refactor depends on in the form json to specify the object for the dependency
Co-authored-by: baarkerlounger <baarkerlounger@users.noreply.github.com>
* Remove org section
* Enable user based depends on
* Add question
* Question is derived
* Log debug message when values get auto cleared
* Enable answer options to be created from a model lookup
* Make organisation fields optional since they won't immediately have one when created by support users
* Add question to check answers page
* 22/23 fix
* Rubocop
* Spec check answers label lookup
* Only set managing organisation if not already set
* Bump deps
* Rescue lack of database connection for CI
Co-authored-by: Kat <katrina@madetech.com>
Co-authored-by: baarkerlounger <baarkerlounger@users.noreply.github.com>
* Refactor depends on in the form json to specify the object for the dependency
Co-authored-by: baarkerlounger <baarkerlounger@users.noreply.github.com>
* Refactor depends_on_met method to execcute methods on given objects
Co-authored-by: baarkerlounger <baarkerlounger@users.noreply.github.com>
* Remove org section
Co-authored-by: Kat <katrina@madetech.com>
Co-authored-by: baarkerlounger <baarkerlounger@users.noreply.github.com>
* Make tshortfall optional based on hidden tshortfall_known question
* Add test for optional
* Add test for JSON derived and dependent on false options
* Test routing
* Fix optionality
* Remove Save and go to submit
* Update hidden_in_check_answers
* Add la_known to dynamically not required questions if postcode_known is yes or not filled in
* infer the correct field value and remove irrelevant dynamically not required line
* change get_question form method to prioritise the routed to questions
* Add soft validation and interruption screen for basic rent
* get previous page that was routed to and display the same error for both soft validations
* Separate max and min error screens
* add a test for getting the previous page
* Update content and add more tests for previous page
* Set up failing test for new soft validation design
* remove unneeded js controller
* remove unneeded controller and spec
* rename net income validation override column
* spec form changes (to allow tests to run)
* validation spec changes
* replace all instances of override_net_income_validatiom
* passing first test
* Add to form and import styling
* remove unneeded code from interruption screen view
* Update test & code - failing last new expectation
* Display 2 previous question answers in the informative text
* extract displaying of the informative text into a helper
* Add tests for helper
* Remove some of the previous soft validations set up
* fix some failing specs
* Fix more tests
* lint
* Reset earnings question prefix and suffix to initial values instead of nil
* make it route backwards on a no
* test and linter fixes
* refactor next_page
* stryling
* more changes
* fix specs
* update real form
* design tweaks
* delete commented out tests
* content changes
* content changes
* changes to informative/hint text
* More robust styles for interuption panel, use smart quotes
* Rubocop
Co-authored-by: Kat <katrina@madetech.com>
Co-authored-by: Paul Robert Lloyd <me+git@paulrobertlloyd.com>
Co-authored-by: baarkerlounger <db@slothlife.xyz>
* Reset values for dependant derived questions (only layear)
* do not reset questions that have selected answer options
* Fix test and assign nil to dependent
* rubocop
* update dependencies
* Add routing for renewals
* Fix inferring postcode (it works 🤷♀️)
* Infer remaining renewal variables
* update check answer labels
* Route to the next page if the first one is not routed to from tasklist
* Fix allocation unknown type and depends on for referrals
* add a test for and rename first_page_or_check_answers'
* Change net income known question
* earnings and frequency on same page
* check answers changes and other fixes
* some fixes
* delete unnecessary test
* fix failing spec
* Refactor answer label
Co-authored-by: baarkerlounger <baarkerlounger@users.noreply.github.com>
* test and lint fixes
* Method args
* Fix specs
* Rubocop
* Incfreq doesn't have it's own check answers display
* Add suffix to actual form
* JSON linting
* Conditional suffix only applies to check answers
* Validate that earnings and incfreq must be provided together
* Rubocop
* Fix spec
* Fix page view specs
* form fixes
* update error messages
Co-authored-by: baarkerlounger <baarkerlounger@users.noreply.github.com>
Co-authored-by: baarkerlounger <db@slothlife.xyz>
* add button for moving to next incomplete section
* Add extra logic for cycling sections
* fix all failures
* add test for in progress case log to declaration redirection
* fix bug with infinite recursion
* update button text to save and return to log
* use govuk_link helpers
* lint fixes
* some basic extract method refactors
* refactor tests
* lint fixes
* redirect to check answers if next subsection in progress
* fix failing spec
* Iterate over all forms
* Re-lookup page to ensure we have the definition for the right form
* Match form naming convention for spec and real
* Add test for case log form
* Refactor routing
* Tenant code is now in About This Log
* Invert form definition routing syntax
* Make GDPR acceptance explicit dependency
* Add ReadMe description
* Add ADR for form routing logic
* Update JSON schema
* Add frontend gem repo to readme
* Rubocop
* migration wip
* change field names to lowercase and fix the tests
* Change national and ethnic field types and map to correct enums
* change ecstat column types
* Change prevten field type
* Change homeless field type
* Change benefit cap field type
* Put db enums in one folder and add a few new field changes"
* change field type for housing needs
* Change illness field type
* display checkbox answers
* cbl, chr, cap
* Change tenancy and tenancylength field types
* Change landlord and rsnvac field types
* Change unittype_gn field type
* Reasonble preference displaying on check answers
* update more field types
* Fix typo in comumn name
* Change more types
* Test fixes
* Add adr
* fix some tests
* run migration
* Fix tests
Co-authored-by: Matthew Phelan <matthew.phelan@madetech.com>
* Init
* Add some tests
* Add failing spec
* Move soft validations into a module
* Update test
* Rubocop
* Scope are auto created by enums
* Rename folder to validations
* No instance variable
* Commit both lines
* Add error indication
* Make partial slightly more generic
* Fix back link
* Write failing test
* All specs currently passing. Can this be real?
* Check page should have an override question
* Fix back button for check answers pages
* Don't really need a wrapper method for the validations
* We're really validating a page here not a question
* Dup variable
* Bit of a nasty hack but maybe better than deriving back link?
* Set a no cache header instead of reloading
* Move a teeny bit of logic out of the controller
* Rubocop
* Extract method
* Add next page path method with conditional routing
* Rename method
* Fix the tests and add files to .gitignore
* Make get_next_page_path a private method
* WIP test for total question count
* Change back button to use rails navigation
* Make total number of questions work with conditional routing and run rubocop
* Add tests for conditional question displaying
* Add conditional routing to the check answers page
* push 1 failure
* make total_questions step over the form like a user would and gather relevand questions
* Fix the tests
* fixed checks answers labels
* small refactors and rubocop
* remove unused code from get next page path
Co-authored-by: Kat <katrina@madetech.com>
Co-authored-by: magicmilo <milobascombe@gmail.com>
* use test_form.json in tests
* Pass in form to view from controller for check_answers
* reduce test json length for household section
* Further shorten the test json
* Remove extra radio questions from test json household section
* Trim test form and fix tests
* do some method extraction
* Extract creation of form into a formHandler
* rubocop
* redefine form model to use filepaths instead
* Check test env var in form handler
* remove singleton and make get_all_forms a private method
* refactor get_all_forms
Co-authored-by: Kat <katrina@madetech.com>
* Make outstanding amount question conditional
* Make major repairs date conditional on major repairs having been done
* Add Other reason for leaving as a conditional question
* Make reason for reasonable preference conditional on reasonable preference being given
* Refactor conditional html attributes
* Pretty print config json
* Add numeric conditional
* Add the rest of the conditionals
* Rubocop
* Refactor how we add stimulus controller html attributes so that we can combine them
* Spec attrib merging
* Fix question counts for sections with conditional questions
* Some linting
* Spec question counting behaviour
* Linting
* Add some more readme explanation
* Rename controller helper
* Rename variables for clarity
* Form with model so that we can validate (hypothetically)
* Put turbo frame back
* Turbo can update form errors if submitting returns 422
* Refactor and fix specs
* String interpolation over concatenation