Sha256: d6d8a12f936323ec55e056d9e7e2412a83b007f14037ac24668741873db86bc0
Contents?: true
Size: 1.44 KB
Versions: 1
Compression:
Stored size: 1.44 KB
Contents
# frozen_string_literal: true require "active_support/concern" module Decidim module Lausanne module Budgets # Shared behaviour for controllers that need the current order to be present. module NeedsCurrentOrder extend ActiveSupport::Concern included do helper_method :current_order, :can_have_order?, :voted_for?, :user_record_for_budget?, :user_record_submitted? def user_record_for_budget? return true if current_user_record.new_record? current_user_record.order.id == current_order.id end def user_record_submitted? !current_user_record.new_record? end def current_order @current_order ||= Order.includes(:projects).find_or_initialize_by( user_record: current_user_record, budget: budget ) end def current_order=(order) @current_order = order end def persisted_current_order current_order if current_order&.persisted? end def can_have_order? voting_open? && allowed_to?(:create, :order, budget: budget, workflow: current_workflow) end # Return true if the user has voted the project def voted_for?(project) current_order && current_order.projects.include?(project) end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
decidim-lausanne-budgets-0.1.0 | app/controllers/concerns/decidim/lausanne/budgets/needs_current_order.rb |