From a12c003215c66ea9f574d8e1d80149eafaed725a Mon Sep 17 00:00:00 2001 From: Agrendalath Date: Fri, 17 Feb 2023 12:49:33 +0100 Subject: [PATCH 01/17] feat: allow using all components of LibraryContentBlock Setting max_count to a negative value resulted in raising an unhandled ValueError. Currently, it selects all children of the LibraryContentBlock. --- .../course_blocks/transformers/library_content.py | 2 ++ xmodule/library_content_block.py | 14 +++++++++++--- xmodule/tests/test_library_content.py | 14 ++++++++++++++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/lms/djangoapps/course_blocks/transformers/library_content.py b/lms/djangoapps/course_blocks/transformers/library_content.py index 11321196d2e9..616cf68f4b62 100644 --- a/lms/djangoapps/course_blocks/transformers/library_content.py +++ b/lms/djangoapps/course_blocks/transformers/library_content.py @@ -85,6 +85,8 @@ def transform_block_filters(self, usage_info, block_structure): selected = [] mode = block_structure.get_xblock_field(block_key, 'mode') max_count = block_structure.get_xblock_field(block_key, 'max_count') + if max_count < 0: + max_count = len(library_children) # Retrieve "selected" json from LMS MySQL database. state_dict = get_student_module_as_dict(usage_info.user, usage_info.course_key, block_key) diff --git a/xmodule/library_content_block.py b/xmodule/library_content_block.py index ee8dbfeb76eb..e3e38c857017 100644 --- a/xmodule/library_content_block.py +++ b/xmodule/library_content_block.py @@ -160,7 +160,7 @@ def completion_mode(cls): # pylint: disable=no-self-argument ) max_count = Integer( display_name=_("Count"), - help=_("Enter the number of components to display to each student."), + help=_("Enter the number of components to display to each student. Set it to -1 to display all components."), default=1, scope=Scope.settings, ) @@ -337,7 +337,11 @@ def selected_children(self): actual BlockUsageLocators, it is necessary to use self.children, because the block_ids alone do not specify the block type. """ - block_keys = self.make_selection(self.selected, self.children, self.max_count, "random") # pylint: disable=no-member + max_count = self.max_count + if max_count < 0: + max_count = len(self.children) + + block_keys = self.make_selection(self.selected, self.children, max_count, "random") # pylint: disable=no-member # Publish events for analytics purposes: lib_tools = self.runtime.service(self, 'library_tools') @@ -433,9 +437,13 @@ def author_view(self, context): if is_root: # User has clicked the "View" link. Show a preview of all possible children: if self.children: # pylint: disable=no-member + max_count = self.max_count + if max_count < 0: + max_count = len(self.children) + fragment.add_content(self.runtime.service(self, 'mako').render_template( "library-block-author-preview-header.html", { - 'max_count': self.max_count, + 'max_count': max_count, 'display_name': self.display_name or self.url_name, })) context['can_edit_visibility'] = False diff --git a/xmodule/tests/test_library_content.py b/xmodule/tests/test_library_content.py index 30bbfdb11708..09f176ce63f8 100644 --- a/xmodule/tests/test_library_content.py +++ b/xmodule/tests/test_library_content.py @@ -280,18 +280,21 @@ def test_validation_of_matching_blocks(self): assert result.summary assert StudioValidationMessage.WARNING == result.summary.type assert 'only 4 matching problems' in result.summary.text + assert len(self.lc_block.selected_children()) == 4 # Add some capa problems so we can check problem type validation messages self.lc_block.max_count = 1 self._create_capa_problems() self.lc_block.refresh_children() assert self.lc_block.validate() + assert len(self.lc_block.selected_children()) == 1 # Existing problem type should pass validation self.lc_block.max_count = 1 self.lc_block.capa_type = 'multiplechoiceresponse' self.lc_block.refresh_children() assert self.lc_block.validate() + assert len(self.lc_block.selected_children()) == 1 # ... unless requested more blocks than exists in library self.lc_block.max_count = 10 @@ -303,6 +306,7 @@ def test_validation_of_matching_blocks(self): assert result.summary assert StudioValidationMessage.WARNING == result.summary.type assert 'only 1 matching problem' in result.summary.text + assert len(self.lc_block.selected_children()) == 1 # Missing problem type should always fail validation self.lc_block.max_count = 1 @@ -314,6 +318,14 @@ def test_validation_of_matching_blocks(self): assert result.summary assert StudioValidationMessage.WARNING == result.summary.type assert 'no matching problem types' in result.summary.text + assert len(self.lc_block.selected_children()) == 0 + + # -1 selects all blocks from the library. + self.lc_block.max_count = -1 + self.lc_block.capa_type = ANY_CAPA_TYPE_VALUE + self.lc_block.refresh_children() + assert self.lc_block.validate() + assert len(self.lc_block.selected_children()) == len(self.lc_block.children) def test_capa_type_filtering(self): """ @@ -388,6 +400,8 @@ def _change_count_and_refresh_children(self, count): (True, 8), # User resets selected children without reset button on content block (False, 8), + # User resets selected children with reset button on content block when all library blocks should be selected. + (True, -1), ) @ddt.unpack def test_reset_selected_children_capa_blocks(self, allow_resetting_children, max_count): From f3b658dc0b4f32ffea97a00c3a9bc703a6de2194 Mon Sep 17 00:00:00 2001 From: Kyle McCormick Date: Wed, 22 Feb 2023 09:14:48 -0500 Subject: [PATCH 02/17] build!: remove Jenkins CI scripts (#31812) These files were used to run tests on build.testeng.edx.org, a Jenkins instance. All tests have since been moved over to GitHub Actions. The build.testeng.edx.org instance is decomissioned. Removed files include: - scripts/jenkins-*.sh - scripts/Jenkinsfiles/* - scripts/xdist/* Note on xdist scripts: pytest-xdist in general is still useful for local test runs in order to take advantage of all available CPU cores, but the scripts here were specifically for running tests on multiple remote machines, particularly via Jenkins. --- scripts/Jenkinsfiles/python | 272 ------------------------- scripts/Jenkinsfiles/quality | 228 --------------------- scripts/jenkins-common.sh | 65 ------ scripts/jenkins-quality-report.sh | 13 -- scripts/jenkins-report.sh | 34 ---- scripts/xdist/get_worker_test_list.py | 56 ----- scripts/xdist/prepare_xdist_nodes.sh | 26 --- scripts/xdist/pytest_worker_manager.py | 219 -------------------- scripts/xdist/setup_worker.sh | 26 --- scripts/xdist/terminate_xdist_nodes.sh | 10 - 10 files changed, 949 deletions(-) delete mode 100644 scripts/Jenkinsfiles/python delete mode 100644 scripts/Jenkinsfiles/quality delete mode 100644 scripts/jenkins-common.sh delete mode 100755 scripts/jenkins-quality-report.sh delete mode 100755 scripts/jenkins-report.sh delete mode 100644 scripts/xdist/get_worker_test_list.py delete mode 100644 scripts/xdist/prepare_xdist_nodes.sh delete mode 100644 scripts/xdist/pytest_worker_manager.py delete mode 100755 scripts/xdist/setup_worker.sh delete mode 100644 scripts/xdist/terminate_xdist_nodes.sh diff --git a/scripts/Jenkinsfiles/python b/scripts/Jenkinsfiles/python deleted file mode 100644 index 5c0010568fac..000000000000 --- a/scripts/Jenkinsfiles/python +++ /dev/null @@ -1,272 +0,0 @@ -def runPythonTests() { - // Determine git refspec, branch, and clone type - git_branch = xdist_git_branch() - git_refspec = xdist_git_refspec() - sshagent(credentials: ['jenkins-worker', 'jenkins-worker-pem'], ignoreMissing: true) { - checkout changelog: false, poll: false, scm: [$class: 'GitSCM', branches: [[name: git_branch]], - doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CloneOption', honorRefspec: true, - noTags: true, shallow: true]], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'jenkins-worker', - refspec: git_refspec, url: "git@github.com:edx/${REPO_NAME}.git"]]] - sh 'bash scripts/all-tests.sh' - stash includes: 'reports/**/*coverage*,test_root/log/*.json', name: "${TEST_SUITE}-reports" - } -} - -def pythonTestCleanup() { - archiveArtifacts allowEmptyArchive: true, artifacts: 'reports/**/*,test_root/log/**/*.log,test_root/log/*.json,**/nosetests.xml,*.log' - sendSplunkFile excludes: '', includes: '**/timing*.log', sizeLimit: '10MB' - junit '**/nosetests.xml' - sh '''source $HOME/edx-venv-$PYTHON_VERSION/edx-venv/bin/activate - bash scripts/xdist/terminate_xdist_nodes.sh''' -} - -def createWarningsReport(fileExtension){ - println "Creating warnings report for ${fileExtension}" - warning_filename = "warning_report_${fileExtension}.html" - sh """source $HOME/edx-venv-$PYTHON_VERSION/edx-venv/bin/activate - python openedx/core/process_warnings.py --dir-path test_root/log --html-path reports/pytest_warnings/${warning_filename}""" - - publishHTML([allowMissing: false, alwaysLinkToLastBuild: false, keepAll: true, - reportDir: 'reports/pytest_warnings', reportFiles: "${warning_filename}", - reportName: "${warning_filename}", reportTitles: '']) - archiveArtifacts allowEmptyArchive: true, artifacts: 'reports/pytest_warnings/*.html' -} - - -def xdist_git_branch() { - if (env.ghprbActualCommit) { - return "${ghprbActualCommit}" - } else { - return "${BRANCH_NAME}" - } -} - -def xdist_git_refspec() { - if (env.ghprbActualCommit) { - return "+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*" - } else { - return "+refs/heads/${BRANCH_NAME}:refs/remotes/origin/${BRANCH_NAME}" - } -} - -pipeline { - agent { label "jenkins-worker" } - options { - sendSplunkConsoleLog() - timestamps() - timeout(60) - } - environment { - XDIST_GIT_BRANCH = xdist_git_branch() - XDIST_GIT_REFSPEC = xdist_git_refspec() - XDIST_INSTANCE_TYPE = "c5d.large" - XDIST_WORKER_AMI = credentials('XDIST_WORKER_AMI') - XDIST_WORKER_IAM_PROFILE_ARN = credentials('XDIST_WORKER_IAM_PROFILE_ARN') - XDIST_WORKER_KEY_NAME = "jenkins-worker" - XDIST_WORKER_SUBNET = credentials('XDIST_WORKER_SUBNET') - XDIST_WORKER_SECURITY_GROUP = credentials('XDIST_WORKER_SECURITY_GROUP') - WTW_CONTEXT = "python" - } - stages { - stage('Mark build as pending on Github') { - when { - // Only run github-build-status for master builds - expression { env.ghprbActualCommit == null } - } - steps { - script { - commit_sha = sh(returnStdout: true, script: 'git rev-parse HEAD').trim() - build job: 'github-build-status', - parameters: [ - string(name: 'GIT_SHA', value: commit_sha), - string(name: 'GITHUB_ORG', value: 'edx'), - string(name: 'GITHUB_REPO', value: "${REPO_NAME}"), - string(name: 'TARGET_URL', value: "${BUILD_URL}"), - string(name: 'DESCRIPTION', value: 'Pending'), - string(name: 'CONTEXT', value: "${GITHUB_CONTEXT}"), - string(name: 'CREATE_DEPLOYMENT', value: 'false'), - string(name: 'BUILD_STATUS', value: 'pending') - ], - propagate: false, wait: false - } - } - } - stage('Run Tests') { - parallel { - stage("lms-unit") { - agent { label "jenkins-worker" } - environment { - TEST_SUITE = "lms-unit" - XDIST_NUM_WORKERS = 10 - XDIST_REMOTE_NUM_PROCESSES = 1 - } - steps { - script { - runPythonTests() - } - } - post { - always { - script { - pythonTestCleanup() - } - } - } - } - stage("cms-unit") { - agent { label "jenkins-worker" } - environment { - TEST_SUITE = "cms-unit" - XDIST_NUM_WORKERS = 3 - XDIST_REMOTE_NUM_PROCESSES = 1 - } - steps { - script { - runPythonTests() - } - } - post { - always { - script { - pythonTestCleanup() - } - } - } - } - stage("commonlib-unit") { - agent { label "jenkins-worker" } - environment { - TEST_SUITE = "commonlib-unit" - XDIST_NUM_WORKERS = 3 - XDIST_REMOTE_NUM_PROCESSES = 1 - } - steps { - script { - runPythonTests() - } - } - post { - always { - script { - pythonTestCleanup() - } - } - } - } - } - } - - - stage('Run coverage') { - environment { - CODE_COV_TOKEN = credentials('CODE_COV_TOKEN') - SUBSET_JOB = "null" // Keep this variable until we can remove the $SUBSET_JOB path from .coveragerc - COLLECT_WHO_TESTS_WHAT = "${COLLECT_WHO_TESTS_WHAT}" - } - steps { - script { - if (env.ghprbActualCommit) { - git_branch = "${ghprbActualCommit}" - git_refspec = "+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*" - ci_branch = "${ghprbSourceBranch}" - target_branch = "origin/${ghprbTargetBranch}" - } else { - git_branch = "${BRANCH_NAME}" - git_refspec = "+refs/heads/${BRANCH_NAME}:refs/remotes/origin/${BRANCH_NAME}" - ci_branch = "${BRANCH_NAME}" - target_branch = "origin/${BRANCH_NAME}" - } - sshagent(credentials: ['jenkins-worker'], ignoreMissing: true) { - checkout changelog: false, poll: false, scm: [$class: 'GitSCM', branches: [[name: git_branch]], - doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CloneOption', - honorRefspec: true, noTags: true, shallow: true]], submoduleCfg: [], - userRemoteConfigs: [[credentialsId: 'jenkins-worker', - refspec: git_refspec, url: "git@github.com:edx/${REPO_NAME}.git"]]] - unstash 'lms-unit-reports' - unstash 'cms-unit-reports' - unstash 'commonlib-unit-reports' - sh """export CI_BRANCH=$ci_branch - export TARGET_BRANCH=$target_branch - ./scripts/jenkins-report.sh""" - createWarningsReport("all") - } - } - } - post { - always { - script { - archiveArtifacts allowEmptyArchive: true, artifacts: 'reports/*.coverage' - sendSplunkFile excludes: '', includes: '**/timing*.log', sizeLimit: '10MB' - publishHTML([allowMissing: false, alwaysLinkToLastBuild: false, keepAll: true, - reportDir: 'reports/cover', reportFiles: 'index.html', - reportName: 'Coverage.py Report', reportTitles: '']) - - if (env.ghprbPullId != null) { - publishHTML([allowMissing: false, alwaysLinkToLastBuild: false, keepAll: true, - reportDir: 'reports', reportFiles: 'diff_coverage_combined.html', - reportName: 'Diff Coverage Report', reportTitles: '']) - } - } - } - } - } - } - post { - always { - script { - if (env.ghprbPullId != null) { - // For PR jobs, run the edx-platform-test-notifier for PR reporting - build job: 'edx-platform-test-notifier', parameters: [string(name: 'REPO', value: "${REPO_NAME}"), string(name: 'PR_NUMBER', value: "${ghprbPullId}")], wait: false - } else { - // For master jobs run github-build-status and report to slack when necessary - if (currentBuild.currentResult == "SUCCESS") { - create_deployment = "true" - build_status = "success" - build_description = "Build Passed" - } - else { - create_deployment = "false" - build_status = "failure" - build_description = "Build Failed" - } - - commit_sha = sh(returnStdout: true, script: 'git rev-parse HEAD').trim() - build job: 'github-build-status', - parameters: [ - string(name: 'GIT_SHA', value: commit_sha), - string(name: 'GITHUB_ORG', value: 'edx'), - string(name: 'GITHUB_REPO', value: "${REPO_NAME}"), - string(name: 'TARGET_URL', value: "${BUILD_URL}"), - string(name: 'DESCRIPTION', value: build_description), - string(name: 'CONTEXT', value: "${GITHUB_CONTEXT}"), - string(name: 'CREATE_DEPLOYMENT', value: create_deployment), - string(name: 'BUILD_STATUS', value: build_status) - ], - propagate: false, wait: false - - if (currentBuild.currentResult != "SUCCESS"){ - slackSend botUser: true, - message: "`${JOB_NAME}` #${BUILD_NUMBER}: ${currentBuild.currentResult} after ${currentBuild.durationString.replace(' and counting', '')}\n${BUILD_URL}" - - email_body = "See: <${BUILD_URL}>\n\nChanges:\n" - change_sets = currentBuild.changeSets - for (int j = 0; j < change_sets.size(); j++) { - change_set_items = change_sets[j].items - for (int k = 0; k < change_set_items.length; k++) { - item = change_set_items[k] - email_body = email_body + "\n Commit: ${item.commitId} by ${item.author}: ${item.msg}" - } - } - emailext body: email_body, - subject: "Build failed in Jenkins: ${JOB_NAME} #${BUILD_NUMBER}", to: 'testeng@edx.org' - } else if (currentBuild.currentResult == "SUCCESS" && currentBuild.previousBuild.currentResult != "SUCCESS") { - slackSend botUser: true, - message: "`${JOB_NAME}` #${BUILD_NUMBER}: Back to normal after ${currentBuild.durationString.replace(' and counting', '')}\n${BUILD_URL}" - emailext body: "See <${BUILD_URL}>", - subject: "Jenkins Build is back to normal: ${JOB_NAME} #${BUILD_NUMBER}", to: 'testeng@edx.org' - } - } - } - } - } -} diff --git a/scripts/Jenkinsfiles/quality b/scripts/Jenkinsfiles/quality deleted file mode 100644 index 52324680c961..000000000000 --- a/scripts/Jenkinsfiles/quality +++ /dev/null @@ -1,228 +0,0 @@ -def runQualityTests() { - sshagent(credentials: ['jenkins-worker'], ignoreMissing: true) { - // Determine git refspec, branch, and clone type - git_shallow_clone = true - git_extensions = [] - if (env.ghprbActualCommit) { - git_branch = "${ghprbActualCommit}" - refspec = "+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*" - if (SHARD == "4") { - git_shallow_clone = false - git_extensions.add([$class: 'WipeWorkspace']) - refspec = refspec + " +refs/heads/${TARGET_BRANCH}:refs/remotes/origin/${TARGET_BRANCH}" - } - } else { - git_branch = "${BRANCH_NAME}" - refspec = "+refs/heads/${BRANCH_NAME}:refs/remotes/origin/${BRANCH_NAME}" - } - git_extensions.add([$class: 'CloneOption', honorRefspec: true, noTags: true, shallow: git_shallow_clone ]) - - checkout changelog: false, poll: false, scm: [$class: 'GitSCM', branches: [[name: git_branch]], - doGenerateSubmoduleConfigurations: false, extensions: git_extensions, submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'jenkins-worker', - refspec: refspec, url: "git@github.com:edx/${REPO_NAME}.git"]]] - - sh "bash scripts/all-tests.sh" - stash includes: '**/reports/**/*', name: "${TEST_SUITE}-${SHARD}-reports" - } -} - -def getTargetBranch(job_name) { - if (env.ghprbTargetBranch) { - return env.ghprbTargetBranch - } else { - return "${BRANCH_NAME}" - } -} - -def qualityTestCleanup() { - archiveArtifacts allowEmptyArchive: true, artifacts: '**/reports/**/*,test_root/log/**/*.log,*.log' - sendSplunkFile excludes: '', includes: '**/timing*.log', sizeLimit: '10MB' - junit 'reports/quality_junitxml/*.xml' -} - -pipeline { - agent { label "jenkins-worker" } - options { - sendSplunkConsoleLog() - timestamps() - timeout(120) - } - stages { - stage('Mark build as pending on Github') { - when { - // Only run github-build-status for master builds - expression { env.ghprbActualCommit == null } - } - steps { - script { - commit_sha = sh(returnStdout: true, script: 'git rev-parse HEAD').trim() - build job: 'github-build-status', - parameters: [ - string(name: 'GIT_SHA', value: commit_sha), - string(name: 'GITHUB_ORG', value: 'edx'), - string(name: 'GITHUB_REPO', value: "${REPO_NAME}"), - string(name: 'TARGET_URL', value: "${BUILD_URL}"), - string(name: 'DESCRIPTION', value: 'Pending'), - string(name: 'CONTEXT', value: "${GITHUB_CONTEXT}"), - string(name: 'CREATE_DEPLOYMENT', value: 'false'), - string(name: 'BUILD_STATUS', value: 'pending') - ], - propagate: false, wait: false - } - } - } - stage('Run Tests') { - parallel { - stage("common pylint") { - // "pylint common" requires 5.5 GB of RAM, so use js-worker (8 GB) instead of jenkins-worker (4 GB) - agent { label "js-worker" } - environment { - TEST_SUITE = "quality" - SHARD = 1 - } - steps { - script { - runQualityTests() - } - } - post { - always { - script { - qualityTestCleanup() - } - } - } - } - stage("lms pylint") { - agent { label "jenkins-worker" } - environment { - TEST_SUITE = "quality" - SHARD = 2 - } - steps { - script { - runQualityTests() - } - } - post { - always { - script { - qualityTestCleanup() - } - } - } - } - stage("cms/openedx/pavelib pylint") { - agent { label "jenkins-worker" } - environment { - TEST_SUITE = "quality" - SHARD = 3 - } - steps { - script { - runQualityTests() - } - } - post { - always { - script { - qualityTestCleanup() - } - } - } - } - stage("Other quality checks") { - agent { label "jenkins-worker" } - environment { - TEST_SUITE = "quality" - SHARD = 4 - TARGET_BRANCH = getTargetBranch("${JOB_NAME}") - } - steps { - script { - runQualityTests() - } - } - post { - always { - script { - qualityTestCleanup() - } - } - } - } - } - } - } - post { - always { - script{ - try { - unstash 'quality-1-reports' - unstash 'quality-2-reports' - unstash 'quality-3-reports' - unstash 'quality-4-reports' - // Check for warnings - recordIssues enabledForFailure: true, tools: [pep8(pattern: 'reports/pep8/pep8.report'), pyLint(pattern: 'reports/**/pylint.report')] - // Publish Quality report - publishHTML([allowMissing: true, alwaysLinkToLastBuild: false, keepAll: true, - reportDir: 'reports/metrics/', - reportFiles: 'pylint/*view*/,pep8/*view*/,xsscommitlint/*view*/,xsslint/*view*/,eslint/*view*/,pii/*view*/', - reportName: 'Quality Report', reportTitles: '']) - } finally { - if (env.ghprbPullId != null) { - // For PR jobs, run the edx-platform-test-notifier for PR reporting - build job: 'edx-platform-test-notifier', parameters: [string(name: 'REPO', value: "${REPO_NAME}"), string(name: 'PR_NUMBER', value: "${ghprbPullId}")], wait: false - } else { - // For master jobs run github-build-status and report to slack when necessary - if (currentBuild.currentResult == "SUCCESS") { - create_deployment = "true" - build_status = "success" - build_description = "Build Passed" - } - else { - create_deployment = "false" - build_status = "failure" - build_description = "Build Failed" - } - - commit_sha = sh(returnStdout: true, script: 'git rev-parse HEAD').trim() - build job: 'github-build-status', parameters: [ - string(name: 'GIT_SHA', value: commit_sha), - string(name: 'GITHUB_ORG', value: 'edx'), - string(name: 'GITHUB_REPO', value: "${REPO_NAME}"), - string(name: 'TARGET_URL', value: "${BUILD_URL}"), - string(name: 'DESCRIPTION', value: build_description), - string(name: 'CONTEXT', value: "${GITHUB_CONTEXT}"), - string(name: 'CREATE_DEPLOYMENT', value: create_deployment), - string(name: 'BUILD_STATUS', value: build_status) - ], - propagate: false, wait: false - - if (currentBuild.currentResult != "SUCCESS"){ - slackSend botUser: true, - message: "`${JOB_NAME}` #${BUILD_NUMBER}: ${currentBuild.currentResult} after ${currentBuild.durationString.replace(' and counting', '')}\n${BUILD_URL}" - - email_body = "See: <${BUILD_URL}>\n\nChanges:\n" - change_sets = currentBuild.changeSets - for (int j = 0; j < change_sets.size(); j++) { - change_set_items = change_sets[j].items - for (int k = 0; k < change_set_items.length; k++) { - item = change_set_items[k] - email_body = email_body + "\n Commit: ${item.commitId} by ${item.author}: ${item.msg}" - } - } - emailext body: email_body, - subject: "Build failed in Jenkins: ${JOB_NAME} #${BUILD_NUMBER}", to: 'testeng@edx.org' - } else if (currentBuild.currentResult == "SUCCESS" && currentBuild.previousBuild.currentResult != "SUCCESS") { - slackSend botUser: true, - message: "`${JOB_NAME}` #${BUILD_NUMBER}: Back to normal after ${currentBuild.durationString.replace(' and counting', '')}\n${BUILD_URL}" - emailext body: "See <${BUILD_URL}>", - subject: "Jenkins Build is back to normal: ${JOB_NAME} #${BUILD_NUMBER}", to: 'testeng@edx.org' - } - } - } - } - } - } -} diff --git a/scripts/jenkins-common.sh b/scripts/jenkins-common.sh deleted file mode 100644 index 5eec5b5b4922..000000000000 --- a/scripts/jenkins-common.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source $HOME/jenkins_env - -# Clear the mongo database -# Note that this prevents us from running jobs in parallel on a single worker. -mongo --quiet --eval 'db.getMongo().getDBNames().forEach(function(i){db.getSiblingDB(i).dropDatabase()})' - -# Ensure we have fetched a target branch (origin/master, unless testing -# a release branc) Some of the reporting tools compare the checked out -# branch to a target branch; depending on how the GitHub plugin refspec -# is configured, this may not already be fetched. -if [ ! -z ${TARGET_BRANCH+x} ]; then - TARGET_BRANCH_WITHOUT_ORIGIN=$(echo "${TARGET_BRANCH}" | sed 's:^origin/::') - git fetch origin $TARGET_BRANCH_WITHOUT_ORIGIN:refs/remotes/origin/$TARGET_BRANCH_WITHOUT_ORIGIN -fi - -# Reset the jenkins worker's virtualenv back to the -# state it was in when the instance was spun up. -if [ -z ${PYTHON_VERSION+x} ] || [[ ${PYTHON_VERSION} == 'null' ]]; then - VENV_PATH="$HOME" - ARCHIVED_VENV="edx-venv_clean.tar.gz" -else - VENV_PATH="$HOME/edx-venv-$PYTHON_VERSION" - ARCHIVED_VENV="edx-venv_clean-$PYTHON_VERSION.tar.gz" -fi - -if [ -e $HOME/$ARCHIVED_VENV ]; then - rm -rf $VENV_PATH/edx-venv - tar -C $VENV_PATH -xf $HOME/$ARCHIVED_VENV -fi - -# Load the npm packages from the time the worker was built -# into the npm cache. This is an attempt to reduce the number -# of times that npm gets stuck during an installation, by -# reducing the number of packages that npm needs to fetch. -if [ -e $HOME/edx-npm-cache_clean.tar.gz ]; then - echo "Loading archived npm packages into the local npm cache" - rm -rf $HOME/.npm - tar -C $HOME -xf $HOME/edx-npm-cache_clean.tar.gz -fi - -# Activate the Python virtualenv -source $VENV_PATH/edx-venv/bin/activate - -# Hack to fix up egg-link files given that the virtualenv is not relocatable -sed -i "s|^/home/jenkins/shallow-clone|`pwd`|" -- \ - $VENV_PATH/edx-venv/lib/python*/site-packages/*.egg-link -make test-requirements - -# add the node packages dir to PATH -PATH=$PATH:node_modules/.bin - -echo "node version is `node --version`" -echo "npm version is `npm --version`" - -# Log any paver or ansible command timing -TIMESTAMP=$(date +%s) -SHARD_NUM=${SHARD:="all"} -export PAVER_TIMER_LOG="test_root/log/timing.paver.$TEST_SUITE.$SHARD_NUM.log" -export ANSIBLE_TIMER_LOG="test_root/log/timing.ansible.$TIMESTAMP.log" - -echo "This node is `curl http://169.254.169.254/latest/meta-data/hostname`" diff --git a/scripts/jenkins-quality-report.sh b/scripts/jenkins-quality-report.sh deleted file mode 100755 index ebfd29697560..000000000000 --- a/scripts/jenkins-quality-report.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash -set -e - -# This script is used by the edx-platform-quality-check jenkins job. -source scripts/jenkins-common.sh -source scripts/thresholds.sh - -# Run quality task. Pass in the 'fail-under' percentage to diff-quality -echo "Generating quality report." -mkdir -p test_root/log/ -LOG_PREFIX=test_root/log/run_quality - -paver run_quality 2> $LOG_PREFIX.err.log > $LOG_PREFIX.out.log diff --git a/scripts/jenkins-report.sh b/scripts/jenkins-report.sh deleted file mode 100755 index b085826ee750..000000000000 --- a/scripts/jenkins-report.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env bash -set -e -set -x - -# This script generates coverage and diff cover reports, and optionally -# reports this data to codecov.io. The following environment variables must be -# set in order to report to codecov: -# CODE_COV_TOKEN: CodeCov API token -# CI_BRANCH: The branch that the coverage report describes - -# This script is used by the edx-platform-unit-coverage jenkins job. - -source scripts/jenkins-common.sh - -# Get the diff coverage and html reports for unit tests -paver coverage -b $TARGET_BRANCH - -if [[ -n "$COLLECT_WHO_TESTS_WHAT" ]]; then - paver upload_coverage_to_s3 -fi - -# Test for the CodeCov API token -if [ -z $CODE_COV_TOKEN ]; then - echo "codecov.io API token not set." - echo "This must be set as an environment variable if order to report coverage" -else - # Send the coverage data to codecov - pip install codecov==2.0.5 - codecov --token=$CODE_COV_TOKEN --branch=$CI_BRANCH -fi - -# JUnit test reporter will fail the build -# if it thinks test results are old -touch `find . -name *.xml` || true diff --git a/scripts/xdist/get_worker_test_list.py b/scripts/xdist/get_worker_test_list.py deleted file mode 100644 index 268ab5ca8915..000000000000 --- a/scripts/xdist/get_worker_test_list.py +++ /dev/null @@ -1,56 +0,0 @@ -""" -This script strips the console log of a pytest-xdist Jenkins run into the test -lists of each pytest worker. -Assumes the following format: -[test-suite] [worker] RESULT test -""" - - -import io -import os -import re -import shutil - -import click - - -@click.command() -@click.option( - '--log-file', - help="File name of console log .txt file from a Jenkins build " - "that ran pytest-xdist. This can be acquired by running: " - "curl -o console.txt https://build.testeng.edx.org/job/JOBNAME/BUILDNUMBER/consoleText", - required=True -) -@click.option( - '--test-suite', - help="Test suite that the pytest worker ran.", - type=click.Choice(['lms-unit', 'cms-unit']), - required=True -) -def main(log_file, test_suite): - worker_test_dict = {} - with open(log_file) as console_file: - for line in console_file: - regex_search = re.search(fr'\[gw(\d+)] (PASSED|FAILED|SKIPPED|ERROR) (\S+)', line) - if regex_search: - worker_num_string = regex_search.group(1) - if worker_num_string not in worker_test_dict: - worker_test_dict[worker_num_string] = [] - test = regex_search.group(3) - worker_test_dict[worker_num_string].append(test) - - output_folder_name = "worker_list_files" - if os.path.isdir(output_folder_name): - shutil.rmtree(output_folder_name) - os.mkdir(output_folder_name) - - for worker_num in worker_test_dict: - output_file_name = f"{output_folder_name}/{test_suite}_gw{worker_num}_test_list.txt" - with open(output_file_name, 'w') as output_file: - for line in worker_test_dict[worker_num]: - output_file.write(line + "\n") - - -if __name__ == "__main__": - main() diff --git a/scripts/xdist/prepare_xdist_nodes.sh b/scripts/xdist/prepare_xdist_nodes.sh deleted file mode 100644 index 8346f2d4619c..000000000000 --- a/scripts/xdist/prepare_xdist_nodes.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -set -e - -echo "Spinning up xdist workers with pytest_worker_manager.py" -python scripts/xdist/pytest_worker_manager.py -a up -n ${XDIST_NUM_WORKERS} \ --ami ${XDIST_WORKER_AMI} \ --type ${XDIST_INSTANCE_TYPE} \ --s ${XDIST_WORKER_SUBNET} \ --sg ${XDIST_WORKER_SECURITY_GROUP} \ --key ${XDIST_WORKER_KEY_NAME} \ --iam ${XDIST_WORKER_IAM_PROFILE_ARN} - -ip_list=$( 0: - logger.info(f"Still waiting on {len(not_running)} workers to spin up") - time.sleep(5) - else: - logger.info("Finished spinning up workers") - all_running = True - break - - if not all_running: - raise Exception( - "Timed out waiting to spin up all workers." - ) - logger.info(f"Successfully booted up {number_of_workers} workers.") - - not_ready_ip_addresses = ip_addresses[:] - logger.info("Checking ssh connection to workers.") - pool = Pool(processes=number_of_workers) - for ssh_try in range(0, self.WORKER_SSH_ATTEMPTS): - results = pool.map(_check_worker_ready, not_ready_ip_addresses) - deleted_ips = 0 - for num in range(0, len(results)): - if results[num] == 0: - del(not_ready_ip_addresses[num - deleted_ips]) - deleted_ips += 1 - - if len(not_ready_ip_addresses) == 0: - logger.info("All workers are ready for tests.") - break - - if ssh_try == self.WORKER_SSH_ATTEMPTS - 1: - raise Exception( - "Max ssh tries to remote workers reached." - ) - - logger.info("Not all workers are ready. Sleeping for 5 seconds then retrying.") - time.sleep(5) - - # Generate .txt files containing IP addresses and instance ids - ip_list_string = ",".join(ip_addresses) - logger.info(f"Worker IP list: {ip_list_string}") - ip_list_file = open("pytest_worker_ips.txt", "w") - ip_list_file.write(ip_list_string) - ip_list_file.close() - - worker_instance_id_list_string = ",".join(worker_instance_ids) - logger.info(f"Worker Instance Id list: {worker_instance_id_list_string}") - worker_arn_file = open("pytest_worker_instance_ids.txt", "w") - worker_arn_file.write(worker_instance_id_list_string) - worker_arn_file.close() - - def terminate_workers(self, worker_instance_ids): - """ - Terminates workers based on a list of worker_instance_ids. - """ - instance_id_list = worker_instance_ids.split(',') - response = self.ec2.terminate_instances( - InstanceIds=instance_id_list - ) - - -if __name__ == "__main__": - - parser = argparse.ArgumentParser( - description="PytestWorkerManager, manages EC2 workers in an AWS cluster." - ) - - parser.add_argument('--action', '-a', choices=['up', 'down'], default=None, - help="Action for PytestWorkerManager to perform. " - "Either up for spinning up AWS EC2 workers or down for terminating them") - - parser.add_argument('--region', '-g', default='us-east-1', - help="AWS region where EC2 infrastructure lives. Defaults to us-east-1") - - # Spinning up workers - parser.add_argument('--num-workers', '-n', type=int, default=None, - help="Number of EC2 workers to spin up") - - parser.add_argument('--ami', '-ami', default=None, - help="AMI for workers") - - parser.add_argument('--instance-type', '-type', default=None, - help="Desired EC2 instance type") - - parser.add_argument('--subnet-id', '-s', default=None, - help="Subnet for the workers to exist in") - - parser.add_argument('--security_groups', '-sg', nargs='+', default=None, - help="List of security group ids to apply to workers") - - parser.add_argument('--key-name', '-key', default=None, - help="Key pair name for sshing to worker") - - parser.add_argument('--iam-arn', '-iam', default=None, - help="Iam Instance Profile ARN for the workers") - - # Terminating workers - parser.add_argument('--instance-ids', '-ids', default=None, - help="Instance ids terminate") - - args = parser.parse_args() - workerManager = PytestWorkerManager(args.region) - - if args.action == 'up': - workerManager.spin_up_workers( - args.num_workers, - args.ami, - args.instance_type, - args.subnet_id, - args.security_groups, - args.key_name, - args.iam_arn - ) - elif args.action == 'down': - workerManager.terminate_workers( - args.instance_ids - ) - else: - logger.info("No action specified for PytestWorkerManager") diff --git a/scripts/xdist/setup_worker.sh b/scripts/xdist/setup_worker.sh deleted file mode 100755 index 7c8acb5ad03e..000000000000 --- a/scripts/xdist/setup_worker.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env bash -# Set up worker node. - -while getopts 'p:' opt; do - case "$opt" in - p) PYTHON_VERSION="$OPTARG";; - [?]) - print >&2 "Usage: $0 -p python-version" - exit 1 - ;; - esac -done - -venv_parent=/home/jenkins/edx-venv-${PYTHON_VERSION} -venv=$venv_parent/edx-venv -rm -rf $venv -tar -C $venv_parent -xf /home/jenkins/edx-venv_clean-${PYTHON_VERSION}.tar.gz -source $venv/bin/activate - -# Hack to fix up egg-link files given that the virtualenv is not relocatable -sed -i "s|\(^/home/jenkins\)/shallow-clone|\1/edx-platform|" -- \ - $venv/lib/python*/site-packages/*.egg-link - -make test-requirements - -mkdir reports diff --git a/scripts/xdist/terminate_xdist_nodes.sh b/scripts/xdist/terminate_xdist_nodes.sh deleted file mode 100644 index e2997da6f7c5..000000000000 --- a/scripts/xdist/terminate_xdist_nodes.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -set -e - -if [ -f pytest_worker_instance_ids.txt ]; then - echo "Terminating xdist workers with pytest_worker_manager.py" - xdist_worker_ids=$( Date: Wed, 22 Feb 2023 10:29:51 -0500 Subject: [PATCH 03/17] refactor!: remove unused update-assets-dev.sh (#31810) The file was introduced as part of the "decentralized devstack" spike. We wanted a working Dockerfile in the edx-platform root, and we wanted to speed it up by not relying on Paver. edx-platform now has a working Dockerfile, and it does not use this script. The paver-free-assets initiative is being continued here: https://github.com/openedx/edx-platform/issues/31798 It will result in a new, prod-ready asset building script. --- scripts/update-assets-dev.sh | 92 ------------------------------------ 1 file changed, 92 deletions(-) delete mode 100755 scripts/update-assets-dev.sh diff --git a/scripts/update-assets-dev.sh b/scripts/update-assets-dev.sh deleted file mode 100755 index 317edb4c0a82..000000000000 --- a/scripts/update-assets-dev.sh +++ /dev/null @@ -1,92 +0,0 @@ -#!/usr/bin/env bash - -# Usage: -# In a CMS or LMS container, -# from the directory /edx/app/edxapp/edx-platform, run: -# ./scripts/update-assets-dev.sh -# -# This file is an experimental re-implementation of the asset complation process -# defined by the pavelib.assets:update_assets task in -# https://github.com/openedx/edx-platform/blob/master/pavelib/assets.py. -# As the script name implies, it is only suited to compile assets for usage -# in a development environment, NOT for production. -# -# It was written as part of the effort to move our dev tools off of Ansible and -# Paver, described here: https://github.com/openedx/devstack/pull/866 -# TODO: If the effort described above is abandoned, then this script should -# probably be deleted. - -set -xeuo pipefail - -# Compile assets for baked-in XBlocks that still use the old -# XModule asset pipeline. -# (reimplementing pavelib.assets:process_xmodule_assets) -# `xmodule_assets` complains if `DJANGO_SETTINGS_MODULE` is already set, -# so we set it to empty just for this one invocation. -DJANGO_SETTINGS_MODULE='' xmodule_assets common/static/xmodule - -# Create JS and CSS vendor directories. -# (reimplementing pavelib.assets:process_npm_assets) -mkdir -p common/static/common/js/vendor -mkdir -p common/static/common/css/vendor - -# Copy studio-frontend CSS and JS into vendor directory. -# (reimplementing pavelib.assets:process_npm_assets) -find node_modules/@edx/studio-frontend/dist -type f \( -name \*.css -o -name \*.css.map \) | \ - xargs cp --target-directory=common/static/common/css/vendor -find node_modules/@edx/studio-frontend/dist -type f \! -name \*.css \! -name \*.css.map | \ - xargs cp --target-directory=common/static/common/js/vendor - -# Copy certain NPM JS into vedor directory. -# (reimplementing pavelib.assets:process_npm_assets) -cp -f --target-directory=common/static/common/js/vendor \ - node_modules/backbone.paginator/lib/backbone.paginator.js \ - node_modules/backbone/backbone.js \ - node_modules/bootstrap/dist/js/bootstrap.bundle.js \ - node_modules/hls.js/dist/hls.js \ - node_modules/jquery-migrate/dist/jquery-migrate.js \ - node_modules/jquery.scrollto/jquery.scrollTo.js \ - node_modules/jquery/dist/jquery.js \ - node_modules/moment-timezone/builds/moment-timezone-with-data.js \ - node_modules/moment/min/moment-with-locales.js \ - node_modules/picturefill/dist/picturefill.js \ - node_modules/requirejs/require.js \ - node_modules/underscore.string/dist/underscore.string.js \ - node_modules/underscore/underscore.js \ - node_modules/which-country/index.js \ - node_modules/sinon/pkg/sinon.js \ - node_modules/squirejs/src/Squire.js - -# Run webpack. -# (reimplementing pavelib.assets:webpack) -NODE_ENV=development \ - STATIC_ROOT_LMS=/edx/var/edxapp/staticfiles \ - STATIC_ROOT_CMS=/edx/var/edxapp/staticfiles/studio \ - JS_ENV_EXTRA_CONFIG="{}" \ - $(npm bin)/webpack --config=webpack.dev.config.js - -# Compile SASS for LMS and CMS. -# (reimplementing pavelib.assets:execute_compile_sass) -./manage.py lms compile_sass lms -./manage.py cms compile_sass cms - -# Collect static assets for LMS and CMS. -# (reimplementing pavelib.assets:collect_assets) -./manage.py lms collectstatic --noinput \ - --ignore "fixtures" \ - --ignore "karma_*.js" \ - --ignore "spec" \ - --ignore "spec_helpers" \ - --ignore "spec-helpers" \ - --ignore "xmodule_js" \ - --ignore "geoip" \ - --ignore "sass" -./manage.py cms collectstatic --noinput \ - --ignore "fixtures" \ - --ignore "karma_*.js" \ - --ignore "spec" \ - --ignore "spec_helpers" \ - --ignore "spec-helpers" \ - --ignore "xmodule_js" \ - --ignore "geoip" \ - --ignore "sass" From 40804f774a5f8fe016fb00ae8d7fc1061a1f5571 Mon Sep 17 00:00:00 2001 From: Pooja Kulkarni Date: Tue, 7 Feb 2023 16:03:34 -0500 Subject: [PATCH 04/17] chore: install xblock-poll from pypi --- requirements/edx/base.in | 1 + requirements/edx/base.txt | 10 +++------- requirements/edx/development.txt | 10 +++------- requirements/edx/github.in | 3 --- requirements/edx/testing.txt | 11 +++-------- 5 files changed, 10 insertions(+), 25 deletions(-) diff --git a/requirements/edx/base.in b/requirements/edx/base.in index 51b234448eab..8083763f1762 100644 --- a/requirements/edx/base.in +++ b/requirements/edx/base.in @@ -182,6 +182,7 @@ web-fragments # Provides the ability to render fragments o XBlock[django] # Courseware component architecture xblock-utils # Provides utilities used by the Discussion XBlock xss-utils # https://github.com/edx/edx-platform/pull/20633 Fix XSS via Translations +xblock-poll # Xblock for polling users xblock-drag-and-drop-v2 # Drag and Drop XBlock xblock-google-drive # XBlock for google docs and calendar openedx-django-require diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index 0a7aad691386..426640a58b9e 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -163,8 +163,6 @@ cryptography==38.0.4 # social-auth-core cssutils==2.6.0 # via pynliner -ddt==1.6.0 - # via xblock-poll defusedxml==0.7.1 # via # -r requirements/edx/base.in @@ -706,9 +704,7 @@ markupsafe==2.1.2 maxminddb==2.2.0 # via geoip2 mock==5.0.1 - # via - # -r requirements/edx/paver.txt - # xblock-poll + # via -r requirements/edx/paver.txt mongodbproxy @ git+https://github.com/openedx/MongoDBProxy.git@d92bafe9888d2940f647a7b2b2383b29c752f35a # via -r requirements/edx/github.in mongoengine==0.26.0 @@ -1180,8 +1176,8 @@ xblock-drag-and-drop-v2==3.1.0 # via -r requirements/edx/base.in xblock-google-drive==0.3.0 # via -r requirements/edx/base.in -xblock-poll @ git+https://github.com/open-craft/xblock-poll@v1.12.0 - # via -r requirements/edx/github.in +xblock-poll==1.13.0 + # via -r requirements/edx/base.in xblock-utils==3.0.0 # via # -r requirements/edx/base.in diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt index 8dbfce448fe5..add58a9d5e02 100644 --- a/requirements/edx/development.txt +++ b/requirements/edx/development.txt @@ -245,9 +245,7 @@ cssutils==2.6.0 # -r requirements/edx/testing.txt # pynliner ddt==1.6.0 - # via - # -r requirements/edx/testing.txt - # xblock-poll + # via -r requirements/edx/testing.txt deepmerge==1.1.0 # via sphinxcontrib-openapi defusedxml==0.7.1 @@ -955,9 +953,7 @@ mccabe==0.7.0 mistune==2.0.5 # via sphinx-mdinclude mock==5.0.1 - # via - # -r requirements/edx/testing.txt - # xblock-poll + # via -r requirements/edx/testing.txt mongodbproxy @ git+https://github.com/openedx/MongoDBProxy.git@d92bafe9888d2940f647a7b2b2383b29c752f35a # via -r requirements/edx/testing.txt mongoengine==0.26.0 @@ -1710,7 +1706,7 @@ xblock-drag-and-drop-v2==3.1.0 # via -r requirements/edx/testing.txt xblock-google-drive==0.3.0 # via -r requirements/edx/testing.txt -xblock-poll @ git+https://github.com/open-craft/xblock-poll@v1.12.0 +xblock-poll==1.13.0 # via -r requirements/edx/testing.txt xblock-utils==3.0.0 # via diff --git a/requirements/edx/github.in b/requirements/edx/github.in index 0df722e99791..0ad545d19a6c 100644 --- a/requirements/edx/github.in +++ b/requirements/edx/github.in @@ -58,6 +58,3 @@ git+https://github.com/openedx/MongoDBProxy.git@d92bafe9888d2940f647a7b2b2383b29c752f35a#egg=MongoDBProxy==0.1.0+edx.2 -# Third Party XBlocks - -git+https://github.com/open-craft/xblock-poll@v1.12.0#egg=xblock-poll==1.12.0 diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt index 2a945997411b..fb982043ca77 100644 --- a/requirements/edx/testing.txt +++ b/requirements/edx/testing.txt @@ -235,10 +235,7 @@ cssutils==2.6.0 # -r requirements/edx/base.txt # pynliner ddt==1.6.0 - # via - # -r requirements/edx/base.txt - # -r requirements/edx/testing.in - # xblock-poll + # via -r requirements/edx/testing.in defusedxml==0.7.1 # via # -r requirements/edx/base.txt @@ -908,9 +905,7 @@ maxminddb==2.2.0 mccabe==0.7.0 # via pylint mock==5.0.1 - # via - # -r requirements/edx/base.txt - # xblock-poll + # via -r requirements/edx/base.txt mongodbproxy @ git+https://github.com/openedx/MongoDBProxy.git@d92bafe9888d2940f647a7b2b2383b29c752f35a # via -r requirements/edx/base.txt mongoengine==0.26.0 @@ -1580,7 +1575,7 @@ xblock-drag-and-drop-v2==3.1.0 # via -r requirements/edx/base.txt xblock-google-drive==0.3.0 # via -r requirements/edx/base.txt -xblock-poll @ git+https://github.com/open-craft/xblock-poll@v1.12.0 +xblock-poll==1.13.0 # via -r requirements/edx/base.txt xblock-utils==3.0.0 # via From e73bfddbd85668048e037e9c3464437fdb457bc9 Mon Sep 17 00:00:00 2001 From: Alex Sheehan Date: Wed, 22 Feb 2023 14:53:01 +0000 Subject: [PATCH 05/17] chore: bumping enterprise version 3.61.1 --- openedx/features/enterprise_support/api.py | 2 +- openedx/features/enterprise_support/context.py | 5 +---- requirements/constraints.txt | 2 +- requirements/edx/base.txt | 2 +- requirements/edx/development.txt | 2 +- requirements/edx/testing.txt | 2 +- 6 files changed, 6 insertions(+), 9 deletions(-) diff --git a/openedx/features/enterprise_support/api.py b/openedx/features/enterprise_support/api.py index f06df135a3ce..5b62815f06fe 100644 --- a/openedx/features/enterprise_support/api.py +++ b/openedx/features/enterprise_support/api.py @@ -836,7 +836,7 @@ def get_enterprise_course_enrollments(user): """ return EnterpriseCourseEnrollment.objects.select_related( - 'licensed_with', + 'licensedenterprisecourseenrollment_enrollment_fulfillment', 'enterprise_customer_user' ).prefetch_related( 'enterprise_customer_user__enterprise_customer' diff --git a/openedx/features/enterprise_support/context.py b/openedx/features/enterprise_support/context.py index f4f090f8fa17..540cfb799853 100644 --- a/openedx/features/enterprise_support/context.py +++ b/openedx/features/enterprise_support/context.py @@ -1,10 +1,7 @@ """ APIs providing enterprise context for events. """ -try: - from enterprise.models import EnterpriseCourseEnrollment -except ImportError: # pragma: no cover - pass +from enterprise.models import EnterpriseCourseEnrollment def get_enterprise_event_context(user_id, course_id): diff --git a/requirements/constraints.txt b/requirements/constraints.txt index e77d61db6d24..cb67a976c059 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -25,7 +25,7 @@ django-storages<1.9 # The team that owns this package will manually bump this package rather than having it pulled in automatically. # This is to allow them to better control its deployment and to do it in a process that works better # for them. -edx-enterprise==3.60.21 +edx-enterprise==3.61.1 # oauthlib>3.0.1 causes test failures ( also remove the django-oauth-toolkit constraint when this is fixed ) oauthlib==3.0.1 diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index 0a7aad691386..329046b3b5a2 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -473,7 +473,7 @@ edx-drf-extensions==8.4.1 # edx-when # edxval # learner-pathway-progress -edx-enterprise==3.60.21 +edx-enterprise==3.61.1 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/base.in diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt index 8dbfce448fe5..6601ef4a12ca 100644 --- a/requirements/edx/development.txt +++ b/requirements/edx/development.txt @@ -599,7 +599,7 @@ edx-drf-extensions==8.4.1 # edx-when # edxval # learner-pathway-progress -edx-enterprise==3.60.21 +edx-enterprise==3.61.1 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/testing.txt diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt index 2a945997411b..3f1de99f59df 100644 --- a/requirements/edx/testing.txt +++ b/requirements/edx/testing.txt @@ -579,7 +579,7 @@ edx-drf-extensions==8.4.1 # edx-when # edxval # learner-pathway-progress -edx-enterprise==3.60.21 +edx-enterprise==3.61.1 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/base.txt From 5ed5cc5bc1b70ee4eaadfaddfbc8fcee0874464d Mon Sep 17 00:00:00 2001 From: Navin Karkera Date: Wed, 22 Feb 2023 21:33:24 +0530 Subject: [PATCH 06/17] feat: put sending xblock events over bus behind feature flag (#31813) --- .../contentstore/signals/handlers.py | 33 ++++++++++--------- cms/envs/devstack.py | 10 ++++++ lms/envs/devstack.py | 6 ++++ 3 files changed, 34 insertions(+), 15 deletions(-) diff --git a/cms/djangoapps/contentstore/signals/handlers.py b/cms/djangoapps/contentstore/signals/handlers.py index 5ac744f08abe..badb7334ef1c 100644 --- a/cms/djangoapps/contentstore/signals/handlers.py +++ b/cms/djangoapps/contentstore/signals/handlers.py @@ -176,11 +176,12 @@ def listen_for_xblock_published(sender, signal, **kwargs): """ Publish XBLOCK_PUBLISHED signals onto the event bus. """ - get_producer().send( - signal=XBLOCK_PUBLISHED, topic='xblock-published', - event_key_field='xblock_info.usage_key', event_data={'xblock_info': kwargs['xblock_info']}, - event_metadata=kwargs['metadata'], - ) + if settings.FEATURES.get("ENABLE_SEND_XBLOCK_EVENTS_OVER_BUS"): + get_producer().send( + signal=XBLOCK_PUBLISHED, topic='xblock-published', + event_key_field='xblock_info.usage_key', event_data={'xblock_info': kwargs['xblock_info']}, + event_metadata=kwargs['metadata'], + ) @receiver(XBLOCK_DELETED) @@ -188,11 +189,12 @@ def listen_for_xblock_deleted(sender, signal, **kwargs): """ Publish XBLOCK_DELETED signals onto the event bus. """ - get_producer().send( - signal=XBLOCK_DELETED, topic='xblock-deleted', - event_key_field='xblock_info.usage_key', event_data={'xblock_info': kwargs['xblock_info']}, - event_metadata=kwargs['metadata'], - ) + if settings.FEATURES.get("ENABLE_SEND_XBLOCK_EVENTS_OVER_BUS"): + get_producer().send( + signal=XBLOCK_DELETED, topic='xblock-deleted', + event_key_field='xblock_info.usage_key', event_data={'xblock_info': kwargs['xblock_info']}, + event_metadata=kwargs['metadata'], + ) @receiver(XBLOCK_DUPLICATED) @@ -200,11 +202,12 @@ def listen_for_xblock_duplicated(sender, signal, **kwargs): """ Publish XBLOCK_DUPLICATED signals onto the event bus. """ - get_producer().send( - signal=XBLOCK_DUPLICATED, topic='xblock-duplicated', - event_key_field='xblock_info.usage_key', event_data={'xblock_info': kwargs['xblock_info']}, - event_metadata=kwargs['metadata'], - ) + if settings.FEATURES.get("ENABLE_SEND_XBLOCK_EVENTS_OVER_BUS"): + get_producer().send( + signal=XBLOCK_DUPLICATED, topic='xblock-duplicated', + event_key_field='xblock_info.usage_key', event_data={'xblock_info': kwargs['xblock_info']}, + event_metadata=kwargs['metadata'], + ) @receiver(SignalHandler.course_deleted) diff --git a/cms/envs/devstack.py b/cms/envs/devstack.py index c03347ce9987..1466d15b7e2c 100644 --- a/cms/envs/devstack.py +++ b/cms/envs/devstack.py @@ -301,6 +301,16 @@ def should_show_debug_toolbar(request): # lint-amnesty, pylint: disable=missing CREDENTIALS_PUBLIC_SERVICE_URL = 'http://localhost:18150' #################### Event bus backend ######################## +# .. toggle_name: FEATURES['ENABLE_SEND_XBLOCK_EVENTS_OVER_BUS'] +# .. toggle_implementation: DjangoSetting +# .. toggle_default: False +# .. toggle_description: Temporary configuration which enables sending xblock events over the event bus. +# .. toggle_use_cases: open_edx +# .. toggle_creation_date: 2023-02-21 +# .. toggle_warning: For consistency in user experience, keep the value in sync with the setting of the same name +# in the LMS and CMS. +# .. toggle_tickets: 'https://github.com/openedx/edx-platform/pull/31813' +FEATURES['ENABLE_SEND_XBLOCK_EVENTS_OVER_BUS'] = True EVENT_BUS_PRODUCER = 'edx_event_bus_kafka.create_producer' EVENT_BUS_KAFKA_SCHEMA_REGISTRY_URL = 'http://edx.devstack.schema-registry:8081' EVENT_BUS_KAFKA_BOOTSTRAP_SERVERS = 'edx.devstack.kafka:29092' diff --git a/lms/envs/devstack.py b/lms/envs/devstack.py index c10c5d81d391..c2454ee71fc2 100644 --- a/lms/envs/devstack.py +++ b/lms/envs/devstack.py @@ -491,6 +491,12 @@ def should_show_debug_toolbar(request): # lint-amnesty, pylint: disable=missing # Devstack is directly exposed to the caller CLOSEST_CLIENT_IP_FROM_HEADERS = [] +#################### Event bus backend ######################## +EVENT_BUS_PRODUCER = 'edx_event_bus_kafka.create_producer' +EVENT_BUS_KAFKA_SCHEMA_REGISTRY_URL = 'http://edx.devstack.schema-registry:8081' +EVENT_BUS_KAFKA_BOOTSTRAP_SERVERS = 'edx.devstack.kafka:29092' +EVENT_BUS_TOPIC_PREFIX = 'dev' + ################# New settings must go ABOVE this line ################# ######################################################################## # See if the developer has any local overrides. From 72e0043d1d5263d9e336e121dc79275a35554aa8 Mon Sep 17 00:00:00 2001 From: Kyle McCormick Date: Wed, 22 Feb 2023 11:22:12 -0500 Subject: [PATCH 07/17] refactor!: remove unused provisioning scripts (#31811) These scripts were written to replace some of the Ansible provisioning steps in Devstack, before tCRIL's focus turned to Tutor. These scripts never ended up being used by Devstack, but Devstack's maintainers did end up replacing the Ansible provisioning steps with some direct Bash commands in Devstack's provision-lms.sh: https://github.com/openedx/devstack/blob/23e16c1ddad3c18cbb539fecc5237d28b387bdc4/provision-lms.sh#L51-L68 Tutor has its own user & course provisioning scripts, written in Sh using Tutor's jobs framework. Thus, these scripts are no longer needed and do not seem to be in use. --- scripts/provision-demo-course.sh | 31 --------------------- scripts/provision-demo-users.sh | 47 -------------------------------- 2 files changed, 78 deletions(-) delete mode 100755 scripts/provision-demo-course.sh delete mode 100755 scripts/provision-demo-users.sh diff --git a/scripts/provision-demo-course.sh b/scripts/provision-demo-course.sh deleted file mode 100755 index 72d2639f1af7..000000000000 --- a/scripts/provision-demo-course.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env bash - -# Usage: -# In a CMS-enabled container, -# from the directory /edx/app/edxapp/edx-platform, run: -# ./scripts/provision-demo-course.sh -# -# This file is an experimental re-implementation of demo course provisioning -# process defined in this Ansible role: -# https://github.com/openedx/configuration/tree/master/playbooks/roles/demo -# -# It was written as part of the effort to move our dev tools off of Ansible and -# Paver, described here: https://github.com/openedx/devstack/pull/866 -# TODO: If the effort described above is abandoned, then this script should -# probably be deleted. - -set -xeuo pipefail - -DEMO_COURSE_KEY='course-v1:edX+DemoX+Demo_Course' - -# Delete the demo course clone (if it exists) and then do a shallow re-clone of it. -mkdir -p /edx/app/demo -( - cd /edx/app/demo && - rm -rf edx-demo-course && - git clone https://github.com/openedx/openedx-demo-course.git --depth 1 -) - -# Import the course. -./manage.py cms import /edx/var/edxapp/data /edx/app/demo/edx-demo-course - diff --git a/scripts/provision-demo-users.sh b/scripts/provision-demo-users.sh deleted file mode 100755 index 3aa51eeeb1a1..000000000000 --- a/scripts/provision-demo-users.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env bash - -# Usage: -# In an LMS-enabled container, -# from the directory /edx/app/edxapp/edx-platform, run: -# ./scripts/provision-demo-users.sh -# -# This file is an experimental re-implementation of demo user provisioning -# process defined in this Ansible role: -# https://github.com/openedx/configuration/tree/master/playbooks/roles/demo -# -# It provisions five users: -# * edx (global superuser) -# * staff (global staff) -# * verified -# * audit -# * honor -# Each of which has {username}@example.com as their email and 'edx' as their password. -# -# It was written as part of the effort to move our dev tools off of Ansible and -# Paver, described here: https://github.com/openedx/devstack/pull/866 -# TODO: If the effort described above is abandoned, then this script should -# probably be deleted. - -set -xeuo pipefail - -DEMO_COURSE_KEY='course-v1:edX+DemoX+Demo_Course' - -# Hash of 'edx' password. -DEMO_PASSWORD_HASH='pbkdf2_sha256$20000$TjE34FJjc3vv$0B7GUmH8RwrOc/BvMoxjb5j8EgnWTt3sxorDANeF7Qw=' - -# Create users (if they don't exist) and set passwords. -# 'password_is_edx' is purposefully unquoted so that it expands into two arguments. -password_is_edx="--initial-password-hash $DEMO_PASSWORD_HASH" -./manage.py lms manage_user edx edx@example.com $password_is_edx --superuser -./manage.py lms manage_user staff staff@example.com $password_is_edx --staff -./manage.py lms manage_user verified verified@example.com $password_is_edx -./manage.py lms manage_user audit audit@example.com $password_is_edx -./manage.py lms manage_user honor honor@example.com $password_is_edx - -# Enroll users in demo course. -for username in staff verified audit honor; do - ./manage.py lms enroll_user_in_course -e "${username}@example.com" -c "$DEMO_COURSE_KEY" -done - -# Seed the forums for the demo course. -./manage.py lms seed_permissions_roles "$DEMO_COURSE_KEY" From 4aa5918194874fcb727ed5473dff6fdcc6e35cf8 Mon Sep 17 00:00:00 2001 From: Alex Sheehan Date: Wed, 22 Feb 2023 18:03:16 +0000 Subject: [PATCH 08/17] chore: bumping enterprise version to 3.61.2 --- requirements/constraints.txt | 2 +- requirements/edx/base.txt | 2 +- requirements/edx/development.txt | 2 +- requirements/edx/testing.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/requirements/constraints.txt b/requirements/constraints.txt index cb67a976c059..4ca6c189d126 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -25,7 +25,7 @@ django-storages<1.9 # The team that owns this package will manually bump this package rather than having it pulled in automatically. # This is to allow them to better control its deployment and to do it in a process that works better # for them. -edx-enterprise==3.61.1 +edx-enterprise==3.61.2 # oauthlib>3.0.1 causes test failures ( also remove the django-oauth-toolkit constraint when this is fixed ) oauthlib==3.0.1 diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index 139d5f1be292..8c23f43556a9 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -471,7 +471,7 @@ edx-drf-extensions==8.4.1 # edx-when # edxval # learner-pathway-progress -edx-enterprise==3.61.1 +edx-enterprise==3.61.2 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/base.in diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt index c9fb43e007f1..9ff9bea3f2ec 100644 --- a/requirements/edx/development.txt +++ b/requirements/edx/development.txt @@ -597,7 +597,7 @@ edx-drf-extensions==8.4.1 # edx-when # edxval # learner-pathway-progress -edx-enterprise==3.61.1 +edx-enterprise==3.61.2 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/testing.txt diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt index 2cccbceac73e..702de3842ad6 100644 --- a/requirements/edx/testing.txt +++ b/requirements/edx/testing.txt @@ -576,7 +576,7 @@ edx-drf-extensions==8.4.1 # edx-when # edxval # learner-pathway-progress -edx-enterprise==3.61.1 +edx-enterprise==3.61.2 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/base.txt From 2b5926524046b3d08b255a736ac0a6e758e4262d Mon Sep 17 00:00:00 2001 From: Arunmozhi Date: Thu, 23 Feb 2023 00:35:19 +0530 Subject: [PATCH 09/17] feat: adds VerticalBlockRenderCompleted filter hook (#31388) * feat: adds VerticalBlockChildrenLoaded filter call This introduces the VerticalBlockChildrenLoaded filter that is run after all the child blocks are fetched before rendering a student or the public view. This will allow modifying the contents of the VerticalBlock before presenting it to the students. --- docs/guides/hooks/filters.rst | 10 ++- xmodule/tests/test_vertical.py | 148 +++++++++++++++++++++++++++++++++ xmodule/vertical_block.py | 28 +++++-- 3 files changed, 176 insertions(+), 10 deletions(-) diff --git a/docs/guides/hooks/filters.rst b/docs/guides/hooks/filters.rst index 9e8496aead70..0eb1527503dd 100644 --- a/docs/guides/hooks/filters.rst +++ b/docs/guides/hooks/filters.rst @@ -182,6 +182,10 @@ well as the trigger location in this same repository. - org.openedx.learning.dashboard.render.started.v1 - `2022-06-14 `_ - * - `VerticalChildRenderStarted `_ - - org.openedx.learning.veritical_child_block.render.started.v1 - - `2022-08-18 `_ + * - `VerticalBlockChildRenderStarted `_ + - org.openedx.learning.veritical_block_child.render.started.v1 + - `2022-08-18 `_ + + * - `VerticalBlockRenderCompleted `_ + - org.openedx.learning.veritical_block.render.completed.v1 + - `2022-02-18 `_ diff --git a/xmodule/tests/test_vertical.py b/xmodule/tests/test_vertical.py index a7f993808fad..1717354b4798 100644 --- a/xmodule/tests/test_vertical.py +++ b/xmodule/tests/test_vertical.py @@ -14,6 +14,9 @@ import ddt from fs.memoryfs import MemoryFS from django.contrib.auth.models import AnonymousUser +from django.test import override_settings +from openedx_filters import PipelineStep +from openedx_filters.learning.filters import VerticalBlockChildRenderStarted, VerticalBlockRenderCompleted from . import get_test_system from .helpers import StubUserService @@ -78,6 +81,62 @@ def vertical_is_complete(self, item): return self._completion_value == 1 if self._enabled else None +class TestVerticalBlockChildRenderStep(PipelineStep): + """ + Utility class for testing filters on vertical block children + """ + filter_content = "Altered Content" + + def run_filter(self, block, context): # lint-amnesty, pylint: disable=arguments-differ + """Pipeline step that changes child content""" + if type(block).__name__ == "HtmlBlockWithMixins": + block.get_html = lambda: TestVerticalBlockChildRenderStep.filter_content + return {"block": block, "context": context} + + +class TestPreventVerticalBlockChildRender(PipelineStep): + """ + Utility class to test vertical block children are skipped in rendering. + """ + + def run_filter(self, block, context): # lint-amnesty, pylint: disable=arguments-differ + """Pipeline step that raises exceptions during child block rendering""" + if type(block).__name__ == "HtmlBlockWithMixins": + raise VerticalBlockChildRenderStarted.PreventChildBlockRender( + "Skip block test exception" + ) + + +class TestVerticalBlockRenderCompletedStep(PipelineStep): + """ + Utility class for testing filters on vertical block render completion + """ + filter_content = "Extra content added" + + def run_filter(self, block, fragment, context, view): # lint-amnesty, pylint: disable=arguments-differ + """Pipeline step that alters the output of the fragment""" + fragment.content += TestVerticalBlockRenderCompletedStep.filter_content + return { + "block": block, + "fragment": fragment, + "context": context, + "view": view + } + + +class TestPreventVerticalBlockRenderStep(PipelineStep): + """ + Utility class for testing VerticalBlock render can be stopped. + """ + filter_content = "
Assignments are not available for Audit students.
" + + def run_filter(self, block, fragment, context, view): # lint-amnesty, pylint: disable=arguments-differ + """Pipeline step that raises an exception""" + raise VerticalBlockRenderCompleted.PreventVerticalBlockRender( + TestPreventVerticalBlockRenderStep.filter_content + ) + + class BaseVerticalBlockTest(XModuleXmlImportTest): """ Tests for the BaseVerticalBlock. @@ -289,3 +348,92 @@ def test_render_studio_view(self): html = self.module_system.render(self.vertical, AUTHOR_VIEW, context).content assert self.test_html in html assert self.test_problem in html + + @override_settings( + OPEN_EDX_FILTERS_CONFIG={ + "org.openedx.learning.vertical_block_child.render.started.v1": { + "pipeline": [ + "xmodule.tests.test_vertical.TestVerticalBlockChildRenderStep" + ], + "fail_silently": False, + }, + }, + ) + def test_vertical_block_child_render_started_filter_execution(self): + """ + Test the VerticalBlockChildRenderStarted filter's effects on student view. + """ + self.module_system._services['bookmarks'] = Mock() + self.module_system._services['user'] = StubUserService(user=Mock()) + self.module_system._services['completion'] = StubCompletionService(enabled=True, completion_value=0) + + html = self.module_system.render(self.vertical, STUDENT_VIEW, self.default_context).content + + assert TestVerticalBlockChildRenderStep.filter_content in html + + @override_settings( + OPEN_EDX_FILTERS_CONFIG={ + "org.openedx.learning.vertical_block_child.render.started.v1": { + "pipeline": [ + "xmodule.tests.test_vertical.TestPreventVerticalBlockChildRender" + ], + "fail_silently": False, + }, + }, + ) + def test_vertical_block_child_render_is_skipped_on_filter_exception(self): + """ + Test VerticalBlockChildRenderStarted filter can be used to skip child blocks. + """ + self.module_system._services['bookmarks'] = Mock() + self.module_system._services['user'] = StubUserService(user=Mock()) + self.module_system._services['completion'] = StubCompletionService(enabled=True, completion_value=0) + + html = self.module_system.render(self.vertical, STUDENT_VIEW, self.default_context).content + + assert self.test_html not in html + assert self.test_html_nested not in html + + @override_settings( + OPEN_EDX_FILTERS_CONFIG={ + "org.openedx.learning.vertical_block.render.completed.v1": { + "pipeline": [ + "xmodule.tests.test_vertical.TestVerticalBlockRenderCompletedStep" + ], + "fail_silently": False, + }, + }, + ) + def test_vertical_block_render_completed_filter_execution(self): + """ + Test the VerticalBlockRenderCompleted filter's execution. + """ + self.module_system._services['bookmarks'] = Mock() + self.module_system._services['user'] = StubUserService(user=Mock()) + self.module_system._services['completion'] = StubCompletionService(enabled=True, completion_value=0) + + html = self.module_system.render(self.vertical, STUDENT_VIEW, self.default_context).content + + assert TestVerticalBlockRenderCompletedStep.filter_content in html + + @override_settings( + OPEN_EDX_FILTERS_CONFIG={ + "org.openedx.learning.vertical_block.render.completed.v1": { + "pipeline": [ + "xmodule.tests.test_vertical.TestPreventVerticalBlockRenderStep" + ], + "fail_silently": False, + }, + }, + ) + def test_vertical_block_render_output_is_changed_on_filter_exception(self): + """ + Test VerticalBlockRenderCompleted filter can be used to prevent vertical block from rendering. + """ + self.module_system._services['bookmarks'] = Mock() + self.module_system._services['user'] = StubUserService(user=Mock()) + self.module_system._services['completion'] = StubCompletionService(enabled=True, completion_value=0) + + html = self.module_system.render(self.vertical, STUDENT_VIEW, self.default_context).content + + assert TestPreventVerticalBlockRenderStep.filter_content == html diff --git a/xmodule/vertical_block.py b/xmodule/vertical_block.py index 6d6f8aef8a54..f66e90203679 100644 --- a/xmodule/vertical_block.py +++ b/xmodule/vertical_block.py @@ -13,7 +13,7 @@ from web_fragments.fragment import Fragment from xblock.core import XBlock # lint-amnesty, pylint: disable=wrong-import-order from xblock.fields import Boolean, Scope -from openedx_filters.learning.filters import VerticalBlockChildRenderStarted +from openedx_filters.learning.filters import VerticalBlockChildRenderStarted, VerticalBlockRenderCompleted from xmodule.mako_block import MakoTemplateBlockBase from xmodule.progress import Progress from xmodule.seq_block import SequenceFields @@ -72,7 +72,7 @@ class VerticalBlock( show_in_read_only_mode = True - def _student_or_public_view(self, context, view): + def _student_or_public_view(self, context, view): # lint-amnesty, pylint: disable=too-many-statements """ Renders the requested view type of the block in the LMS. """ @@ -117,11 +117,15 @@ def _student_or_public_view(self, context, view): 'mark-completed-on-view-after-delay': complete_on_view_delay } - # .. filter_implemented_name: VerticalBlockChildRenderStarted - # .. filter_type: org.openedx.learning.vertical_block_child.render.started.v1 - child, child_block_context = VerticalBlockChildRenderStarted.run_filter( - block=child, context=child_block_context - ) + try: + # .. filter_implemented_name: VerticalBlockChildRenderStarted + # .. filter_type: org.openedx.learning.vertical_block_child.render.started.v1 + child, child_block_context = VerticalBlockChildRenderStarted.run_filter( + block=child, context=child_block_context + ) + except VerticalBlockChildRenderStarted.PreventChildBlockRender as exc: + log.info("Skipping %s from vertical block. Reason: %s", child, exc.message) + continue rendered_child = child.render(view, child_block_context) fragment.add_fragment_resources(rendered_child) @@ -162,6 +166,16 @@ def _student_or_public_view(self, context, view): add_webpack_to_fragment(fragment, 'VerticalStudentView') fragment.initialize_js('VerticalStudentView') + try: + # .. filter_implemented_name: VerticalBlockRenderCompleted + # .. filter_type: org.openedx.learning.vertical_block.render.completed.v1 + _, fragment, context, view = VerticalBlockRenderCompleted.run_filter( + block=self, fragment=fragment, context=context, view=view + ) + except VerticalBlockRenderCompleted.PreventVerticalBlockRender as exc: + log.info("VerticalBlock rendering stopped. Reason: %s", exc.message) + fragment.content = exc.message + return fragment def block_has_access_error(self, block): From ebdcf2f34e4af5e69b68453ddc3624a6e2b82a95 Mon Sep 17 00:00:00 2001 From: Awais Qureshi Date: Thu, 23 Feb 2023 13:30:42 +0500 Subject: [PATCH 10/17] fix: Adding boto3 exceptions. (#31802) * fix: Adding boto3 exceptions --- lms/djangoapps/instructor/tests/test_api.py | 36 ++++++++++++++++++++- lms/djangoapps/instructor_task/models.py | 12 ++++++- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/lms/djangoapps/instructor/tests/test_api.py b/lms/djangoapps/instructor/tests/test_api.py index 8822b6aac7bc..15a6f06690dd 100644 --- a/lms/djangoapps/instructor/tests/test_api.py +++ b/lms/djangoapps/instructor/tests/test_api.py @@ -15,6 +15,7 @@ import pytest import pytz from boto.exception import BotoServerError +from botocore.exceptions import ClientError from django.conf import settings from django.contrib.auth.models import User # lint-amnesty, pylint: disable=imported-auth-user from django.core import mail @@ -2742,7 +2743,7 @@ def test_add_user_to_fiance_admin_role_with_valid_course(self): @patch('lms.djangoapps.instructor_task.models.logger.error') @patch.dict(settings.GRADES_DOWNLOAD, {'STORAGE_TYPE': 's3', 'ROOT_PATH': 'tmp/edx-s3/grades'}) @ddt.data('list_report_downloads', 'instructor_api_v1:list_report_downloads') - def test_list_report_downloads_error(self, endpoint, mock_error): + def test_list_report_downloads_error_boto(self, endpoint, mock_error): """ Tests the Rate-Limit exceeded is handled and does not raise 500 error. """ @@ -2764,6 +2765,39 @@ def test_list_report_downloads_error(self, endpoint, mock_error): res_json = json.loads(response.content.decode('utf-8')) assert res_json == {'downloads': []} + @patch('lms.djangoapps.instructor_task.models.logger.error') + @patch( + 'lms.djangoapps.instructor_task.models.DJANGO_STORE_STORAGE_CLASS', + 'storages.backends.s3boto3.S3Boto3Storage' + ) + @patch.dict(settings.GRADES_DOWNLOAD, {'STORAGE_TYPE': 's3', 'ROOT_PATH': 'tmp/edx-s3/grades'}) + @ddt.data('list_report_downloads', 'instructor_api_v1:list_report_downloads') + def test_list_report_downloads_error_boto3(self, endpoint, mock_error): + """ + Tests the Rate-Limit exceeded is handled and does not raise 500 error. + """ + error_response = {'Error': {'Code': 503, 'Message': 'error found'}} + operation_name = 'test' + url = reverse(endpoint, kwargs={'course_id': str(self.course.id)}) + with patch( + 'storages.backends.s3boto3.S3Boto3Storage.listdir', + side_effect=ClientError(error_response, operation_name) + ): + if endpoint in INSTRUCTOR_GET_ENDPOINTS: + response = self.client.get(url) + else: + response = self.client.post(url, {}) + + mock_error.assert_called_with( + 'Fetching files failed for course: %s, status: %s, reason: %s', + self.course.id, + error_response.get('Error'), + error_response.get('Error').get('Message') + ) + + res_json = json.loads(response.content.decode('utf-8')) + assert res_json == {'downloads': []} + @ddt.data('list_report_downloads', 'instructor_api_v1:list_report_downloads') def test_list_report_downloads(self, endpoint): url = reverse(endpoint, kwargs={'course_id': str(self.course.id)}) diff --git a/lms/djangoapps/instructor_task/models.py b/lms/djangoapps/instructor_task/models.py index 3655bccf17a0..2113af370db2 100644 --- a/lms/djangoapps/instructor_task/models.py +++ b/lms/djangoapps/instructor_task/models.py @@ -20,6 +20,7 @@ from uuid import uuid4 from boto.exception import BotoServerError +from botocore.exceptions import ClientError from django.apps import apps from django.conf import settings from django.contrib.auth.models import User # lint-amnesty, pylint: disable=imported-auth-user @@ -40,6 +41,7 @@ PROGRESS = 'PROGRESS' SCHEDULED = 'SCHEDULED' TASK_INPUT_LENGTH = 10000 +DJANGO_STORE_STORAGE_CLASS = 'storages.backends.s3boto.S3BotoStorage' class InstructorTask(models.Model): @@ -230,7 +232,7 @@ def from_config(cls, config_name): storage_type = config.get('STORAGE_TYPE', '').lower() if storage_type == 's3': return DjangoStorageReportStore( - storage_class='storages.backends.s3boto.S3BotoStorage', + storage_class=DJANGO_STORE_STORAGE_CLASS, storage_kwargs={ 'bucket': config['BUCKET'], 'location': config['ROOT_PATH'], @@ -265,6 +267,7 @@ class DjangoStorageReportStore(ReportStore): def __init__(self, storage_class=None, storage_kwargs=None): if storage_kwargs is None: storage_kwargs = {} + self.storage = get_storage(storage_class, **storage_kwargs) @classmethod @@ -337,6 +340,13 @@ def links_for(self, course_id): ex.reason ) return [] + except ClientError as ex: + logger.error( + 'Fetching files failed for course: %s, status: %s, reason: %s', + course_id, + ex.response.get('Error'), ex.response.get('Error', {}).get('Message') + ) + return [] files = [(filename, os.path.join(course_dir, filename)) for filename in filenames] files.sort(key=lambda f: self.storage.get_modified_time(f[1]), reverse=True) return [ From 4636d515381485cb8a7cedf2585d844b779d5718 Mon Sep 17 00:00:00 2001 From: John Nagro Date: Thu, 23 Feb 2023 10:20:06 -0500 Subject: [PATCH 11/17] feat: release edx-enterprise 3.61.3 (#31822) --- requirements/constraints.txt | 2 +- requirements/edx/base.txt | 2 +- requirements/edx/development.txt | 2 +- requirements/edx/testing.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 4ca6c189d126..f3d6ac57d738 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -25,7 +25,7 @@ django-storages<1.9 # The team that owns this package will manually bump this package rather than having it pulled in automatically. # This is to allow them to better control its deployment and to do it in a process that works better # for them. -edx-enterprise==3.61.2 +edx-enterprise==3.61.3 # oauthlib>3.0.1 causes test failures ( also remove the django-oauth-toolkit constraint when this is fixed ) oauthlib==3.0.1 diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index 8c23f43556a9..c5da2eb00189 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -471,7 +471,7 @@ edx-drf-extensions==8.4.1 # edx-when # edxval # learner-pathway-progress -edx-enterprise==3.61.2 +edx-enterprise==3.61.3 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/base.in diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt index 9ff9bea3f2ec..06a6f7e8607d 100644 --- a/requirements/edx/development.txt +++ b/requirements/edx/development.txt @@ -597,7 +597,7 @@ edx-drf-extensions==8.4.1 # edx-when # edxval # learner-pathway-progress -edx-enterprise==3.61.2 +edx-enterprise==3.61.3 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/testing.txt diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt index 702de3842ad6..a67ad05d57ff 100644 --- a/requirements/edx/testing.txt +++ b/requirements/edx/testing.txt @@ -576,7 +576,7 @@ edx-drf-extensions==8.4.1 # edx-when # edxval # learner-pathway-progress -edx-enterprise==3.61.2 +edx-enterprise==3.61.3 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/base.txt From 0ff7c5b13f28cb5a8784d5a39d8a63347810e9c7 Mon Sep 17 00:00:00 2001 From: ALi Raza <77275478+aliraza-abbasi@users.noreply.github.com> Date: Thu, 19 Jan 2023 19:31:37 +0500 Subject: [PATCH 12/17] feat: Enable Certificate Display Behavior add certificate_available_date in course detail API feat: Enable Certificate Display Behavior add certificate_available_date in course detail API fix: reviwed changes, certificate_available_date in Course Detail API but not in Course List API fix: reviewed changes, certificate available date display condition updated fix: final reviewed changes fix: serializer and linting tests fix: serializer and tests fix: docstring fix: docstring and tests fix: typo and mock call --- docs/swagger.yaml | 6 +++- lms/djangoapps/course_api/serializers.py | 11 +++++++ lms/djangoapps/course_api/tests/mixins.py | 1 + .../course_api/tests/test_serializers.py | 29 ++++++++++++++++++- lms/djangoapps/course_api/views.py | 6 +++- 5 files changed, 50 insertions(+), 3 deletions(-) diff --git a/docs/swagger.yaml b/docs/swagger.yaml index b697b8bb1a49..e5e224628810 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -2196,6 +2196,9 @@ paths: * `"timestamp"`: generated from the `start` timestamp * `"empty"`: no start date is specified * pacing: Course pacing. Possible values: instructor, self + * certificate_available_date (optional): Date the certificate will be available, + in ISO 8601 notation if the `certificates.auto_certificate_generation` + waffle switch is enabled Deprecated fields: @@ -2240,7 +2243,8 @@ paths: "start": "2015-07-17T12:00:00Z", "start_display": "July 17, 2015", "start_type": "timestamp", - "pacing": "instructor" + "pacing": "instructor", + "certificate_available_date": "2015-08-14T00:00:00Z" } parameters: [] responses: diff --git a/lms/djangoapps/course_api/serializers.py b/lms/djangoapps/course_api/serializers.py index d9188a51c4eb..dbf4736d4e89 100644 --- a/lms/djangoapps/course_api/serializers.py +++ b/lms/djangoapps/course_api/serializers.py @@ -9,6 +9,7 @@ from edx_django_utils import monitoring as monitoring_utils from rest_framework import serializers +from lms.djangoapps.certificates.api import can_show_certificate_available_date_field from openedx.core.djangoapps.content.course_overviews.models import \ CourseOverview # lint-amnesty, pylint: disable=unused-import from openedx.core.djangoapps.models.course_details import CourseDetails @@ -159,6 +160,16 @@ def get_overview(self, course_overview): # from the CourseOverview object in SQL. return CourseDetails.fetch_about_attribute(course_overview.id, 'overview') + def to_representation(self, instance): + """ + Get the `certificate_available_date` in response + if the `certificates.auto_certificate_generation` waffle switch is enabled + """ + response = super().to_representation(instance) + if can_show_certificate_available_date_field(instance): + response['certificate_available_date'] = instance.certificate_available_date + return response + class CourseKeySerializer(serializers.BaseSerializer): # pylint:disable=abstract-method """ diff --git a/lms/djangoapps/course_api/tests/mixins.py b/lms/djangoapps/course_api/tests/mixins.py index 2434443e870a..2940826c68c4 100644 --- a/lms/djangoapps/course_api/tests/mixins.py +++ b/lms/djangoapps/course_api/tests/mixins.py @@ -25,6 +25,7 @@ def create_course(end=datetime(2015, 9, 19, 18, 0, 0), **kwargs): end=end, enrollment_start=datetime(2015, 6, 15, 0, 0, 0), enrollment_end=datetime(2015, 7, 15, 0, 0, 0), + certificate_available_date=datetime(2015, 8, 14, 0, 0, 0), emit_signals=True, **kwargs ) diff --git a/lms/djangoapps/course_api/tests/test_serializers.py b/lms/djangoapps/course_api/tests/test_serializers.py index 045f399f4ecd..4ee5e10265e4 100644 --- a/lms/djangoapps/course_api/tests/test_serializers.py +++ b/lms/djangoapps/course_api/tests/test_serializers.py @@ -4,7 +4,7 @@ from datetime import datetime -from unittest import TestCase +from unittest import TestCase, mock import ddt from opaque_keys.edx.locator import CourseLocator @@ -15,6 +15,7 @@ from xmodule.modulestore.tests.django_utils import TEST_DATA_MONGO_AMNESTY_MODULESTORE, ModuleStoreTestCase from xmodule.modulestore.tests.factories import check_mongo_calls +from lms.djangoapps.certificates.api import can_show_certificate_available_date_field from openedx.core.djangoapps.content.course_overviews.models import CourseOverview from openedx.core.djangoapps.models.course_details import CourseDetails @@ -166,6 +167,32 @@ def setUp(self): overview_template = about_descriptor.get_template('overview.yaml') self.expected_data['overview'] = overview_template.get('data') + # override test case + @mock.patch( + "lms.djangoapps.certificates.api.can_show_certificate_available_date_field", + mock.Mock(return_value=[True, False]) + ) + def test_basic(self): + """ + Overridden from Test CourseDetailSerializer to + test certificate_available_date according to waffle + switch `certificates.auto_certificate_generation` + from CourseDetailSerializer serializer class. + """ + course = self.create_course() + CourseDetails.update_about_video(course, 'test_youtube_id', self.staff_user.id) + course_overview = CourseOverview.get_from_id(course.id) + with check_mongo_calls(self.expected_mongo_calls): + result = self._get_result(course) + if can_show_certificate_available_date_field(course_overview): + self.expected_data['certificate_available_date'] = '2015-08-14T00:00:00Z' + result['certificate_available_date'] = ( + result['certificate_available_date'].strftime('%Y-%m-%dT%H:%M:%SZ') + if isinstance(result['certificate_available_date'], datetime) + else None + ) + self.assertDictEqual(result, self.expected_data) + class TestCourseKeySerializer(TestCase): # lint-amnesty, pylint: disable=missing-class-docstring diff --git a/lms/djangoapps/course_api/views.py b/lms/djangoapps/course_api/views.py index cee7d7cbb953..fbb8517cf00d 100644 --- a/lms/djangoapps/course_api/views.py +++ b/lms/djangoapps/course_api/views.py @@ -59,6 +59,9 @@ class CourseDetailView(DeveloperErrorViewMixin, RetrieveAPIView): * `"timestamp"`: generated from the `start` timestamp * `"empty"`: no start date is specified * pacing: Course pacing. Possible values: instructor, self + * certificate_available_date (optional): Date the certificate will be available, + in ISO 8601 notation if the `certificates.auto_certificate_generation` + waffle switch is enabled Deprecated fields: @@ -103,7 +106,8 @@ class CourseDetailView(DeveloperErrorViewMixin, RetrieveAPIView): "start": "2015-07-17T12:00:00Z", "start_display": "July 17, 2015", "start_type": "timestamp", - "pacing": "instructor" + "pacing": "instructor", + "certificate_available_date": "2015-08-14T00:00:00Z" } """ From faf5fc28b827e5a595071b466343466607af4750 Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Thu, 23 Feb 2023 15:34:08 -0500 Subject: [PATCH 13/17] build: Creating a missing workflow file `self-assign-issue.yml`. The .github/workflows/self-assign-issue.yml workflow is missing or needs an update to stay in sync with the current standard for this workflow as defined in the `.github` repo of the `openedx` GitHub org. --- .github/workflows/self-assign-issue.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .github/workflows/self-assign-issue.yml diff --git a/.github/workflows/self-assign-issue.yml b/.github/workflows/self-assign-issue.yml new file mode 100644 index 000000000000..37522fd57b1b --- /dev/null +++ b/.github/workflows/self-assign-issue.yml @@ -0,0 +1,12 @@ +# This workflow runs when a comment is made on the ticket +# If the comment starts with "assign me" it assigns the author to the +# ticket (case insensitive) + +name: Assign comment author to ticket if they say "assign me" +on: + issue_comment: + types: [created] + +jobs: + self_assign_by_comment: + uses: openedx/.github/.github/workflows/self-assign-issue.yml@master From f8e3fd35dceba8750a0d76092c044271f4f6efc6 Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Thu, 23 Feb 2023 15:34:09 -0500 Subject: [PATCH 14/17] build: Creating a missing workflow file `add-remove-label-on-comment.yml`. The .github/workflows/add-remove-label-on-comment.yml workflow is missing or needs an update to stay in sync with the current standard for this workflow as defined in the `.github` repo of the `openedx` GitHub org. --- .../workflows/add-remove-label-on-comment.yml | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/workflows/add-remove-label-on-comment.yml diff --git a/.github/workflows/add-remove-label-on-comment.yml b/.github/workflows/add-remove-label-on-comment.yml new file mode 100644 index 000000000000..0f369db7d293 --- /dev/null +++ b/.github/workflows/add-remove-label-on-comment.yml @@ -0,0 +1,20 @@ +# This workflow runs when a comment is made on the ticket +# If the comment starts with "label: " it tries to apply +# the label indicated in rest of comment. +# If the comment starts with "remove label: ", it tries +# to remove the indicated label. +# Note: Labels are allowed to have spaces and this script does +# not parse spaces (as often a space is legitimate), so the command +# "label: really long lots of words label" will apply the +# label "really long lots of words label" + +name: Allows for the adding and removing of labels via comment + +on: + issue_comment: + types: [created] + +jobs: + add_remove_labels: + uses: openedx/.github/.github/workflows/add-remove-label-on-comment.yml@master + From c28f36cf6a999507369379a9c583d767a637d00f Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Thu, 23 Feb 2023 15:34:10 -0500 Subject: [PATCH 15/17] build: Updating a missing workflow file `add-depr-ticket-to-depr-board.yml`. The .github/workflows/add-depr-ticket-to-depr-board.yml workflow is missing or needs an update to stay in sync with the current standard for this workflow as defined in the `.github` repo of the `openedx` GitHub org. --- .github/workflows/add-depr-ticket-to-depr-board.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/add-depr-ticket-to-depr-board.yml b/.github/workflows/add-depr-ticket-to-depr-board.yml index 73ca4c5c6e87..250e394abc11 100644 --- a/.github/workflows/add-depr-ticket-to-depr-board.yml +++ b/.github/workflows/add-depr-ticket-to-depr-board.yml @@ -16,4 +16,4 @@ jobs: secrets: GITHUB_APP_ID: ${{ secrets.GRAPHQL_AUTH_APP_ID }} GITHUB_APP_PRIVATE_KEY: ${{ secrets.GRAPHQL_AUTH_APP_PEM }} - SLACK_BOT_TOKEN: ${{ secrets.SLACK_ISSUE_BOT_TOKEN }} \ No newline at end of file + SLACK_BOT_TOKEN: ${{ secrets.SLACK_ISSUE_BOT_TOKEN }} From c73e5ba518b636bb23e2f16892dfc8cc818380b7 Mon Sep 17 00:00:00 2001 From: Diana Huang Date: Fri, 24 Feb 2023 10:06:00 -0500 Subject: [PATCH 16/17] docs: add CertificateModel ADR. (#31825) Adds an ADR explaining that historical fields used by CertificateModel were not removed. Adds comments to point to ADR. --- .../008-certificate-model-remnants.rst | 44 +++++++++++++++++++ lms/djangoapps/certificates/models.py | 7 ++- 2 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 lms/djangoapps/certificates/docs/decisions/008-certificate-model-remnants.rst diff --git a/lms/djangoapps/certificates/docs/decisions/008-certificate-model-remnants.rst b/lms/djangoapps/certificates/docs/decisions/008-certificate-model-remnants.rst new file mode 100644 index 000000000000..a934dc376143 --- /dev/null +++ b/lms/djangoapps/certificates/docs/decisions/008-certificate-model-remnants.rst @@ -0,0 +1,44 @@ +Leaving PDF Certificate Fields in Certificates Model +==================================================== + +Status +------ + +Accepted + +Context +------- + +As part of the `deprecation of PDF certificates`_, we had to make a decision about the future of several existing fields in +the ``GeneratedCertificate`` model that would no longer be used by the UI code. The replacement for PDF certificates is +web/HTML certificates, which have been outlined in a `previous ADR`_. + + +.. _deprecation of PDF certificates: https://github.com/openedx/public-engineering/issues/27 +.. _previous ADR: https://github.com/openedx/edx-platform/blob/master/lms/djangoapps/certificates/docs/decisions/003-web-certs.rst + +Decision +-------- + +We decided to leave the existing fields ``download_url``, ``download_uuid``, and ``error_reason`` within the ``GeneratedCertificate`` +model and did not remove them as part of our deprecation process where we removed the UI to display them. + + +Consequences +------------ + +A consequence of this decision is that all Open edX operators, including edx.org, will continue to store this data in their databases, +even though it does not have any functional use. + +Several pieces of code still reference these fields, and there are events that still pass around the download_url, even though this field +should no longer be populated or used any longer. + + +Alternatives Considered +----------------------- + +We considered removing these fields and all associated code, but it was felt as though it was going to be too complex, because it involved +migrations and several API changes in order to support the removal. + +We also felt as though it would be useful for operators that did have historical PDF certificates to continue to have a historical record of +where the PDF certificates were stored. diff --git a/lms/djangoapps/certificates/models.py b/lms/djangoapps/certificates/models.py index dd6be3ccbdbd..dc43b0fd3515 100644 --- a/lms/djangoapps/certificates/models.py +++ b/lms/djangoapps/certificates/models.py @@ -224,8 +224,6 @@ class GeneratedCertificate(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) course_id = CourseKeyField(max_length=255, blank=True, default=None) verify_uuid = models.CharField(max_length=32, blank=True, default='', db_index=True) - download_uuid = models.CharField(max_length=32, blank=True, default='') - download_url = models.CharField(max_length=128, blank=True, default='') grade = models.CharField(max_length=5, blank=True, default='') key = models.CharField(max_length=32, blank=True, default='') distinction = models.BooleanField(default=False) @@ -234,6 +232,11 @@ class GeneratedCertificate(models.Model): name = models.CharField(blank=True, max_length=255) created_date = models.DateTimeField(auto_now_add=True) modified_date = models.DateTimeField(auto_now=True) + + # These fields have been kept around even though they are not used. + # See lms/djangoapps/certificates/docs/decisions/008-certificate-model-remnants.rst for the ADR. + download_uuid = models.CharField(max_length=32, blank=True, default='') + download_url = models.CharField(max_length=128, blank=True, default='') error_reason = models.CharField(max_length=512, blank=True, default='') # This is necessary because CMS does not install the certificates app, but it From 860fff6a4d3fb2016893d4ac6c576abf414e2329 Mon Sep 17 00:00:00 2001 From: Jenkins Date: Sun, 26 Feb 2023 20:38:26 +0000 Subject: [PATCH 17/17] chore(i18n): update translations --- cms/static/js/i18n/eo/djangojs.js | 2 ++ cms/static/js/i18n/rtl/djangojs.js | 2 ++ conf/locale/ar/LC_MESSAGES/djangojs.po | 2 +- conf/locale/ca/LC_MESSAGES/django.po | 2 +- conf/locale/ca/LC_MESSAGES/djangojs.po | 2 +- conf/locale/de_DE/LC_MESSAGES/djangojs.po | 2 +- conf/locale/el/LC_MESSAGES/django.po | 2 +- conf/locale/el/LC_MESSAGES/djangojs.po | 2 +- conf/locale/en/LC_MESSAGES/django.po | 8 +++++--- conf/locale/en/LC_MESSAGES/djangojs.po | 12 ++++++++++-- conf/locale/eo/LC_MESSAGES/django.mo | Bin 1187994 -> 1188060 bytes conf/locale/eo/LC_MESSAGES/django.po | 12 +++++++----- conf/locale/eo/LC_MESSAGES/djangojs.mo | Bin 437114 -> 437629 bytes conf/locale/eo/LC_MESSAGES/djangojs.po | 16 ++++++++++++++-- conf/locale/eu_ES/LC_MESSAGES/django.po | 2 +- conf/locale/eu_ES/LC_MESSAGES/djangojs.po | 2 +- conf/locale/fa_IR/LC_MESSAGES/djangojs.po | 2 +- conf/locale/fr/LC_MESSAGES/django.po | 2 +- conf/locale/fr/LC_MESSAGES/djangojs.po | 2 +- conf/locale/id/LC_MESSAGES/django.po | 2 +- conf/locale/id/LC_MESSAGES/djangojs.po | 2 +- conf/locale/it_IT/LC_MESSAGES/djangojs.po | 2 +- conf/locale/ja_JP/LC_MESSAGES/django.po | 2 +- conf/locale/ja_JP/LC_MESSAGES/djangojs.po | 2 +- conf/locale/ka/LC_MESSAGES/django.po | 2 +- conf/locale/ka/LC_MESSAGES/djangojs.po | 2 +- conf/locale/lt_LT/LC_MESSAGES/django.po | 2 +- conf/locale/lt_LT/LC_MESSAGES/djangojs.po | 2 +- conf/locale/lv/LC_MESSAGES/django.po | 2 +- conf/locale/lv/LC_MESSAGES/djangojs.po | 2 +- conf/locale/mn/LC_MESSAGES/django.po | 2 +- conf/locale/mn/LC_MESSAGES/djangojs.po | 2 +- conf/locale/pl/LC_MESSAGES/django.po | 2 +- conf/locale/pl/LC_MESSAGES/djangojs.po | 2 +- conf/locale/pt_BR/LC_MESSAGES/djangojs.po | 2 +- conf/locale/pt_PT/LC_MESSAGES/djangojs.po | 2 +- conf/locale/rtl/LC_MESSAGES/django.mo | Bin 775053 -> 775153 bytes conf/locale/rtl/LC_MESSAGES/django.po | 12 ++++++++---- conf/locale/rtl/LC_MESSAGES/djangojs.mo | Bin 280226 -> 280603 bytes conf/locale/rtl/LC_MESSAGES/djangojs.po | 12 ++++++++++-- conf/locale/ru/LC_MESSAGES/djangojs.po | 2 +- conf/locale/sk/LC_MESSAGES/django.po | 2 +- conf/locale/sk/LC_MESSAGES/djangojs.po | 2 +- conf/locale/sw_KE/LC_MESSAGES/django.po | 2 +- conf/locale/sw_KE/LC_MESSAGES/djangojs.po | 2 +- conf/locale/th/LC_MESSAGES/django.po | 2 +- conf/locale/th/LC_MESSAGES/djangojs.po | 2 +- conf/locale/tr_TR/LC_MESSAGES/djangojs.po | 2 +- conf/locale/uk/LC_MESSAGES/django.po | 2 +- conf/locale/uk/LC_MESSAGES/djangojs.po | 2 +- conf/locale/vi/LC_MESSAGES/django.po | 2 +- conf/locale/vi/LC_MESSAGES/djangojs.po | 2 +- conf/locale/zh_CN/LC_MESSAGES/django.po | 2 +- conf/locale/zh_CN/LC_MESSAGES/djangojs.po | 2 +- conf/locale/zh_HANS/LC_MESSAGES/django.po | 2 +- conf/locale/zh_HANS/LC_MESSAGES/djangojs.po | 2 +- conf/locale/zh_TW/LC_MESSAGES/django.po | 2 +- conf/locale/zh_TW/LC_MESSAGES/djangojs.po | 2 +- lms/static/js/i18n/eo/djangojs.js | 2 ++ lms/static/js/i18n/rtl/djangojs.js | 2 ++ 60 files changed, 108 insertions(+), 64 deletions(-) diff --git a/cms/static/js/i18n/eo/djangojs.js b/cms/static/js/i18n/eo/djangojs.js index 2380566af0df..b2f3602258e5 100644 --- a/cms/static/js/i18n/eo/djangojs.js +++ b/cms/static/js/i18n/eo/djangojs.js @@ -1293,6 +1293,7 @@ "Please describe this image or agree that it has no contextual value by checking the checkbox.": "Pl\u00e9\u00e4s\u00e9 d\u00e9s\u00e7r\u00ef\u00df\u00e9 th\u00efs \u00efm\u00e4g\u00e9 \u00f6r \u00e4gr\u00e9\u00e9 th\u00e4t \u00eft h\u00e4s n\u00f6 \u00e7\u00f6nt\u00e9xt\u00fc\u00e4l v\u00e4l\u00fc\u00e9 \u00df\u00fd \u00e7h\u00e9\u00e7k\u00efng th\u00e9 \u00e7h\u00e9\u00e7k\u00df\u00f6x. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3#", "Please do not use any spaces in this field.": "Pl\u00e9\u00e4s\u00e9 d\u00f6 n\u00f6t \u00fcs\u00e9 \u00e4n\u00fd sp\u00e4\u00e7\u00e9s \u00efn th\u00efs f\u00ef\u00e9ld. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f #", "Please do not use any spaces or special characters in this field.": "Pl\u00e9\u00e4s\u00e9 d\u00f6 n\u00f6t \u00fcs\u00e9 \u00e4n\u00fd sp\u00e4\u00e7\u00e9s \u00f6r sp\u00e9\u00e7\u00ef\u00e4l \u00e7h\u00e4r\u00e4\u00e7t\u00e9rs \u00efn th\u00efs f\u00ef\u00e9ld. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f \u03b1#", + "Please enable discussions for graded units from course authoring app": "Pl\u00e9\u00e4s\u00e9 \u00e9n\u00e4\u00dfl\u00e9 d\u00efs\u00e7\u00fcss\u00ef\u00f6ns f\u00f6r gr\u00e4d\u00e9d \u00fcn\u00efts fr\u00f6m \u00e7\u00f6\u00fcrs\u00e9 \u00e4\u00fcth\u00f6r\u00efng \u00e4pp \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f #", "Please enter a problem location.": "Pl\u00e9\u00e4s\u00e9 \u00e9nt\u00e9r \u00e4 pr\u00f6\u00dfl\u00e9m l\u00f6\u00e7\u00e4t\u00ef\u00f6n. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454#", "Please enter a score.": "Pl\u00e9\u00e4s\u00e9 \u00e9nt\u00e9r \u00e4 s\u00e7\u00f6r\u00e9. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, #", "Please enter a student email address or username.": "Pl\u00e9\u00e4s\u00e9 \u00e9nt\u00e9r \u00e4 st\u00fcd\u00e9nt \u00e9m\u00e4\u00efl \u00e4ddr\u00e9ss \u00f6r \u00fcs\u00e9rn\u00e4m\u00e9. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f \u03b1#", @@ -1939,6 +1940,7 @@ "Topic": "T\u00f6p\u00ef\u00e7 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455#", "Topic area": "T\u00f6p\u00ef\u00e7 \u00e4r\u00e9\u00e4 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3#", "Topics": "T\u00f6p\u00ef\u00e7s \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5#", + "Topics for unpublished units would not be created": "T\u00f6p\u00ef\u00e7s f\u00f6r \u00fcnp\u00fc\u00dfl\u00efsh\u00e9d \u00fcn\u00efts w\u00f6\u00fcld n\u00f6t \u00df\u00e9 \u00e7r\u00e9\u00e4t\u00e9d \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f \u03b1#", "Total": "T\u00f6t\u00e4l \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455#", "Total Number": "T\u00f6t\u00e4l N\u00fcm\u00df\u00e9r \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455#", "Total Responses": "T\u00f6t\u00e4l R\u00e9sp\u00f6ns\u00e9s \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1#", diff --git a/cms/static/js/i18n/rtl/djangojs.js b/cms/static/js/i18n/rtl/djangojs.js index 72202c3fe3c9..95d4b1d39b9e 100644 --- a/cms/static/js/i18n/rtl/djangojs.js +++ b/cms/static/js/i18n/rtl/djangojs.js @@ -1193,6 +1193,7 @@ "Please describe this image or agree that it has no contextual value by checking the checkbox.": "\u2c63l\u01dd\u0250s\u01dd d\u01dds\u0254\u0279\u1d09b\u01dd \u0287\u0265\u1d09s \u1d09\u026f\u0250\u0183\u01dd \u00f8\u0279 \u0250\u0183\u0279\u01dd\u01dd \u0287\u0265\u0250\u0287 \u1d09\u0287 \u0265\u0250s n\u00f8 \u0254\u00f8n\u0287\u01ddx\u0287n\u0250l \u028c\u0250ln\u01dd b\u028e \u0254\u0265\u01dd\u0254\u029e\u1d09n\u0183 \u0287\u0265\u01dd \u0254\u0265\u01dd\u0254\u029eb\u00f8x.", "Please do not use any spaces in this field.": "\u2c63l\u01dd\u0250s\u01dd d\u00f8 n\u00f8\u0287 ns\u01dd \u0250n\u028e sd\u0250\u0254\u01dds \u1d09n \u0287\u0265\u1d09s \u025f\u1d09\u01ddld.", "Please do not use any spaces or special characters in this field.": "\u2c63l\u01dd\u0250s\u01dd d\u00f8 n\u00f8\u0287 ns\u01dd \u0250n\u028e sd\u0250\u0254\u01dds \u00f8\u0279 sd\u01dd\u0254\u1d09\u0250l \u0254\u0265\u0250\u0279\u0250\u0254\u0287\u01dd\u0279s \u1d09n \u0287\u0265\u1d09s \u025f\u1d09\u01ddld.", + "Please enable discussions for graded units from course authoring app": "\u2c63l\u01dd\u0250s\u01dd \u01ddn\u0250bl\u01dd d\u1d09s\u0254nss\u1d09\u00f8ns \u025f\u00f8\u0279 \u0183\u0279\u0250d\u01ddd nn\u1d09\u0287s \u025f\u0279\u00f8\u026f \u0254\u00f8n\u0279s\u01dd \u0250n\u0287\u0265\u00f8\u0279\u1d09n\u0183 \u0250dd", "Please enter a problem location.": "\u2c63l\u01dd\u0250s\u01dd \u01ddn\u0287\u01dd\u0279 \u0250 d\u0279\u00f8bl\u01dd\u026f l\u00f8\u0254\u0250\u0287\u1d09\u00f8n.", "Please enter a score.": "\u2c63l\u01dd\u0250s\u01dd \u01ddn\u0287\u01dd\u0279 \u0250 s\u0254\u00f8\u0279\u01dd.", "Please enter a student email address or username.": "\u2c63l\u01dd\u0250s\u01dd \u01ddn\u0287\u01dd\u0279 \u0250 s\u0287nd\u01ddn\u0287 \u01dd\u026f\u0250\u1d09l \u0250dd\u0279\u01ddss \u00f8\u0279 ns\u01dd\u0279n\u0250\u026f\u01dd.", @@ -1786,6 +1787,7 @@ "Topic": "\u0166\u00f8d\u1d09\u0254", "Topic area": "\u0166\u00f8d\u1d09\u0254 \u0250\u0279\u01dd\u0250", "Topics": "\u0166\u00f8d\u1d09\u0254s", + "Topics for unpublished units would not be created": "\u0166\u00f8d\u1d09\u0254s \u025f\u00f8\u0279 nndnbl\u1d09s\u0265\u01ddd nn\u1d09\u0287s \u028d\u00f8nld n\u00f8\u0287 b\u01dd \u0254\u0279\u01dd\u0250\u0287\u01ddd", "Total": "\u0166\u00f8\u0287\u0250l", "Total Number": "\u0166\u00f8\u0287\u0250l Nn\u026fb\u01dd\u0279", "Transcript Fidelity": "\u0166\u0279\u0250ns\u0254\u0279\u1d09d\u0287 F\u1d09d\u01ddl\u1d09\u0287\u028e", diff --git a/conf/locale/ar/LC_MESSAGES/djangojs.po b/conf/locale/ar/LC_MESSAGES/djangojs.po index 71e676e4ed3e..6f7081ccf566 100644 --- a/conf/locale/ar/LC_MESSAGES/djangojs.po +++ b/conf/locale/ar/LC_MESSAGES/djangojs.po @@ -193,7 +193,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: Abderraouf Mehdi Bouhali , 2022\n" "Language-Team: Arabic (http://www.transifex.com/open-edx/edx-platform/language/ar/)\n" diff --git a/conf/locale/ca/LC_MESSAGES/django.po b/conf/locale/ca/LC_MESSAGES/django.po index 83b7b3de3997..515a4f343572 100644 --- a/conf/locale/ca/LC_MESSAGES/django.po +++ b/conf/locale/ca/LC_MESSAGES/django.po @@ -67,7 +67,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2019-01-20 20:43+0000\n" "Last-Translator: Waheed Ahmed , 2019\n" "Language-Team: Catalan (https://www.transifex.com/open-edx/teams/6205/ca/)\n" diff --git a/conf/locale/ca/LC_MESSAGES/djangojs.po b/conf/locale/ca/LC_MESSAGES/djangojs.po index 14fa354f4379..29da178b1227 100644 --- a/conf/locale/ca/LC_MESSAGES/djangojs.po +++ b/conf/locale/ca/LC_MESSAGES/djangojs.po @@ -48,7 +48,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: Waheed Ahmed , 2019\n" "Language-Team: Catalan (http://www.transifex.com/open-edx/edx-platform/language/ca/)\n" diff --git a/conf/locale/de_DE/LC_MESSAGES/djangojs.po b/conf/locale/de_DE/LC_MESSAGES/djangojs.po index 840c19a52149..534ccb15653a 100644 --- a/conf/locale/de_DE/LC_MESSAGES/djangojs.po +++ b/conf/locale/de_DE/LC_MESSAGES/djangojs.po @@ -134,7 +134,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: Alfredo Guillem, 2022\n" "Language-Team: German (Germany) (http://www.transifex.com/open-edx/edx-platform/language/de_DE/)\n" diff --git a/conf/locale/el/LC_MESSAGES/django.po b/conf/locale/el/LC_MESSAGES/django.po index 68ad9aea7625..216417d3d9e2 100644 --- a/conf/locale/el/LC_MESSAGES/django.po +++ b/conf/locale/el/LC_MESSAGES/django.po @@ -91,7 +91,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2019-01-20 20:43+0000\n" "Last-Translator: Waheed Ahmed , 2019\n" "Language-Team: Greek (https://www.transifex.com/open-edx/teams/6205/el/)\n" diff --git a/conf/locale/el/LC_MESSAGES/djangojs.po b/conf/locale/el/LC_MESSAGES/djangojs.po index 397902b2fe9c..24864404eeb2 100644 --- a/conf/locale/el/LC_MESSAGES/djangojs.po +++ b/conf/locale/el/LC_MESSAGES/djangojs.po @@ -83,7 +83,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: Ioannis Stavrakakis , 2020\n" "Language-Team: Greek (http://www.transifex.com/open-edx/edx-platform/language/el/)\n" diff --git a/conf/locale/en/LC_MESSAGES/django.po b/conf/locale/en/LC_MESSAGES/django.po index 22f8c0b59f94..361539578b99 100644 --- a/conf/locale/en/LC_MESSAGES/django.po +++ b/conf/locale/en/LC_MESSAGES/django.po @@ -38,8 +38,8 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-02-21 15:16+0000\n" -"PO-Revision-Date: 2023-02-21 15:16:38.756594\n" +"POT-Creation-Date: 2023-02-26 20:35+0000\n" +"PO-Revision-Date: 2023-02-26 20:35:55.019139\n" "Last-Translator: \n" "Language-Team: openedx-translation \n" "Language: en\n" @@ -10187,7 +10187,9 @@ msgid "Count" msgstr "" #: xmodule/library_content_block.py -msgid "Enter the number of components to display to each student." +msgid "" +"Enter the number of components to display to each student. Set it to -1 to " +"display all components." msgstr "" #: xmodule/library_content_block.py diff --git a/conf/locale/en/LC_MESSAGES/djangojs.po b/conf/locale/en/LC_MESSAGES/djangojs.po index 56ea15848046..2f654fbd7d44 100644 --- a/conf/locale/en/LC_MESSAGES/djangojs.po +++ b/conf/locale/en/LC_MESSAGES/djangojs.po @@ -32,8 +32,8 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-02-21 15:16+0000\n" -"PO-Revision-Date: 2023-02-21 15:16:38.909937\n" +"POT-Creation-Date: 2023-02-26 20:35+0000\n" +"PO-Revision-Date: 2023-02-26 20:35:54.725234\n" "Last-Translator: \n" "Language-Team: openedx-translation \n" "Language: en\n" @@ -9698,6 +9698,14 @@ msgstr "" msgid "Enable discussion" msgstr "" +#: cms/templates/js/discussion-editor.underscore +msgid "Topics for unpublished units would not be created" +msgstr "" + +#: cms/templates/js/discussion-editor.underscore +msgid "Please enable discussions for graded units from course authoring app" +msgstr "" + #: cms/templates/js/due-date-editor.underscore msgid "Due Date:" msgstr "" diff --git a/conf/locale/eo/LC_MESSAGES/django.mo b/conf/locale/eo/LC_MESSAGES/django.mo index 7ad6cb4f50829d7fa1179256dd403e37cca6c8ed..15900caae60036ba0a5f52c5f8c32a6ca147fdbc 100644 GIT binary patch delta 62365 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 EAG{aq-~a#s diff --git a/conf/locale/eo/LC_MESSAGES/django.po b/conf/locale/eo/LC_MESSAGES/django.po index 8079fbf2293a..84baaeaf0758 100644 --- a/conf/locale/eo/LC_MESSAGES/django.po +++ b/conf/locale/eo/LC_MESSAGES/django.po @@ -38,8 +38,8 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-02-21 15:16+0000\n" -"PO-Revision-Date: 2023-02-21 15:16:38.756594\n" +"POT-Creation-Date: 2023-02-26 20:35+0000\n" +"PO-Revision-Date: 2023-02-26 20:35:55.019139\n" "Last-Translator: \n" "Language-Team: openedx-translation \n" "Language: eo\n" @@ -13097,10 +13097,12 @@ msgid "Count" msgstr "Çöünt Ⱡ'σяєм ιρѕ#" #: xmodule/library_content_block.py -msgid "Enter the number of components to display to each student." +msgid "" +"Enter the number of components to display to each student. Set it to -1 to " +"display all components." msgstr "" -"Éntér thé nümßér öf çömpönénts tö dïspläý tö éäçh stüdént. Ⱡ'σяєм ιρѕυм " -"∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" +"Éntér thé nümßér öf çömpönénts tö dïspläý tö éäçh stüdént. Sét ït tö -1 tö " +"dïspläý äll çömpönénts. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт,#" #: xmodule/library_content_block.py msgid "Problem Type" diff --git a/conf/locale/eo/LC_MESSAGES/djangojs.mo b/conf/locale/eo/LC_MESSAGES/djangojs.mo index 1207103c862180c7bd1d79231af5cce297468d94..cce58992695430bf80ca73e4af371974de7dafdd 100644 GIT binary patch delta 47486 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 delta 47104 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 KI5lUs_kRJFycC%L diff --git a/conf/locale/eo/LC_MESSAGES/djangojs.po b/conf/locale/eo/LC_MESSAGES/djangojs.po index 4a4827997408..8d1f1b9c304a 100644 --- a/conf/locale/eo/LC_MESSAGES/djangojs.po +++ b/conf/locale/eo/LC_MESSAGES/djangojs.po @@ -32,8 +32,8 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-02-21 15:16+0000\n" -"PO-Revision-Date: 2023-02-21 15:16:38.909937\n" +"POT-Creation-Date: 2023-02-26 20:35+0000\n" +"PO-Revision-Date: 2023-02-26 20:35:54.725234\n" "Last-Translator: \n" "Language-Team: openedx-translation \n" "Language: eo\n" @@ -11600,6 +11600,18 @@ msgstr "Pöst Ⱡ'σяєм ι#" msgid "Enable discussion" msgstr "Énäßlé dïsçüssïön Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмє#" +#: cms/templates/js/discussion-editor.underscore +msgid "Topics for unpublished units would not be created" +msgstr "" +"Töpïçs för ünpüßlïshéd ünïts wöüld nöt ßé çréätéd Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт " +"αмєт, ¢σηѕє¢тєтυя α#" + +#: cms/templates/js/discussion-editor.underscore +msgid "Please enable discussions for graded units from course authoring app" +msgstr "" +"Pléäsé énäßlé dïsçüssïöns för grädéd ünïts fröm çöürsé äüthörïng äpp Ⱡ'σяєм " +"ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя #" + #: cms/templates/js/due-date-editor.underscore msgid "Due Date:" msgstr "Düé Däté: Ⱡ'σяєм ιρѕυм ∂σł#" diff --git a/conf/locale/eu_ES/LC_MESSAGES/django.po b/conf/locale/eu_ES/LC_MESSAGES/django.po index c465ab4a3b28..f830f6ebf06a 100644 --- a/conf/locale/eu_ES/LC_MESSAGES/django.po +++ b/conf/locale/eu_ES/LC_MESSAGES/django.po @@ -64,7 +64,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2019-01-20 20:43+0000\n" "Last-Translator: Abel Camacho , 2019\n" "Language-Team: Basque (Spain) (https://www.transifex.com/open-edx/teams/6205/eu_ES/)\n" diff --git a/conf/locale/eu_ES/LC_MESSAGES/djangojs.po b/conf/locale/eu_ES/LC_MESSAGES/djangojs.po index 06b5323d33c8..9a113d746b34 100644 --- a/conf/locale/eu_ES/LC_MESSAGES/djangojs.po +++ b/conf/locale/eu_ES/LC_MESSAGES/djangojs.po @@ -50,7 +50,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: Abel Camacho , 2017,2019-2020\n" "Language-Team: Basque (Spain) (http://www.transifex.com/open-edx/edx-platform/language/eu_ES/)\n" diff --git a/conf/locale/fa_IR/LC_MESSAGES/djangojs.po b/conf/locale/fa_IR/LC_MESSAGES/djangojs.po index 46020837f9d2..0f3823508b0f 100644 --- a/conf/locale/fa_IR/LC_MESSAGES/djangojs.po +++ b/conf/locale/fa_IR/LC_MESSAGES/djangojs.po @@ -86,7 +86,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: Somaye Joolaee, 2022\n" "Language-Team: Persian (Iran) (http://www.transifex.com/open-edx/edx-platform/language/fa_IR/)\n" diff --git a/conf/locale/fr/LC_MESSAGES/django.po b/conf/locale/fr/LC_MESSAGES/django.po index a49dd704d7e4..00500dee0b3b 100644 --- a/conf/locale/fr/LC_MESSAGES/django.po +++ b/conf/locale/fr/LC_MESSAGES/django.po @@ -316,7 +316,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2019-01-20 20:43+0000\n" "Last-Translator: Alexandre DS , 2020\n" "Language-Team: French (https://www.transifex.com/open-edx/teams/6205/fr/)\n" diff --git a/conf/locale/fr/LC_MESSAGES/djangojs.po b/conf/locale/fr/LC_MESSAGES/djangojs.po index 0a7d83bd4c85..0f5719e3b109 100644 --- a/conf/locale/fr/LC_MESSAGES/djangojs.po +++ b/conf/locale/fr/LC_MESSAGES/djangojs.po @@ -220,7 +220,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: Pierre Mailhot , 2023\n" "Language-Team: French (http://www.transifex.com/open-edx/edx-platform/language/fr/)\n" diff --git a/conf/locale/id/LC_MESSAGES/django.po b/conf/locale/id/LC_MESSAGES/django.po index 82a732c87af8..720d20f6925e 100644 --- a/conf/locale/id/LC_MESSAGES/django.po +++ b/conf/locale/id/LC_MESSAGES/django.po @@ -105,7 +105,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2019-01-20 20:43+0000\n" "Last-Translator: Aprisa Chrysantina , 2019\n" "Language-Team: Indonesian (https://www.transifex.com/open-edx/teams/6205/id/)\n" diff --git a/conf/locale/id/LC_MESSAGES/djangojs.po b/conf/locale/id/LC_MESSAGES/djangojs.po index 1ab699519370..16c0b7439c81 100644 --- a/conf/locale/id/LC_MESSAGES/djangojs.po +++ b/conf/locale/id/LC_MESSAGES/djangojs.po @@ -83,7 +83,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: Aprisa Chrysantina , 2019\n" "Language-Team: Indonesian (http://www.transifex.com/open-edx/edx-platform/language/id/)\n" diff --git a/conf/locale/it_IT/LC_MESSAGES/djangojs.po b/conf/locale/it_IT/LC_MESSAGES/djangojs.po index 2cfa5e531356..cdf41958d0e8 100644 --- a/conf/locale/it_IT/LC_MESSAGES/djangojs.po +++ b/conf/locale/it_IT/LC_MESSAGES/djangojs.po @@ -113,7 +113,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: Ilaria Botti , 2022\n" "Language-Team: Italian (Italy) (http://www.transifex.com/open-edx/edx-platform/language/it_IT/)\n" diff --git a/conf/locale/ja_JP/LC_MESSAGES/django.po b/conf/locale/ja_JP/LC_MESSAGES/django.po index 735fcd8ce3e3..65f1943f3062 100644 --- a/conf/locale/ja_JP/LC_MESSAGES/django.po +++ b/conf/locale/ja_JP/LC_MESSAGES/django.po @@ -114,7 +114,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2019-01-20 20:43+0000\n" "Last-Translator: Waheed Ahmed , 2019\n" "Language-Team: Japanese (Japan) (https://www.transifex.com/open-edx/teams/6205/ja_JP/)\n" diff --git a/conf/locale/ja_JP/LC_MESSAGES/djangojs.po b/conf/locale/ja_JP/LC_MESSAGES/djangojs.po index a2729cd3fb50..01204a9fd878 100644 --- a/conf/locale/ja_JP/LC_MESSAGES/djangojs.po +++ b/conf/locale/ja_JP/LC_MESSAGES/djangojs.po @@ -78,7 +78,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: Kyoto University , 2017\n" "Language-Team: Japanese (Japan) (http://www.transifex.com/open-edx/edx-platform/language/ja_JP/)\n" diff --git a/conf/locale/ka/LC_MESSAGES/django.po b/conf/locale/ka/LC_MESSAGES/django.po index 713b588d7e64..5f48cefa1c7d 100644 --- a/conf/locale/ka/LC_MESSAGES/django.po +++ b/conf/locale/ka/LC_MESSAGES/django.po @@ -60,7 +60,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2019-01-20 20:43+0000\n" "Last-Translator: Waheed Ahmed , 2019\n" "Language-Team: Georgian (https://www.transifex.com/open-edx/teams/6205/ka/)\n" diff --git a/conf/locale/ka/LC_MESSAGES/djangojs.po b/conf/locale/ka/LC_MESSAGES/djangojs.po index 30a02f9d474e..0717b7574018 100644 --- a/conf/locale/ka/LC_MESSAGES/djangojs.po +++ b/conf/locale/ka/LC_MESSAGES/djangojs.po @@ -56,7 +56,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: Lasha Kokilashvili, 2018\n" "Language-Team: Georgian (http://www.transifex.com/open-edx/edx-platform/language/ka/)\n" diff --git a/conf/locale/lt_LT/LC_MESSAGES/django.po b/conf/locale/lt_LT/LC_MESSAGES/django.po index e7ed24c4522b..9b096f8784a1 100644 --- a/conf/locale/lt_LT/LC_MESSAGES/django.po +++ b/conf/locale/lt_LT/LC_MESSAGES/django.po @@ -72,7 +72,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2019-01-20 20:43+0000\n" "Last-Translator: Waheed Ahmed , 2019\n" "Language-Team: Lithuanian (Lithuania) (https://www.transifex.com/open-edx/teams/6205/lt_LT/)\n" diff --git a/conf/locale/lt_LT/LC_MESSAGES/djangojs.po b/conf/locale/lt_LT/LC_MESSAGES/djangojs.po index 415fd540481d..334a799b48bf 100644 --- a/conf/locale/lt_LT/LC_MESSAGES/djangojs.po +++ b/conf/locale/lt_LT/LC_MESSAGES/djangojs.po @@ -50,7 +50,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: Riina , 2014-2015\n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/open-edx/edx-platform/language/lt_LT/)\n" diff --git a/conf/locale/lv/LC_MESSAGES/django.po b/conf/locale/lv/LC_MESSAGES/django.po index 64e8f08ad017..3ff56016d14f 100644 --- a/conf/locale/lv/LC_MESSAGES/django.po +++ b/conf/locale/lv/LC_MESSAGES/django.po @@ -49,7 +49,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2019-01-20 20:43+0000\n" "Last-Translator: Waheed Ahmed , 2019\n" "Language-Team: Latvian (https://www.transifex.com/open-edx/teams/6205/lv/)\n" diff --git a/conf/locale/lv/LC_MESSAGES/djangojs.po b/conf/locale/lv/LC_MESSAGES/djangojs.po index 4981e70de814..7fab2a97e2b7 100644 --- a/conf/locale/lv/LC_MESSAGES/djangojs.po +++ b/conf/locale/lv/LC_MESSAGES/djangojs.po @@ -40,7 +40,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: LTMC Latvijas Tiesnešu mācību centrs , 2019\n" "Language-Team: Latvian (http://www.transifex.com/open-edx/edx-platform/language/lv/)\n" diff --git a/conf/locale/mn/LC_MESSAGES/django.po b/conf/locale/mn/LC_MESSAGES/django.po index e8ab33b0c992..1e56b1effcc6 100644 --- a/conf/locale/mn/LC_MESSAGES/django.po +++ b/conf/locale/mn/LC_MESSAGES/django.po @@ -74,7 +74,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2019-01-20 20:43+0000\n" "Last-Translator: Waheed Ahmed , 2019\n" "Language-Team: Mongolian (https://www.transifex.com/open-edx/teams/6205/mn/)\n" diff --git a/conf/locale/mn/LC_MESSAGES/djangojs.po b/conf/locale/mn/LC_MESSAGES/djangojs.po index 1fa3d34f9a7f..ab6a5e8c143b 100644 --- a/conf/locale/mn/LC_MESSAGES/djangojs.po +++ b/conf/locale/mn/LC_MESSAGES/djangojs.po @@ -63,7 +63,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: Myagmarjav Enkhbileg , 2018\n" "Language-Team: Mongolian (http://www.transifex.com/open-edx/edx-platform/language/mn/)\n" diff --git a/conf/locale/pl/LC_MESSAGES/django.po b/conf/locale/pl/LC_MESSAGES/django.po index 232192063148..cd0807aa2998 100644 --- a/conf/locale/pl/LC_MESSAGES/django.po +++ b/conf/locale/pl/LC_MESSAGES/django.po @@ -150,7 +150,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2019-01-20 20:43+0000\n" "Last-Translator: Marcin Miłek, 2022\n" "Language-Team: Polish (https://www.transifex.com/open-edx/teams/6205/pl/)\n" diff --git a/conf/locale/pl/LC_MESSAGES/djangojs.po b/conf/locale/pl/LC_MESSAGES/djangojs.po index 3426e065db3b..9a871147adc5 100644 --- a/conf/locale/pl/LC_MESSAGES/djangojs.po +++ b/conf/locale/pl/LC_MESSAGES/djangojs.po @@ -115,7 +115,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: Klara Sielicka-Baryłka, 2022\n" "Language-Team: Polish (http://www.transifex.com/open-edx/edx-platform/language/pl/)\n" diff --git a/conf/locale/pt_BR/LC_MESSAGES/djangojs.po b/conf/locale/pt_BR/LC_MESSAGES/djangojs.po index f319df9f7e78..f9742cb22779 100644 --- a/conf/locale/pt_BR/LC_MESSAGES/djangojs.po +++ b/conf/locale/pt_BR/LC_MESSAGES/djangojs.po @@ -246,7 +246,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: Rodrigo Rocha , 2020\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/open-edx/edx-platform/language/pt_BR/)\n" diff --git a/conf/locale/pt_PT/LC_MESSAGES/djangojs.po b/conf/locale/pt_PT/LC_MESSAGES/djangojs.po index 54b0d235bf82..f6da3ee32408 100644 --- a/conf/locale/pt_PT/LC_MESSAGES/djangojs.po +++ b/conf/locale/pt_PT/LC_MESSAGES/djangojs.po @@ -111,7 +111,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: Nika Shahidian, 2022\n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/open-edx/edx-platform/language/pt_PT/)\n" diff --git a/conf/locale/rtl/LC_MESSAGES/django.mo b/conf/locale/rtl/LC_MESSAGES/django.mo index c3463278e81a0db14ec75a86044391f71f333304..06c69fe294502ec564f8b5fe97eb645446a756ae 100644 GIT binary patch delta 62339 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�*?-ppQ5 z7T|G4<_GPTNQ)4l7yrcJ=|MX9q@7b321V9z1{wy8Eby z&}%G(DLUF)Ze7&SO+{tN3e-CA6)O7g;~dP;$v$FjL1oWxIFK91?`*H{W4hXuA4E5b z1D;Y~E}TT&BE3(;g;43%7nMHaQ4L*z{V+@SNbe68=b(bDa}S$}G1!IrV%&@GQ0ITq z(?<3pYDE9Ve3-SD|NL*z%No!Li?U-9X2$)f9$ZBQ&tEtg(|=$=HwW8MFa2Sp_bZx( z_=I{)Z=2GTeImV|U=_zzOu=RR2#58v&x~;fxO`AxL!SYp1@0PX(R*W%eGrKrY(u#j zwIDsk1{imUHMAvaq-LT5iK7?WkC|gj4YePUi-L##jU1kF^(-hIH@(`^shG z{1EFB6YkLQ_L1oL#7OT8!_t%d7?@0ybHTpYlM~NPu_d&`R2%X;xPa{yr`eqUh|8## z`pD{+u@Cjq)9nMy2K<H3>3v0$6P12_urkg%$#w5m)&J??-y za1`o-EB*QzjHdn!)#Id}SWin}1?qh+oNv01eJzI&{g39 z1>G>=Li?ms9LrPx7!@?<@e0;hWS{dhFOKy7LgCk_kt?#qF6g30YCRUjeHa&iK|TNf zz+(6w^^7UHl>FBLb(h)+%}|fi$yfyEq8fM{)x*brJ<&2-5sRU2*bntqI}UZdd8l<` zsqcQ&2wz5xBQKqh8@N8@h5UBEA1Wqzy)~J?Y9w?|Z+(n4kJ6 z)R1mM_3Rwh!N4k8H|k@~03AVfVBZ>Rz;)EKaTEqhT6Y=bENkloVbrD zC@L3k@xSFl&0W;iNbgtb4KWTU#@%KsUi|Hm-fulB;6_~t6SKd;4)Pk?@3eK|#4e_Y zdcWPaLT>)tJd9e}jbL(Og7JvJ51P{$2LJxrFN zu5$+U47rPnq11aV8)~7Rsza~}&cXc3|4S4!ByslHNK{3=BF*sKgT<-eLR~o3etTTk zLiJ=Ys)6%yGrmQwd>anf_kXDl^4$;h{a6uSqh3Htf5}HV<$os%429Dd^&YSgqwyFj zYVTuKbPn0OUp6dFwJGYEF&h)&R#Yq;K&4xf!~-upedLVS7U12hnj-#F$(`hEo2$Lvi+4%H*ASIe-!Gv3%?@& zHAmanpa$GV)qh9zAnVswFNEr07gU4$qef^N>Oz}Q>%iBj^M63S)CP~5B``Vlo_G{T zp|Y#|G1rE2_c81FQ`ExX9JdiDhdQx2uEJi}5EGoR{BMg<)Tg74+k)!I5mbZDsUC-S zMpW?qcG5;9{EeB}rO=lHieps{SbNH1;Snmjlb^PzE`{GwZ-fe>OlNE;+o5_q0;6y% zeuL-y{R_Ue1#Ty53Vy|bnBY6RpF5UTk3OBpXq)>1>rxa zo)tc4U$NFfP2G9a8_`Y7g0E0Za@z0dpgN4ikn6NRZzl{wrPFv+k5*zKyo3`lcp=i+ zhEq}hP(kq@?7iWGi!3w|3^@kb|N64U$a_>Ur@mr6&x29a>tQtZMepDLm`kAr8&;u) z?lo#IzrIRKLo@*OjCgy~E>P@eORHw61!**DU6_noSPtMqe201{eR9iUY6EIrxrd64 zM7Q~q7v+Cu3R)`X;V|mw?nF8Vs8_qoCm;Opp1qW|d|)5BK11bwxrdS7FC<&z9O@fU z4K4MH&2fL!OXxj}W&5*VE&mHXvJq&3u7Yj^1wD3;U|&3gO|aBsF31IDVt48%o4b_7;2#JF~suZ#IJS@FvGUMvcVj-|Y=5;UAISUp8-wdPlsCT9C#(C;uB!IQ86? z&~$&=A4W|;y?VXGdRXCweIqgxy)?r7Y!ClsJt>ZQR}!^C z>MwB>_2_@?I>%89({0pslDlthM-dDurths^F z_y+a(&iLMXSQnM1{ZTjGjOy4=m=)cm|5=(9MLj;dVvv@P!O7Go@Y1cRh#Mzle~kte z)n`x*xPc1Bm#Ak#%0S2)ncS!-?~QsEj6to8t5NICE@T~Xol_Ll@*hwadV%FISp*lP zA@%VW>Ro~%?|(X}6B+V8T$T%koDbOl0u@8;_o4DzBf=e{tdPAy+t*wU%U__ zNB)hYpq{Ki<^4faL(X{z@QQ_sf%x%t0>2SQ9bX-DVkgv)PeVOa_M>7ce}a(r8eR&c zsCPx3HyL&OO3a}Azd%8Mx$G%E!c&Pt-k*l;N)mF?QIAO)@_vw9IT;P1ehBqD;A_c4 zUS4-g8S);_>rwgtD{6?NQrQhlpz4jVIOp|1P1W+$A^!aj3cD$2CA*25tB2Sh6Qr@J z7>#-u9l$W&LXE^P7>%K{A@6fQ45pwy1T_U8;Ye<{6w^>ooj&9(?FH~4^-k$SuJ=c( z88g_>PsKx=umt(`c*+brY#2_52^Rx5kAK57U$A)5r|%jG4&Cs{7g_Z3(vV^h@2W|PvEP90IPun4E(X4FU(DPuS2 ziw~$TLmfAvtlek<4x;`QYATABvml>`>cBeer~Ln!f)s`>2H_5Nj4emRP4VCc)mQARdi+UH=$eEeuB}jArP5#JSk0 zvIX1SD%9CuqiV=|p8pRO-5IOd)O>=wIsPb4z`->_-q&&e)C_r#?Pj%X-B^RuIqwY4 z!KSq>w(i#^|M#$=Po0qW^V)26L*5%u=6ZIcPfWO>78rVyoshM4eDWHWVx4 z6dZ|XP_a?9g{}RKZ~*n;sQiA6O3&9Ah2fUALdKvLtlFrwZjVaq2QGzX6w0?^2ys4+ z#?-CtLi5pEC{RoDuc(h)iP|s)0e)YB!=9b_A8C=TIFBw-0&m z18y1$3cgxc3AEE$Ubbt<`#o>4n=K^wa5vlQcK4TVR1dTD zuyvvc=Foneg#)n;Iz4&ZYCASi6<_H2zn{Y2Y}ne1HJcl+{=lAQ+di~~@kRUCL#GjHibi4|1(oiGM_`+kC2y6_NGmMq68e1n?848v`Xi=ncrDXL-p zP}g6CI&LRw#Lu{X;T|eq-=Tse#R!{%qNus5f(n|(7=^u1b2=TBR?AUOw}YsjK0w{z z4Hm+bBdtNzP*2g0sPo+g6qL6cP&fV(6*MP)kRldhiKqZoWok!_U6&P(zw=jNPatDoYxo z8ZZ#mkvV>S4XUSKqo(pNe|!3|7UU(-`~N>$Q_#@%N8NBLDt*?Y=KfpMh2LOROiaua z#wMs9PezT@XSfhQ$9!04977z3X9Mc|8RM@cbtKdlWdAV#x~S(n1jwb$zt(`+OrObp{?}=u`b&OpoaViYCU;?ivGw&_U4lgXH#E^J(T|i7u!%S#7^wkk8Lsi5?eTi zp%#p(sOVmS&v7r#!i`Jq4XMO3Yrq(c%l22C3(H~3754Jj2sH(5a0G5cEnvA;+RJET)QB8J&2@McUszx<^g4nm zxxcel1^f;*1-JeBJB&{~`Dz=9OsH7NkBZ(Zs2es%MfG^BiYrh*NVtz%apT&M_X~+; z>qFjm$ayw|oTnW365T}k%TphYI&m**4L^(R(Aj1|*d7y7 zosNlcA!_8-`TLJy6Y9_KFjn3k@_tj|?65bf3#bO=-RauL?+gQf8lYJZ%=){xxT zka`^~jLT3l^F6ZexXvAa!yD9v5*@Mk`@*Owy^j;{hp#Mnntp8!?ufcjUo3;;QB!mX zHFEb*Q@D{JYVB`!(i%Phy`>j(DgS3v=!ARy1JZtDQJ)hP<*iW*QxB|$ zyHM%#59-2kPgzg1qaIonP_JA)@n0N{O1r_QZG^|68oU-=4eeP9xe2BQXZS#YBfblH zKbyIC&Q6&4y{&*7P(A+%^AV)aQNIz%e8HC7F+W%kPr*zaw+6Ld9K}L952G>BMSGYP zyh#49V?$3i=*Jm}FNK^_)RX*ZYyMTtLj8BtNF=#zLz)qF!I`M-hcO?1i&`=NL1jhY ziltdzR9aU?#l#HM`RlHb|7y_{HhhJzuo>>ZY9A64|IbFCJr-yC1Z+)1_oEh=6xS`P zd!U|ji!mNxm96>$*uVPD#xMRWB7WGsdjvCTEs2)E=&HYPkiplQURCGs;+!$m*a-AP2=!BQ3 zd=A~ShNMH?I1gsUDyX^Zj%wIARBWt3<^5Nv_k@S2p?;5A@v`2x<7%Krx(BMEv+%B- z|3@fj$W}eDx83is0rfNw?NzJ?>P8!VPoskESJc9j>K9v38lvWW4wk}8SP~Qd%2%%p zc~zW1{p2J2!n5XMrilAH*D2KJfOt==g)N`jLt`xJMmMn!#{bQFJ{*ToUx@QD(KEhs ziJ$}6pL*a=8@WMPm-*!x>EnUjXSe@}21Zen}GWMMDe-z4MTKN!r0gUQ3*-|H`! z!dm<@>Oz@P+Wz%egC1r`753iiyQB_#S@H7&BlzlNJJI_!N#@)vIB0$sCO zJw>*#_xAuN;uyAf${zM!FmB;6>J@T?`R|x{mf+{q7v~ClFQ@fltRtsT&x~@p!(KYO zEh#8XCZVEy6Gq_~|A5D+bV{8k?4@BD)CJmMK^%dpa1-i{<||Y-UBPH{@`k;%%ZfU$ zCKkc2NS3+ILJC@;enI_B#y?RHnfLj^-Y1_F`E5!XpcanV*aPpPvZ8i@u$N~0u{rfW zuoBiN81{ak^bx9KMGDzSG)65*XVLrj|Dp?rz2EJ%Ks_c`qoQ>?>dojKYH3bTBc=H$GfE>^+1M zmLTY;cSfy@o3VuUqb~FpYDrF3()O1}t$+Q%8gHbYIp4AgmBPz^d+n*3Kw zpRhqKjaMe@1TiOe!MwNt=b&1gy{z4!AXcVc2XoIXG!>(8# zHBz4=E3E5Wp`c*t(8%VfKWa{gqlR`RCdO^3{62(wFG$hY)`@(mG_8dH!vtl6o$lrl1weX=*$2prW%QYD%V{R=V9-6z^gsOx-N(J?C3uY3d)N zrr4-+4>nOB~oD?0k;}TG~_V9qNX2TUkR+;CSkP zU_2e)+8Qt#H3EB3Jw1+E(l1~v{*AhEi8hu!-B2Sm9^JSUc2m%he2HOvj=JD$R4|6y zTF?|jMRQ%$@x4)RI;&AVzJW@&r>OM(2i4#)Z21i)JWI%>w{4Zb>~w^Mqx9S!$YVg^fl@!mZq0As5#D~z5qMN;ajc`>|r$h z!?5>N?NQW?Q}(uJL?+Zw*F>dnV^q&Op^h73`(0-&1vOwA#^4gnkH=B(0nf1>hWgl= z-xM`;3sF7ThHCH$tb=#)Q!LQe((fed#*zJONl%BBs1L?^%KyC-2D2g9-wqgokEs8M zy77?#VeeOQ2?w%LQXhp)@C0f|(+;wQsWK|<7GrHZf@)B_!8WqZa1bLm4?D9xG&JmV zQ2zI#&>qj=6pR^WbG8GOe&3_=_g~*U!)=ILVMDf0LIvAp)Lj3DIxpb}8=2Cmhg%EO z6pz9)xF22pvpW+;TK--eV-K6h*o^~vjOBHi7N0}?@MzdL>+yo|Vei}UBRHSqa!m+3 zKeGQzyn%Bkg`LINdx`~bXqr8Y{@>DF$4OPaaU7prVkhVnB$n=VDe11IrCYjFI)q_q zP>}AF4ry4rm6VneK@kw8exTCG@AEy+{Nd|;&z(Cr&Uv2ap1Cuu-SI27zl2w@^+fW& z7YoHEF&)NLI1y8P72!FK3vmH<_&UNpit$X2@XTk&tx!L=do_jF!9G)MdOm6z!AASk z^a%I&1Fp}AaKEnqd?uBZ^^ImlxZfLOpA+FZ!hUbeA^&y2MRV z1M?%?kIr%|jBtN$_a+`?{mwGo zSrOrWfV3sZLS;6LUTHfRu!^yyoqjbp2R1CU#^&*Ba185PuC*Qhw$4s4xIV&jm-Q7l zM7Uqk`BwI?=PJ-CZX>#!}BZNc&^BxOZcR7D$t0i2G?+r^>wcc|LE zJJkLSm9~#j+kHUY)sk$rbQ^*VIf2P|3GZx+aKE(Jxg)~sbZ-piHAk$-ZxC`}x;S%bA2@jbcVSUMj;IX1C{DsP{KO_2fWQ z0s97Z;wvxuuHh@?|GzBgjGugOc^&qHb!mRw%=%Ke8y}%gWYuxo!D&?c0V=-} zpRj^c5Ph_VV@@28+i)Z5=GE?`%?l=Auq`W2vY<+p@04B9AXLGbfhw^_Fb`fw?J(YH zJAu5InRYeQ1g0}8ZL^&T-RDs~kn%_C`rN1?s*ZVa_K)PhYW`tXC@ua%-F_>dwaPXV zRom}jVT^aqVxkyo0#YBl-~`l=Ji`i@?z~mN7N{YbfRVTYH3Z+Ig7%N|LEGUAR_H*< zFIWlv1l6^5Q0x1lCKA(dKCVaIcB@{rxnDz6g`9$2aQ&qS_apUGKiNmR>Q^G%Biy;D zA-{u5v0d=0eg2Pk%}VJ)tjr71*DXy3V0GG2H!Ma5qo!J4AxYy|h}Cd8CcuZNbbf}d zFzjc$H?&6G69%E~t}9SI5xmHPqV^wDnx(yIV_O3iwVg3O4#7wqfdz31s!m)$#mFzH z9{DHK4*$h^FdZt3%A&fw8fyE-NYDm7J#E1=4RuC4P;<4bs5AE7vMVo&y0REl@HE9H zI2sijKcmtv>1`XT+^7qyh@W6bEQ7O97j_BV|Nr|Q3%a6LsG!RGtCh$$sONi2Q1gHr zp?2=yY)9=;L$wTbTfL9vFxwrg2klYs|0dKvg-X*GsGdsyJF%u<$jyR+tQvlb9Z_e# z5S4BRQ9W@VV=(1in_#p=#l~tJgwL=K!PoVk4dspd5uR17Py9!O`-e%}Q9<4Mfd%;( z463V_v!FA*9C{(?pSD3%$l9oa(gPKA15sT*9F_lDuqR$X6|!=FS^Cz;8?=|B#(u;@ zyRgX^#))ozNdD_ew?49<_z9J-k5FCZeQaZyAJwjk>9HH?O2(psX&tV^!>AbQ@g&0i zEvPA|{f&NVbH^p9`f>*~1cm+=jBsDGm;awdX})LH6Gc!#)*Dp`=cA(iB&sKVLPhm$ ztbh+tJ(BmirQ_$Qda(+>#6wsB%lvHxt2-W{eL2X24m9TXk3CTrG8j{0a10BHSeP4nVI>x!y#Pxv!WsEpoX9`>PknTcKjA~f=OT5`wQa?+A;VZZ{k_y|BcrcRBPW@ z@N7nn;Zf9?-$U)_Jt_;bytT2dgFb?&(mR3>YrnUO*YiI+;AvEF|BC%E`3GA+78OJD zF~5rO4i?k{cTg4ZDe4NdGQyEq3e|3j3Z?<59+`%daTQj;B4J(^{R1%z?TM&DvmSN8 z{a72Xq3TV}aQ3hKZ^}YT9D>^53f98x@x1QDzCd;H2+V`CP(yPN)kFVcK1>|n>n@-K zDrkFPMO=WYBeziLn;?PL#Y`d$Dql0Q5Q))P2kW7(a48nU9ijGP)C3|tq1Qcp%8e1U zXQ8fe5jMwNsGv+4;dLcDJ1QoMp#Dim3@VFSdA&UUXQ8v#cGMdS&>n=Ha3v~@68XGt z%9ImzpRa`Kf$pfDT865ePp~28@Oxd&ABq~9b*QX(gi71+fL&N1!1IqJtf<5a)$;nN z_8e@At59e90afXIiR{Yqpn9kz>ZVi|b%m`_C)^Kp)0vFgZa=C=E@E!{9aZuZ1ryuY z7#rS5ag73>71wBU;R8B&5`C3$=xsCdamnpf|eJQ;wh3)u1)QP4~X~CKg zbz+UM6!t)6+Zrsb{NKSsBrBey@;qfK8=GRNuIi2I`njkR*@cSgtJodWr?y}mhtahE zM#Vz*G+y_0TnlVLdkN}9-lB#!MOtMW`PZEVUD<9_Iz2@lDB>fF=A5Xkh()E@dDPA3 z9jY#@PG>`K2$k>0QL%6x>*HfomzPg(LEaJ-gdMPh^1mkwpW#LPfZ0B_!jdh6*Zt%3 zEx3U7oibY2g=exIBt@m&N2s1F9BMZ~^;};pj0>OL?sQJ;fg7m$@dR}uIdgeE z<*_*?#s#^^e|61TR#ajK-)jT( z?S%!r?*E`rILhn3CA*4++24*&yzYa^pV3}VHMZMQ(CcPSuM3j@`B_n^kk|7y8}>ns z@%zGd;5cXm_YJGduab{r@9zkWvvmgsK zSqT5s>%LH^gT-lIMx99FVqQ13DuKOduMV}-6!*Hj+89&`e}y`5poE=Zc2t_hpkk{L zD!5l+Ry=^pmf&wJsHUeVX{EO~D&0C^NgRhd^TVhEJi%@lQOYVTpbm5h z)dSaXEgF}MjBOW(95?8>$--b>2ruh(KSCRZakO)l^SXyhxA6h(?G?Q4_dts( z+LcYJWLG)|BYAx<7QvgC7n4`E>?n;Y;Z0Co-WF8{`nvVx-$WL4#xp`MtViYXkY@3l9c)E);UQG;T}2h5zfdQTpf;5a^Ppm23P$2O zRBW9_#n8jrOc5IKQP-7a^*~YR4W}@8< z6$2AP>sMfH+Q(2amZFQ*i%O_^(-z5+pl3V_3cl^37jky>x@SSPP-(OZRfsNODNNGM zg02SYrqT)(bkk5XqaCQ=Iu~k}>~4AA5cU3!SOAyd$GZQYW1%=J9)>o^-ov`I4JsSH z!YI6oiiw0h?e-dlO3x;k2>YOdZ8&QC>8Of$7!?cmQ3WVlFYB=)m{s}TfCZ)1K+J$+ zP+h(Z)unNv_Qg>90V-?a^|qL4hMG(+4|y1y(Y}q%u|yx61<%A7+E-Bbmdsy}|5aJ2 z$wD=pj%we)x|pS}WyKe$6WM|#@C>T3BV#gPh9Y{9ZC4#N3vQ0O z7j(l4I16T|y)&qG_U04)VaGGFF?1wtQ{LuQ{c$D@}*cj)HwfV#UP$#-(oDIQYjHG=N)8cz9 zto%jBlu6z}$)E-3j*gaH?#h+@iQ2>KFv!*QQ4IQyEjzHCeqgXPGN#!)J=XyBv|LJz% z$XWKFp#W;fZBSPhMD1qi*2k&qS9(Ls&wB%^}t(Hw5M8PU0wwh#Jx~M zHVL);;vfsk>%Ewj75A5#zGZgC`BB+X5+ku8svZnLUBNA^f}U@!vQr{T26@LdrGpP1Gd36xD7Q%E!TP7?*U>_ zSK?i7W1I$6a_gc_q%|r=CZWc910kQJo+%aDWZAU_gSs#O%|d-P z{B*NT!zXUByWTITC@#9yuA~!Aq&)_8;3V7Z%1faBut-zPfm60yk8a;#LvarCu>E_C z$LqOvvL5rrk^j|sq1i6Z5SOD$Z1`>~9BoitxCYfDKcJ%cA!^K%?y(*zg^Hd2s7dTs zAs3-~Y7=(kfCo_}JI6k&1E1~-S{ij{g(eh}QDc4(RT)pC-f#_d0)L{$GRc0+mW-&O ziN?tspe!l|&K$6@{u7nn84nVi7<0(x8*LBUe%1t8Q2xfDg5y0Z*a{x8=K=LlS#T8< z-H%WQNO085it3?qsQ0(R4mb@pL@!W1mF1YdzcwoUI$;V7_F_R-9*YX1ZK$#OG1PvE zN~h%C+xl{-=|G7gnJ=TX1)7;@5vGUl`mQA5&5ZLF(eH0>`?S@JD5 z#UD^Hk@;2i3v@+ayx?0sxQ6piI+ z&qmeytEk|7j5^ROR0T}*#P*vBHSs8jO3T`)`Z5rkV{kSLJ{F##^7AcfhlQS6FqJ`# zaWDKA*P&it`ak>Fz8-ZY8K2n|7D5GIOVkODMBR30qfT%iD&5Z`!5j3vWI@rM^trvE zEGmi{qON=_mc{Q-UHAyK<1~L;&Cie5X;;GEFylX7_tokL97+4gzm}$zUf56$LB-gg zxIp$6F z_lhp4U>}HX{y&}tjmdUY*Ive{cpFuK`nOMdd%*!zFg-$@NNOTT z!5WEqu^dh$%DbVq`zOrj*%;0Vg!?>c;&H<9eXb{dkMIRu1$!3Za~~#sUY|SDWO#@- zwnr6=>^`3h&LXIo=#C|D2C9dCL_MDS6*V*u{66z@ zvxmm4P?RT65}*6h=`kw*3nt}? zu@)-m+M~PMViDTgf-IC_;Q>Zq&SZ9mQK&PFK^?ehsQo2&qy051_+H`&%%0qOZaJ2t z{Q@WBrzvdz$58)nAUvhd-Gq{*^0`sD+7o>QeV$c#GM{y6p8`JjrP5LC%mF$_*@4gDDcadS z@wr0t1S|5s-qAky^lWQE8|&~wK3Cw1p#I%Zd(>?CdSNbz<9m`8^|||bBUBzQLv8R9 z%hN7U%;%n7^}@@vH{)X*TiklCUkU5tix|oJ^d)`neqRc8`(BDw@f8-sa;3~c7}V`@ z6AMbG+@&pQ+o5Ky!%@Msri>da&jZwbymDDi5I19WypM{R=yE>yHC$I5P1{r6hH4Dz zQ}k|J&g!cbES-l{B>yL}VrxYUqSBRo?&;QGjAQ*Z)EG~#Y-4{HN72q(#piw>@Eta# zovNxGs3$7wzeS~IbTyxw@vO!!v>V3w+#ep?j}K`Nu1@~z?$n`%&y$ifoP>(j#Wn4U z?_+J+6>Hg*Peql~cc>HWTHB&LOC6v4cYp^`J<*}A&&~Z7p>AH+uso*y%;z3s>K+hm*OI7YVFp$}Un}d+yrd>%R+DB10seilq+&7;qx?6gE)Wf>E2Daw)vA7WL;b%Cir_cQ| z`Vuas-LaR?eZEN8Ta}gk%f>=xUZ{p`urn%6PM~7J)5oqn27A-Igypf)7d|%`9fK>? z?rZmeKd~b1ef{jF^8ponb^80<-8Bw1l;Hz-AIJAhV?jYvY#?KXeXu6(zylaI$mf1C zeF&%19x~VpPNE^^WKUrbIf92s5R_KgxOt3EOJ<;cWv0QPIWx)&75Y_t1?15uxe~pVV#n(Rf z%ZV)*MSII+yLtVJsvm(VKKBW#HP)cL26dr-PvOdx&!2wdbI<*kqdv2xnCf%Sf@@

