orders valuators by spending proposal count
This commit is contained in:
@@ -26,7 +26,7 @@ class Admin::ValuatorsController < Admin::BaseController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def summary
|
def summary
|
||||||
@valuators = Valuator.all
|
@valuators = Valuator.order(spending_proposals_count: :desc)
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
class ValuationAssignment < ActiveRecord::Base
|
class ValuationAssignment < ActiveRecord::Base
|
||||||
belongs_to :valuator
|
belongs_to :valuator, counter_cache: :spending_proposals_count
|
||||||
belongs_to :spending_proposal, counter_cache: true
|
belongs_to :spending_proposal, counter_cache: true
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
class AddAssignmentsCounterCacheToValuators < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :valuators, :spending_proposals_count, :integer, default: 0
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 20160422094733) do
|
ActiveRecord::Schema.define(version: 20160426211658) do
|
||||||
|
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
@@ -448,6 +448,7 @@ ActiveRecord::Schema.define(version: 20160422094733) do
|
|||||||
create_table "valuators", force: :cascade do |t|
|
create_table "valuators", force: :cascade do |t|
|
||||||
t.integer "user_id"
|
t.integer "user_id"
|
||||||
t.string "description"
|
t.string "description"
|
||||||
|
t.integer "spending_proposals_count", default: 0
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "valuators", ["user_id"], name: "index_valuators_on_user_id", using: :btree
|
add_index "valuators", ["user_id"], name: "index_valuators_on_user_id", using: :btree
|
||||||
|
|||||||
@@ -408,7 +408,6 @@ feature 'Valuation spending proposals' do
|
|||||||
in_evaluation1 = create(:spending_proposal, feasible: true, valuation_finished: false)
|
in_evaluation1 = create(:spending_proposal, feasible: true, valuation_finished: false)
|
||||||
in_evaluation2 = create(:spending_proposal, feasible: true, valuation_finished: false)
|
in_evaluation2 = create(:spending_proposal, feasible: true, valuation_finished: false)
|
||||||
|
|
||||||
|
|
||||||
finished_and_feasible1.valuators << scarlett
|
finished_and_feasible1.valuators << scarlett
|
||||||
finished_and_feasible2.valuators << scarlett
|
finished_and_feasible2.valuators << scarlett
|
||||||
|
|
||||||
@@ -443,6 +442,22 @@ feature 'Valuation spending proposals' do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario "Order by investment project count" do
|
||||||
|
isabel = create(:valuator)
|
||||||
|
john = create(:valuator)
|
||||||
|
scarlett = create(:valuator)
|
||||||
|
|
||||||
|
3.times { create(:spending_proposal, valuators: [scarlett])}
|
||||||
|
1.times { create(:spending_proposal, valuators: [john])}
|
||||||
|
2.times { create(:spending_proposal, valuators: [isabel])}
|
||||||
|
|
||||||
|
visit admin_spending_proposals_path
|
||||||
|
click_link "Valuator summary"
|
||||||
|
|
||||||
|
expect(scarlett.email).to appear_before(isabel.email)
|
||||||
|
expect(isabel.email).to appear_before(john.email)
|
||||||
|
end
|
||||||
|
|
||||||
scenario "Back link" do
|
scenario "Back link" do
|
||||||
visit admin_spending_proposals_path
|
visit admin_spending_proposals_path
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user