Commit 6228c23b5101c142f0e2f77452c45b6f97bb39f3
Exists in
master
and in
29 other branches
Merge remote-tracking branch 'origin/rails3'
Showing
11 changed files
with
46 additions
and
14 deletions
Show diff stats
app/controllers/public/content_viewer_controller.rb
@@ -31,8 +31,8 @@ class ContentViewerController < ApplicationController | @@ -31,8 +31,8 @@ class ContentViewerController < ApplicationController | ||
31 | 31 | ||
32 | if request.post? && @page.forum? | 32 | if request.post? && @page.forum? |
33 | process_forum_terms_of_use(user, params[:terms_accepted]) | 33 | process_forum_terms_of_use(user, params[:terms_accepted]) |
34 | - elsif is_a_forum_topic?(@page) | ||
35 | - redirect_to @page.parent.url unless @page.parent.agrees_with_terms?(user) | 34 | + elsif is_a_forum_topic?(@page) && !@page.parent.agrees_with_terms?(user) |
35 | + redirect_to @page.parent.url | ||
36 | return | 36 | return |
37 | end | 37 | end |
38 | 38 |
app/helpers/application_helper.rb
@@ -671,7 +671,7 @@ module ApplicationHelper | @@ -671,7 +671,7 @@ module ApplicationHelper | ||
671 | 671 | ||
672 | def theme_javascript_ng | 672 | def theme_javascript_ng |
673 | script = File.join(theme_path, 'theme.js') | 673 | script = File.join(theme_path, 'theme.js') |
674 | - if File.join(Rails.root, 'public', script) | 674 | + if File.exists?(File.join(Rails.root, 'public', script)) |
675 | javascript_include_tag script | 675 | javascript_include_tag script |
676 | else | 676 | else |
677 | nil | 677 | nil |
app/models/article.rb
@@ -2,7 +2,7 @@ require 'hpricot' | @@ -2,7 +2,7 @@ require 'hpricot' | ||
2 | 2 | ||
3 | class Article < ActiveRecord::Base | 3 | class Article < ActiveRecord::Base |
4 | 4 | ||
5 | - attr_accessible :name, :body, :abstract, :profile, :tag_list, :parent, :allow_members_to_edit, :translation_of_id, :language, :license_id, :parent_id, :display_posts_in_current_language, :category_ids, :posts_per_page, :moderate_comments, :accept_comments, :feed, :published, :source, :highlighted, :notify_comments, :display_hits, :slug, :external_feed_builder, :display_versions, :external_link | 5 | + attr_accessible :name, :body, :abstract, :profile, :tag_list, :parent, :allow_members_to_edit, :translation_of_id, :language, :license_id, :parent_id, :display_posts_in_current_language, :category_ids, :posts_per_page, :moderate_comments, :accept_comments, :feed, :published, :source, :highlighted, :notify_comments, :display_hits, :slug, :external_feed_builder, :display_versions, :external_link, :image_builder |
6 | 6 | ||
7 | acts_as_having_image | 7 | acts_as_having_image |
8 | 8 |
app/models/person_notifier.rb
@@ -82,7 +82,7 @@ class PersonNotifier | @@ -82,7 +82,7 @@ class PersonNotifier | ||
82 | @url = @profile.environment.top_url | 82 | @url = @profile.environment.top_url |
83 | mail( | 83 | mail( |
84 | content_type: "text/html", | 84 | content_type: "text/html", |
85 | - from: "#{@profile.environment.name} <#{@profile.environment.contact_email}>", | 85 | + from: "#{@profile.environment.name} <#{@profile.environment.noreply_email}>", |
86 | to: @profile.email, | 86 | to: @profile.email, |
87 | subject: _("[%s] Network Activity") % [@profile.environment.name] | 87 | subject: _("[%s] Network Activity") % [@profile.environment.name] |
88 | ) | 88 | ) |
@@ -0,0 +1,30 @@ | @@ -0,0 +1,30 @@ | ||
1 | +class FixYamlEncoding < ActiveRecord::Migration | ||
2 | + def self.up | ||
3 | + fix_encoding(Block, 'settings') | ||
4 | + fix_encoding(Product, 'data') | ||
5 | + fix_encoding(Environment, 'settings') | ||
6 | + fix_encoding(Profile, 'data') | ||
7 | + fix_encoding(ActionTracker::Record, 'params') | ||
8 | + fix_encoding(Article, 'setting') | ||
9 | + end | ||
10 | + | ||
11 | + def self.down | ||
12 | + puts "Warning: cannot restore original encoding" | ||
13 | + end | ||
14 | + | ||
15 | + private | ||
16 | + | ||
17 | + def self.fix_encoding(model, param) | ||
18 | + result = model.find(:all, :conditions => "#{param} LIKE '%!binary%'") | ||
19 | + puts "Fixing #{result.count} rows of #{model} (#{param})" | ||
20 | + result.each {|r| r.update_column(param, deep_fix(r.send(param)).to_yaml)} | ||
21 | + end | ||
22 | + | ||
23 | + def self.deep_fix(hash) | ||
24 | + hash.each do |value| | ||
25 | + value.force_encoding('UTF-8') if value.is_a?(String) && !value.frozen? && value.encoding == Encoding::ASCII_8BIT | ||
26 | + deep_fix(value) if value.respond_to?(:each) | ||
27 | + end | ||
28 | + end | ||
29 | + | ||
30 | +end |
features/manage_users.feature
@@ -15,7 +15,7 @@ Background: | @@ -15,7 +15,7 @@ Background: | ||
15 | Scenario: deactive user | 15 | Scenario: deactive user |
16 | When I follow "Deactivate user" within "tr[title='Joao Silva']" | 16 | When I follow "Deactivate user" within "tr[title='Joao Silva']" |
17 | And I confirm the "Do you want to deactivate this user?" dialog | 17 | And I confirm the "Do you want to deactivate this user?" dialog |
18 | - Then I should see "Activate user" within "tr[title='Joao Silva']" | 18 | + Then the "tr[title='Joao Silva'] td.actions a.icon-activate-user" button should be enabled |
19 | 19 | ||
20 | @selenium | 20 | @selenium |
21 | Scenario: activate user | 21 | Scenario: activate user |
@@ -23,7 +23,7 @@ Background: | @@ -23,7 +23,7 @@ Background: | ||
23 | Given I confirm the "Do you want to deactivate this user?" dialog | 23 | Given I confirm the "Do you want to deactivate this user?" dialog |
24 | When I follow "Activate user" within "tr[title='Paulo Santos']" | 24 | When I follow "Activate user" within "tr[title='Paulo Santos']" |
25 | And I confirm the "Do you want to activate this user?" dialog | 25 | And I confirm the "Do you want to activate this user?" dialog |
26 | - Then I should see "Deactivate user" within "tr[title='Paulo Santos']" | 26 | + Then the "tr[title='Paulo Santos'] td.actions a.icon-deactivate-user" button should be enabled |
27 | 27 | ||
28 | @selenium | 28 | @selenium |
29 | Scenario: remove user | 29 | Scenario: remove user |
@@ -36,7 +36,7 @@ Background: | @@ -36,7 +36,7 @@ Background: | ||
36 | Scenario: admin user | 36 | Scenario: admin user |
37 | When I follow "Set admin role" within "tr[title='Joao Silva']" | 37 | When I follow "Set admin role" within "tr[title='Joao Silva']" |
38 | And I confirm the "Do you want to set this user as administrator?" dialog | 38 | And I confirm the "Do you want to set this user as administrator?" dialog |
39 | - Then I should see "Reset admin role" within "tr[title='Joao Silva']" | 39 | + Then the "tr[title='Joao Silva'] td.actions a.icon-reset-admin-role" button should be enabled |
40 | 40 | ||
41 | @selenium | 41 | @selenium |
42 | Scenario: unadmin user | 42 | Scenario: unadmin user |
@@ -44,4 +44,4 @@ Background: | @@ -44,4 +44,4 @@ Background: | ||
44 | And I confirm the "Do you want to set this user as administrator?" dialog | 44 | And I confirm the "Do you want to set this user as administrator?" dialog |
45 | When I follow "Reset admin role" within "tr[title='Paulo Santos']" | 45 | When I follow "Reset admin role" within "tr[title='Paulo Santos']" |
46 | And I confirm the "Do you want to reset this user as administrator?" dialog | 46 | And I confirm the "Do you want to reset this user as administrator?" dialog |
47 | - Then I should see "Set admin role" within "tr[title='Paulo Santos']" | 47 | + Then the "tr[title='Paulo Santos'] td.actions a.icon-set-admin-role" button should be enabled |
features/support/selenium.rb
@@ -10,7 +10,7 @@ end | @@ -10,7 +10,7 @@ end | ||
10 | 10 | ||
11 | # FIXME: 'DELETE FROM ...' is being ran 3x - see cucumber.log | 11 | # FIXME: 'DELETE FROM ...' is being ran 3x - see cucumber.log |
12 | DatabaseCleaner.clean_with :truncation | 12 | DatabaseCleaner.clean_with :truncation |
13 | -DatabaseCleaner.strategy = :truncation | 13 | +DatabaseCleaner.strategy = :truncation, {:pre_count => true, :reset_ids => false} |
14 | 14 | ||
15 | Before do | 15 | Before do |
16 | DatabaseCleaner.start | 16 | DatabaseCleaner.start |
lib/noosfero/plugin/routes.rb
@@ -24,7 +24,7 @@ Dir.glob(Rails.root.join(plugins_root, '*', 'controllers')) do |controllers_dir| | @@ -24,7 +24,7 @@ Dir.glob(Rails.root.join(plugins_root, '*', 'controllers')) do |controllers_dir| | ||
24 | end | 24 | end |
25 | 25 | ||
26 | match 'plugin/' + plugin_name + '(/:action(/:id))', :controller => plugin_name + '_plugin' | 26 | match 'plugin/' + plugin_name + '(/:action(/:id))', :controller => plugin_name + '_plugin' |
27 | - match 'profile/:profile/plugin/' + plugin_name + '(/:action(/:id))', :controller => plugin_name + '_plugin_profile' | ||
28 | - match 'myprofile/:profile/plugin/' + plugin_name + '(/:action(/:id))', :controller => plugin_name + '_plugin_myprofile' | 27 | + match 'profile/:profile/plugin/' + plugin_name + '(/:action(/:id))', :controller => plugin_name + '_plugin_profile', :profile => /#{Noosfero.identifier_format}/ |
28 | + match 'myprofile/:profile/plugin/' + plugin_name + '(/:action(/:id))', :controller => plugin_name + '_plugin_myprofile', :profile => /#{Noosfero.identifier_format}/ | ||
29 | match 'admin/plugin/' + plugin_name + '(/:action(/:id))', :controller => plugin_name + '_plugin_admin' | 29 | match 'admin/plugin/' + plugin_name + '(/:action(/:id))', :controller => plugin_name + '_plugin_admin' |
30 | end | 30 | end |
plugins/display_content/lib/display_content_block.rb
@@ -120,7 +120,7 @@ class DisplayContentBlock < Block | @@ -120,7 +120,7 @@ class DisplayContentBlock < Block | ||
120 | nodes_conditions = nodes.blank? ? '' : " AND articles.id IN(:nodes) " | 120 | nodes_conditions = nodes.blank? ? '' : " AND articles.id IN(:nodes) " |
121 | nodes_conditions += ' OR articles.parent_id IN(:nodes) ' if !nodes.blank? && display_folder_children | 121 | nodes_conditions += ' OR articles.parent_id IN(:nodes) ' if !nodes.blank? && display_folder_children |
122 | 122 | ||
123 | - docs = owner.articles.find(:all, :conditions => ["articles.type IN(:types) #{nodes.blank? ? '' : nodes_conditions}", {:nodes => self.nodes, :types => self.types}], :include => :profile) | 123 | + docs = owner.articles.find(:all, :conditions => ["articles.type IN(:types) #{nodes.blank? ? '' : nodes_conditions}", {:nodes => self.nodes, :types => self.types}], :include => [:profile, :image, :tags]) |
124 | proc do | 124 | proc do |
125 | block.block_title(block.title) + | 125 | block.block_title(block.title) + |
126 | content_tag('ul', docs.map {|item| | 126 | content_tag('ul', docs.map {|item| |
plugins/relevant_content/lib/relevant_content_plugin/relevant_content_block.rb
@@ -18,6 +18,8 @@ class RelevantContentPlugin::RelevantContentBlock < Block | @@ -18,6 +18,8 @@ class RelevantContentPlugin::RelevantContentBlock < Block | ||
18 | settings_items :show_most_disliked, :type => :boolean, :default => 0 | 18 | settings_items :show_most_disliked, :type => :boolean, :default => 0 |
19 | settings_items :show_most_voted, :type => :boolean, :default => 1 | 19 | settings_items :show_most_voted, :type => :boolean, :default => 1 |
20 | 20 | ||
21 | + attr_accessible :limit, :show_most_voted, :show_most_disliked, :show_most_liked, :show_most_commented, :show_most_read | ||
22 | + | ||
21 | include ActionView::Helpers | 23 | include ActionView::Helpers |
22 | include Rails.application.routes.url_helpers | 24 | include Rails.application.routes.url_helpers |
23 | 25 |
test/unit/external_feed_test.rb
@@ -142,7 +142,7 @@ class ExternalFeedTest < ActiveSupport::TestCase | @@ -142,7 +142,7 @@ class ExternalFeedTest < ActiveSupport::TestCase | ||
142 | should 'save hour when feed was fetched' do | 142 | should 'save hour when feed was fetched' do |
143 | external_feed = create(:external_feed) | 143 | external_feed = create(:external_feed) |
144 | 144 | ||
145 | - now = Time.parse('2009-01-23 09:35') | 145 | + now = Time.zone.parse('2009-01-23 09:35') |
146 | Time.stubs(:now).returns(now) | 146 | Time.stubs(:now).returns(now) |
147 | 147 | ||
148 | external_feed.finish_fetch | 148 | external_feed.finish_fetch |