feat: get language from request user's preferences and sort according to it

This commit is contained in:
Muhammad Faraz Maqsood
2025-06-19 14:19:52 +05:00
committed by Muhammad Faraz Maqsood
parent f86ea5cb07
commit b2c9dddb84
2 changed files with 9 additions and 2 deletions

View File

@@ -25,6 +25,7 @@ from common.djangoapps.util.date_utils import get_default_time_display
from common.djangoapps.util.json_request import JsonResponse
from openedx.core.djangoapps.contentserver.caching import del_cached_content
from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers
from openedx.core.djangoapps.user_api.models import UserPreference
from openedx_filters.content_authoring.filters import LMSPageURLRequested
from xmodule.contentstore.content import StaticContent # lint-amnesty, pylint: disable=wrong-import-order
from xmodule.contentstore.django import contentstore # lint-amnesty, pylint: disable=wrong-import-order
@@ -194,7 +195,9 @@ def _assets_json(request, course_key):
'''
request_options = _parse_request_to_dictionary(request)
filter_parameters = {}
filter_parameters = {
'user_language': UserPreference.get_value(request.user, 'pref-lang') or 'en',
}
if request_options['requested_asset_type']:
filters_are_invalid_error = _get_error_if_invalid_parameters(request_options['requested_asset_type'])

View File

@@ -311,7 +311,9 @@ class MongoContentStore(ContentStore):
md5: An md5 hash of the asset content
'''
query = query_for_course(course_key, 'asset' if not get_thumbnails else 'thumbnail')
user_language = 'en'
if filter_params:
user_language = filter_params.pop('user_language', 'en')
query.update(filter_params)
# Count total matching documents
@@ -335,7 +337,9 @@ class MongoContentStore(ContentStore):
'thumbnail_location': 1,
'md5': 1
})
cursor = cursor.sort('displayname', sort['displayname']).collation({'locale': 'en', 'strength': 2})
cursor = cursor.sort('displayname', sort['displayname']).collation(
{'locale': user_language, 'strength': 2}
)
else:
# Apply simple sorting
sort_list = list(sort.items())