8s1mY2# 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 diff --git a/conf/locale/rtl/LC_MESSAGES/django.po b/conf/locale/rtl/LC_MESSAGES/django.po index 80ae080e57ad..b1f5135cf141 100644 --- a/conf/locale/rtl/LC_MESSAGES/django.po +++ b/conf/locale/rtl/LC_MESSAGES/django.po @@ -38,8 +38,8 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-02-21 15:16+0000\n" -"PO-Revision-Date: 2023-02-21 15:16:38.756594\n" +"POT-Creation-Date: 2023-02-26 20:35+0000\n" +"PO-Revision-Date: 2023-02-26 20:35:55.019139\n" "Last-Translator: \n" "Language-Team: openedx-translation \n" "Language: rtl\n" @@ -11296,8 +11296,12 @@ msgid "Count" msgstr "Ȼønnʇ" #: xmodule/library_content_block.py -msgid "Enter the number of components to display to each student." -msgstr "Ɇnʇǝɹ ʇɥǝ nnɯbǝɹ øɟ ɔøɯdønǝnʇs ʇø dᴉsdlɐʎ ʇø ǝɐɔɥ sʇndǝnʇ." +msgid "" +"Enter the number of components to display to each student. Set it to -1 to " +"display all components." +msgstr "" +"Ɇnʇǝɹ ʇɥǝ nnɯbǝɹ øɟ ɔøɯdønǝnʇs ʇø dᴉsdlɐʎ ʇø ǝɐɔɥ sʇndǝnʇ. Sǝʇ ᴉʇ ʇø -1 ʇø " +"dᴉsdlɐʎ ɐll ɔøɯdønǝnʇs." #: xmodule/library_content_block.py msgid "Problem Type" diff --git a/conf/locale/rtl/LC_MESSAGES/djangojs.mo b/conf/locale/rtl/LC_MESSAGES/djangojs.mo index 14a68cb5ccac35f09fb0b72e93ced4da642da9d5..11ad3c5db11c4269f721bfd09a300696d83e60a6 100644 GIT binary patch delta 47437 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≦y9`Tw@?*&hHA(c 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

