Merge pull request #3111 from consul/backport-customize_toda_la_ciudad
Remove custom "toda la ciudad" code
This commit is contained in:
@@ -7,40 +7,29 @@ module Budgets
|
|||||||
def show
|
def show
|
||||||
authorize! :read_executions, @budget
|
authorize! :read_executions, @budget
|
||||||
@statuses = Milestone::Status.all
|
@statuses = Milestone::Status.all
|
||||||
|
@investments_by_heading = investments_by_heading_ordered_alphabetically.to_h
|
||||||
if params[:status].present?
|
|
||||||
@investments_by_heading = @budget.investments.winners
|
|
||||||
.joins(:milestones).includes(:milestones)
|
|
||||||
.select { |i| i.milestones.published.with_status
|
|
||||||
.order_by_publication_date.last
|
|
||||||
.try(:status_id) == params[:status].to_i }
|
|
||||||
.uniq
|
|
||||||
.group_by(&:heading)
|
|
||||||
else
|
|
||||||
@investments_by_heading = @budget.investments.winners
|
|
||||||
.joins(:milestones).includes(:milestones)
|
|
||||||
.distinct.group_by(&:heading)
|
|
||||||
end
|
|
||||||
|
|
||||||
@investments_by_heading = reorder_alphabetically_with_city_heading_first.to_h
|
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
def investments_by_heading
|
||||||
|
if params[:status].present?
|
||||||
|
@budget.investments.winners
|
||||||
|
.with_milestone_status_id(params[:status])
|
||||||
|
.uniq
|
||||||
|
.group_by(&:heading)
|
||||||
|
else
|
||||||
|
@budget.investments.winners
|
||||||
|
.joins(:milestones).includes(:milestones)
|
||||||
|
.distinct.group_by(&:heading)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def load_budget
|
def load_budget
|
||||||
@budget = Budget.find_by(slug: params[:id]) || Budget.find_by(id: params[:id])
|
@budget = Budget.find_by(slug: params[:id]) || Budget.find_by(id: params[:id])
|
||||||
end
|
end
|
||||||
|
|
||||||
def reorder_alphabetically_with_city_heading_first
|
def investments_by_heading_ordered_alphabetically
|
||||||
@investments_by_heading.sort do |a, b|
|
investments_by_heading.sort { |a, b| a[0].name <=> b[0].name }
|
||||||
if a[0].name == 'Toda la ciudad'
|
|
||||||
-1
|
|
||||||
elsif b[0].name == 'Toda la ciudad'
|
|
||||||
1
|
|
||||||
else
|
|
||||||
a[0].name <=> b[0].name
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
module BudgetExecutionsHelper
|
module BudgetExecutionsHelper
|
||||||
|
|
||||||
def filters_select_counts(status)
|
def filters_select_counts(status)
|
||||||
@budget.investments.winners.with_milestones.select { |i| i.milestones
|
@budget.investments.winners.with_milestone_status_id(status).count
|
||||||
.published.with_status.order_by_publication_date
|
|
||||||
.last.status_id == status rescue false }.count
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def first_milestone_with_image(investment)
|
def first_milestone_with_image(investment)
|
||||||
|
|||||||
@@ -342,6 +342,16 @@ class Budget
|
|||||||
self.valuator_groups.collect(&:name).compact.join(', ').presence
|
self.valuator_groups.collect(&:name).compact.join(', ').presence
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.with_milestone_status_id(status_id)
|
||||||
|
joins(:milestones).includes(:milestones).select do |investment|
|
||||||
|
investment.milestone_status_id == status_id.to_i
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def milestone_status_id
|
||||||
|
milestones.published.with_status.order_by_publication_date.last&.status_id
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def set_denormalized_ids
|
def set_denormalized_ids
|
||||||
|
|||||||
@@ -230,19 +230,6 @@ feature 'Executions' do
|
|||||||
heading
|
heading
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario 'City heading is displayed first' do
|
|
||||||
heading.destroy!
|
|
||||||
other_heading1 = create_heading_with_investment_with_milestone(group: group, name: 'Other 1')
|
|
||||||
city_heading = create_heading_with_investment_with_milestone(group: group, name: 'Toda la ciudad')
|
|
||||||
other_heading2 = create_heading_with_investment_with_milestone(group: group, name: 'Other 2')
|
|
||||||
|
|
||||||
visit budget_executions_path(budget)
|
|
||||||
|
|
||||||
expect(page).to have_css('.budget-execution', count: 3)
|
|
||||||
expect(city_heading.name).to appear_before(other_heading1.name)
|
|
||||||
expect(city_heading.name).to appear_before(other_heading2.name)
|
|
||||||
end
|
|
||||||
|
|
||||||
scenario 'Non-city headings are displayed in alphabetical order' do
|
scenario 'Non-city headings are displayed in alphabetical order' do
|
||||||
heading.destroy!
|
heading.destroy!
|
||||||
z_heading = create_heading_with_investment_with_milestone(group: group, name: 'Zzz')
|
z_heading = create_heading_with_investment_with_milestone(group: group, name: 'Zzz')
|
||||||
|
|||||||
Reference in New Issue
Block a user