Sha256: acf217ffa33fc6eb57c97f12365734a9bd444f01bb8e058da1d9748d2e8ffe2b

Contents?: true

Size: 1.01 KB

Versions: 62

Compression:

Stored size: 1.01 KB

Contents

module Workarea
  module Admin
    module Reports
      module GroupByTime
        def results
          @results ||= model.results.map do |result|
            OpenStruct.new({ period: get_period_for(result['_id']) }.merge(result))
          end
        end

        def get_period_for(id)
          if id.key?('day_of_week')
            Date::DAYNAMES[id['day_of_week'] - 1]
          elsif id.key?('quarter')
            "#{id['year']} Q#{id['quarter']}"
          elsif id.key?('week')
            Date.strptime("#{id['year']}-#{id['week']}", '%G-%V').strftime('%Y-%-m-%-d')
          else
            id.values.join('-')
          end
        end

        def group_by_options
          model.group_bys.map { |o| [o.titleize, o] }
        end

        def uneven_day_distribution?
          number_of_days = (model.ends_at.to_date - model.starts_at.to_date).to_i
          (number_of_days % 7) != 0
        end

        def day_of_week?
          options[:group_by].to_s == 'day_of_week'
        end
      end
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
workarea-admin-3.5.15 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.4.36 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.5.14 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.4.35 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.5.13 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.4.34 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.5.12 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.4.33 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.5.11 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.5.10 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.4.32 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.5.9 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.4.31 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.5.8 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.4.30 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.5.7 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.4.29 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.5.6 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.4.28 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.5.5 app/view_models/workarea/admin/reports/group_by_time.rb