Commit a6d54e0600e0a5f4d1e100267a9f2e8fbe6c0cd5

Authored by Arthur Esposte
1 parent 80473b34

Close #724. Fix event filter for software event block.

src/noosfero-spb/software_communities/lib/software_events_block.rb
@@ -28,8 +28,8 @@ class SoftwareEventsBlock < Block @@ -28,8 +28,8 @@ class SoftwareEventsBlock < Block
28 end 28 end
29 29
30 def get_events 30 def get_events
31 - today = DateTime.now.beginning_of_day  
32 - self.owner.events.where("end_date >= ?", today).order(:start_date) 31 + yesterday = DateTime.yesterday.end_of_day
  32 + self.owner.events.where("end_date > ? OR end_date IS NULL", yesterday).order(:start_date)
33 end 33 end
34 34
35 def get_events_except event_slug="" 35 def get_events_except event_slug=""
src/noosfero-spb/software_communities/test/unit/software_events_block_test.rb
@@ -23,9 +23,17 @@ class SoftwareEventsBlockTest < ActiveSupport::TestCase @@ -23,9 +23,17 @@ class SoftwareEventsBlockTest < ActiveSupport::TestCase
23 @e3 = Event.new :name=>"Event 3", :body=>"Event 3 body", 23 @e3 = Event.new :name=>"Event 3", :body=>"Event 3 body",
24 :start_date=>(DateTime.now - 20.days), :end_date=>(DateTime.now - 10.days) 24 :start_date=>(DateTime.now - 20.days), :end_date=>(DateTime.now - 10.days)
25 25
  26 + @e4 = Event.new :name=>"Event 4", :body=>"Event 4 body",
  27 + :start_date=>(DateTime.now), :end_date=>(DateTime.now)
  28 +
  29 + @e5 = Event.new :name=>"Event 5", :body=>"Event 5 body",
  30 + :start_date=>(DateTime.now - 5.days)
  31 +
26 @community.events << @e1 32 @community.events << @e1
27 @community.events << @e2 33 @community.events << @e2
28 @community.events << @e3 34 @community.events << @e3
  35 + @community.events << @e4
  36 + @community.events << @e5
29 @community.save! 37 @community.save!
30 end 38 end
31 39
@@ -33,10 +41,17 @@ class SoftwareEventsBlockTest &lt; ActiveSupport::TestCase @@ -33,10 +41,17 @@ class SoftwareEventsBlockTest &lt; ActiveSupport::TestCase
33 events = @software_events_block.get_events 41 events = @software_events_block.get_events
34 42
35 assert_equal false, events.include?(@e3) 43 assert_equal false, events.include?(@e3)
  44 + assert_equal true, events.include?(@e4)
36 assert_equal @e2, events.first 45 assert_equal @e2, events.first
37 assert_equal @e1, events.last 46 assert_equal @e1, events.last
38 end 47 end
39 48
  49 + should "include community events that have no end date" do
  50 + events = @software_events_block.get_events
  51 +
  52 + assert_equal true, events.include?(@e5)
  53 + end
  54 +
40 should "give community events except by a event with a given slug" do 55 should "give community events except by a event with a given slug" do
41 events = @software_events_block.get_events_except(@e1.slug) 56 events = @software_events_block.get_events_except(@e1.slug)
42 57