Commit af25f7a4ec4269ab53804a99c1e7ff60d5fa6a93

Authored by Daniela Feitosa
1 parent 37e8561e

[event_plugin] displaying profile events

Also:
- By default, list only future events
- Replacing strings describing the number of days left/past to the event
- Removed br tags and added margin on elements from edit block view
- Only display option "Show all environment events" if there's another option
- Fixed tests

See merge request !400
plugins/event/lib/event_plugin/event_block.rb
@@ -5,7 +5,7 @@ class EventPlugin::EventBlock < Block @@ -5,7 +5,7 @@ class EventPlugin::EventBlock < Block
5 5
6 settings_items :all_env_events, :type => :boolean, :default => false 6 settings_items :all_env_events, :type => :boolean, :default => false
7 settings_items :limit, :type => :integer, :default => 4 7 settings_items :limit, :type => :integer, :default => 4
8 - settings_items :future_only, :type => :boolean, :default => false 8 + settings_items :future_only, :type => :boolean, :default => true
9 settings_items :date_distance_limit, :type => :integer, :default => 0 9 settings_items :date_distance_limit, :type => :integer, :default => 0
10 10
11 def self.description 11 def self.description
@@ -17,15 +17,12 @@ class EventPlugin::EventBlock < Block @@ -17,15 +17,12 @@ class EventPlugin::EventBlock < Block
17 end 17 end
18 18
19 def events_source 19 def events_source
20 - unless all_env_events  
21 - if self.owner.kind_of? Environment  
22 - return self.owner  
23 - elsif environment.portal_community  
24 - return environment.portal_community  
25 - end 20 + return environment if all_env_events
  21 + if self.owner.kind_of? Environment
  22 + environment.portal_community ? environment.portal_community : environment
  23 + else
  24 + self.owner
26 end 25 end
27 -  
28 - environment  
29 end 26 end
30 27
31 def events(user = nil) 28 def events(user = nil)
@@ -65,15 +62,15 @@ class EventPlugin::EventBlock < Block @@ -65,15 +62,15 @@ class EventPlugin::EventBlock < Block
65 def human_time_left(days_left) 62 def human_time_left(days_left)
66 months_left = (days_left/30.0).round 63 months_left = (days_left/30.0).round
67 if days_left <= -60 64 if days_left <= -60
68 - n_('Started one month ago.', 'Started %d months ago.', -months_left) % -months_left 65 + n_('One month ago', '%d months ago', -months_left) % -months_left
69 elsif days_left < 0 66 elsif days_left < 0
70 - n_('Started one day ago.', 'Started %d days ago.', -days_left) % -days_left 67 + n_('Yesterday', '%d days ago', -days_left) % -days_left
71 elsif days_left == 0 68 elsif days_left == 0
72 - _("I happens today.") 69 + _("Today")
73 elsif days_left < 60 70 elsif days_left < 60
74 - n_('One day left to start.', '%d days left to start.', days_left) % days_left 71 + n_('Tomorrow', '%d days left to start', days_left) % days_left
75 else 72 else
76 - n_('One month left to start.', '%d months left to start.', months_left) % months_left 73 + n_('One month left to start', '%d months left to start', months_left) % months_left
77 end 74 end
78 end 75 end
79 76
plugins/event/public/style.css
@@ -119,6 +119,11 @@ @@ -119,6 +119,11 @@
119 background: #D4D4D4; 119 background: #D4D4D4;
120 } 120 }
121 121
  122 +.event-plugin_event-block .event .week-day,
  123 +.event-plugin_event-block .event .year {
  124 + display: none;
  125 +}
  126 +
122 .event-plugin_event-block .event .duration { 127 .event-plugin_event-block .event .duration {
123 display: block; 128 display: block;
124 } 129 }
@@ -184,3 +189,8 @@ @@ -184,3 +189,8 @@
184 .msie8 #content .event-plugin_event-block .event .days-left { 189 .msie8 #content .event-plugin_event-block .event .days-left {
185 float: left; 190 float: left;
186 } 191 }
  192 +
  193 +.event-plugin-config-tip {
  194 + display: block;
  195 + margin-bottom: 3px;
  196 +}
