Move the query to a scope, Lambda for reload data

This commit is contained in:
Leena
2016-02-06 09:42:48 +05:30
parent 7f876a8008
commit 1a4855ee6c
2 changed files with 10 additions and 5 deletions

View File

@@ -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

View File

@@ -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