wahanegi/vibereport

View on GitHub
app/reports/productivity_average.rb

Summary

Maintainability
A
0 mins
Test Coverage
class ProductivityAverage < AdminReport
  def initialize(team, time_periods)
    super(team)
    @time_periods = time_periods
  end

  def generate
    average_productivity = receive_responses.average(:productivity)

    average_productivity.nil? ? 'No productivity present' : average_productivity.round(2)
  end

  private

  def receive_responses
    if @team
      Response.joins(user: { teams: :user_teams })
              .where(user_teams: { team_id: @team.id }, responses: { time_period_id: @time_periods })
    else
      Response.where(time_period_id: @time_periods)
    end
  end
end