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)