From d4abf39ef1771aa2eee95e3678b47d8593e51160 Mon Sep 17 00:00:00 2001 From: Leena Date: Tue, 15 Mar 2016 12:21:22 +0530 Subject: [PATCH] Add usage summary for each device --- app/admin/app_usage.rb | 2 -- app/admin/device.rb | 21 +++++++++++++++++++++ app/models/device.rb | 13 ++++++++++++- 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/app/admin/app_usage.rb b/app/admin/app_usage.rb index e30be5d..22b127f 100644 --- a/app/admin/app_usage.rb +++ b/app/admin/app_usage.rb @@ -28,8 +28,6 @@ ActiveAdmin.register_page "App Usage" do app_usage[:package_name] end column "Total Usage" do |app_usage| - #usage_in_minutes = app_usage[:usage]/60 - #(usage_in_minutes > 0) ? usage_in_minutes :"Less than a minute" distance_of_time_in_words (app_usage[:usage]) end end diff --git a/app/admin/device.rb b/app/admin/device.rb index f0769c0..e80d5cb 100644 --- a/app/admin/device.rb +++ b/app/admin/device.rb @@ -56,6 +56,27 @@ ActiveAdmin.register Device do row :heartbeats_count row :created_at row :updated_at + total_usage = 0 + + panel "App Usage Details" do + table_for device.app_usage_summary do + column "Used On" do |app_usage| + app_usage[:used_on] + end + column "App Name" do |app_usage| + app_usage[:package_name] + end + column "Total Usage" do |app_usage| + total_usage += app_usage[:usage] + distance_of_time_in_words app_usage[:usage] + end + end + end + + row "Total Usage" do + distance_of_time_in_words total_usage + end + panel "APP INSTALL DETAILS" do table_for device.installations.order('updated_at desc') do column "App Name" do |installation| diff --git a/app/models/device.rb b/app/models/device.rb index 5325b3e..cf5dc6a 100644 --- a/app/models/device.rb +++ b/app/models/device.rb @@ -16,7 +16,7 @@ class Device < ActiveRecord::Base scope :active, -> {where("last_heartbeat_recd_time > '#{Time.now.utc - ACTIVE_TIMEFRAME}'")} scope :missing, -> {where("last_heartbeat_recd_time < '#{Time.now.utc - ACTIVE_TIMEFRAME}'AND last_heartbeat_recd_time > '#{Time.now.utc - MISSING_TIMEFRAME}'")} scope :dead, -> {where("last_heartbeat_recd_time < '#{Time.now.utc - MISSING_TIMEFRAME}'")} - + def generate_access_token self.access_token = SecureRandom.uuid end @@ -40,4 +40,15 @@ class Device < ActiveRecord::Base self.status = Device.statuses.keys[2] end end + + def app_usage_summary + app_usage_data = [] + self.app_usages.app_usages_per_device_app_day.each do |key,value| + app_usage_data << {device_id: key[0], + package_name: key[1], + used_on: key[2], + usage: value} + end + app_usage_data + end end