Commit 8ff9fd84 by Andy Armstrong

Obey learner profile default visibility

parent 6b91ab4e
...@@ -63,7 +63,7 @@ class LearnerProfilePage(FieldsMixin, PageObject): ...@@ -63,7 +63,7 @@ class LearnerProfilePage(FieldsMixin, PageObject):
Arguments: Arguments:
privacy (str): 'all_users' or 'private' privacy (str): 'all_users' or 'private'
""" """
self.wait_for_element_visibility('select#u-field-select-account_privacy', 'Privacy dropdown is visiblie') self.wait_for_element_visibility('select#u-field-select-account_privacy', 'Privacy dropdown is visible')
if privacy != self.privacy: if privacy != self.privacy:
self.q(css=PROFILE_VISIBILITY_SELECTOR.format(privacy)).first.click() self.q(css=PROFILE_VISIBILITY_SELECTOR.format(privacy)).first.click()
......
...@@ -111,6 +111,19 @@ class OwnLearnerProfilePageTest(LearnerProfileTestMixin, WebAppTest): ...@@ -111,6 +111,19 @@ class OwnLearnerProfilePageTest(LearnerProfileTestMixin, WebAppTest):
self.assertEqual(profile_page.age_limit_message_present, message is not None) self.assertEqual(profile_page.age_limit_message_present, message is not None)
self.assertIn(message, profile_page.profile_forced_private_message) self.assertIn(message, profile_page.profile_forced_private_message)
def test_profile_defaults_to_public(self):
"""
Scenario: Verify that a new user's profile defaults to public.
Given that I am a new user.
When I go to my profile page.
Then I see that the profile visibility is set to public.
"""
username, user_id = self.log_in_as_unique_user()
profile_page = self.visit_profile_page(username)
self.assertTrue(profile_page.privacy_field_visible)
self.assertEquals(profile_page.privacy, self.PRIVACY_PUBLIC)
def assert_default_image_has_public_access(self, profile_page): def assert_default_image_has_public_access(self, profile_page):
""" """
Assert that profile image has public access. Assert that profile image has public access.
...@@ -514,6 +527,27 @@ class DifferentUserLearnerProfilePageTest(LearnerProfileTestMixin, WebAppTest): ...@@ -514,6 +527,27 @@ class DifferentUserLearnerProfilePageTest(LearnerProfileTestMixin, WebAppTest):
self.assertEqual(profile_page.visible_fields, self.PRIVATE_PROFILE_FIELDS) self.assertEqual(profile_page.visible_fields, self.PRIVATE_PROFILE_FIELDS)
self.verify_profile_page_view_event(different_user_id, visibility=self.PRIVACY_PRIVATE) self.verify_profile_page_view_event(different_user_id, visibility=self.PRIVACY_PRIVATE)
def test_different_user_under_age(self):
"""
Scenario: Verify that desired fields are shown when looking at a different user's private profile.
Given that I am a registered user.
And I visit an under age user's profile page.
Then I shouldn't see the profile visibility selector dropdown.
Then I see some of the profile fields are shown.
"""
under_age_birth_year = datetime.now().year - 10
different_username, different_user_id = self._initialize_different_user(
privacy=self.PRIVACY_PUBLIC,
birth_year=under_age_birth_year
)
self.log_in_as_unique_user()
profile_page = self.visit_profile_page(different_username)
self.assertFalse(profile_page.privacy_field_visible)
self.assertEqual(profile_page.visible_fields, self.PRIVATE_PROFILE_FIELDS)
self.verify_profile_page_view_event(different_user_id, visibility=self.PRIVACY_PRIVATE)
def test_different_user_public_profile(self): def test_different_user_public_profile(self):
""" """
Scenario: Verify that desired fields are shown when looking at a different user's public profile. Scenario: Verify that desired fields are shown when looking at a different user's public profile.
...@@ -534,7 +568,7 @@ class DifferentUserLearnerProfilePageTest(LearnerProfileTestMixin, WebAppTest): ...@@ -534,7 +568,7 @@ class DifferentUserLearnerProfilePageTest(LearnerProfileTestMixin, WebAppTest):
self.assertEqual(profile_page.editable_fields, []) self.assertEqual(profile_page.editable_fields, [])
self.verify_profile_page_view_event(different_user_id, visibility=self.PRIVACY_PUBLIC) self.verify_profile_page_view_event(different_user_id, visibility=self.PRIVACY_PUBLIC)
def _initialize_different_user(self, privacy=None): def _initialize_different_user(self, privacy=None, birth_year=None):
""" """
Initialize the profile page for a different test user Initialize the profile page for a different test user
""" """
...@@ -545,6 +579,10 @@ class DifferentUserLearnerProfilePageTest(LearnerProfileTestMixin, WebAppTest): ...@@ -545,6 +579,10 @@ class DifferentUserLearnerProfilePageTest(LearnerProfileTestMixin, WebAppTest):
privacy = self.PRIVACY_PUBLIC privacy = self.PRIVACY_PUBLIC
self.visit_profile_page(username, privacy=privacy) self.visit_profile_page(username, privacy=privacy)
# Set the user's year of birth
if birth_year:
self.set_birth_year(birth_year)
# Log the user out # Log the user out
LogoutPage(self.browser).visit() LogoutPage(self.browser).visit()
......
...@@ -69,6 +69,7 @@ def learner_profile_context(logged_in_username, profile_username, user_is_staff) ...@@ -69,6 +69,7 @@ def learner_profile_context(logged_in_username, profile_username, user_is_staff)
'data': { 'data': {
'profile_user_id': profile_user.id, 'profile_user_id': profile_user.id,
'default_public_account_fields': settings.ACCOUNT_VISIBILITY_CONFIGURATION['public_fields'], 'default_public_account_fields': settings.ACCOUNT_VISIBILITY_CONFIGURATION['public_fields'],
'default_visibility': settings.ACCOUNT_VISIBILITY_CONFIGURATION['default_visibility'],
'accounts_api_url': reverse("accounts_api", kwargs={'username': profile_username}), 'accounts_api_url': reverse("accounts_api", kwargs={'username': profile_username}),
'preferences_api_url': reverse('preferences_api', kwargs={'username': profile_username}), 'preferences_api_url': reverse('preferences_api', kwargs={'username': profile_username}),
'profile_image_upload_url': reverse('profile_image_upload', kwargs={'username': profile_username}), 'profile_image_upload_url': reverse('profile_image_upload', kwargs={'username': profile_username}),
......
...@@ -13,19 +13,19 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j ...@@ -13,19 +13,19 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j
var FIELDS_DATA = { var FIELDS_DATA = {
'country': { 'country': {
'options': Helpers.FIELD_OPTIONS, 'options': Helpers.FIELD_OPTIONS
}, 'gender': { }, 'gender': {
'options': Helpers.FIELD_OPTIONS, 'options': Helpers.FIELD_OPTIONS
}, 'language': { }, 'language': {
'options': Helpers.FIELD_OPTIONS, 'options': Helpers.FIELD_OPTIONS
}, 'level_of_education': { }, 'level_of_education': {
'options': Helpers.FIELD_OPTIONS, 'options': Helpers.FIELD_OPTIONS
}, 'password': { }, 'password': {
'url': '/password_reset', 'url': '/password_reset'
}, 'year_of_birth': { }, 'year_of_birth': {
'options': Helpers.FIELD_OPTIONS, 'options': Helpers.FIELD_OPTIONS
}, 'preferred_language': { }, 'preferred_language': {
'options': Helpers.FIELD_OPTIONS, 'options': Helpers.FIELD_OPTIONS
} }
}; };
...@@ -98,7 +98,7 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j ...@@ -98,7 +98,7 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j
expect(request.method).toBe('GET'); expect(request.method).toBe('GET');
expect(request.url).toBe(Helpers.USER_ACCOUNTS_API_URL); expect(request.url).toBe(Helpers.USER_ACCOUNTS_API_URL);
AjaxHelpers.respondWithJson(requests, Helpers.USER_ACCOUNTS_DATA); AjaxHelpers.respondWithJson(requests, Helpers.createAccountSettingsData());
Helpers.expectLoadingIndicatorIsVisible(accountSettingsView, true); Helpers.expectLoadingIndicatorIsVisible(accountSettingsView, true);
Helpers.expectLoadingErrorIsVisible(accountSettingsView, false); Helpers.expectLoadingErrorIsVisible(accountSettingsView, false);
Helpers.expectSettingsSectionsButNotFieldsToBeRendered(accountSettingsView); Helpers.expectSettingsSectionsButNotFieldsToBeRendered(accountSettingsView);
...@@ -126,8 +126,8 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j ...@@ -126,8 +126,8 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j
Helpers.expectLoadingErrorIsVisible(accountSettingsView, false); Helpers.expectLoadingErrorIsVisible(accountSettingsView, false);
Helpers.expectSettingsSectionsButNotFieldsToBeRendered(accountSettingsView); Helpers.expectSettingsSectionsButNotFieldsToBeRendered(accountSettingsView);
AjaxHelpers.respondWithJson(requests, Helpers.USER_ACCOUNTS_DATA); AjaxHelpers.respondWithJson(requests, Helpers.createAccountSettingsData());
AjaxHelpers.respondWithJson(requests, Helpers.USER_PREFERENCES_DATA); AjaxHelpers.respondWithJson(requests, Helpers.createUserPreferencesData());
Helpers.expectLoadingIndicatorIsVisible(accountSettingsView, false); Helpers.expectLoadingIndicatorIsVisible(accountSettingsView, false);
Helpers.expectLoadingErrorIsVisible(accountSettingsView, false); Helpers.expectLoadingErrorIsVisible(accountSettingsView, false);
...@@ -143,8 +143,8 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j ...@@ -143,8 +143,8 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j
); );
var accountSettingsView = context.accountSettingsView; var accountSettingsView = context.accountSettingsView;
AjaxHelpers.respondWithJson(requests, Helpers.USER_ACCOUNTS_DATA); AjaxHelpers.respondWithJson(requests, Helpers.createAccountSettingsData());
AjaxHelpers.respondWithJson(requests, Helpers.USER_PREFERENCES_DATA); AjaxHelpers.respondWithJson(requests, Helpers.createUserPreferencesData());
var sectionsData = accountSettingsView.options.sectionsData; var sectionsData = accountSettingsView.options.sectionsData;
......
...@@ -13,7 +13,7 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j ...@@ -13,7 +13,7 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j
var createAccountSettingsView = function () { var createAccountSettingsView = function () {
var model = new UserAccountModel(); var model = new UserAccountModel();
model.set(Helpers.USER_ACCOUNTS_DATA); model.set(Helpers.createAccountSettingsData());
var sectionsData = [ var sectionsData = [
{ {
......
...@@ -11,25 +11,33 @@ define(['underscore'], function(_) { ...@@ -11,25 +11,33 @@ define(['underscore'], function(_) {
has_image: true has_image: true
}; };
var USER_ACCOUNTS_DATA = { var DEFAULT_ACCOUNT_SETTINGS_DATA = {
username: 'student', username: 'student',
name: 'Student', name: 'Student',
email: 'student@edx.org', email: 'student@edx.org',
level_of_education: '0', level_of_education: '',
gender: '0', gender: '',
year_of_birth: '0', year_of_birth: '3', // Note: test birth year range is a string from 0-3
country: '0', requires_parental_consent: false,
language: '0', country: '',
language: '',
bio: "About the student", bio: "About the student",
language_proficiencies: [{code: '1'}], language_proficiencies: [{code: '1'}],
requires_parental_consent: true,
profile_image: PROFILE_IMAGE profile_image: PROFILE_IMAGE
}; };
var USER_PREFERENCES_DATA = { var createAccountSettingsData = function(options) {
return _.extend(_.extend({}, DEFAULT_ACCOUNT_SETTINGS_DATA), options);
};
var DEFAULT_USER_PREFERENCES_DATA = {
'pref-lang': '2' 'pref-lang': '2'
}; };
var createUserPreferencesData = function(options) {
return _.extend(_.extend({}, DEFAULT_USER_PREFERENCES_DATA), options);
};
var FIELD_OPTIONS = [ var FIELD_OPTIONS = [
['0', 'Option 0'], ['0', 'Option 0'],
['1', 'Option 1'], ['1', 'Option 1'],
...@@ -63,7 +71,6 @@ define(['underscore'], function(_) { ...@@ -63,7 +71,6 @@ define(['underscore'], function(_) {
expect(fieldTitle).toBe(view.options.title); expect(fieldTitle).toBe(view.options.title);
if ('fieldValue' in view) { if ('fieldValue' in view) {
expect(view.model.get(view.options.valueAttribute)).toBeTruthy();
expect(view.fieldValue()).toBe(view.modelValue()); expect(view.fieldValue()).toBe(view.modelValue());
} else if (view.fieldType === 'link') { } else if (view.fieldType === 'link') {
expect($(element).find('a').length).toBe(1); expect($(element).find('a').length).toBe(1);
...@@ -107,8 +114,8 @@ define(['underscore'], function(_) { ...@@ -107,8 +114,8 @@ define(['underscore'], function(_) {
IMAGE_MAX_BYTES: IMAGE_MAX_BYTES, IMAGE_MAX_BYTES: IMAGE_MAX_BYTES,
IMAGE_MIN_BYTES: IMAGE_MIN_BYTES, IMAGE_MIN_BYTES: IMAGE_MIN_BYTES,
PROFILE_IMAGE: PROFILE_IMAGE, PROFILE_IMAGE: PROFILE_IMAGE,
USER_ACCOUNTS_DATA: USER_ACCOUNTS_DATA, createAccountSettingsData: createAccountSettingsData,
USER_PREFERENCES_DATA: USER_PREFERENCES_DATA, createUserPreferencesData: createUserPreferencesData,
FIELD_OPTIONS: FIELD_OPTIONS, FIELD_OPTIONS: FIELD_OPTIONS,
expectLoadingIndicatorIsVisible: expectLoadingIndicatorIsVisible, expectLoadingIndicatorIsVisible: expectLoadingIndicatorIsVisible,
expectLoadingErrorIsVisible: expectLoadingErrorIsVisible, expectLoadingErrorIsVisible: expectLoadingErrorIsVisible,
......
...@@ -99,7 +99,7 @@ define([ ...@@ -99,7 +99,7 @@ define([
{value: "", name: "--"}, {value: "", name: "--"},
{value: "p", name: "Doctorate"}, {value: "p", name: "Doctorate"},
{value: "m", name: "Master's or professional degree"}, {value: "m", name: "Master's or professional degree"},
{value: "b", name: "Bachelor's degree"}, {value: "b", name: "Bachelor's degree"}
], ],
required: false, required: false,
instructions: 'Select your education level.', instructions: 'Select your education level.',
...@@ -115,7 +115,7 @@ define([ ...@@ -115,7 +115,7 @@ define([
{value: "", name: "--"}, {value: "", name: "--"},
{value: "m", name: "Male"}, {value: "m", name: "Male"},
{value: "f", name: "Female"}, {value: "f", name: "Female"},
{value: "o", name: "Other"}, {value: "o", name: "Other"}
], ],
required: false, required: false,
instructions: 'Select your gender.', instructions: 'Select your gender.',
...@@ -131,7 +131,7 @@ define([ ...@@ -131,7 +131,7 @@ define([
{value: "", name: "--"}, {value: "", name: "--"},
{value: 1900, name: "1900"}, {value: 1900, name: "1900"},
{value: 1950, name: "1950"}, {value: 1950, name: "1950"},
{value: 2014, name: "2014"}, {value: 2014, name: "2014"}
], ],
required: false, required: false,
instructions: 'Select your year of birth.', instructions: 'Select your year of birth.',
......
...@@ -10,8 +10,6 @@ define(['underscore'], function(_) { ...@@ -10,8 +10,6 @@ define(['underscore'], function(_) {
} }
if ('fieldValue' in view || 'imageUrl' in view) { if ('fieldValue' in view || 'imageUrl' in view) {
expect(view.model.get(view.options.valueAttribute)).toBeTruthy();
if ('imageUrl' in view) { if ('imageUrl' in view) {
expect($($element.find('.image-frame')[0]).attr('src')).toBe(view.imageUrl()); expect($($element.find('.image-frame')[0]).attr('src')).toBe(view.imageUrl());
} else if (view.fieldValue()) { } else if (view.fieldValue()) {
...@@ -111,6 +109,5 @@ define(['underscore'], function(_) { ...@@ -111,6 +109,5 @@ define(['underscore'], function(_) {
expectLimitedProfileSectionsAndFieldsToBeRendered: expectLimitedProfileSectionsAndFieldsToBeRendered, expectLimitedProfileSectionsAndFieldsToBeRendered: expectLimitedProfileSectionsAndFieldsToBeRendered,
expectProfileSectionsAndFieldsToBeRendered: expectProfileSectionsAndFieldsToBeRendered, expectProfileSectionsAndFieldsToBeRendered: expectProfileSectionsAndFieldsToBeRendered,
expectProfileSectionsNotToBeRendered: expectProfileSectionsNotToBeRendered expectProfileSectionsNotToBeRendered: expectProfileSectionsNotToBeRendered
}; };
}); });
...@@ -28,7 +28,7 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j ...@@ -28,7 +28,7 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j
}); });
var createProfilePage = function(ownProfile) { var createProfilePage = function(ownProfile) {
return LearnerProfilePage({ return new LearnerProfilePage({
'accounts_api_url': Helpers.USER_ACCOUNTS_API_URL, 'accounts_api_url': Helpers.USER_ACCOUNTS_API_URL,
'preferences_api_url': Helpers.USER_PREFERENCES_API_URL, 'preferences_api_url': Helpers.USER_PREFERENCES_API_URL,
'own_profile': ownProfile, 'own_profile': ownProfile,
...@@ -39,7 +39,8 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j ...@@ -39,7 +39,8 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j
'profile_image_max_bytes': Helpers.IMAGE_MAX_BYTES, 'profile_image_max_bytes': Helpers.IMAGE_MAX_BYTES,
'profile_image_min_bytes': Helpers.IMAGE_MIN_BYTES, 'profile_image_min_bytes': Helpers.IMAGE_MIN_BYTES,
'profile_image_upload_url': Helpers.IMAGE_UPLOAD_API_URL, 'profile_image_upload_url': Helpers.IMAGE_UPLOAD_API_URL,
'profile_image_remove_url': Helpers.IMAGE_REMOVE_API_URL 'profile_image_remove_url': Helpers.IMAGE_REMOVE_API_URL,
'default_visibility': 'all_users'
}); });
}; };
...@@ -72,7 +73,7 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j ...@@ -72,7 +73,7 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j
expect(userAccountRequest.method).toBe('GET'); expect(userAccountRequest.method).toBe('GET');
expect(userAccountRequest.url).toBe(Helpers.USER_ACCOUNTS_API_URL); expect(userAccountRequest.url).toBe(Helpers.USER_ACCOUNTS_API_URL);
AjaxHelpers.respondWithJson(requests, Helpers.USER_ACCOUNTS_DATA); AjaxHelpers.respondWithJson(requests, Helpers.createAccountSettingsData());
Helpers.expectLoadingIndicatorIsVisible(learnerProfileView, true); Helpers.expectLoadingIndicatorIsVisible(learnerProfileView, true);
Helpers.expectLoadingErrorIsVisible(learnerProfileView, false); Helpers.expectLoadingErrorIsVisible(learnerProfileView, false);
LearnerProfileHelpers.expectProfileSectionsNotToBeRendered(learnerProfileView); LearnerProfileHelpers.expectProfileSectionsNotToBeRendered(learnerProfileView);
...@@ -87,20 +88,6 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j ...@@ -87,20 +88,6 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j
LearnerProfileHelpers.expectProfileSectionsNotToBeRendered(learnerProfileView); LearnerProfileHelpers.expectProfileSectionsNotToBeRendered(learnerProfileView);
}); });
it("renders the limited profile after models are successfully fetched", function() {
requests = AjaxHelpers.requests(this);
var context = createProfilePage(true),
learnerProfileView = context.learnerProfileView;
AjaxHelpers.respondWithJson(requests, Helpers.USER_ACCOUNTS_DATA);
AjaxHelpers.respondWithJson(requests, Helpers.USER_PREFERENCES_DATA);
Helpers.expectLoadingErrorIsVisible(learnerProfileView, false);
LearnerProfileHelpers.expectLimitedProfileSectionsAndFieldsToBeRendered(learnerProfileView);
});
it("renders the full profile after models are successfully fetched", function() { it("renders the full profile after models are successfully fetched", function() {
requests = AjaxHelpers.requests(this); requests = AjaxHelpers.requests(this);
...@@ -108,12 +95,8 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j ...@@ -108,12 +95,8 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j
var context = createProfilePage(true), var context = createProfilePage(true),
learnerProfileView = context.learnerProfileView; learnerProfileView = context.learnerProfileView;
var accountSettingsData = Helpers.USER_ACCOUNTS_DATA; AjaxHelpers.respondWithJson(requests, Helpers.createAccountSettingsData());
accountSettingsData.year_of_birth = 1989; AjaxHelpers.respondWithJson(requests, Helpers.createUserPreferencesData());
accountSettingsData.requires_parental_consent = false;
AjaxHelpers.respondWithJson(requests, accountSettingsData);
AjaxHelpers.respondWithJson(requests, Helpers.USER_PREFERENCES_DATA);
// sets the profile for full view. // sets the profile for full view.
context.accountPreferencesModel.set({account_privacy: 'all_users'}); context.accountPreferencesModel.set({account_privacy: 'all_users'});
...@@ -127,8 +110,11 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j ...@@ -127,8 +110,11 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j
var context = createProfilePage(true), var context = createProfilePage(true),
learnerProfileView = context.learnerProfileView; learnerProfileView = context.learnerProfileView;
AjaxHelpers.respondWithJson(requests, Helpers.USER_ACCOUNTS_DATA); AjaxHelpers.respondWithJson(requests, Helpers.createAccountSettingsData({
AjaxHelpers.respondWithJson(requests, Helpers.USER_PREFERENCES_DATA); year_of_birth: '',
requires_parental_consent: true
}));
AjaxHelpers.respondWithJson(requests, Helpers.createUserPreferencesData());
LearnerProfileHelpers.expectLimitedProfileSectionsAndFieldsToBeRendered(learnerProfileView); LearnerProfileHelpers.expectLimitedProfileSectionsAndFieldsToBeRendered(learnerProfileView);
}); });
...@@ -140,11 +126,11 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j ...@@ -140,11 +126,11 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j
var context = createProfilePage(true), var context = createProfilePage(true),
learnerProfileView = context.learnerProfileView; learnerProfileView = context.learnerProfileView;
var accountSettingsData = Helpers.USER_ACCOUNTS_DATA; AjaxHelpers.respondWithJson(requests, Helpers.createAccountSettingsData({
accountSettingsData.requires_parental_consent = true; year_of_birth: new Date().getFullYear() - 10,
requires_parental_consent: true
AjaxHelpers.respondWithJson(requests, accountSettingsData); }));
AjaxHelpers.respondWithJson(requests, Helpers.USER_PREFERENCES_DATA); AjaxHelpers.respondWithJson(requests, Helpers.createUserPreferencesData());
LearnerProfileHelpers.expectLimitedProfileSectionsAndFieldsToBeRendered(learnerProfileView); LearnerProfileHelpers.expectLimitedProfileSectionsAndFieldsToBeRendered(learnerProfileView);
}); });
......
...@@ -19,10 +19,7 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j ...@@ -19,10 +19,7 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j
var createLearnerProfileView = function (ownProfile, accountPrivacy, profileIsPublic) { var createLearnerProfileView = function (ownProfile, accountPrivacy, profileIsPublic) {
var accountSettingsModel = new UserAccountModel(); var accountSettingsModel = new UserAccountModel();
var accountSettingsData = Helpers.USER_ACCOUNTS_DATA; accountSettingsModel.set(Helpers.createAccountSettingsData());
accountSettingsData.year_of_birth = 1989;
accountSettingsData.requires_parental_consent = false;
accountSettingsModel.set(accountSettingsData);
accountSettingsModel.set({'profile_is_public': profileIsPublic}); accountSettingsModel.set({'profile_is_public': profileIsPublic});
accountSettingsModel.set({'profile_image': Helpers.PROFILE_IMAGE}); accountSettingsModel.set({'profile_image': Helpers.PROFILE_IMAGE});
...@@ -76,7 +73,7 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j ...@@ -76,7 +73,7 @@ define(['backbone', 'jquery', 'underscore', 'js/common_helpers/ajax_helpers', 'j
editable: editable, editable: editable,
showMessages: false, showMessages: false,
iconName: 'fa-map-marker', iconName: 'fa-map-marker',
placeholderValue: 'Add country', placeholderValue: '',
valueAttribute: "country", valueAttribute: "country",
options: Helpers.FIELD_OPTIONS, options: Helpers.FIELD_OPTIONS,
helpMessage: '' helpMessage: ''
......
...@@ -15,8 +15,13 @@ ...@@ -15,8 +15,13 @@
return function (options) { return function (options) {
var learnerProfileElement = $('.wrapper-profile'); var learnerProfileElement = $('.wrapper-profile');
var defaultVisibility = options.default_visibility;
var accountPreferencesModel = new AccountPreferencesModel(); var AccountPreferencesModelWithDefaults = AccountPreferencesModel.extend({
defaults: {
account_privacy: defaultVisibility
}
});
var accountPreferencesModel = new AccountPreferencesModelWithDefaults();
accountPreferencesModel.url = options.preferences_api_url; accountPreferencesModel.url = options.preferences_api_url;
var accountSettingsModel = new AccountSettingsModel({ var accountSettingsModel = new AccountSettingsModel({
...@@ -70,7 +75,7 @@ ...@@ -70,7 +75,7 @@
editable: editable, editable: editable,
showMessages: false, showMessages: false,
iconName: 'fa-map-marker', iconName: 'fa-map-marker',
placeholderValue: gettext('Add country'), placeholderValue: '',
valueAttribute: "country", valueAttribute: "country",
options: options.country_options, options: options.country_options,
helpMessage: '' helpMessage: ''
...@@ -143,7 +148,12 @@ ...@@ -143,7 +148,12 @@
// Fetch the preferences model if the user has access // Fetch the preferences model if the user has access
if (options.has_preferences_access) { if (options.has_preferences_access) {
accountPreferencesModel.fetch({ accountPreferencesModel.fetch({
success: showLearnerProfileView, success: function() {
if (accountSettingsModel.get('requires_parental_consent')) {
accountPreferencesModel.set('account_privacy', 'private');
}
showLearnerProfileView();
},
error: showLoadingError error: showLoadingError
}); });
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment