Example #1
0
 def get(self, request, *args, **kwargs):
     preferences = preference_info(request.user.username)
     response = {
         'share_with_facebook_friends':
         preferences.get('share_with_facebook_friends', 'False')
     }
     return Response(response)
Example #2
0
def language_info(request):
    """Retrieve information about languages.

    Gets the user's preferred language and the list of released
    languages, encoding the information as JSON.

    Args:
        request (HttpRequest)

    Returns:
        HttpResponse: 200 if successful on GET
        HttpResponse: 302 if not logged in (redirect to login page)
        HttpResponse: 405 if using an unsupported HTTP method
        HttpResponse: 500 if an unexpected error occurs

    Example:

        GET /profile/preferences/languages

    """
    user = request.user

    preferred_language_code = profile_api.preference_info(user.username).get(LANGUAGE_KEY)
    preferred_language = language_api.preferred_language(preferred_language_code)
    response_data = {'preferredLanguage': {'code': preferred_language.code, 'name': preferred_language.name}}

    languages = language_api.released_languages()
    response_data['languages'] = [{'code': language.code, 'name': language.name} for language in languages]

    return HttpResponse(json.dumps(response_data), content_type='application/json')
Example #3
0
 def set_sharing_preferences(self, user, boolean_value):
     """
     Sets self.user's share settings to boolean_value
     """
     update_preferences(user.username,
                        share_with_facebook_friends=boolean_value)
     self.assertEqual(
         preference_info(user.username)['share_with_facebook_friends'],
         unicode(boolean_value))
Example #4
0
    def test_language_change(self, mock_released_languages):
        mock_released_languages.return_value = [self.TEST_LANGUAGE]

        # Set the dummy language as the user's preferred language
        response = self._change_preferences(language=self.TEST_LANGUAGE.code)
        self.assertEqual(response.status_code, 204)

        # Verify that the dummy language is now the user's preferred language
        preferences = profile_api.preference_info(self.USERNAME)
        self.assertEqual(preferences[LANGUAGE_KEY], self.TEST_LANGUAGE.code)

        # Verify that the page reloads in the dummy language
        response = self.client.get(reverse('profile_index'))
        self.assertContains(response, u"Stüdént Pröfïlé")
Example #5
0
    def test_language_change(self, mock_released_languages):
        mock_released_languages.return_value = [self.TEST_LANGUAGE]

        # Set the dummy language as the user's preferred language
        response = self._change_preferences(language=self.TEST_LANGUAGE.code)
        self.assertEqual(response.status_code, 204)

        # Verify that the dummy language is now the user's preferred language
        preferences = profile_api.preference_info(self.USERNAME)
        self.assertEqual(preferences[LANGUAGE_KEY], self.TEST_LANGUAGE.code)

        # Verify that the page reloads in the dummy language
        response = self.client.get(reverse('profile_index'))
        self.assertContains(response, u"Stüdént Pröfïlé")
Example #6
0
def language_info(request):
    """Retrieve information about languages.

    Gets the user's preferred language and the list of released
    languages, encoding the information as JSON.

    Args:
        request (HttpRequest)

    Returns:
        HttpResponse: 200 if successful on GET
        HttpResponse: 302 if not logged in (redirect to login page)
        HttpResponse: 405 if using an unsupported HTTP method
        HttpResponse: 500 if an unexpected error occurs

    Example:

        GET /profile/preferences/languages

    """
    user = request.user

    preferred_language_code = profile_api.preference_info(
        user.username).get(LANGUAGE_KEY)
    preferred_language = language_api.preferred_language(
        preferred_language_code)
    response_data = {
        'preferredLanguage': {
            'code': preferred_language.code,
            'name': preferred_language.name
        }
    }

    languages = language_api.released_languages()
    response_data['languages'] = [{
        'code': language.code,
        'name': language.name
    } for language in languages]

    return HttpResponse(json.dumps(response_data),
                        content_type='application/json')
Example #7
0
 def set_sharing_preferences(self, user, boolean_value):
     """
     Sets self.user's share settings to boolean_value
     """
     update_preferences(user.username, share_with_facebook_friends=boolean_value)
     self.assertEqual(preference_info(user.username)['share_with_facebook_friends'], unicode(boolean_value))
Example #8
0
def share_with_facebook_friends(friend):
    """
    Return true if the user's share_with_facebook_friends preference is set to true.
    """
    share_fb_friends_settings = preference_info(friend['edX_username'])
    return share_fb_friends_settings.get('share_with_facebook_friends', None) == 'True'