Skip to content

Commit 05affae

Browse files
committed
addded tips and deposits csv export
1 parent dedc43d commit 05affae

8 files changed

Lines changed: 46 additions & 9 deletions

File tree

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ gem 'sdoc', group: :doc, require: false
2828
gem 'cancancan'
2929
gem "i18n-js"
3030
gem 'dusen'
31+
gem 'render_csv'
3132

3233
group :development do
3334
gem 'capistrano', '~> 3.0.1'

Gemfile.lock

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,8 @@ GEM
228228
rdoc (4.1.1)
229229
json (~> 1.4)
230230
ref (1.0.5)
231+
render_csv (2.0.0)
232+
rails (>= 3.0)
231233
rspec-collection_matchers (0.0.2)
232234
rspec-expectations (>= 2.99.0.beta1)
233235
rspec-core (3.0.0.beta1)
@@ -332,6 +334,7 @@ DEPENDENCIES
332334
omniauth (~> 1.1.4)
333335
omniauth-github!
334336
rails (= 4.0.2)
337+
render_csv
335338
rspec-rails (~> 3.0.0.beta)
336339
sass-rails (~> 4.0.0)
337340
sawyer (~> 0.5.2)

app/controllers/deposits_controller.rb

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,16 @@ class DepositsController < ApplicationController
33

44
def index
55
if params[:project_id]
6-
@deposits = @project.deposits.order(created_at: :desc).page(params[:page]).per(30)
6+
@deposits = @project.deposits
77
else
8-
@deposits = Deposit.includes(:project).order(created_at: :desc).page(params[:page]).per(30)
8+
@deposits = Deposit.includes(:project)
9+
end
10+
@deposits = @deposits.order(created_at: :desc).
11+
page(params[:page]).
12+
per(params[:per_page] || 30)
13+
respond_to do |format|
14+
format.html
15+
format.csv { render csv: @deposits, except: [:updated_at, :confirmations, :fee_size], add_methods: [:project_name, :fee, :confirmed?] }
916
end
1017
end
1118

app/controllers/home_controller.rb

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,7 @@ def blockchain_info_callback
4242
project_id: project.id,
4343
txid: params[:transaction_hash],
4444
confirmations: params[:confirmations],
45-
amount: params[:value].to_i,
46-
paid_out: 0,
47-
paid_out_at: Time.now
45+
amount: params[:value].to_i
4846
})
4947
project.update_cache
5048
end

app/controllers/tips_controller.rb

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,16 @@ class TipsController < ApplicationController
44

55
def index
66
if params[:project_id]
7-
@tips = @project.tips.includes(:user).order(created_at: :desc).page(params[:page]).per(30)
7+
@tips = @project.tips.includes(:user)
88
elsif params[:user_id] && @user = User.find(params[:user_id])
9-
@tips = @user.tips.includes(:project).order(created_at: :desc).page(params[:page]).per(30)
9+
@tips = @user.tips.includes(:project)
1010
else
11-
@tips = Tip.includes(:user, :project).order(created_at: :desc).page(params[:page]).per(30)
11+
@tips = Tip.includes(:user, :project)
12+
end
13+
@tips = @tips.order(created_at: :desc).page(params[:page]).per(30)
14+
respond_to do |format|
15+
format.html
16+
format.csv { render csv: @tips, except: [:updated_at, :commit, :commit_message, :refunded_at, :decided_at], add_methods: [:user_name, :project_name, :decided?, :claimed?, :paid?, :refunded?, :txid] }
1217
end
1318
end
1419

app/models/deposit.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,8 @@ def available_amount
2222
self.fee_size = CONFIG["our_fee"]
2323
end
2424

25+
def project_name
26+
project.full_name
27+
end
28+
2529
end

app/models/project.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
class Project < ActiveRecord::Base
2-
has_many :deposits # todo: only confirmed deposits that have amount > paid_out
2+
has_many :deposits # todo: only confirmed deposits
33
has_many :tips, inverse_of: :project
44
accepts_nested_attributes_for :tips
55
has_many :collaborators, autosave: true

app/models/tip.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@ def non_refunded?
5454
scope :unclaimed, -> { joins(:user).
5555
unpaid.
5656
where('users.bitcoin_address' => ['', nil]) }
57+
def claimed?
58+
paid? || user.bitcoin_address.present?
59+
end
60+
def unclaimed?
61+
!claimed?
62+
end
5763

5864
scope :with_address, -> { joins(:user).where.not('users.bitcoin_address' => ['', nil]) }
5965
def with_address?
@@ -135,4 +141,17 @@ def check_amount_against_project
135141
def touch_decided_at_if_decided
136142
self.decided_at = Time.now if amount_changed? && decided?
137143
end
144+
145+
def project_name
146+
project.full_name
147+
end
148+
149+
def user_name
150+
user.display_name
151+
end
152+
153+
def txid
154+
try(:sendmany).try(:txid)
155+
end
156+
138157
end

0 commit comments

Comments
 (0)