95 lines
2.4 KiB
Ruby
95 lines
2.4 KiB
Ruby
class Admin::DonationsController < Admin::BaseController
|
|
before_action :set_donation, only: [:show, :edit, :update, :destroy]
|
|
before_action :set_current_section, only: [:index, :show, :new, :edit]
|
|
|
|
# GET /donations
|
|
# GET /donations.json
|
|
def index
|
|
@donations = Donation.all.order('created_at desc')
|
|
@stats = {
|
|
overall_sats: @donations.all.sum("amount_sats"),
|
|
donor_count: Donation.distinct.count(:user_id)
|
|
}
|
|
end
|
|
|
|
# GET /donations/1
|
|
# GET /donations/1.json
|
|
def show
|
|
end
|
|
|
|
# GET /donations/new
|
|
def new
|
|
@donation = Donation.new
|
|
end
|
|
|
|
# GET /donations/1/edit
|
|
def edit
|
|
end
|
|
|
|
# POST /donations
|
|
# POST /donations.json
|
|
def create
|
|
@donation = Donation.new(donation_params)
|
|
|
|
respond_to do |format|
|
|
if @donation.save
|
|
format.html do
|
|
redirect_to admin_donation_url(@donation), flash: {
|
|
success: 'Donation was successfully created.'
|
|
}
|
|
end
|
|
format.json { render :show, status: :created, location: @donation }
|
|
else
|
|
format.html { render :new }
|
|
format.json { render json: @donation.errors, status: :unprocessable_entity }
|
|
end
|
|
end
|
|
end
|
|
|
|
# PATCH/PUT /donations/1
|
|
# PATCH/PUT /donations/1.json
|
|
def update
|
|
respond_to do |format|
|
|
if @donation.update(donation_params)
|
|
format.html do
|
|
redirect_to admin_donation_url(@donation), flash: {
|
|
success: 'Donation was successfully updated.'
|
|
}
|
|
end
|
|
format.json { render :show, status: :ok, location: @donation }
|
|
else
|
|
format.html { render :edit }
|
|
format.json { render json: @donation.errors, status: :unprocessable_entity }
|
|
end
|
|
end
|
|
end
|
|
|
|
# DELETE /donations/1
|
|
# DELETE /donations/1.json
|
|
def destroy
|
|
@donation.destroy
|
|
respond_to do |format|
|
|
format.html do redirect_to admin_donations_url, flash: {
|
|
success: 'Donation was successfully destroyed.'
|
|
}
|
|
end
|
|
format.json { head :no_content }
|
|
end
|
|
end
|
|
|
|
private
|
|
# Use callbacks to share common setup or constraints between actions.
|
|
def set_donation
|
|
@donation = Donation.find(params[:id])
|
|
end
|
|
|
|
# Only allow a list of trusted parameters through.
|
|
def donation_params
|
|
params.require(:donation).permit(:user_id, :amount_sats, :amount_eur, :amount_usd, :public_name, :paid_at)
|
|
end
|
|
|
|
def set_current_section
|
|
@current_section = :donations
|
|
end
|
|
end
|