Sha256: bfca2c39e2a0a1c8010fcc1550790505fbc54a24701a5e2ca07e851985520b36
Contents?: true
Size: 1.85 KB
Versions: 7
Compression:
Stored size: 1.85 KB
Contents
# frozen_string_literal: true module Decidim module Budgets # This cell renders an authorized_action button # to vote a given instance of a Project in a budget list class ProjectVoteButtonCell < Decidim::ViewModel include Decidim::Budgets::ProjectsHelper include Decidim::Budgets::Engine.routes.url_helpers delegate :current_user, :current_order, :current_component, :can_have_order?, to: :parent_controller private def project_item? options[:project_item] end def resource_path resource_locator([model.budget, model]).path end def resource_title translated_attribute model.title end def resource_added? current_order && current_order.projects.include?(model) end def resource_allocation current_order.allocation_for(model) end def vote_button_disabled? current_user && !can_have_order? end def vote_button_classes classes = [] classes << if resource_added? "success button__secondary budget-list__data--added" else "hollow button__transparent-secondary" end classes << if project_item? "button__lg" else "button__sm" end classes << "budget-list__action" unless vote_button_disabled? classes.join(" ") end def vote_button_method return :delete if resource_added? :post end def vote_button_label if resource_added? return t( "decidim.budgets.projects.project.remove", resource_name: resource_title ) end t("decidim.budgets.projects.project.add", resource_name: resource_title) end end end end
Version data entries
7 entries across 7 versions & 1 rubygems