Sha256: dfafb096fc0883fe4b3aa77e26e2365983fa46cc3f188d3c22682c86930b5229
Contents?: true
Size: 898 Bytes
Versions: 12
Compression:
Stored size: 898 Bytes
Contents
# frozen_string_literal: true module Decidim module Accountability # This class handles the calculation of progress for a set of results class ResultsCalculator # Public: Initializes the service. def initialize(component, scope_id, category_id) @component = component @scope_id = scope_id @category_id = category_id end delegate :count, to: :results def progress results.average("COALESCE(progress, 0)") end private attr_reader :component, :scope_id, :category_id def results @results ||= begin query = Result.where( parent_id: nil, component: component ) query = query.with_any_scope(scope_id) if scope_id query = query.with_any_category(category_id) if category_id query end end end end end
Version data entries
12 entries across 12 versions & 1 rubygems