Commit af25f7a4ec4269ab53804a99c1e7ff60d5fa6a93
1 parent
37e8561e
Exists in
master
and in
27 other branches
[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
Showing
6 changed files
with
55 additions
and
47 deletions
Show diff stats
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 < ActionController::TestCase | @@ -42,17 +42,17 @@ class HomeControllerTest < 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 < ActiveSupport::TestCase | @@ -19,7 +19,7 @@ class EventPlugin::EventBlockTest < 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 < ActiveSupport::TestCase | @@ -78,9 +78,7 @@ class EventPlugin::EventBlockTest < 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 < ActiveSupport::TestCase | @@ -88,13 +86,15 @@ class EventPlugin::EventBlockTest < 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> |