added #11968: use the language override in the registration form

This commit is contained in:
Jukka Raimovaara 2010-11-17 21:00:50 +02:00
parent 63217ab198
commit b24db340e8
6 changed files with 36 additions and 3 deletions

View file

@ -1,4 +1,5 @@
7.10.6 7.10.6
- added #11968: use the language override in the registration form (Jukka Raimovaara / Mentalhouse Oy)
7.10.5 7.10.5
- fixed #11950: Username set to 0 when edit user - fixed #11950: Username set to 0 when edit user

View file

@ -56,7 +56,7 @@ Contributing Developers..............C.J. Adams-Collier / <cjac@colliertech.org>
Stephen Opal / Plain Black Stephen Opal / Plain Black
Tavis Parker / Plain Black Tavis Parker / Plain Black
Daniel Quinlan Daniel Quinlan
Jukka Raimovaara / Axxion Oy Jukka Raimovaara / Mentalhouse Oy
Alan Ritari / DonorWare Alan Ritari / DonorWare
Hal Roberts / Harvard Hal Roberts / Harvard
Luke Robinson / Orchard Solutions Luke Robinson / Orchard Solutions

View file

@ -310,6 +310,9 @@ sub createAccountSave {
my $userId = $u->userId; my $userId = $u->userId;
$u->username($username); $u->username($username);
$u->authMethod($self->authMethod); $u->authMethod($self->authMethod);
if (!$profile->{'language'} && $self->session->scratch->getLanguageOverride) {
$profile->{'language'} = $self->session->scratch->getLanguageOverride;
}
$u->karma($self->session->setting->get("karmaPerLogin"),"Login","Just for logging in.") if ($self->session->setting->get("useKarma")); $u->karma($self->session->setting->get("karmaPerLogin"),"Login","Just for logging in.") if ($self->session->setting->get("useKarma"));
$u->updateProfileFields($profile) if ($profile); $u->updateProfileFields($profile) if ($profile);
$self->saveParams($userId,$self->authMethod,$properties); $self->saveParams($userId,$self->authMethod,$properties);

View file

@ -335,6 +335,11 @@ sub formField {
if(!defined $properties->{value}) { if(!defined $properties->{value}) {
$properties->{value} = WebGUI::Operation::Shared::secureEval($session,$properties->{dataDefault}); $properties->{value} = WebGUI::Operation::Shared::secureEval($session,$properties->{dataDefault});
} }
if ($self->getId eq "language") {
if ($self->session->scratch->getLanguageOverride) {
$properties->{value} = $self->session->scratch->getLanguageOverride;
}
}
} }
my $form = WebGUI::Form::DynamicField->new($session,%{$properties}); my $form = WebGUI::Form::DynamicField->new($session,%{$properties});
return $form if $returnObject; return $form if $returnObject;

View file

@ -33,7 +33,7 @@ my ($request, $oldRequest, $output);
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
# Tests # Tests
plan tests => 3; # Increment this number for each test you create plan tests => 4; # Increment this number for each test you create
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
# Test createAccountSave and returnUrl together # Test createAccountSave and returnUrl together
@ -47,7 +47,9 @@ $session->{_request} = $request;
$auth = WebGUI::Auth->new( $session, $AUTH_METHOD ); $auth = WebGUI::Auth->new( $session, $AUTH_METHOD );
my $username = $session->id->generate; my $username = $session->id->generate;
my $language = "German";
push @cleanupUsernames, $username; push @cleanupUsernames, $username;
$session->scratch->setLanguageOverride($language);
$output = $auth->createAccountSave( $username, { }, "PASSWORD" ); $output = $auth->createAccountSave( $username, { }, "PASSWORD" );
WebGUI::Test->addToCleanup(sub { WebGUI::Test->addToCleanup(sub {
for my $username ( @cleanupUsernames ) { for my $username ( @cleanupUsernames ) {
@ -74,6 +76,8 @@ is(
"returnUrl field is used to set redirect after createAccountSave", "returnUrl field is used to set redirect after createAccountSave",
); );
is $session->user->profileField('language'), $language, 'languageOverride is taken in to account in createAccountSave';
# Session Cleanup # Session Cleanup
$session->{_request} = $oldRequest; $session->{_request} = $oldRequest;
@ -99,6 +103,7 @@ is(
); );
is $output, undef, 'login returns undef when showMessageOnLogin is false'; is $output, undef, 'login returns undef when showMessageOnLogin is false';
# Session Cleanup # Session Cleanup
$session->{_request} = $oldRequest; $session->{_request} = $oldRequest;

View file

@ -33,7 +33,7 @@ WebGUI::Test->addToCleanup($newUser);
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
# Tests # Tests
plan tests => 50; # Increment this number for each test you create plan tests => 56; # Increment this number for each test you create
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
# Test the creation of ProfileField # Test the creation of ProfileField
@ -51,6 +51,11 @@ my $uilevelField;
ok( $uilevelField = WebGUI::ProfileField->new( $session, 'uiLevel' ), 'field "uiLevel instantiated' ); ok( $uilevelField = WebGUI::ProfileField->new( $session, 'uiLevel' ), 'field "uiLevel instantiated' );
isa_ok( $uilevelField, 'WebGUI::ProfileField' ); isa_ok( $uilevelField, 'WebGUI::ProfileField' );
my $langField;
ok( $langField = WebGUI::ProfileField->new( $session, 'language' ), 'field "language instantiated' );
isa_ok( $langField, 'WebGUI::ProfileField' );
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
# Test the formField method # Test the formField method
@ -79,6 +84,20 @@ ok( $ff = $uilevelField->formField(undef, undef, $newUser), 'formField method re
$ffvalue = $newUser->profileField('uiLevel'); $ffvalue = $newUser->profileField('uiLevel');
like( $ff, qr/$ffvalue/, 'html returned contains value, uiLevel field, defaulted user' ); like( $ff, qr/$ffvalue/, 'html returned contains value, uiLevel field, defaulted user' );
$ff = undef;
$ffvalue = undef;
ok( $ff = $langField->formField, 'formField method returns something, language field, session user' );
$ffvalue = $session->user->profileField('language');
like( $ff, qr/value="$ffvalue"[^>]+selected/, 'html returned contains value, language field, session user' );
$ff = undef;
$ffvalue = "German";
$session->scratch->setLanguageOverride($ffvalue);
ok( $ff = $langField->formField, 'formField method returns something, language field, session user, languageOverride' );
like( $ff, qr/value="$ffvalue"[^>]+selected/, 'html returned contains value, language field, session user, languageOverride' );
########################################################### ###########################################################
# #
# create # create