diff --git a/.travis.yml b/.travis.yml index 0e6e8755..e029b7a2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: ruby rvm: - - "2.1.0" + - "2.1.1" addons: postgresql: "9.3" before_script: diff --git a/models/event.rb b/models/event.rb index 3b4f4915..1ff42a3b 100644 --- a/models/event.rb +++ b/models/event.rb @@ -2,13 +2,15 @@ class Event < Sequel::Model include Sequel::ParanoidDelete many_to_one :site - one_to_one :follow + many_to_one :follow one_to_one :tip one_to_one :tag one_to_one :site_change many_to_one :profile_comment one_to_many :likes one_to_many :comments + many_to_one :site + many_to_one :actioning_site, key: :actioning_site_id, class: :Site def created_by?(site) return true if profile_comment && profile_comment.actioning_site_id == site.id @@ -44,4 +46,4 @@ class Event < Sequel::Model true end end -end \ No newline at end of file +end diff --git a/models/follow.rb b/models/follow.rb index 5c89ec8c..e96290c7 100644 --- a/models/follow.rb +++ b/models/follow.rb @@ -1,4 +1,5 @@ class Follow < Sequel::Model many_to_one :site many_to_one :actioning_site, :class => :Site -end \ No newline at end of file + one_to_one :event +end diff --git a/models/profile_comment.rb b/models/profile_comment.rb index 6a0d6902..03a5d84f 100644 --- a/models/profile_comment.rb +++ b/models/profile_comment.rb @@ -4,6 +4,6 @@ class ProfileComment < Sequel::Model many_to_one :actioning_site, :class => :Site def after_create - self.event = Event.create site_id: site.id + self.event = Event.create site_id: site.id, actioning_site_id: actioning_site.id end -end \ No newline at end of file +end diff --git a/models/site.rb b/models/site.rb index f2e02a92..9f0d80c5 100644 --- a/models/site.rb +++ b/models/site.rb @@ -105,10 +105,16 @@ class Site < Sequel::Model def toggle_follow(site) if is_following? site - followings_dataset.filter(site_id: site.id).delete + follow = followings_dataset.filter(site_id: site.id).first + site.events_dataset.filter(follow_id: follow.id).delete + follow.delete false else - add_following site_id: site.id + DB.transaction do + follow = add_following site_id: site.id + Event.create site_id: site.id, actioning_site_id: self.id, follow_id: follow.id + end + true end end diff --git a/views/_news.erb b/views/_news.erb index b90da7d0..53810238 100644 --- a/views/_news.erb +++ b/views/_news.erb @@ -9,6 +9,12 @@ <% if event.profile_comment_id %>
<%= comment.message %>