plugins/event/test/functional/event_block_test.rb
@@ -42,17 +42,17 @@ class HomeControllerTest &lt; ActionController::TestCase @@ -42,17 +42,17 @@ class HomeControllerTest &lt; ActionController::TestCase
42 should 'see event duration' do 42 should 'see event duration' do
43 @e1a.slug = 'event1a' 43 @e1a.slug = 'event1a'
44 @e1a.start_date = Date.today 44 @e1a.start_date = Date.today
45 - @e1a.end_date = Date.tomorrow 45 + @e1a.end_date = Date.today + 1.day
46 @e1a.save! 46 @e1a.save!
47 get :index 47 get :index
48 - assert_select ev + 'time.duration[itemprop="endDate"]', '+1 day' 48 + assert_select ev + 'time.duration[itemprop="endDate"]', /1 day/
49 49
50 @e1a.slug = 'event1a' 50 @e1a.slug = 'event1a'
51 @e1a.start_date = Date.today 51 @e1a.start_date = Date.today
52 - @e1a.end_date = Date.tomorrow+1 52 + @e1a.end_date = Date.today + 2.day
53 @e1a.save! 53 @e1a.save!
54 get :index 54 get :index
55 - assert_select ev + 'time.duration[itemprop="endDate"]', '+2 days' 55 + assert_select ev + 'time.duration[itemprop="endDate"]', /2 days/
56 end 56 end
57 57
58 should 'not see event duration for one day events' do 58 should 'not see event duration for one day events' do
plugins/event/test/unit/event_block_test.rb
@@ -19,7 +19,7 @@ class EventPlugin::EventBlockTest &lt; ActiveSupport::TestCase @@ -19,7 +19,7 @@ class EventPlugin::EventBlockTest &lt; ActiveSupport::TestCase
19 :start_date => Date.today-30) 19 :start_date => Date.today-30)
20 20
21 box = fast_create(Box, :owner_id => @p1) 21 box = fast_create(Box, :owner_id => @p1)
22 - @block = EventPlugin::EventBlock.new(:limit => 99, :box => box) 22 + @block = EventPlugin::EventBlock.new(:limit => 99, :future_only => false, :box => box)
23 end 23 end
24 24
25 def set_portal(env, portal) 25 def set_portal(env, portal)
@@ -78,9 +78,7 @@ class EventPlugin::EventBlockTest &lt; ActiveSupport::TestCase @@ -78,9 +78,7 @@ class EventPlugin::EventBlockTest &lt; ActiveSupport::TestCase
78 end 78 end
79 79
80 should 'say human left time for an event' do 80 should 'say human left time for an event' do
81 - one_day = @block.human_time_left(Date.tomorrow - Date.today)  
82 -  
83 - assert_match /One day left/, one_day 81 + assert_match /Tomorrow/, @block.human_time_left(1)
84 assert_match /5 days left/, @block.human_time_left(5) 82 assert_match /5 days left/, @block.human_time_left(5)
85 assert_match /30 days left/, @block.human_time_left(30) 83 assert_match /30 days left/, @block.human_time_left(30)
86 assert_match /2 months left/, @block.human_time_left(60) 84 assert_match /2 months left/, @block.human_time_left(60)
@@ -88,13 +86,15 @@ class EventPlugin::EventBlockTest &lt; ActiveSupport::TestCase @@ -88,13 +86,15 @@ class EventPlugin::EventBlockTest &lt; ActiveSupport::TestCase
88 end 86 end
89 87
90 should 'say human past time for an event' do 88 should 'say human past time for an event' do
91 - one_day = @block.human_time_left(Date.yesterday - Date.today) 89 + assert_match /Yesterday/, @block.human_time_left(-1)
  90 + assert_match /5 days ago/, @block.human_time_left(-5)
  91 + assert_match /30 days ago/, @block.human_time_left(-30)
  92 + assert_match /2 months ago/, @block.human_time_left(-60)
  93 + assert_match /3 months ago/, @block.human_time_left(-85)
  94 + end
