app/helpers/decidim/budgets/projects_helper.rb in decidim-budgets-0.23.6 vs app/helpers/decidim/budgets/projects_helper.rb in decidim-budgets-0.24.0.rc1
- old
+ new
@@ -18,11 +18,15 @@
# Return the minimum percentage of the current order budget from the total budget
def current_order_budget_percent_minimum
return 0 if current_order.minimum_projects_rule?
- component_settings.vote_threshold_percent
+ if current_order.projects_rule?
+ (current_order.minimum_projects.to_f / current_order.maximum_projects)
+ else
+ component_settings.vote_threshold_percent
+ end
end
def budget_confirm_disabled_attr
return if current_order_can_be_checked_out?
@@ -33,9 +37,49 @@
delegate :checked_out?, to: :current_order, prefix: true, allow_nil: true
# Return true if the user can continue to the checkout process
def current_order_can_be_checked_out?
current_order&.can_checkout?
+ end
+
+ def current_rule_explanation
+ return unless current_order
+
+ if current_order.projects_rule?
+ if current_order.minimum_projects.positive? && current_order.minimum_projects < current_order.maximum_projects
+ t(
+ ".projects_rule.instruction",
+ minimum_number: current_order.minimum_projects,
+ maximum_number: current_order.maximum_projects
+ )
+ else
+ t(".projects_rule_maximum_only.instruction", maximum_number: current_order.maximum_projects)
+ end
+ elsif current_order.minimum_projects_rule?
+ t(".minimum_projects_rule.instruction", minimum_number: current_order.minimum_projects)
+ else
+ t(".vote_threshold_percent_rule.instruction", minimum_budget: budget_to_currency(current_order.minimum_budget))
+ end
+ end
+
+ def current_rule_description
+ return unless current_order
+
+ if current_order.projects_rule?
+ if current_order.minimum_projects.positive? && current_order.minimum_projects < current_order.maximum_projects
+ t(
+ ".projects_rule.description",
+ minimum_number: current_order.minimum_projects,
+ maximum_number: current_order.maximum_projects
+ )
+ else
+ t(".projects_rule_maximum_only.description", maximum_number: current_order.maximum_projects)
+ end
+ elsif current_order.minimum_projects_rule?
+ t(".minimum_projects_rule.description", minimum_number: current_order.minimum_projects)
+ else
+ t(".vote_threshold_percent_rule.description", minimum_budget: budget_to_currency(current_order.minimum_budget))
+ end
end
end
end
end