diff --git a/app/controllers/transactions_controller.rb b/app/controllers/transactions_controller.rb
index 5e3eb25c..1c260d8f 100644
--- a/app/controllers/transactions_controller.rb
+++ b/app/controllers/transactions_controller.rb
@@ -133,7 +133,7 @@ class TransactionsController < ApplicationController
def entry_params
entry_params = params.require(:entry).permit(
:name, :date, :amount, :currency, :excluded, :notes, :nature, :entryable_type,
- entryable_attributes: [ :id, :category_id, :merchant_id, { tag_ids: [] } ]
+ entryable_attributes: [ :id, :category_id, :merchant_id, :kind, { tag_ids: [] } ]
)
nature = entry_params.delete(:nature)
@@ -150,7 +150,7 @@ class TransactionsController < ApplicationController
cleaned_params = params.fetch(:q, {})
.permit(
:start_date, :end_date, :search, :amount,
- :amount_operator, :active_accounts_only, :excluded_transactions,
+ :amount_operator, :active_accounts_only,
accounts: [], account_ids: [],
categories: [], merchants: [], types: [], tags: []
)
diff --git a/app/models/income_statement/category_stats.rb b/app/models/income_statement/category_stats.rb
index f3572e71..3daf69c5 100644
--- a/app/models/income_statement/category_stats.rb
+++ b/app/models/income_statement/category_stats.rb
@@ -48,6 +48,7 @@ class IncomeStatement::CategoryStats
)
WHERE a.family_id = :family_id
AND t.kind NOT IN ('funds_movement', 'one_time', 'cc_payment')
+ AND ae.excluded = false
GROUP BY c.id, period, CASE WHEN ae.amount < 0 THEN 'income' ELSE 'expense' END
)
SELECT
diff --git a/app/models/income_statement/family_stats.rb b/app/models/income_statement/family_stats.rb
index 3e2e9e29..a2509b11 100644
--- a/app/models/income_statement/family_stats.rb
+++ b/app/models/income_statement/family_stats.rb
@@ -44,7 +44,8 @@ class IncomeStatement::FamilyStats
er.to_currency = :target_currency
)
WHERE a.family_id = :family_id
- AND t.kind NOT IN ('funds_movement', 'one_time', 'cc_payment')
+ AND t.kind NOT IN ('funds_movement', 'one_time', 'cc_payment')
+ AND ae.excluded = false
GROUP BY period, CASE WHEN ae.amount < 0 THEN 'income' ELSE 'expense' END
)
SELECT
diff --git a/app/models/income_statement/totals.rb b/app/models/income_statement/totals.rb
index 01d61b14..858093a7 100644
--- a/app/models/income_statement/totals.rb
+++ b/app/models/income_statement/totals.rb
@@ -45,6 +45,7 @@ class IncomeStatement::Totals
er.to_currency = :target_currency
)
WHERE at.kind NOT IN ('funds_movement', 'one_time', 'cc_payment')
+ AND ae.excluded = false
GROUP BY c.id, c.parent_id, CASE WHEN ae.amount < 0 THEN 'income' ELSE 'expense' END;
SQL
end
diff --git a/app/models/transaction/search.rb b/app/models/transaction/search.rb
index e9914c2a..71406e71 100644
--- a/app/models/transaction/search.rb
+++ b/app/models/transaction/search.rb
@@ -14,7 +14,6 @@ class Transaction::Search
attribute :merchants, array: true
attribute :tags, array: true
attribute :active_accounts_only, :boolean, default: true
- attribute :excluded_transactions, :boolean, default: false
attr_reader :family
@@ -29,7 +28,6 @@ class Transaction::Search
query = family.transactions
query = apply_active_accounts_filter(query, active_accounts_only)
- query = apply_excluded_transactions_filter(query, excluded_transactions)
query = apply_category_filter(query, categories)
query = apply_type_filter(query, types)
query = apply_merchant_filter(query, merchants)
@@ -89,13 +87,6 @@ class Transaction::Search
end
end
- def apply_excluded_transactions_filter(query, excluded_transactions_filter)
- unless excluded_transactions_filter
- query.where(entries: { excluded: false })
- else
- query
- end
- end
def apply_category_filter(query, categories)
return query unless categories.present?
diff --git a/app/views/doorkeeper/applications/_delete_form.html.erb b/app/views/doorkeeper/applications/_delete_form.html.erb
index 654fb2a6..bf7a0d0d 100644
--- a/app/views/doorkeeper/applications/_delete_form.html.erb
+++ b/app/views/doorkeeper/applications/_delete_form.html.erb
@@ -1,6 +1,6 @@
-<%- submit_btn_css ||= 'btn btn-link' %>
+<%- submit_btn_css ||= "btn btn-link" %>
<%= form_tag oauth_application_path(application), method: :delete do %>
- <%= submit_tag t('doorkeeper.applications.buttons.destroy'),
+ <%= submit_tag t("doorkeeper.applications.buttons.destroy"),
onclick: "return confirm('#{ t('doorkeeper.applications.confirmations.destroy') }')",
class: submit_btn_css %>
<% end %>
diff --git a/app/views/doorkeeper/applications/_form.html.erb b/app/views/doorkeeper/applications/_form.html.erb
index de86503b..4cc71b3d 100644
--- a/app/views/doorkeeper/applications/_form.html.erb
+++ b/app/views/doorkeeper/applications/_form.html.erb
@@ -1,10 +1,10 @@
-<%= form_for application, url: doorkeeper_submit_path(application), as: :doorkeeper_application, html: { role: 'form' } do |f| %>
+<%= form_for application, url: doorkeeper_submit_path(application), as: :doorkeeper_application, html: { role: "form" } do |f| %>
<% if application.errors.any? %>
-
<%= t('doorkeeper.applications.form.error') %>
+ <%= t("doorkeeper.applications.form.error") %>
<% end %>
- <%= f.label :name, class: 'col-sm-2 col-form-label font-weight-bold' %>
+ <%= f.label :name, class: "col-sm-2 col-form-label font-weight-bold" %>
<%= f.text_field :name, class: "form-control #{ 'is-invalid' if application.errors[:name].present? }", required: true %>
<%= doorkeeper_errors_for application, :name %>
@@ -12,48 +12,48 @@
<% end %>
diff --git a/app/views/doorkeeper/applications/edit.html.erb b/app/views/doorkeeper/applications/edit.html.erb
index 737186bc..91cf6f8c 100644
--- a/app/views/doorkeeper/applications/edit.html.erb
+++ b/app/views/doorkeeper/applications/edit.html.erb
@@ -1,5 +1,5 @@
-
<%= t('.title') %>
+ <%= t(".title") %>
-<%= render 'form', application: @application %>
+<%= render "form", application: @application %>
diff --git a/app/views/doorkeeper/applications/index.html.erb b/app/views/doorkeeper/applications/index.html.erb
index 3ba2650d..259e72d3 100644
--- a/app/views/doorkeeper/applications/index.html.erb
+++ b/app/views/doorkeeper/applications/index.html.erb
@@ -1,16 +1,16 @@
-
<%= t('.title') %>
+ <%= t(".title") %>
-
<%= link_to t('.new'), new_oauth_application_path, class: 'btn btn-success' %>
+
<%= link_to t(".new"), new_oauth_application_path, class: "btn btn-success" %>
- <%= t('.name') %> |
- <%= t('.callback_url') %> |
- <%= t('.confidential') %> |
- <%= t('.actions') %> |
+ <%= t(".name") %> |
+ <%= t(".callback_url") %> |
+ <%= t(".confidential") %> |
+ <%= t(".actions") %> |
|
@@ -24,13 +24,13 @@
<%= simple_format(application.redirect_uri) %>
- <%= application.confidential? ? t('doorkeeper.applications.index.confidentiality.yes') : t('doorkeeper.applications.index.confidentiality.no') %>
+ <%= application.confidential? ? t("doorkeeper.applications.index.confidentiality.yes") : t("doorkeeper.applications.index.confidentiality.no") %>
|
- <%= link_to t('doorkeeper.applications.buttons.edit'), edit_oauth_application_path(application), class: 'btn btn-link' %>
+ <%= link_to t("doorkeeper.applications.buttons.edit"), edit_oauth_application_path(application), class: "btn btn-link" %>
|
- <%= render 'delete_form', application: application %>
+ <%= render "delete_form", application: application %>
|
<% end %>
diff --git a/app/views/doorkeeper/applications/new.html.erb b/app/views/doorkeeper/applications/new.html.erb
index 737186bc..91cf6f8c 100644
--- a/app/views/doorkeeper/applications/new.html.erb
+++ b/app/views/doorkeeper/applications/new.html.erb
@@ -1,5 +1,5 @@
-
<%= t('.title') %>
+ <%= t(".title") %>
-<%= render 'form', application: @application %>
+<%= render "form", application: @application %>
diff --git a/app/views/doorkeeper/applications/show.html.erb b/app/views/doorkeeper/applications/show.html.erb
index 540ba484..53e84c78 100644
--- a/app/views/doorkeeper/applications/show.html.erb
+++ b/app/views/doorkeeper/applications/show.html.erb
@@ -1,39 +1,39 @@
-
<%= t('.title', name: @application.name) %>
+ <%= t(".title", name: @application.name) %>
-
<%= t('.application_id') %>:
+
<%= t(".application_id") %>:
<%= @application.uid %>
-
<%= t('.secret') %>:
+
<%= t(".secret") %>:
<% secret = flash[:application_secret].presence || @application.plaintext_secret %>
<% if secret.blank? && Doorkeeper.config.application_secret_hashed? %>
- <%= t('.secret_hashed') %>
+ <%= t(".secret_hashed") %>
<% else %>
<%= secret %>
<% end %>
-
<%= t('.scopes') %>:
+
<%= t(".scopes") %>:
<% if @application.scopes.present? %>
<%= @application.scopes %>
<% else %>
- <%= t('.not_defined') %>
+ <%= t(".not_defined") %>
<% end %>
-
<%= t('.confidential') %>:
+
<%= t(".confidential") %>:
<%= @application.confidential? %>
-
<%= t('.callback_urls') %>:
+
<%= t(".callback_urls") %>:
<% if @application.redirect_uri.present? %>
@@ -43,21 +43,21 @@
<%= uri %>
- <%= link_to t('doorkeeper.applications.buttons.authorize'), oauth_authorization_path(client_id: @application.uid, redirect_uri: uri, response_type: 'code', scope: @application.scopes), class: 'btn btn-success', target: '_blank' %>
+ <%= link_to t("doorkeeper.applications.buttons.authorize"), oauth_authorization_path(client_id: @application.uid, redirect_uri: uri, response_type: "code", scope: @application.scopes), class: "btn btn-success", target: "_blank" %>
|
<% end %>
<% else %>
-
<%= t('.not_defined') %>
+
<%= t(".not_defined") %>
<% end %>
-
<%= t('.actions') %>
+
<%= t(".actions") %>
-
<%= link_to t('doorkeeper.applications.buttons.edit'), edit_oauth_application_path(@application), class: 'btn btn-primary' %>
+
<%= link_to t("doorkeeper.applications.buttons.edit"), edit_oauth_application_path(@application), class: "btn btn-primary" %>
-
<%= render 'delete_form', application: @application, submit_btn_css: 'btn btn-danger' %>
+
<%= render "delete_form", application: @application, submit_btn_css: "btn btn-danger" %>
diff --git a/app/views/doorkeeper/authorizations/error.html.erb b/app/views/doorkeeper/authorizations/error.html.erb
index 303ec57f..8df12c18 100644
--- a/app/views/doorkeeper/authorizations/error.html.erb
+++ b/app/views/doorkeeper/authorizations/error.html.erb
@@ -3,7 +3,7 @@
<%= icon("alert-circle", class: "w-6 h-6 text-destructive") %>
- <%= t('doorkeeper.authorizations.error.title') %>
+ <%= t("doorkeeper.authorizations.error.title") %>
diff --git a/app/views/doorkeeper/authorizations/form_post.html.erb b/app/views/doorkeeper/authorizations/form_post.html.erb
index 637aa663..d9c0a15b 100644
--- a/app/views/doorkeeper/authorizations/form_post.html.erb
+++ b/app/views/doorkeeper/authorizations/form_post.html.erb
@@ -3,12 +3,12 @@
<%= icon("loader-circle", class: "w-6 h-6 text-primary animate-spin") %>
-
<%= t('.title') %>
+
<%= t(".title") %>
Redirecting you back to the application...
-<% turbo_disabled = @pre_auth.redirect_uri&.start_with?('maybeapp://') || params[:display] == 'mobile' %>
+<% turbo_disabled = @pre_auth.redirect_uri&.start_with?("maybeapp://") || params[:display] == "mobile" %>
<%= form_tag @pre_auth.redirect_uri, method: :post, name: :redirect_form, authenticity_token: false, data: { turbo: !turbo_disabled } do %>
<% auth.body.compact.each do |key, value| %>
<%= hidden_field_tag key, value %>
diff --git a/app/views/doorkeeper/authorizations/new.html.erb b/app/views/doorkeeper/authorizations/new.html.erb
index 49630fec..4c3a727a 100644
--- a/app/views/doorkeeper/authorizations/new.html.erb
+++ b/app/views/doorkeeper/authorizations/new.html.erb
@@ -5,13 +5,13 @@
- <%= raw t('.prompt', client_name: content_tag(:span, @pre_auth.client.name, class: 'font-medium text-primary')) %>
+ <%= raw t(".prompt", client_name: content_tag(:span, @pre_auth.client.name, class: "font-medium text-primary")) %>
<% if @pre_auth.scopes.count > 0 %>
-
<%= t('.able_to') %>:
+
<%= t(".able_to") %>:
<% @pre_auth.scopes.each do |scope| %>
-
@@ -24,7 +24,7 @@
<% end %>
- <% turbo_disabled = params[:redirect_uri]&.start_with?('maybeapp://') || params[:display] == 'mobile' %>
+ <% turbo_disabled = params[:redirect_uri]&.start_with?("maybeapp://") || params[:display] == "mobile" %>
<%= form_tag oauth_authorization_path, method: :post, class: "w-full", data: { turbo: !turbo_disabled } do %>
<%= hidden_field_tag :client_id, @pre_auth.client.uid, id: nil %>
<%= hidden_field_tag :redirect_uri, @pre_auth.redirect_uri, id: nil %>
@@ -38,7 +38,7 @@
<%= hidden_field_tag :display, params[:display], id: nil %>
<% end %>
<%= render ButtonComponent.new(
- text: t('doorkeeper.authorizations.buttons.authorize'),
+ text: t("doorkeeper.authorizations.buttons.authorize"),
variant: :primary,
size: :lg,
full_width: true,
@@ -46,7 +46,7 @@
data: { disable_with: "Authorizing..." }
) %>
<% end %>
-
+
<%= form_tag oauth_authorization_path, method: :delete, class: "w-full", data: { turbo: !turbo_disabled } do %>
<%= hidden_field_tag :client_id, @pre_auth.client.uid, id: nil %>
<%= hidden_field_tag :redirect_uri, @pre_auth.redirect_uri, id: nil %>
@@ -60,7 +60,7 @@
<%= hidden_field_tag :display, params[:display], id: nil %>
<% end %>
<%= render ButtonComponent.new(
- text: t('doorkeeper.authorizations.buttons.deny'),
+ text: t("doorkeeper.authorizations.buttons.deny"),
variant: :outline,
size: :lg,
full_width: true,
diff --git a/app/views/doorkeeper/authorizations/show.html.erb b/app/views/doorkeeper/authorizations/show.html.erb
index 6a8f0399..4653af2a 100644
--- a/app/views/doorkeeper/authorizations/show.html.erb
+++ b/app/views/doorkeeper/authorizations/show.html.erb
@@ -3,7 +3,7 @@
<%= icon("check", class: "w-6 h-6 text-success") %>
-
<%= t('.title') %>
+
<%= t(".title") %>
diff --git a/app/views/doorkeeper/authorized_applications/_delete_form.html.erb b/app/views/doorkeeper/authorized_applications/_delete_form.html.erb
index 512e8ece..7668b397 100644
--- a/app/views/doorkeeper/authorized_applications/_delete_form.html.erb
+++ b/app/views/doorkeeper/authorized_applications/_delete_form.html.erb
@@ -1,4 +1,4 @@
-<%- submit_btn_css ||= 'btn btn-link' %>
+<%- submit_btn_css ||= "btn btn-link" %>
<%= form_tag oauth_authorized_application_path(application), method: :delete do %>
- <%= submit_tag t('doorkeeper.authorized_applications.buttons.revoke'), onclick: "return confirm('#{ t('doorkeeper.authorized_applications.confirmations.revoke') }')", class: submit_btn_css %>
+ <%= submit_tag t("doorkeeper.authorized_applications.buttons.revoke"), onclick: "return confirm('#{ t('doorkeeper.authorized_applications.confirmations.revoke') }')", class: submit_btn_css %>
<% end %>
diff --git a/app/views/doorkeeper/authorized_applications/index.html.erb b/app/views/doorkeeper/authorized_applications/index.html.erb
index a3f5aaac..fe36f954 100644
--- a/app/views/doorkeeper/authorized_applications/index.html.erb
+++ b/app/views/doorkeeper/authorized_applications/index.html.erb
@@ -1,13 +1,13 @@
- <%= t('doorkeeper.authorized_applications.index.application') %> |
- <%= t('doorkeeper.authorized_applications.index.created_at') %> |
+ <%= t("doorkeeper.authorized_applications.index.application") %> |
+ <%= t("doorkeeper.authorized_applications.index.created_at") %> |
|
@@ -15,8 +15,8 @@
<% @applications.each do |application| %>
<%= application.name %> |
- <%= application.created_at.strftime(t('doorkeeper.authorized_applications.index.date_format')) %> |
- <%= render 'delete_form', application: application %> |
+ <%= application.created_at.strftime(t("doorkeeper.authorized_applications.index.date_format")) %> |
+ <%= render "delete_form", application: application %> |
<% end %>
diff --git a/app/views/layouts/doorkeeper/admin.html.erb b/app/views/layouts/doorkeeper/admin.html.erb
index 3d1aeade..54be4935 100644
--- a/app/views/layouts/doorkeeper/admin.html.erb
+++ b/app/views/layouts/doorkeeper/admin.html.erb
@@ -4,22 +4,22 @@
- <%= t('doorkeeper.layouts.admin.title') %>
+ <%= t("doorkeeper.layouts.admin.title") %>
<%= stylesheet_link_tag "doorkeeper/admin/application" %>
<%= csrf_meta_tags %>