Commit af25f7a4ec4269ab53804a99c1e7ff60d5fa6a93
1 parent
37e8561e
Exists in
master
and in
21 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> |