@@ -6,8 +6,33 @@ class CardGrantsController < ApplicationController
66 skip_before_action :signed_in_user , only : [ :show , :spending ]
77 skip_after_action :verify_authorized , only : [ :show , :spending ]
88
9- before_action :set_event , only : %i[ new create ]
10- before_action :set_card_grant , except : %i[ new create ]
9+ before_action :set_event , only : [ :new , :create , :index , :card_index , :transaction_index ]
10+ before_action :set_card_grant , except : [ :new , :create , :index , :card_index , :transaction_index ]
11+
12+ def index
13+ authorize @event , :card_grant_overview?
14+ end
15+
16+ def card_index
17+ authorize @event , :card_grant_overview?
18+
19+ card_grants_page = ( params [ :page ] || 1 ) . to_i
20+ card_grants_per_page = ( params [ :per ] || 20 ) . to_i
21+
22+ @card_grants = @event . card_grants . includes ( :disbursement , :user , :stripe_card ) . order ( created_at : :desc )
23+ @paginated_card_grants = @card_grants . page ( card_grants_page ) . per ( card_grants_per_page )
24+ end
25+
26+ def transaction_index
27+ authorize @event , :card_grant_overview?
28+
29+ transactions_page = ( params [ :page ] || 1 ) . to_i
30+ transactions_per_page = ( params [ :per ] || 20 ) . to_i
31+
32+ @all_stripe_cards = @event . stripe_cards . where . associated ( :card_grant )
33+ @hcb_codes = HcbCode . where ( hcb_code : @all_stripe_cards . flat_map ( &:all_hcb_codes ) ) . order ( created_at : :desc )
34+ @paginated_hcb_codes = @hcb_codes . page ( transactions_page ) . per ( transactions_per_page )
35+ end
1136
1237 def new
1338 @card_grant = @event . card_grants . build ( email : params [ :email ] )
@@ -49,7 +74,7 @@ def create
4974 end
5075
5176 flash [ :success ] = "Successfully sent a grant to #{ @card_grant . email } !"
52- redirect_to event_transfers_path ( @event )
77+ redirect_back_or_to event_transfers_path ( @event )
5378 end
5479
5580 def edit_overview
0 commit comments