diff --git a/app/controllers/debates_controller.rb b/app/controllers/debates_controller.rb
index 4828e1827..b336a924a 100644
--- a/app/controllers/debates_controller.rb
+++ b/app/controllers/debates_controller.rb
@@ -13,7 +13,6 @@ class DebatesController < ApplicationController
@debates = @debates.page(params[:page]).for_render.send("sort_by_#{@order}")
@tag_cloud = Debate.tag_counts.order(taggings_count: :desc, name: :asc).limit(20)
set_debate_votes(@debates)
- ahoy.track_visit
end
def show
@@ -24,7 +23,6 @@ class DebatesController < ApplicationController
@all_visible_comments = @root_comments + @comments
set_comment_flags(@all_visible_comments)
- ahoy.track_visit
end
def new
diff --git a/app/controllers/stats_controller.rb b/app/controllers/stats_controller.rb
index 595de397f..fe224eb8d 100644
--- a/app/controllers/stats_controller.rb
+++ b/app/controllers/stats_controller.rb
@@ -4,7 +4,6 @@ class StatsController < ApplicationController
def show
@event_types = Ahoy::Event.select(:name).uniq.pluck(:name)
- @debates_created_count = Ahoy::Event.where(name: 'debate_created').count
end
private
diff --git a/app/jobs/stats_job.rb b/app/jobs/stats_job.rb
deleted file mode 100644
index 14e530bc5..000000000
--- a/app/jobs/stats_job.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-class StatsJob < ActiveJob::Base
- queue_as :default
-
- def perform(*args)
- end
-end
diff --git a/app/models/debate.rb b/app/models/debate.rb
index f3443dc2e..4dfb7b51f 100644
--- a/app/models/debate.rb
+++ b/app/models/debate.rb
@@ -34,6 +34,9 @@ class Debate < ActiveRecord::Base
scope :sort_by_most_commented, -> { order(comments_count: :desc) }
scope :sort_by_random, -> { order("RANDOM()") }
+ # Ahoy setup
+ visitable # Ahoy will automatically assign visit_id on create
+
def likes
cached_votes_up
end
diff --git a/app/views/stats/show.html.erb b/app/views/stats/show.html.erb
index ff6765318..f5df82b98 100644
--- a/app/views/stats/show.html.erb
+++ b/app/views/stats/show.html.erb
@@ -4,7 +4,7 @@
Stats
-
Visits (<%= Visit.count %>)
+ Visits
<%= visits_chart_tag id: "visits" %>
@@ -15,7 +15,7 @@
<% @event_types.each do |event_type| %>
-
<%= event_type.titleize %> (<%= @debates_created_count %>)
+ <%= event_type.titleize %>
<%= events_chart_tag event_type %>
<% end %>
diff --git a/config/initializers/ahoy.rb b/config/initializers/ahoy.rb
index 378b21eb1..9a1215c68 100644
--- a/config/initializers/ahoy.rb
+++ b/config/initializers/ahoy.rb
@@ -1,11 +1,9 @@
class Ahoy::Store < Ahoy::Stores::ActiveRecordStore
- def track_visit(options)
- StatsJob.perform_later(super, name: "visit")
- end
-
# Track user IP
def track_event(name, properties, options)
- StatsJob.perform_later(super { |event| event.ip = request.ip }, name: "event")
+ super do |event|
+ event.ip = request.ip
+ end
end
-end
\ No newline at end of file
+end
diff --git a/spec/controllers/debates_controller_spec.rb b/spec/controllers/debates_controller_spec.rb
index 23c49bcf2..f87635a6b 100644
--- a/spec/controllers/debates_controller_spec.rb
+++ b/spec/controllers/debates_controller_spec.rb
@@ -11,30 +11,6 @@ describe DebatesController do
SimpleCaptcha.always_pass = @original_captcha_pass_value
end
- describe 'GET show' do
- it 'should create an ahoy visit' do
- debate = create(:debate)
- sign_in create(:user)
-
- get :show, id: debate.id
-
- expect(Visit.count).to eq 1
- expect(Visit.first.landing_page).to eq debate_url(debate)
- end
- end
-
- describe 'GET index' do
- it 'should create an ahoy visit' do
- debate = create(:debate)
- sign_in create(:user)
-
- get :index
-
- expect(Visit.count).to eq 1
- expect(Visit.first.landing_page).to eq debates_url
- end
- end
-
describe 'POST create' do
it 'should create an ahoy event' do
diff --git a/spec/features/active_jobs_spec.rb b/spec/features/active_jobs_spec.rb
deleted file mode 100644
index bfb289641..000000000
--- a/spec/features/active_jobs_spec.rb
+++ /dev/null
@@ -1,45 +0,0 @@
-require 'rails_helper'
-
-feature 'ActiveJob' do
- include ActiveJob::TestHelper
-
- let(:admin) { create(:administrator) }
-
- scenario 'use queue to track visits' do
- debate = create(:debate)
-
- visit debate_path(debate)
-
- expect(enqueued_jobs.size).to eq(1)
- perform_enqueued_jobs { StatsJob.perform_now(enqueued_jobs.first) }
-
- login_as(admin.user)
- visit stats_path
-
- expect(page).to have_content 'Visits (1)'
- end
-
- scenario "use queue to track new debates" do
- user = create(:user)
-
- login_as(user)
- visit new_debate_path
-
- create_a_debate
-
- expect(enqueued_jobs.size).to eq(2)
-
- expect(enqueued_jobs.first[:args][1]["name"]).to eq("event")
- expect(enqueued_jobs.last[:args][1]["name"]).to eq("visit")
-
- perform_enqueued_jobs do
- enqueued_jobs.each { |job| StatsJob.perform_now(job) }
- end
-
- login_as(admin.user)
- visit stats_path
-
- expect(page).to have_content 'Debate Created (1)'
- end
-
-end
\ No newline at end of file
diff --git a/spec/support/common_actions.rb b/spec/support/common_actions.rb
index 407c8292d..4753abbbb 100644
--- a/spec/support/common_actions.rb
+++ b/spec/support/common_actions.rb
@@ -34,17 +34,6 @@ module CommonActions
click_button 'Send me reset password instructions'
end
- def create_a_debate
- fill_in 'debate_title', with: 'Acabar con los desahucios'
- fill_in 'debate_description', with: 'Esto es un tema muy importante porque...'
- fill_in 'debate_captcha', with: correct_captcha_text
- check 'debate_terms_of_service'
-
- click_button 'Start a debate'
-
- expect(page).to have_content 'Debate was successfully created.'
- end
-
def comment_on(debate)
user = create(:user)