diff --git a/app/controllers/categories_controller.rb b/app/controllers/categories_controller.rb index 0b37fc4b60..161015e760 100644 --- a/app/controllers/categories_controller.rb +++ b/app/controllers/categories_controller.rb @@ -4,7 +4,7 @@ class CategoriesController < ApplicationController before_action :set_transaction, only: :create def index - @categories = Current.family.categories.alphabetically.to_a + @categories = Current.family.categories.alphabetically_by_hierarchy.to_a @category_groups = Category::Group.for(@categories) @category_ids_with_transactions = category_ids_with_transactions(@categories) diff --git a/app/models/category.rb b/app/models/category.rb index 229dfa3247..772c2f5a5e 100644 --- a/app/models/category.rb +++ b/app/models/category.rb @@ -5,7 +5,11 @@ class Category < ApplicationRecord belongs_to :family has_many :budget_categories, dependent: :destroy - has_many :subcategories, class_name: "Category", foreign_key: :parent_id, dependent: :nullify + has_many :subcategories, + -> { order(:name) }, + class_name: "Category", + foreign_key: :parent_id, + dependent: :nullify belongs_to :parent, class_name: "Category", optional: true validates :name, :color, :lucide_icon, :family, presence: true