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.27 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.5.26 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.4.45 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.5.25 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.5.23 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.4.44 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.5.22 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.4.43 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.5.21 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.4.42 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.5.20 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.4.41 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.5.19 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.4.40 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.5.18 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.4.39 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.5.17 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.4.38 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.5.16 app/view_models/workarea/admin/reports/group_by_time.rb
workarea-admin-3.4.37 app/view_models/workarea/admin/reports/group_by_time.rb