Commit 74a9b8cb5d44001af0a3814f06804bd318866253

Authored by Victor Costa
2 parents 36528941 17823fb4

Merge branch 'register_performance' into production

Conflicts:
	Gemfile
.gitlab-ci.yml
... ... @@ -2,7 +2,7 @@ before_script:
2 2 - mkdir -p tmp/pids log
3 3 - bundle check || bundle install
4 4 - script/noosfero-plugins disableall
5   - - rm -f tmp/makemo.stamp && rake makemo &>/dev/null
  5 + - bundle exec rake makemo &>/dev/null
6 6 # database
7 7 - cp config/database.yml.gitlab-ci config/database.yml
8 8 - createdb gitlab_ci_test || true
... ...
.travis.yml
... ... @@ -2,12 +2,26 @@ language: ruby
2 2 rvm:
3 3 # for 2.2 support we need to upgrade the pg gem
4 4 - 2.1.6
  5 +cache: bundler
  6 +
  7 +sudo: false
  8 +addons:
  9 + apt:
  10 + packages:
  11 + - po4a
  12 + - iso-codes
  13 + - tango-icon-theme
  14 + - pidgin-data
  15 + # for gem extensions
  16 + - libmagickwand-dev
  17 + - libpq-dev
  18 + - libreadline-dev
  19 + - libsqlite3-dev
  20 + - libxslt1-dev
5 21  
6 22 before_install:
7   -# dependencies
8   - - sudo apt-get update
9   - - sudo apt-get -y install po4a iso-codes tango-icon-theme pidgin-data default-jre
10   - - sudo apt-get -y install libmagickwand-dev libpq-dev libreadline-dev libsqlite3-dev libxslt1-dev
  23 +# FIXME: workaround while https://github.com/travis-ci/travis-ci/issues/4210 is open
  24 + - rm config/initializers/default_icon_theme.rb
11 25 # selenium support
12 26 - export DISPLAY=:99.0
13 27 - sh -e /etc/init.d/xvfb start
... ... @@ -16,12 +30,12 @@ before_script:
16 30 - mkdir -p tmp/pids log
17 31 - bundle check || bundle install
18 32 - script/noosfero-plugins disableall
19   - - rake makemo
  33 + - bundle exec rake makemo &>/dev/null
20 34 # database
21 35 - cp config/database.yml.travis config/database.yml
22 36 - psql -c 'create database myapp_test;' -U postgres
23   - - bundle exec rake db:schema:load
24   - - bundle exec rake db:migrate
  37 + - bundle exec rake db:schema:load &>/dev/null
  38 + - bundle exec rake db:migrate &>/dev/null
25 39  
26 40 env:
27 41 - TASK=test:units
... ...
Gemfile
... ... @@ -18,7 +18,6 @@ gem 'exception_notification', '~> 4.0.1'
18 18 gem 'gettext', '~> 2.2.1', :require => false
19 19 gem 'locale', '~> 2.0.5'
20 20 gem 'whenever', :require => false
21   -gem 'eita-jrails', '= 0.9.5', :require => 'jrails'
22 21 gem 'grape', '~> 0.11.0'
23 22 gem 'grape-entity'
24 23 gem 'grape-swagger'
... ... @@ -31,6 +30,7 @@ gem 'liquid', '~> 3.0.3'
31 30  
32 31 # FIXME list here all actual dependencies (i.e. the ones in debian/control),
33 32 # with their GEM names (not the Debian package names)
  33 +gem 'eita-jrails', '~> 0.9.5', require: 'jrails'
34 34  
35 35 # asset pipeline
36 36 gem 'uglifier', '>= 1.0.3'
... ...
app/models/profile.rb
... ... @@ -432,7 +432,7 @@ class Profile < ActiveRecord::Base
432 432 end
433 433  
434 434 # registar callback for creating boxes after the object is created.
435   - after_create :create_default_set_of_boxes
  435 + before_create :create_default_set_of_boxes
436 436  
437 437 # creates the initial set of boxes when the profile is created. Can be
438 438 # overriden for each subclass to create a custom set of boxes for its
... ... @@ -498,9 +498,6 @@ class Profile < ActiveRecord::Base
498 498 self.custom_footer = template[:custom_footer]
499 499 self.custom_header = template[:custom_header]
500 500 self.public_profile = template.public_profile
501   -
502   - # flush
503   - self.save(:validate => false)
504 501 end
505 502  
506 503 def apply_type_specific_template(template)
... ... @@ -693,15 +690,15 @@ private :generate_url, :url_options
693 690 after_create :insert_default_article_set
694 691 def insert_default_article_set
695 692 if template
696   - copy_articles_from template
  693 + self.save! if copy_articles_from template
697 694 else
698 695 default_set_of_articles.each do |article|
699 696 article.profile = self
700 697 article.advertise = false
701 698 article.save!
702 699 end
  700 + self.save!
703 701 end
704   - self.save!
705 702 end
706 703  
707 704 # Override this method in subclasses of Profile to create a default article
... ... @@ -722,10 +719,12 @@ private :generate_url, :url_options
722 719 end
723 720  
724 721 def copy_articles_from other
  722 + return false if other.top_level_articles.empty?
725 723 other.top_level_articles.each do |a|
726 724 copy_article_tree a
727 725 end
728 726 self.articles.reload
  727 + true
729 728 end
730 729  
731 730 def copy_article_tree(article, parent=nil)
... ...