Commit 6368c78ee9d6cad07e46b7cc39d3dc8c16cfb920

Authored by Daniel
1 parent 8f30e7a2

environment_features: Add redirection_after_signup option for

Environment.

(ActionItem2998)
app/models/environment.rb
... ... @@ -145,6 +145,18 @@ class Environment < ActiveRecord::Base
145 145 end
146 146 validates_inclusion_of :redirection_after_login, :in => Environment.login_redirection_options.keys, :allow_nil => true
147 147  
  148 + def self.signup_redirection_options
  149 + {
  150 + 'keep_on_same_page' => _('Stays on the same page the user was before signup.'),
  151 + 'site_homepage' => _('Redirects the user to the environment homepage.'),
  152 + 'user_profile_page' => _('Redirects the user to his profile page.'),
  153 + 'user_homepage' => _('Redirects the user to his homepage.'),
  154 + 'user_control_panel' => _('Redirects the user to his control panel.')
  155 + }
  156 + end
  157 + validates_inclusion_of :redirection_after_signup, :in => Environment.signup_redirection_options.keys, :allow_nil => true
  158 +
  159 +
148 160 # #################################################
149 161 # Relationships and applied behaviour
150 162 # #################################################
... ...
db/migrate/20140205191914_add_redirection_after_signup_to_environment.rb 0 → 100644
... ... @@ -0,0 +1,9 @@
  1 +class AddRedirectionAfterSignupToEnvironment < ActiveRecord::Migration
  2 + def self.up
  3 + add_column :environments, :redirection_after_signup, :string, :default => 'keep_on_same_page'
  4 + end
  5 +
  6 + def self.down
  7 + remove_column :environments, :redirection_after_signup
  8 + end
  9 +end
... ...
db/schema.rb
1   -# This file is auto-generated from the current state of the database. Instead of editing this file,
  1 +# This file is auto-generated from the current state of the database. Instead of editing this file,
2 2 # please use the migrations feature of Active Record to incrementally modify your database, and
3 3 # then regenerate this schema definition.
4 4 #
... ... @@ -9,7 +9,7 @@
9 9 #
10 10 # It's strongly recommended to check this file into your version control system.
11 11  
12   -ActiveRecord::Schema.define(:version => 20140108132730) do
  12 +ActiveRecord::Schema.define(:version => 20140205191914) do
13 13  
14 14 create_table "abuse_reports", :force => true do |t|
15 15 t.integer "reporter_id"
... ... @@ -282,6 +282,7 @@ ActiveRecord::Schema.define(:version =&gt; 20140108132730) do
282 282 t.text "signup_welcome_text"
283 283 t.string "languages"
284 284 t.string "default_language"
  285 + t.string "redirection_after_signup", :default => "keep_on_same_page"
285 286 end
286 287  
287 288 create_table "external_feeds", :force => true do |t|
... ...
test/unit/environment_test.rb
... ... @@ -1220,6 +1220,27 @@ class EnvironmentTest &lt; ActiveSupport::TestCase
1220 1220 end
1221 1221 end
1222 1222  
  1223 + should 'return a Hash on signup redirection options' do
  1224 + assert_kind_of Hash, Environment.signup_redirection_options
  1225 + end
  1226 +
  1227 + should 'respond to redirection after signup' do
  1228 + assert_respond_to Environment.new, :redirection_after_signup
  1229 + end
  1230 +
  1231 + should 'allow only environment signup redirection options' do
  1232 + environment = fast_create(Environment)
  1233 + environment.redirection_after_signup = 'invalid_option'
  1234 + environment.save
  1235 + assert environment.errors.invalid?(:redirection_after_signup)
  1236 +
  1237 + Environment.signup_redirection_options.keys.each do |redirection|
  1238 + environment.redirection_after_signup = redirection
  1239 + environment.save
  1240 + assert !environment.errors.invalid?(:redirection_after_signup)
  1241 + end
  1242 + end
  1243 +
1223 1244 should 'respond to signup_welcome_text' do
1224 1245 assert_respond_to Environment.new, :signup_welcome_text
1225 1246 end
... ...