diff --git a/app/controllers/admin/donations_controller.rb b/app/controllers/admin/donations_controller.rb
index bdfff93..ca394e0 100644
--- a/app/controllers/admin/donations_controller.rb
+++ b/app/controllers/admin/donations_controller.rb
@@ -4,11 +4,21 @@ class Admin::DonationsController < Admin::BaseController
# GET /donations
def index
- @pagy, @donations = pagy(Donation.completed.order('paid_at desc'))
- @pending_donations = Donation.incomplete.order('paid_at desc')
+ @username = params[:username].presence
+
+ pending_scope = Donation.incomplete.joins(:user).order('paid_at desc')
+ completed_scope = Donation.completed.joins(:user).order('paid_at desc')
+
+ if @username
+ pending_scope = pending_scope.where(users: { cn: @username })
+ completed_scope = completed_scope.where(users: { cn: @username })
+ end
+
+ @pending_donations = pending_scope
+ @pagy, @donations = pagy(completed_scope)
@stats = {
- overall_sats: @donations.sum("amount_sats"),
+ overall_sats: Donation.completed.sum("amount_sats"),
donor_count: Donation.completed.count(:user_id)
}
end
diff --git a/app/views/admin/donations/_list.html.erb b/app/views/admin/donations/_list.html.erb
index 8a75699..aa405ec 100644
--- a/app/views/admin/donations/_list.html.erb
+++ b/app/views/admin/donations/_list.html.erb
@@ -1,4 +1,4 @@
-
+
<% if defined?(pagy) %>
-<%== pagy_nav pagy %>
+
+ <%== pagy_nav pagy %>
+
<% end %>
diff --git a/app/views/admin/donations/index.html.erb b/app/views/admin/donations/index.html.erb
index 2fa6f91..8003568 100644
--- a/app/views/admin/donations/index.html.erb
+++ b/app/views/admin/donations/index.html.erb
@@ -18,7 +18,21 @@
<% end %>
- <% if @pending_donations.any? %>
+
+ <%= form_with url: admin_donations_path, method: :get, local: true, class: "flex gap-1" do %>
+ <%= text_field_tag :username, @username, placeholder: 'Filter by username' %>
+ <%= button_tag type: 'submit', name: nil, title: "Filter", class: 'btn-md btn-icon btn-outline' do %>
+ <%= render partial: "icons/filter", locals: { custom_class: "text-blue-600 h-4 w-4 inline" } %>
+ <% end %>
+ <% if @username %>
+ <%= link_to admin_donations_path, title: "Remove filter", class: 'btn-md btn-icon btn-outline' do %>
+ <%= render partial: "icons/x", locals: { custom_class: "text-red-600 h-4 w-4 inline" } %>
+ <% end %>
+ <% end %>
+ <% end %>
+
+
+ <% if @pending_donations.present? %>
Pending
<%= render partial: "admin/donations/list", locals: {
@@ -28,8 +42,8 @@
<% end %>
- <% if @donations.any? %>
- Recent
+ <% if @donations.present? %>
+ Received
<%= render partial: "admin/donations/list", locals: {
donations: @donations, pagy: @pagy
} %>
diff --git a/app/views/icons/_filter.html.erb b/app/views/icons/_filter.html.erb
index 38a47e0..5adc889 100644
--- a/app/views/icons/_filter.html.erb
+++ b/app/views/icons/_filter.html.erb
@@ -1 +1 @@
-
\ No newline at end of file
+