Commit 3669188260af89c84992b5948e5fa96c89ce32d3
Exists in
master
and in
28 other branches
Merge branch 'master' into rails-2.3.5
Conflicts: debian/changelog test/unit/dates_helper_test.rb
Showing
22 changed files
with
86 additions
and
31 deletions
Show diff stats
AUTHORS
@@ -16,9 +16,11 @@ Daniel Cunha <daniel@colivre.coop.br> | @@ -16,9 +16,11 @@ Daniel Cunha <daniel@colivre.coop.br> | ||
16 | Fernanda Lopes <nanda.listas+psl@gmail.com> | 16 | Fernanda Lopes <nanda.listas+psl@gmail.com> |
17 | Grazieno Pellegrino <grazieno@gmail.com> | 17 | Grazieno Pellegrino <grazieno@gmail.com> |
18 | Italo Valcy <italo@dcc.ufba.br> | 18 | Italo Valcy <italo@dcc.ufba.br> |
19 | +João da Silva <jaodsilv@linux.ime.usp.br> | ||
19 | Joenio Costa <joenio@colivre.coop.br> | 20 | Joenio Costa <joenio@colivre.coop.br> |
20 | Josef Spillner <josef.spillner@tu-dresden.de> | 21 | Josef Spillner <josef.spillner@tu-dresden.de> |
21 | Keilla Menezes <keilla@colivre.coop.br> | 22 | Keilla Menezes <keilla@colivre.coop.br> |
23 | +Larissa Reis <reiss.larissa@gmail.com> | ||
22 | Leandro Nunes dos Santos <leandronunes@gmail.com> | 24 | Leandro Nunes dos Santos <leandronunes@gmail.com> |
23 | LinguÁgil 2010 <linguagil.bahia@gmail.com> | 25 | LinguÁgil 2010 <linguagil.bahia@gmail.com> |
24 | Martín Olivera <molivera@solar.org.ar> | 26 | Martín Olivera <molivera@solar.org.ar> |
HACKING
@@ -13,7 +13,7 @@ After installing the requirements listed in INSTALL, you need to install some | @@ -13,7 +13,7 @@ After installing the requirements listed in INSTALL, you need to install some | ||
13 | packages be able to run Noosfero tests. On Debian GNU/Linux and Debian-based | 13 | packages be able to run Noosfero tests. On Debian GNU/Linux and Debian-based |
14 | systems, you install them with the following command: | 14 | systems, you install them with the following command: |
15 | 15 | ||
16 | - # apt-get install libtidy-ruby libhpricot-ruby libmocha-ruby imagemagick po4a xvfb | 16 | + # apt-get install libtidy-ruby libhpricot-ruby libmocha-ruby imagemagick po4a xvfb libxml2-dev libxslt-dev |
17 | 17 | ||
18 | On other systems, they may or may not be available through your regular package | 18 | On other systems, they may or may not be available through your regular package |
19 | management system. Below are the links to their homepages. | 19 | management system. Below are the links to their homepages. |
@@ -24,6 +24,8 @@ management system. Below are the links to their homepages. | @@ -24,6 +24,8 @@ management system. Below are the links to their homepages. | ||
24 | * Imagemagick: http://wwwimagemagick.org/ | 24 | * Imagemagick: http://wwwimagemagick.org/ |
25 | * po4a: http://po4a.alioth.debian.org/ | 25 | * po4a: http://po4a.alioth.debian.org/ |
26 | * xvfb: http://packages.debian.org/lenny/xvfb | 26 | * xvfb: http://packages.debian.org/lenny/xvfb |
27 | +* Libxml2: http://xmlsoft.org/ | ||
28 | +* Libxslt: http://xmlsoft.org/xslt | ||
27 | 29 | ||
28 | == Boostraping a development/test environment | 30 | == Boostraping a development/test environment |
29 | 31 | ||
@@ -46,6 +48,9 @@ commands and make sure you understand what you are doing): | @@ -46,6 +48,9 @@ commands and make sure you understand what you are doing): | ||
46 | rake makemo | 48 | rake makemo |
47 | # create some test data: | 49 | # create some test data: |
48 | ./script/sample-data | 50 | ./script/sample-data |
51 | + # install latest requirements for running tests | ||
52 | + RAILS_ENV=cucumber rake gems:install | ||
53 | + RAILS_ENV=test rake gems:install | ||
49 | # run the automated test suite to make sure your environment is sane: | 54 | # run the automated test suite to make sure your environment is sane: |
50 | rake test | 55 | rake test |
51 | 56 |
app/models/organization.rb
@@ -157,4 +157,8 @@ class Organization < Profile | @@ -157,4 +157,8 @@ class Organization < Profile | ||
157 | members_by_role(role).map { |member| {:id => member.id, :name => member.name} }.to_json | 157 | members_by_role(role).map { |member| {:id => member.id, :name => member.name} }.to_json |
158 | end | 158 | end |
159 | 159 | ||
160 | + def disable | ||
161 | + self.visible = false | ||
162 | + save! | ||
163 | + end | ||
160 | end | 164 | end |
app/models/person.rb
@@ -406,6 +406,14 @@ class Person < Profile | @@ -406,6 +406,14 @@ class Person < Profile | ||
406 | {:title => _('Profile Info and settings'), :icon => 'edit-profile'} | 406 | {:title => _('Profile Info and settings'), :icon => 'edit-profile'} |
407 | end | 407 | end |
408 | 408 | ||
409 | + def disable | ||
410 | + self.visible = false | ||
411 | + user.password = Digest::SHA1.hexdigest("--#{Time.now.to_s}--#{identifier}--") | ||
412 | + user.password_confirmation = user.password | ||
413 | + save! | ||
414 | + user.save! | ||
415 | + end | ||
416 | + | ||
409 | protected | 417 | protected |
410 | 418 | ||
411 | def followed_by?(profile) | 419 | def followed_by?(profile) |
app/models/profile.rb
@@ -806,11 +806,6 @@ private :generate_url, :url_options | @@ -806,11 +806,6 @@ private :generate_url, :url_options | ||
806 | end | 806 | end |
807 | 807 | ||
808 | def disable | 808 | def disable |
809 | - self.visible = false | ||
810 | - user.password = Digest::SHA1.hexdigest("--#{Time.now.to_s}--#{identifier}--") | ||
811 | - user.password_confirmation = user.password | ||
812 | - save! | ||
813 | - user.save! | ||
814 | end | 809 | end |
815 | 810 | ||
816 | def control_panel_settings_button | 811 | def control_panel_settings_button |
app/views/blocks/profile_info_actions/community.rhtml
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | <% if logged_in? %> | 2 | <% if logged_in? %> |
3 | <% if profile.members.include?(user) %> | 3 | <% if profile.members.include?(user) %> |
4 | <li> | 4 | <li> |
5 | - <%= button(:delete, content_tag('span', __('Leave')), profile.leave_url, | 5 | + <%= button(:delete, content_tag('span', __('Leave community')), profile.leave_url, |
6 | :class => 'leave-community', | 6 | :class => 'leave-community', |
7 | :title => _("Leave community"), | 7 | :title => _("Leave community"), |
8 | :style => 'position: relative;') %> | 8 | :style => 'position: relative;') %> |
@@ -14,7 +14,7 @@ | @@ -14,7 +14,7 @@ | ||
14 | <% else %> | 14 | <% else %> |
15 | <% unless profile.already_request_membership?(user) %> | 15 | <% unless profile.already_request_membership?(user) %> |
16 | <li> | 16 | <li> |
17 | - <%= button(:delete, content_tag('span', __('Leave')), profile.leave_url, | 17 | + <%= button(:delete, content_tag('span', __('Leave community')), profile.leave_url, |
18 | :class => 'leave-community', | 18 | :class => 'leave-community', |
19 | :title => _("Leave community"), | 19 | :title => _("Leave community"), |
20 | :style => 'position: relative; display: none;') %> | 20 | :style => 'position: relative; display: none;') %> |
app/views/profile/_organization_profile.rhtml
@@ -15,7 +15,7 @@ | @@ -15,7 +15,7 @@ | ||
15 | <%= display_field(_('Location:'), profile, :location, true) %> | 15 | <%= display_field(_('Location:'), profile, :location, true) %> |
16 | 16 | ||
17 | <tr> | 17 | <tr> |
18 | - <td class='field-name'><%= _('Created at:') %></td> | 18 | + <td class='field-name'><%= _('Profile created at:') %></td> |
19 | <td><%= show_date(profile.created_at) %></td> | 19 | <td><%= show_date(profile.created_at) %></td> |
20 | </tr> | 20 | </tr> |
21 | 21 |
app/views/profile/_person_profile.rhtml
@@ -9,7 +9,7 @@ | @@ -9,7 +9,7 @@ | ||
9 | <%= display_field(_('Type:'), profile, :privacy_setting, true) %> | 9 | <%= display_field(_('Type:'), profile, :privacy_setting, true) %> |
10 | 10 | ||
11 | <tr> | 11 | <tr> |
12 | - <td class='field-name'><%= _('Created at:') %></td> | 12 | + <td class='field-name'><%= _('Profile created at:') %></td> |
13 | <td><%= show_date(profile.created_at) %></td> | 13 | <td><%= show_date(profile.created_at) %></td> |
14 | </tr> | 14 | </tr> |
15 | 15 |
app/views/profile/_profile.rhtml
@@ -11,19 +11,14 @@ | @@ -11,19 +11,14 @@ | ||
11 | <% end %> | 11 | <% end %> |
12 | 12 | ||
13 | <% if @profile.organization? %> | 13 | <% if @profile.organization? %> |
14 | - <% if @profile.public? || (logged_in? && current_person.follows?(@profile)) %> | ||
15 | - <% tabs << {:title => _('What\'s new'), :id => 'profile-network', :content => (render :partial => 'profile_network')} %> | ||
16 | - <% end %> | 14 | + <% tabs << {:title => _('What\'s new'), :id => 'profile-network', :content => (render :partial => 'profile_network')} %> |
17 | <% tabs << {:title => _('Profile'), :id => 'organization-profile', :content => (render :partial => 'organization_profile')} %> | 15 | <% tabs << {:title => _('Profile'), :id => 'organization-profile', :content => (render :partial => 'organization_profile')} %> |
18 | <% elsif @profile.person? %> | 16 | <% elsif @profile.person? %> |
19 | <% if logged_in? && current_person.follows?(@profile) %> | 17 | <% if logged_in? && current_person.follows?(@profile) %> |
20 | <% tabs << {:title => _('Network'), :id => 'profile-network', :content => (render :partial => 'profile_network')} %> | 18 | <% tabs << {:title => _('Network'), :id => 'profile-network', :content => (render :partial => 'profile_network')} %> |
21 | <% end %> | 19 | <% end %> |
22 | 20 | ||
23 | - <% if @profile.public? || (logged_in? && current_person.follows?(@profile)) %> | ||
24 | - <% tabs << {:title => _('Activity'), :id => 'profile-activity', :content => (render :partial => 'profile_activity')} %> | ||
25 | - <% end %> | ||
26 | - | 21 | + <% tabs << {:title => _('Activity'), :id => 'profile-activity', :content => (render :partial => 'profile_activity')} %> |
27 | <% tabs << {:title => _('Profile'), :id => 'person-profile', :content => (render :partial => 'person_profile')} %> | 22 | <% tabs << {:title => _('Profile'), :id => 'person-profile', :content => (render :partial => 'person_profile')} %> |
28 | <% end %> | 23 | <% end %> |
29 | 24 |
app/views/profile/index.rhtml
@@ -15,6 +15,8 @@ | @@ -15,6 +15,8 @@ | ||
15 | </div> | 15 | </div> |
16 | <% end %> | 16 | <% end %> |
17 | 17 | ||
18 | -<table class='profile'> | ||
19 | - <%= render :partial => 'profile' %> | ||
20 | -</table> | 18 | +<% if @profile.public? || (logged_in? && current_person.follows?(@profile)) %> |
19 | + <table class='profile'> | ||
20 | + <%= render :partial => 'profile' %> | ||
21 | + </table> | ||
22 | +<% end %> |
config/environments/cucumber.rb
@@ -21,8 +21,8 @@ config.action_mailer.delivery_method = :test | @@ -21,8 +21,8 @@ config.action_mailer.delivery_method = :test | ||
21 | 21 | ||
22 | config.gem 'cucumber', :lib => false, :version => '0.4.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/cucumber')) | 22 | config.gem 'cucumber', :lib => false, :version => '0.4.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/cucumber')) |
23 | config.gem 'webrat', :lib => false, :version => '0.5.1' unless File.directory?(File.join(Rails.root, 'vendor/plugins/webrat')) | 23 | config.gem 'webrat', :lib => false, :version => '0.5.1' unless File.directory?(File.join(Rails.root, 'vendor/plugins/webrat')) |
24 | -config.gem 'rspec', :lib => 'spec', :version => '>=1.2.8' unless File.directory?(File.join(Rails.root, 'vendor/plugins/rspec')) | ||
25 | -config.gem 'rspec-rails', :lib => 'spec/rails', :version => '>=1.2.7.1' unless File.directory?(File.join(Rails.root, 'vendor/plugins/rspec-rails')) | 24 | +config.gem 'rspec', :lib => 'spec', :version => '1.2.9' unless File.directory?(File.join(Rails.root, 'vendor/plugins/rspec')) |
25 | +config.gem 'rspec-rails', :lib => 'spec/rails', :version => '1.2.9' unless File.directory?(File.join(Rails.root, 'vendor/plugins/rspec-rails')) | ||
26 | config.gem 'Selenium', :lib => 'selenium', :version => '>= 1.1.14' unless File.directory?(File.join(Rails.root, 'vendor/plugins/selenium')) | 26 | config.gem 'Selenium', :lib => 'selenium', :version => '>= 1.1.14' unless File.directory?(File.join(Rails.root, 'vendor/plugins/selenium')) |
27 | config.gem 'selenium-client', :lib => 'selenium/client', :version => '>= 1.2.17' unless File.directory?(File.join(Rails.root, 'vendor/plugins/selenium-client')) | 27 | config.gem 'selenium-client', :lib => 'selenium/client', :version => '>= 1.2.17' unless File.directory?(File.join(Rails.root, 'vendor/plugins/selenium-client')) |
28 | config.gem 'database_cleaner', :lib => 'database_cleaner' | 28 | config.gem 'database_cleaner', :lib => 'database_cleaner' |
config/environments/test.rb
@@ -20,3 +20,5 @@ config.action_controller.allow_forgery_protection = false | @@ -20,3 +20,5 @@ config.action_controller.allow_forgery_protection = false | ||
20 | # The :test delivery method accumulates sent emails in the | 20 | # The :test delivery method accumulates sent emails in the |
21 | # ActionMailer::Base.deliveries array. | 21 | # ActionMailer::Base.deliveries array. |
22 | config.action_mailer.delivery_method = :test | 22 | config.action_mailer.delivery_method = :test |
23 | + | ||
24 | +config.gem 'exception_notification', :lib => 'exception_notification', :version => '1.0.20090728' |
debian/changelog
@@ -9,6 +9,12 @@ noosfero (0.35.0~1) unstable; urgency=low | @@ -9,6 +9,12 @@ noosfero (0.35.0~1) unstable; urgency=low | ||
9 | 9 | ||
10 | -- Antonio Terceiro <terceiro@colivre.coop.br> Sun, 27 Nov 2011 14:11:33 -0200 | 10 | -- Antonio Terceiro <terceiro@colivre.coop.br> Sun, 27 Nov 2011 14:11:33 -0200 |
11 | 11 | ||
12 | +noosfero (0.34.1) unstable; urgency=low | ||
13 | + | ||
14 | + * Bugfixes version release | ||
15 | + | ||
16 | + -- Daniela Soares Feitosa <daniela@colivre.coop.br> Wed, 07 Dec 2011 00:52:59 -0200 | ||
17 | + | ||
12 | noosfero (0.34.0) unstable; urgency=low | 18 | noosfero (0.34.0) unstable; urgency=low |
13 | 19 | ||
14 | * Features version release. | 20 | * Features version release. |
features/private_profile.feature
@@ -40,3 +40,15 @@ Feature: private profiles | @@ -40,3 +40,15 @@ Feature: private profiles | ||
40 | When I am on Safernet's homepage | 40 | When I am on Safernet's homepage |
41 | Then I should see "What's new" | 41 | Then I should see "What's new" |
42 | 42 | ||
43 | + Scenario: person private profiles should not display sensible information | ||
44 | + Given I am logged in as "joao" | ||
45 | + When I go to shygirl's homepage | ||
46 | + Then I should not see "Basic information" | ||
47 | + Then I should not see "Work" | ||
48 | + Then I should not see "Enterprises" | ||
49 | + Then I should not see "Network" | ||
50 | + | ||
51 | + Scenario: community private profiles should not display sensible information | ||
52 | + Given I am logged in as "joao" | ||
53 | + When I go to Safernet's homepage | ||
54 | + Then I should not see "Basic information" |
lib/noosfero.rb
1 | module Noosfero | 1 | module Noosfero |
2 | PROJECT = 'noosfero' | 2 | PROJECT = 'noosfero' |
3 | - VERSION = '0.34.0' | 3 | + VERSION = '0.34.1' |
4 | 4 | ||
5 | def self.pattern_for_controllers_in_directory(dir) | 5 | def self.pattern_for_controllers_in_directory(dir) |
6 | disjunction = controllers_in_directory(dir).join('|') | 6 | disjunction = controllers_in_directory(dir).join('|') |
lib/tasks/gettext.rake
@@ -8,7 +8,7 @@ makemo_stamp = 'tmp/makemo.stamp' | @@ -8,7 +8,7 @@ makemo_stamp = 'tmp/makemo.stamp' | ||
8 | desc "Create mo-files for L10n" | 8 | desc "Create mo-files for L10n" |
9 | task :makemo => makemo_stamp | 9 | task :makemo => makemo_stamp |
10 | file makemo_stamp => Dir.glob('po/*/noosfero.po') do | 10 | file makemo_stamp => Dir.glob('po/*/noosfero.po') do |
11 | - ruby '-rconfig/boot -rgettext -rgettext/utils -e \'GetText.create_mofiles(true, "po", "locale") 2>/dev/null' | 11 | + ruby '-rconfig/boot -e \'require "gettext"; require "gettext/utils"; GetText.create_mofiles(true, "po", "locale") 2>/dev/null' |
12 | Rake::Task['symlinkmo'].invoke | 12 | Rake::Task['symlinkmo'].invoke |
13 | FileUtils.touch makemo_stamp | 13 | FileUtils.touch makemo_stamp |
14 | end | 14 | end |
plugins/shopping_cart/controllers/shopping_cart_plugin_myprofile_controller.rb
@@ -24,7 +24,7 @@ class ShoppingCartPluginMyprofileController < MyProfileController | @@ -24,7 +24,7 @@ class ShoppingCartPluginMyprofileController < MyProfileController | ||
24 | condition = 'created_at >= ? AND created_at <= ?' | 24 | condition = 'created_at >= ? AND created_at <= ?' |
25 | condition_parameters = [@from, @to+1.day] | 25 | condition_parameters = [@from, @to+1.day] |
26 | if @status | 26 | if @status |
27 | - condition += ' AND status == ?' | 27 | + condition += ' AND status = ?' |
28 | condition_parameters << @status | 28 | condition_parameters << @status |
29 | end | 29 | end |
30 | 30 |
plugins/shopping_cart/views/shopping_cart_plugin_profile/buy.html.erb
@@ -22,7 +22,13 @@ | @@ -22,7 +22,13 @@ | ||
22 | <script type="text/javascript"> | 22 | <script type="text/javascript"> |
23 | //<![CDATA[ | 23 | //<![CDATA[ |
24 | jQuery(document).ready(function(){ | 24 | jQuery(document).ready(function(){ |
25 | - jQuery("#cart-request-form").validate(); | 25 | + jQuery("#cart-request-form").validate({ |
26 | + submitHandler: function(form) { | ||
27 | + jQuery(form).find('input.submit').attr('disabled', true); | ||
28 | + jQuery('#cboxLoadingOverlay').show().addClass('loading'); | ||
29 | + jQuery('#cboxLoadingGraphic').show().addClass('loading'); | ||
30 | + } | ||
31 | + }); | ||
26 | }); | 32 | }); |
27 | //]]> | 33 | //]]> |
28 | </script> | 34 | </script> |
po/pt/noosfero.po
@@ -224,7 +224,7 @@ msgstr "" | @@ -224,7 +224,7 @@ msgstr "" | ||
224 | 224 | ||
225 | #: app/helpers/forum_helper.rb:4 | 225 | #: app/helpers/forum_helper.rb:4 |
226 | msgid "New discussion topic" | 226 | msgid "New discussion topic" |
227 | -msgstr "Novo tópido de discussão" | 227 | +msgstr "Novo tópico de discussão" |
228 | 228 | ||
229 | #: app/helpers/forum_helper.rb:8 | 229 | #: app/helpers/forum_helper.rb:8 |
230 | msgid "Configure forum" | 230 | msgid "Configure forum" |
test/unit/dates_helper_test.rb
@@ -17,22 +17,22 @@ class DatesHelperTest < ActiveSupport::TestCase | @@ -17,22 +17,22 @@ class DatesHelperTest < ActiveSupport::TestCase | ||
17 | 17 | ||
18 | should 'generate period with two dates' do | 18 | should 'generate period with two dates' do |
19 | date1 = mock | 19 | date1 = mock |
20 | - expects(:show_date).with(date1, false).returns('XXX') | 20 | + expects(:show_date).with(date1, anything).returns('XXX') |
21 | date2 = mock | 21 | date2 = mock |
22 | - expects(:show_date).with(date2, false).returns('YYY') | 22 | + expects(:show_date).with(date2, anything).returns('YYY') |
23 | expects(:_).with('from %{date1} to %{date2}').returns('from %{date1} to %{date2}') | 23 | expects(:_).with('from %{date1} to %{date2}').returns('from %{date1} to %{date2}') |
24 | assert_equal 'from XXX to YYY', show_period(date1, date2) | 24 | assert_equal 'from XXX to YYY', show_period(date1, date2) |
25 | end | 25 | end |
26 | 26 | ||
27 | should 'generate period with two equal dates' do | 27 | should 'generate period with two equal dates' do |
28 | date1 = mock | 28 | date1 = mock |
29 | - expects(:show_date).with(date1, false).returns('XXX') | 29 | + expects(:show_date).with(date1, anything).returns('XXX') |
30 | assert_equal 'XXX', show_period(date1, date1) | 30 | assert_equal 'XXX', show_period(date1, date1) |
31 | end | 31 | end |
32 | 32 | ||
33 | should 'generate period with one date only' do | 33 | should 'generate period with one date only' do |
34 | date1 = mock | 34 | date1 = mock |
35 | - expects(:show_date).with(date1, false).returns('XXX') | 35 | + expects(:show_date).with(date1, anything).returns('XXX') |
36 | assert_equal 'XXX', show_period(date1) | 36 | assert_equal 'XXX', show_period(date1) |
37 | end | 37 | end |
38 | 38 |
test/unit/organization_test.rb
@@ -408,4 +408,12 @@ class OrganizationTest < ActiveSupport::TestCase | @@ -408,4 +408,12 @@ class OrganizationTest < ActiveSupport::TestCase | ||
408 | assert_match [{:id => p1.id, :name => p1.name}, {:id => p2.id, :name => p2.name}].to_json, organization.members_by_role_to_json(role) | 408 | assert_match [{:id => p1.id, :name => p1.name}, {:id => p2.id, :name => p2.name}].to_json, organization.members_by_role_to_json(role) |
409 | end | 409 | end |
410 | 410 | ||
411 | + should 'disable organization' do | ||
412 | + organization = fast_create(Organization, :visible => true) | ||
413 | + assert organization.visible | ||
414 | + | ||
415 | + organization.disable | ||
416 | + assert !organization.visible | ||
417 | + end | ||
418 | + | ||
411 | end | 419 | end |
test/unit/person_test.rb
@@ -1226,4 +1226,14 @@ class PersonTest < ActiveSupport::TestCase | @@ -1226,4 +1226,14 @@ class PersonTest < ActiveSupport::TestCase | ||
1226 | assert person.already_reported?(profile) | 1226 | assert person.already_reported?(profile) |
1227 | end | 1227 | end |
1228 | 1228 | ||
1229 | + should 'disable person' do | ||
1230 | + person = create_user('some-user').person | ||
1231 | + password = person.user.password | ||
1232 | + assert person.visible | ||
1233 | + | ||
1234 | + person.disable | ||
1235 | + | ||
1236 | + assert !person.visible | ||
1237 | + assert_not_equal password, person.user.password | ||
1238 | + end | ||
1229 | end | 1239 | end |