Sha256: ac3df71dcd155d7439346154955cc8d23180454d6859abe49e4022497f645f89

Contents?: true

Size: 1.34 KB

Versions: 30

Compression:

Stored size: 1.34 KB

Contents

# frozen_string_literal: true

module Decidim
  module Budgets
    module Admin
      # This class holds a Form to create/update budgets from Decidim's admin panel.
      class BudgetForm < Decidim::Form
        include TranslatableAttributes

        mimic :budget

        translatable_attribute :title, String
        attribute :weight, Integer, default: 0
        translatable_attribute :description, String
        attribute :total_budget, Integer, default: 0
        attribute :decidim_scope_id, Integer

        validates :title, translatable_presence: true
        validates :weight, :total_budget, numericality: { greater_than_or_equal_to: 0 }
        validates :scope, presence: true, if: ->(form) { form.decidim_scope_id.present? }
        validates :decidim_scope_id, scope_belongs_to_component: true, if: ->(form) { form.decidim_scope_id.present? }

        # Finds the Scope from the given decidim_scope_id, uses the compoenent scope if missing.
        #
        # Returns a Decidim::Scope
        def scope
          @scope ||= @decidim_scope_id ? current_component.scopes.find_by(id: @decidim_scope_id) : current_component.scope
        end

        # Scope identifier
        #
        # Returns the scope identifier related to the meeting
        def decidim_scope_id
          @decidim_scope_id || scope&.id
        end
      end
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
decidim-budgets-0.26.7 app/forms/decidim/budgets/admin/budget_form.rb
decidim-budgets-0.26.5 app/forms/decidim/budgets/admin/budget_form.rb
decidim-budgets-0.26.4 app/forms/decidim/budgets/admin/budget_form.rb
decidim-budgets-0.26.3 app/forms/decidim/budgets/admin/budget_form.rb
decidim-budgets-0.26.2 app/forms/decidim/budgets/admin/budget_form.rb
decidim-budgets-0.26.1 app/forms/decidim/budgets/admin/budget_form.rb
decidim-budgets-0.26.0 app/forms/decidim/budgets/admin/budget_form.rb
decidim-budgets-0.26.0.rc2 app/forms/decidim/budgets/admin/budget_form.rb
decidim-budgets-0.26.0.rc1 app/forms/decidim/budgets/admin/budget_form.rb
decidim-budgets-0.25.2 app/forms/decidim/budgets/admin/budget_form.rb
decidim-budgets-0.25.1 app/forms/decidim/budgets/admin/budget_form.rb
decidim-budgets-0.25.0 app/forms/decidim/budgets/admin/budget_form.rb
decidim-budgets-0.25.0.rc4 app/forms/decidim/budgets/admin/budget_form.rb
decidim-budgets-0.25.0.rc3 app/forms/decidim/budgets/admin/budget_form.rb
decidim-budgets-0.25.0.rc2 app/forms/decidim/budgets/admin/budget_form.rb
decidim-budgets-0.25.0.rc1 app/forms/decidim/budgets/admin/budget_form.rb
decidim-budgets-0.24.3 app/forms/decidim/budgets/admin/budget_form.rb
decidim-budgets-0.23.6 app/forms/decidim/budgets/admin/budget_form.rb
decidim-budgets-0.24.2 app/forms/decidim/budgets/admin/budget_form.rb
decidim-budgets-0.23.5 app/forms/decidim/budgets/admin/budget_form.rb