mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-08-06 22:15:20 +02:00
Multi-step account forms + clearer balance editing (#2427)
* Initial multi-step property form * Improve form structure, add optional tooltip help icons to form fields * Add basic inline alert component * Clean up and improve property form lifecycle * Implement Account status concept * Lint fixes * Remove whitespace * Balance editing, scope updates for account * Passing tests * Fix brakeman warning * Remove stale columns * data constraint tweaks * Redundant property
This commit is contained in:
parent
ba7e8d3893
commit
662f2c04ce
66 changed files with 1036 additions and 427 deletions
|
@ -1,5 +1,28 @@
|
|||
{
|
||||
"ignored_warnings": [
|
||||
{
|
||||
"warning_type": "Mass Assignment",
|
||||
"warning_code": 105,
|
||||
"fingerprint": "85e2c11853dd6c69b1953a6ec3ad661cd0ce3df55e4e5beff92365b6ed601171",
|
||||
"check_name": "PermitAttributes",
|
||||
"message": "Potentially dangerous key allowed for mass assignment",
|
||||
"file": "app/controllers/api/v1/transactions_controller.rb",
|
||||
"line": 255,
|
||||
"link": "https://brakemanscanner.org/docs/warning_types/mass_assignment/",
|
||||
"code": "params.require(:transaction).permit(:account_id, :date, :amount, :name, :description, :notes, :currency, :category_id, :merchant_id, :nature, :tag_ids => ([]))",
|
||||
"render_path": null,
|
||||
"location": {
|
||||
"type": "method",
|
||||
"class": "Api::V1::TransactionsController",
|
||||
"method": "transaction_params"
|
||||
},
|
||||
"user_input": ":account_id",
|
||||
"confidence": "High",
|
||||
"cwe_id": [
|
||||
915
|
||||
],
|
||||
"note": "account_id is properly validated in create action - line 79 ensures account belongs to user's family: family.accounts.find(transaction_params[:account_id])"
|
||||
},
|
||||
{
|
||||
"warning_type": "Mass Assignment",
|
||||
"warning_code": 105,
|
||||
|
@ -26,13 +49,13 @@
|
|||
{
|
||||
"warning_type": "Dangerous Eval",
|
||||
"warning_code": 13,
|
||||
"fingerprint": "c193307bb82f931950d3bf2855f82f9a7f50d94c5bd950ee2803cb8a8abe5253",
|
||||
"fingerprint": "c154514a0f86341473e4abf35e77721495b326c7855e4967d284b4942371819c",
|
||||
"check_name": "Evaluation",
|
||||
"message": "Dynamic string evaluated as code",
|
||||
"file": "app/helpers/styled_form_builder.rb",
|
||||
"line": 7,
|
||||
"line": 5,
|
||||
"link": "https://brakemanscanner.org/docs/warning_types/dangerous_eval/",
|
||||
"code": "class_eval(\" def #{selector}(method, options = {})\\n merged_options = { class: \\\"form-field__input\\\" }.merge(options)\\n label = build_label(method, options)\\n field = super(method, merged_options)\\n\\n build_styled_field(label, field, merged_options)\\n end\\n\", \"app/helpers/styled_form_builder.rb\", (7 + 1))",
|
||||
"code": "class_eval(\" def #{selector}(method, options = {})\\n form_options = options.slice(:label, :label_tooltip, :inline, :container_class, :required)\\n html_options = options.except(:label, :label_tooltip, :inline, :container_class)\\n\\n build_field(method, form_options, html_options) do |merged_options|\\n super(method, merged_options)\\n end\\n end\\n\", \"app/helpers/styled_form_builder.rb\", (5 + 1))",
|
||||
"render_path": null,
|
||||
"location": {
|
||||
"type": "method",
|
||||
|
@ -45,7 +68,7 @@
|
|||
913,
|
||||
95
|
||||
],
|
||||
"note": "This is safe as 'selector' comes from a predefined list of Rails form helpers (StyledFormBuilder.text_field_helpers)."
|
||||
"note": "Uses similar pattern to Rails internal form builder"
|
||||
},
|
||||
{
|
||||
"warning_type": "Dynamic Render Path",
|
||||
|
@ -80,29 +103,6 @@
|
|||
22
|
||||
],
|
||||
"note": ""
|
||||
},
|
||||
{
|
||||
"warning_type": "Mass Assignment",
|
||||
"warning_code": 105,
|
||||
"fingerprint": "85e2c11853dd6c69b1953a6ec3ad661cd0ce3df55e4e5beff92365b6ed601171",
|
||||
"check_name": "PermitAttributes",
|
||||
"message": "Potentially dangerous key allowed for mass assignment",
|
||||
"file": "app/controllers/api/v1/transactions_controller.rb",
|
||||
"line": 255,
|
||||
"link": "https://brakemanscanner.org/docs/warning_types/mass_assignment/",
|
||||
"code": "params.require(:transaction).permit(:account_id, :date, :amount, :name, :description, :notes, :currency, :category_id, :merchant_id, :nature, :tag_ids => ([]))",
|
||||
"render_path": null,
|
||||
"location": {
|
||||
"type": "method",
|
||||
"class": "Api::V1::TransactionsController",
|
||||
"method": "transaction_params"
|
||||
},
|
||||
"user_input": ":account_id",
|
||||
"confidence": "High",
|
||||
"cwe_id": [
|
||||
915
|
||||
],
|
||||
"note": "account_id is properly validated in create action - line 79 ensures account belongs to user's family: family.accounts.find(transaction_params[:account_id])"
|
||||
}
|
||||
],
|
||||
"brakeman_version": "7.0.2"
|
||||
|
|
|
@ -108,14 +108,6 @@ Rails.application.routes.draw do
|
|||
resources :mappings, only: :update, module: :import
|
||||
end
|
||||
|
||||
resources :accounts, only: %i[index new], shallow: true do
|
||||
member do
|
||||
post :sync
|
||||
get :chart
|
||||
get :sparkline
|
||||
end
|
||||
end
|
||||
|
||||
resources :holdings, only: %i[index new show destroy]
|
||||
resources :trades, only: %i[show new create update destroy]
|
||||
resources :valuations, only: %i[show new create update destroy]
|
||||
|
@ -155,18 +147,36 @@ Rails.application.routes.draw do
|
|||
end
|
||||
end
|
||||
|
||||
resources :accounts, only: %i[index new], shallow: true do
|
||||
member do
|
||||
post :sync
|
||||
get :chart
|
||||
get :sparkline
|
||||
patch :toggle_active
|
||||
end
|
||||
end
|
||||
|
||||
# Convenience routes for polymorphic paths
|
||||
# Example: account_path(Account.new(accountable: Depository.new)) => /depositories/123
|
||||
direct :account do |model, options|
|
||||
route_for model.accountable_name, model, options
|
||||
end
|
||||
|
||||
direct :edit_account do |model, options|
|
||||
route_for "edit_#{model.accountable_name}", model, options
|
||||
end
|
||||
|
||||
resources :depositories, except: :index
|
||||
resources :investments, except: :index
|
||||
resources :properties, except: :index
|
||||
resources :properties, except: :index do
|
||||
member do
|
||||
get :balances
|
||||
patch :update_balances
|
||||
|
||||
get :address
|
||||
patch :update_address
|
||||
end
|
||||
end
|
||||
resources :vehicles, except: :index
|
||||
resources :credit_cards, except: :index
|
||||
resources :loans, except: :index
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue