From 1a4855ee6c37d7b9e10ccdaa13fe444ecd5b497b Mon Sep 17 00:00:00 2001 From: Leena Date: Sat, 6 Feb 2016 09:42:48 +0530 Subject: [PATCH] Move the query to a scope, Lambda for reload data --- app/admin/app_usage.rb | 7 ++----- app/models/app_usage.rb | 8 ++++++++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/admin/app_usage.rb b/app/admin/app_usage.rb index 52ceecf..802c26e 100644 --- a/app/admin/app_usage.rb +++ b/app/admin/app_usage.rb @@ -1,12 +1,10 @@ ActiveAdmin.register_page "App Usage" do menu priority: 2, label: "App Usage" + content title: "App Usage" do app_usage_data = [] begin - app_usages = AppUsage.select(:package_name,:device_id,:used_on). - order("used_on desc"). - group("device_id","package_name","used_on"). - sum("usage_duration_in_seconds") + app_usages = AppUsage.app_usages_per_device_app_day app_usages.each do |key,value| app_usage_data << {device_id: key[0], package_name: key[1], @@ -16,7 +14,6 @@ ActiveAdmin.register_page "App Usage" do rescue end - content title: "App Usage" do panel "Usage Report" do table_for app_usage_data do diff --git a/app/models/app_usage.rb b/app/models/app_usage.rb index dd99d93..74ff983 100644 --- a/app/models/app_usage.rb +++ b/app/models/app_usage.rb @@ -1,4 +1,12 @@ class AppUsage < ActiveRecord::Base validates :package_name, :usage_duration_in_seconds, :used_on, presence: true belongs_to :device + + scope :app_usages_per_device_app_day, lambda { + AppUsage.select(:package_name,:device_id,:used_on). + order("used_on desc"). + order("device_id"). + order("package_name"). + group("device_id","package_name","used_on"). + sum("usage_duration_in_seconds")} end