Feature | Filter on uncategorized transactions (#1359)

* allow filtering uncategorized transactions

* user can filter uncategorized transactions test

* rubocop linting
This commit is contained in:
bruno costanzo
2024-10-25 15:37:05 +02:00
committed by GitHub
parent aa3342b0dc
commit 2cc89195bf
4 changed files with 43 additions and 3 deletions

View File

@@ -4,4 +4,8 @@ module CategoriesHelper
name: "Uncategorized",
color: Category::UNCATEGORIZED_COLOR
end
def family_categories
[ null_category ].concat(Current.family.categories.alphabetically)
end
end

View File

@@ -13,7 +13,19 @@ class Account::Transaction < ApplicationRecord
class << self
def search(params)
query = all
query = query.joins(:category).where(categories: { name: params[:categories] }) if params[:categories].present?
if params[:categories].present?
if params[:categories].exclude?("Uncategorized")
query = query
.joins(:category)
.where(categories: { name: params[:categories] })
else
query = query
.left_joins(:category)
.where(categories: { name: params[:categories] })
.or(query.where(category_id: nil))
end
end
query = query.joins(:merchant).where(merchants: { name: params[:merchants] }) if params[:merchants].present?
if params[:tags].present?

View File

@@ -5,7 +5,7 @@
<%= lucide_icon("search", class: "w-5 h-5 text-gray-500 absolute inset-y-0 left-2 top-1/2 transform -translate-y-1/2") %>
</div>
<div class="my-2" id="list" data-list-filter-target="list">
<% Current.family.categories.alphabetically.each do |category| %>
<% family_categories.each do |category| %>
<div class="filterable-item flex items-center gap-2 p-2" data-filter-name="<%= category.name %>">
<%= form.check_box :categories,
{