Skip to content

Commit

Permalink
Check for valid session stats everywhere. Removed unused site_statistics
Browse files Browse the repository at this point in the history
from emarketing controller
  • Loading branch information
Doug Youch committed Nov 22, 2010
1 parent 3bd7213 commit 6faad3f
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 60 deletions.
23 changes: 0 additions & 23 deletions app/controllers/emarketing_controller.rb
Expand Up @@ -160,29 +160,6 @@ def visitor_detail
render :partial => 'visitor_detail'
end

def site_statistics
conditions = '1'

@stats = DefaultsHashObject.new(
{
:unique_ips => DomainLogSession.count('ip_address',:distinct => true,:conditions => conditions),
:unique_sessions => DomainLogEntry.count('domain_log_session_id',:distinct => true,:conditions => conditions),
:registered_users => DomainLogEntry.count('user_id',:distinct => true,:conditions => conditions + " AND user_id IS NOT NULL"),
:anonymous_users => DomainLogSession.count('ip_address',:distinct => true,:conditions => conditions + " AND end_user_id IS NULL"),
:total_hits => DomainLogEntry.count(:conditions => conditions)
}
)


@page_stats = DomainLogEntry.find(:all,
:group => 'node_path',
:select => 'node_path, COUNT(*) as views',
:order => 'views DESC')


render :partial => 'site_statistics'
end

def stats
cms_page_path ['Marketing'], 'Real Time Statistics'
require_js 'emarketing.js'
Expand Down
2 changes: 1 addition & 1 deletion app/models/content_node.rb
Expand Up @@ -253,7 +253,7 @@ def self.traffic_type_options
end

def self.traffic_scope(from, duration, opts={})
scope = DomainLogEntry.between(from, from+duration).hits_n_visits('content_node_id')
scope = DomainLogEntry.valid_sessions.between(from, from+duration).hits_n_visits('content_node_id')
if opts[:target_id]
scope = scope.scoped(:conditions => {:content_node_id => opts[:target_id]})
elsif opts[:type_id]
Expand Down
24 changes: 21 additions & 3 deletions app/models/domain_log_session.rb
Expand Up @@ -14,10 +14,28 @@ class DomainLogSession < DomainModel

named_scope :between, lambda { |from, to| {:conditions => ['domain_log_sessions.created_at >= ? AND domain_log_sessions.created_at < ?', from, to]} }
named_scope :visits, lambda { |group_by| group_by =~ /_id$/ ? {:select => "#{group_by} as target_id, count(*) as visits", :group => 'target_id'} : {:select => "#{group_by} as target_value, count(*) as visits", :group => 'target_value'} }
named_scope :hits_n_visits, lambda { |group_by| group_by =~ /_id$/ ? {:select => "#{group_by} as target_id, count(*) as visits, sum(page_count) as hits, sum(session_value) as total_value, SUM(IF(domain_log_sessions.user_level=3,1, 0)) AS subscribers, SUM(IF(domain_log_sessions.user_level=4,1, 0)) AS leads, SUM(IF(domain_log_sessions.user_level=5,1, 0)) AS conversions", :group => 'target_id'} : {:select => "#{group_by} as target_value, count(*) as visits, sum(page_count) as hits, sum(session_value) as total_value, SUM(IF(domain_log_sessions.user_level=3,1, 0)) AS subscribers, SUM(IF(domain_log_sessions.user_level=4,1, 0)) AS leads, SUM(IF(domain_log_sessions.user_level=5,1, 0)) AS conversions", :group => 'target_value'} }
named_scope :hits_n_visits_n_uniques, lambda { |group_by| group_by =~ /_id$/ ? {:select => "#{group_by} as target_id, count(*) as visits, sum(page_count) as hits, count(DISTINCT ip_address) as stat1, sum(session_value) as total_value, SUM(IF(domain_log_sessions.user_level=3,1, 0)) AS subscribers, SUM(IF(domain_log_sessions.user_level=4,1, 0)) AS leads, SUM(IF(domain_log_sessions.user_level=5,1, 0)) AS conversions", :group => 'target_id'} : {:select => "#{group_by} as target_value, count(*) as visits, sum(page_count) as hits, count(DISTINCT ip_address) as stat1, sum(session_value) as total_value, SUM(IF(domain_log_sessions.user_level=3,1, 0)) AS subscribers, SUM(IF(domain_log_sessions.user_level=4,1, 0)) AS leads, SUM(IF(domain_log_sessions.user_level=5,1, 0)) AS conversions", :group => 'target_value'} }
named_scope :hits_n_visits, lambda { |group_by| self.hits_n_visits_options group_by }
named_scope :hits_n_visits_n_uniques, lambda { |group_by| self.hits_n_visits_options group_by, true }
named_scope :referrer_only, :conditions => 'domain_log_referrer_id IS NOT NULL'
named_scope :valid_sessions, :conditions => '`ignore` = false AND domain_log_source_id IS NOT NULL'
named_scope :valid_sessions, :conditions => '`ignore` = 0 AND domain_log_source_id IS NOT NULL'


def self.hits_n_visits_options(group_by=nil, uniques=false)
select = "count(*) as visits, sum(page_count) as hits, sum(session_value) as total_value, SUM(IF(domain_log_sessions.user_level=3,1, 0)) AS subscribers, SUM(IF(domain_log_sessions.user_level=4,1, 0)) AS leads, SUM(IF(domain_log_sessions.user_level=5,1, 0)) AS conversions"

select += ", count(DISTINCT ip_address) as stat1" if uniques

return {:select => select} unless group_by

group_by = group_by.to_s
if group_by =~ /_id$/
select += ", #{group_by} as target_id"
return {:select => select, :group => 'target_id'}
end

select += ", #{group_by} as target_value"
{:select => select, :group => 'target_value'}
end

def self.start_session(user, session, request, site_node=nil, ignore=true)
return unless request.session_options
Expand Down
2 changes: 1 addition & 1 deletion app/models/site_node.rb
Expand Up @@ -551,7 +551,7 @@ def self.chart_traffic_handler_info
end

def self.traffic_scope(from, duration, opts={})
scope = DomainLogEntry.between(from, from+duration).hits_n_visits('site_node_id')
scope = DomainLogEntry.valid_sessions.between(from, from+duration).hits_n_visits('site_node_id')
scope = scope.scoped(:conditions => {:site_node_id => opts[:target_id]}) if opts[:target_id]
scope
end
Expand Down
23 changes: 0 additions & 23 deletions app/views/emarketing/_site_statistics.rhtml

This file was deleted.

9 changes: 0 additions & 9 deletions app/views/emarketing/visitors.rhtml
Expand Up @@ -17,15 +17,6 @@
VisitorViewer.selectedEntry = entry_id;
},

loadStatistics: function() {
if(!$('site_statistics_details')) {
new Ajax.Updater('site_statistics',
"<%= url_for :action => 'site_statistics' %>/" );
}


},

googleRadios: function() {
if($('options_google_analytics_disabled').checked) {
$('options_analytics_code').disabled = true;
Expand Down

0 comments on commit 6faad3f

Please sign in to comment.