92 95
93 - assert_match /One day past/, one_day  
94 - assert_match /5 days past/, @block.human_time_left(-5)  
95 - assert_match /30 days past/, @block.human_time_left(-30)  
96 - assert_match /2 months past/, @block.human_time_left(-60)  
97 - assert_match /3 months past/, @block.human_time_left(-85) 96 + should 'say human present time for an event' do
  97 + assert_match /Today/, @block.human_time_left(0)
98 end 98 end
99 99
100 should 'write formatable data in html' do 100 should 'write formatable data in html' do
plugins/event/views/blocks/event.html.erb
1 <%= block_title(block.title) %> 1 <%= block_title(block.title) %>
2 2
3 <ul class="events"> 3 <ul class="events">
4 - <% block.events(@user).map do |event| %> 4 + <% block.events(user).map do |event| %>
5 <% days_left = ( event.start_date - Date.today ).round %> 5 <% days_left = ( event.start_date - Date.today ).round %>
6 <li itemscope="itemscope" itemtype="http://data-vocabulary.org/Event" class="event"> 6 <li itemscope="itemscope" itemtype="http://data-vocabulary.org/Event" class="event">
7 <%= render( 7 <%= render(
plugins/event/views/profile_design/event_plugin/_event_block.html.erb
1 <%= labelled_form_field _('Limit of items'), text_field(:block, :limit, :size => 4) %> 1 <%= labelled_form_field _('Limit of items'), text_field(:block, :limit, :size => 4) %>
2 2
3 -<%= labelled_check_box(_('Show all environment events'), "block[all_env_events]", "1", @block.all_env_events) %>  
4 -<br>  
5 -<small><%=  
6 - if @profile  
7 - if @profile.person?  
8 - _("(Don't check to show only your events)")  
9 - else  
10 - _("(Don't check to show only %s events)") % @profile.name  
11 - end  
12 - elsif environment.portal_community  
13 - _("(Don't check to show only the environment events)")  
14 - end  
15 -%></small>  
16 -<br> 3 +<% unless @block.owner.kind_of?(Environment) && !@block.owner.portal_community %>
  4 + <%= labelled_check_box(_('Show all environment events'), "block[all_env_events]", "1", @block.all_env_events) %>
17 5
18 -<%= labelled_form_field _('Limit of days to display'),  
19 - text_field(:block, :date_distance_limit, :size => 4) %>  
20 -<small>(<%=_('Only show events on this limit of days.')%>)</small>  
21 -<br><br> 6 + <small class='event-plugin-config-tip'>
  7 + <%= if @block.owner.kind_of?(Profile)
  8 + if @block.owner.person?
  9 + _("(Don't check to show only your events)")
  10 + else
  11 + _("(Don't check to show only %s events)") % @profile.name
  12 + end
  13 + elsif environment.portal_community
  14 + _("(Don't check to show only %s events)") % link_to(environment.portal_community.name, environment.portal_community.url)
  15 + end
  16 + %>
  17 + </small>
  18 +<% end %>
22 19
23 <%= labelled_check_box(_('Only show future events'), "block[future_only]", "1", @block.future_only) %> 20 <%= labelled_check_box(_('Only show future events'), "block[future_only]", "1", @block.future_only) %>
  21 +
  22 +<%= labelled_form_field _('Limit of days to display'),
  23 + text_field(:block, :date_distance_limit, :size => 4) %>
  24 +<small class='event-plugin-config-tip'>(<%=_('Only show events in this interval of days.')%>)</small>