*HE|e=F9+)df4}OPN&I0dQQ|%}KB%|& z2+^4TBjzGvwLIlX&C9aCbk4lH z#yR zu^7aT0Myi3S8509mCQb7CWM)%_;k2A=-S#k`eMz^zk-nDcLsYiSO>8zIYq4sn?9jF zOs}Tm(b@~q+x&$13k1(-?F-KytQOcTovEu!HiNSi&APbQ2or>^+7uuHAI)J~bZ{p1 zI3@QK0@e+_BL}>P*m7<-25-WQSPpZasoq%XCHU`p+m`V9G1rAUa2qIQ{4qnD)0m0+J79bP}S8Ts(RHa_0I%kMk z_#U(-aJV;|1ZEn*>51M?)+Vthnhv1jM zPk`UhLyr=V;NECfpkKhHR?yGXSr0I=#`5p~ONw70m;n_S#)fW)-ojVlZs4aZ6r&3w zhY;>aJ&UqHw7|as{0@Nx z-7W(15Xe^BZcT`#;g=wAibaBn-gsHCN6e>?hcM?wZw#7e;eUdrJ6J2+pM0ZgP4FX0 zfi#vz1rB_dd^!TP7|sSej-c30aOqjpE-Pgc4| z{0g*X&O9C&);bFw{Hj7!he3~n-r8Y`E6BUx&Kyu*7yX5swZlg+_Z!$9d?)iSsUPdDWi}M7 zCv|^f24|fy|NcPfU~OpR>Y*hF)P|5ooXKqqz^mcca3CXw1*(H*GSd%UCUtA@2{yNm z6H&|s&TARM-VnRPEh0Y+?j_&9I8tvfgd2c8IV2pC*a`-Eke^geMSb*n8s}>aC*D-f zH_UuOei2{Eay~3I9IaYtzn~U7%o)Sr4L0e<7a-RH6uXDlC$CQLB*NMBJk1?GKqIo0 zUNc=#KA#y+z82pCXArg67l?}`abUC_`mHXz0}ZiF)TVs?7z{!5=5t^S0vQm-ap(!6 zoh}#%;Rd{7uv>7-lGmq~!rT+MpQ`v%6_*37wpqln0%oqTm^<^+!5Yi^e>nzH5vWeH zEHMD0D_$Oa48$^cBV8g+#Y5l?#KqchaCbzf!YQP0PxPanPk%0&L*N7v_tOg`U&O(` z>9XceURDCWrH|_l%|Mzbb>qt5J?Ljp$AV8qq#>S)pfh+Q4#}pTM=mx3{vGOS^kb-d zvAozoVnr4Uho467qRVfQ|9BVMi+BNfo-Dv{Jw#qR>aIkBA7I`1b}DaJU}y z2RyN4W*@3<&F}k!#l6D9pLiz|37O8p$dbX&;MABkAjdpQQyO704`+kV;yd+ zqJzLYDi*GXzXw*VPcRYQ3+C^F4FtQWoCTcmT+T0|>7(FQNcX8bQhVqDAu3*j;bZh3 zsPHNTHp8EV`{{fzF+=C%T8rq#GGkBtLOIXqFQRu1tc861FN9!g{kgf=DSf1UAc|$c zdkS_5FVv;J19PH2jc9N3@p?$QF3}Dw2)#?x4RrAWi=6QiT{n6D(`ZhFXf-Dlmw(vv z8Ja@BHu*vZ5_P$BI62@YHgl0I(gA#{VtuHqYaY$qS~MbY96VBv5<4f*K2JJjloNEh?o1G`?qeF(Y\n" "Language: rtl\n" @@ -10355,6 +10355,14 @@ msgstr "Ᵽøsʇ" msgid "Enable discussion" msgstr "Ɇnɐblǝ dᴉsɔnssᴉøn" +#: cms/templates/js/discussion-editor.underscore +msgid "Topics for unpublished units would not be created" +msgstr "Ŧødᴉɔs ɟøɹ nndnblᴉsɥǝd nnᴉʇs ʍønld nøʇ bǝ ɔɹǝɐʇǝd" + +#: cms/templates/js/discussion-editor.underscore +msgid "Please enable discussions for graded units from course authoring app" +msgstr "Ᵽlǝɐsǝ ǝnɐblǝ dᴉsɔnssᴉøns ɟøɹ ƃɹɐdǝd nnᴉʇs ɟɹøɯ ɔønɹsǝ ɐnʇɥøɹᴉnƃ ɐdd" + #: cms/templates/js/due-date-editor.underscore msgid "Due Date:" msgstr "Đnǝ Đɐʇǝ:" diff --git a/conf/locale/ru/LC_MESSAGES/djangojs.po b/conf/locale/ru/LC_MESSAGES/djangojs.po index df927116c395..18c977118e78 100644 --- a/conf/locale/ru/LC_MESSAGES/djangojs.po +++ b/conf/locale/ru/LC_MESSAGES/djangojs.po @@ -192,7 +192,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: ashed , 2022\n" "Language-Team: Russian (http://www.transifex.com/open-edx/edx-platform/language/ru/)\n" diff --git a/conf/locale/sk/LC_MESSAGES/django.po b/conf/locale/sk/LC_MESSAGES/django.po index 36a815c43615..224d0064dba3 100644 --- a/conf/locale/sk/LC_MESSAGES/django.po +++ b/conf/locale/sk/LC_MESSAGES/django.po @@ -55,7 +55,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2019-01-20 20:43+0000\n" "Last-Translator: Waheed Ahmed , 2019\n" "Language-Team: Slovak (https://www.transifex.com/open-edx/teams/6205/sk/)\n" diff --git a/conf/locale/sk/LC_MESSAGES/djangojs.po b/conf/locale/sk/LC_MESSAGES/djangojs.po index d63b00de562e..ed263acd9f00 100644 --- a/conf/locale/sk/LC_MESSAGES/djangojs.po +++ b/conf/locale/sk/LC_MESSAGES/djangojs.po @@ -46,7 +46,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: \n" "Language-Team: Slovak (http://www.transifex.com/open-edx/edx-platform/language/sk/)\n" diff --git a/conf/locale/sw_KE/LC_MESSAGES/django.po b/conf/locale/sw_KE/LC_MESSAGES/django.po index 3b5385401910..2978cbc728ef 100644 --- a/conf/locale/sw_KE/LC_MESSAGES/django.po +++ b/conf/locale/sw_KE/LC_MESSAGES/django.po @@ -85,7 +85,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2019-01-20 20:43+0000\n" "Last-Translator: Waheed Ahmed , 2019\n" "Language-Team: Swahili (Kenya) (https://www.transifex.com/open-edx/teams/6205/sw_KE/)\n" diff --git a/conf/locale/sw_KE/LC_MESSAGES/djangojs.po b/conf/locale/sw_KE/LC_MESSAGES/djangojs.po index 98713d86f8ad..5c334fab3c44 100644 --- a/conf/locale/sw_KE/LC_MESSAGES/djangojs.po +++ b/conf/locale/sw_KE/LC_MESSAGES/djangojs.po @@ -71,7 +71,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: YAHAYA MWAVURIZI , 2017\n" "Language-Team: Swahili (Kenya) (http://www.transifex.com/open-edx/edx-platform/language/sw_KE/)\n" diff --git a/conf/locale/th/LC_MESSAGES/django.po b/conf/locale/th/LC_MESSAGES/django.po index aa59f1e89733..7bd6f79f5b81 100644 --- a/conf/locale/th/LC_MESSAGES/django.po +++ b/conf/locale/th/LC_MESSAGES/django.po @@ -116,7 +116,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2019-01-20 20:43+0000\n" "Last-Translator: Waheed Ahmed , 2019\n" "Language-Team: Thai (https://www.transifex.com/open-edx/teams/6205/th/)\n" diff --git a/conf/locale/th/LC_MESSAGES/djangojs.po b/conf/locale/th/LC_MESSAGES/djangojs.po index 464c9420467f..a7ee01a41f2a 100644 --- a/conf/locale/th/LC_MESSAGES/djangojs.po +++ b/conf/locale/th/LC_MESSAGES/djangojs.po @@ -73,7 +73,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: edx demo , 2019\n" "Language-Team: Thai (http://www.transifex.com/open-edx/edx-platform/language/th/)\n" diff --git a/conf/locale/tr_TR/LC_MESSAGES/djangojs.po b/conf/locale/tr_TR/LC_MESSAGES/djangojs.po index 9062082d422e..46b94d990b9a 100644 --- a/conf/locale/tr_TR/LC_MESSAGES/djangojs.po +++ b/conf/locale/tr_TR/LC_MESSAGES/djangojs.po @@ -108,7 +108,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: Ali Işıngör , 2018,2020-2021\n" "Language-Team: Turkish (Turkey) (http://www.transifex.com/open-edx/edx-platform/language/tr_TR/)\n" diff --git a/conf/locale/uk/LC_MESSAGES/django.po b/conf/locale/uk/LC_MESSAGES/django.po index bf09779b550e..49301d050f87 100644 --- a/conf/locale/uk/LC_MESSAGES/django.po +++ b/conf/locale/uk/LC_MESSAGES/django.po @@ -124,7 +124,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2019-01-20 20:43+0000\n" "Last-Translator: Danylo Shcherbak , 2020\n" "Language-Team: Ukrainian (https://www.transifex.com/open-edx/teams/6205/uk/)\n" diff --git a/conf/locale/uk/LC_MESSAGES/djangojs.po b/conf/locale/uk/LC_MESSAGES/djangojs.po index 6b599e8d3485..aeb69de74da4 100644 --- a/conf/locale/uk/LC_MESSAGES/djangojs.po +++ b/conf/locale/uk/LC_MESSAGES/djangojs.po @@ -102,7 +102,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: Andrey Kryachko, 2018\n" "Language-Team: Ukrainian (http://www.transifex.com/open-edx/edx-platform/language/uk/)\n" diff --git a/conf/locale/vi/LC_MESSAGES/django.po b/conf/locale/vi/LC_MESSAGES/django.po index ba3def20ea3e..ac588daadbfb 100644 --- a/conf/locale/vi/LC_MESSAGES/django.po +++ b/conf/locale/vi/LC_MESSAGES/django.po @@ -198,7 +198,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2019-01-20 20:43+0000\n" "Last-Translator: Le Minh Tri , 2020\n" "Language-Team: Vietnamese (https://www.transifex.com/open-edx/teams/6205/vi/)\n" diff --git a/conf/locale/vi/LC_MESSAGES/djangojs.po b/conf/locale/vi/LC_MESSAGES/djangojs.po index 530bad9665f5..231ab0076d78 100644 --- a/conf/locale/vi/LC_MESSAGES/djangojs.po +++ b/conf/locale/vi/LC_MESSAGES/djangojs.po @@ -113,7 +113,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: Le Minh Tri , 2020\n" "Language-Team: Vietnamese (http://www.transifex.com/open-edx/edx-platform/language/vi/)\n" diff --git a/conf/locale/zh_CN/LC_MESSAGES/django.po b/conf/locale/zh_CN/LC_MESSAGES/django.po index bd57458c7e8d..21c01048c926 100644 --- a/conf/locale/zh_CN/LC_MESSAGES/django.po +++ b/conf/locale/zh_CN/LC_MESSAGES/django.po @@ -399,7 +399,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2019-01-20 20:43+0000\n" "Last-Translator: ifLab , 2019\n" "Language-Team: Chinese (China) (https://www.transifex.com/open-edx/teams/6205/zh_CN/)\n" diff --git a/conf/locale/zh_CN/LC_MESSAGES/djangojs.po b/conf/locale/zh_CN/LC_MESSAGES/djangojs.po index 82063ee2fece..e41f08822347 100644 --- a/conf/locale/zh_CN/LC_MESSAGES/djangojs.po +++ b/conf/locale/zh_CN/LC_MESSAGES/djangojs.po @@ -227,7 +227,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: jsgang , 2015-2017,2020\n" "Language-Team: Chinese (China) (http://www.transifex.com/open-edx/edx-platform/language/zh_CN/)\n" diff --git a/conf/locale/zh_HANS/LC_MESSAGES/django.po b/conf/locale/zh_HANS/LC_MESSAGES/django.po index bd57458c7e8d..21c01048c926 100644 --- a/conf/locale/zh_HANS/LC_MESSAGES/django.po +++ b/conf/locale/zh_HANS/LC_MESSAGES/django.po @@ -399,7 +399,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2019-01-20 20:43+0000\n" "Last-Translator: ifLab , 2019\n" "Language-Team: Chinese (China) (https://www.transifex.com/open-edx/teams/6205/zh_CN/)\n" diff --git a/conf/locale/zh_HANS/LC_MESSAGES/djangojs.po b/conf/locale/zh_HANS/LC_MESSAGES/djangojs.po index 82063ee2fece..e41f08822347 100644 --- a/conf/locale/zh_HANS/LC_MESSAGES/djangojs.po +++ b/conf/locale/zh_HANS/LC_MESSAGES/djangojs.po @@ -227,7 +227,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: jsgang , 2015-2017,2020\n" "Language-Team: Chinese (China) (http://www.transifex.com/open-edx/edx-platform/language/zh_CN/)\n" diff --git a/conf/locale/zh_TW/LC_MESSAGES/django.po b/conf/locale/zh_TW/LC_MESSAGES/django.po index 6fa2aa7d055f..961a63ef1eee 100644 --- a/conf/locale/zh_TW/LC_MESSAGES/django.po +++ b/conf/locale/zh_TW/LC_MESSAGES/django.po @@ -177,7 +177,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2019-01-20 20:43+0000\n" "Last-Translator: Waheed Ahmed , 2019\n" "Language-Team: Chinese (Taiwan) (https://www.transifex.com/open-edx/teams/6205/zh_TW/)\n" diff --git a/conf/locale/zh_TW/LC_MESSAGES/djangojs.po b/conf/locale/zh_TW/LC_MESSAGES/djangojs.po index a511a0c7c6af..aa46784b2bef 100644 --- a/conf/locale/zh_TW/LC_MESSAGES/djangojs.po +++ b/conf/locale/zh_TW/LC_MESSAGES/djangojs.po @@ -132,7 +132,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2023-01-29 20:42+0000\n" +"POT-Creation-Date: 2023-02-19 20:42+0000\n" "PO-Revision-Date: 2014-06-11 15:18+0000\n" "Last-Translator: Andrew Lau , 2017\n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/open-edx/edx-platform/language/zh_TW/)\n" diff --git a/lms/static/js/i18n/eo/djangojs.js b/lms/static/js/i18n/eo/djangojs.js index 2380566af0df..b2f3602258e5 100644 --- a/lms/static/js/i18n/eo/djangojs.js +++ b/lms/static/js/i18n/eo/djangojs.js @@ -1293,6 +1293,7 @@ "Please describe this image or agree that it has no contextual value by checking the checkbox.": "Pl\u00e9\u00e4s\u00e9 d\u00e9s\u00e7r\u00ef\u00df\u00e9 th\u00efs \u00efm\u00e4g\u00e9 \u00f6r \u00e4gr\u00e9\u00e9 th\u00e4t \u00eft h\u00e4s n\u00f6 \u00e7\u00f6nt\u00e9xt\u00fc\u00e4l v\u00e4l\u00fc\u00e9 \u00df\u00fd \u00e7h\u00e9\u00e7k\u00efng th\u00e9 \u00e7h\u00e9\u00e7k\u00df\u00f6x. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3#", "Please do not use any spaces in this field.": "Pl\u00e9\u00e4s\u00e9 d\u00f6 n\u00f6t \u00fcs\u00e9 \u00e4n\u00fd sp\u00e4\u00e7\u00e9s \u00efn th\u00efs f\u00ef\u00e9ld. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f #", "Please do not use any spaces or special characters in this field.": "Pl\u00e9\u00e4s\u00e9 d\u00f6 n\u00f6t \u00fcs\u00e9 \u00e4n\u00fd sp\u00e4\u00e7\u00e9s \u00f6r sp\u00e9\u00e7\u00ef\u00e4l \u00e7h\u00e4r\u00e4\u00e7t\u00e9rs \u00efn th\u00efs f\u00ef\u00e9ld. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f \u03b1#", + "Please enable discussions for graded units from course authoring app": "Pl\u00e9\u00e4s\u00e9 \u00e9n\u00e4\u00dfl\u00e9 d\u00efs\u00e7\u00fcss\u00ef\u00f6ns f\u00f6r gr\u00e4d\u00e9d \u00fcn\u00efts fr\u00f6m \u00e7\u00f6\u00fcrs\u00e9 \u00e4\u00fcth\u00f6r\u00efng \u00e4pp \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f #", "Please enter a problem location.": "Pl\u00e9\u00e4s\u00e9 \u00e9nt\u00e9r \u00e4 pr\u00f6\u00dfl\u00e9m l\u00f6\u00e7\u00e4t\u00ef\u00f6n. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454#", "Please enter a score.": "Pl\u00e9\u00e4s\u00e9 \u00e9nt\u00e9r \u00e4 s\u00e7\u00f6r\u00e9. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, #", "Please enter a student email address or username.": "Pl\u00e9\u00e4s\u00e9 \u00e9nt\u00e9r \u00e4 st\u00fcd\u00e9nt \u00e9m\u00e4\u00efl \u00e4ddr\u00e9ss \u00f6r \u00fcs\u00e9rn\u00e4m\u00e9. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f \u03b1#", @@ -1939,6 +1940,7 @@ "Topic": "T\u00f6p\u00ef\u00e7 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455#", "Topic area": "T\u00f6p\u00ef\u00e7 \u00e4r\u00e9\u00e4 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3#", "Topics": "T\u00f6p\u00ef\u00e7s \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5#", + "Topics for unpublished units would not be created": "T\u00f6p\u00ef\u00e7s f\u00f6r \u00fcnp\u00fc\u00dfl\u00efsh\u00e9d \u00fcn\u00efts w\u00f6\u00fcld n\u00f6t \u00df\u00e9 \u00e7r\u00e9\u00e4t\u00e9d \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f \u03b1#", "Total": "T\u00f6t\u00e4l \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455#", "Total Number": "T\u00f6t\u00e4l N\u00fcm\u00df\u00e9r \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455#", "Total Responses": "T\u00f6t\u00e4l R\u00e9sp\u00f6ns\u00e9s \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1#", diff --git a/lms/static/js/i18n/rtl/djangojs.js b/lms/static/js/i18n/rtl/djangojs.js index 72202c3fe3c9..95d4b1d39b9e 100644 --- a/lms/static/js/i18n/rtl/djangojs.js +++ b/lms/static/js/i18n/rtl/djangojs.js @@ -1193,6 +1193,7 @@ "Please describe this image or agree that it has no contextual value by checking the checkbox.": "\u2c63l\u01dd\u0250s\u01dd d\u01dds\u0254\u0279\u1d09b\u01dd \u0287\u0265\u1d09s \u1d09\u026f\u0250\u0183\u01dd \u00f8\u0279 \u0250\u0183\u0279\u01dd\u01dd \u0287\u0265\u0250\u0287 \u1d09\u0287 \u0265\u0250s n\u00f8 \u0254\u00f8n\u0287\u01ddx\u0287n\u0250l \u028c\u0250ln\u01dd b\u028e \u0254\u0265\u01dd\u0254\u029e\u1d09n\u0183 \u0287\u0265\u01dd \u0254\u0265\u01dd\u0254\u029eb\u00f8x.", "Please do not use any spaces in this field.": "\u2c63l\u01dd\u0250s\u01dd d\u00f8 n\u00f8\u0287 ns\u01dd \u0250n\u028e sd\u0250\u0254\u01dds \u1d09n \u0287\u0265\u1d09s \u025f\u1d09\u01ddld.", "Please do not use any spaces or special characters in this field.": "\u2c63l\u01dd\u0250s\u01dd d\u00f8 n\u00f8\u0287 ns\u01dd \u0250n\u028e sd\u0250\u0254\u01dds \u00f8\u0279 sd\u01dd\u0254\u1d09\u0250l \u0254\u0265\u0250\u0279\u0250\u0254\u0287\u01dd\u0279s \u1d09n \u0287\u0265\u1d09s \u025f\u1d09\u01ddld.", + "Please enable discussions for graded units from course authoring app": "\u2c63l\u01dd\u0250s\u01dd \u01ddn\u0250bl\u01dd d\u1d09s\u0254nss\u1d09\u00f8ns \u025f\u00f8\u0279 \u0183\u0279\u0250d\u01ddd nn\u1d09\u0287s \u025f\u0279\u00f8\u026f \u0254\u00f8n\u0279s\u01dd \u0250n\u0287\u0265\u00f8\u0279\u1d09n\u0183 \u0250dd", "Please enter a problem location.": "\u2c63l\u01dd\u0250s\u01dd \u01ddn\u0287\u01dd\u0279 \u0250 d\u0279\u00f8bl\u01dd\u026f l\u00f8\u0254\u0250\u0287\u1d09\u00f8n.", "Please enter a score.": "\u2c63l\u01dd\u0250s\u01dd \u01ddn\u0287\u01dd\u0279 \u0250 s\u0254\u00f8\u0279\u01dd.", "Please enter a student email address or username.": "\u2c63l\u01dd\u0250s\u01dd \u01ddn\u0287\u01dd\u0279 \u0250 s\u0287nd\u01ddn\u0287 \u01dd\u026f\u0250\u1d09l \u0250dd\u0279\u01ddss \u00f8\u0279 ns\u01dd\u0279n\u0250\u026f\u01dd.", @@ -1786,6 +1787,7 @@ "Topic": "\u0166\u00f8d\u1d09\u0254", "Topic area": "\u0166\u00f8d\u1d09\u0254 \u0250\u0279\u01dd\u0250", "Topics": "\u0166\u00f8d\u1d09\u0254s", + "Topics for unpublished units would not be created": "\u0166\u00f8d\u1d09\u0254s \u025f\u00f8\u0279 nndnbl\u1d09s\u0265\u01ddd nn\u1d09\u0287s \u028d\u00f8nld n\u00f8\u0287 b\u01dd \u0254\u0279\u01dd\u0250\u0287\u01ddd", "Total": "\u0166\u00f8\u0287\u0250l", "Total Number": "\u0166\u00f8\u0287\u0250l Nn\u026fb\u01dd\u0279", "Transcript Fidelity": "\u0166\u0279\u0250ns\u0254\u0279\u1d09d\u0287 F\u1d09d\u01ddl\u1d09\u0287\u028e",