Merge remote-tracking branch 'upstream/master' into salman/remove-bok-choy
This commit is contained in:
24
.github/workflows/pr-automerge-open-release.yml
vendored
24
.github/workflows/pr-automerge-open-release.yml
vendored
@@ -1,24 +0,0 @@
|
||||
# Enable automerging for named release branches.
|
||||
# See the reusable workflow for details:
|
||||
# https://github.com/openedx/.github/.github/workflows/pr-automerge-open-release.yml
|
||||
|
||||
name: Automerge BTR open-release PRs
|
||||
|
||||
on:
|
||||
issue_comment:
|
||||
branches:
|
||||
- open-release/*
|
||||
types:
|
||||
- created
|
||||
- edited
|
||||
pull_request_target:
|
||||
branches:
|
||||
- open-release/*
|
||||
types:
|
||||
- opened
|
||||
- edited
|
||||
- ready_for_review
|
||||
|
||||
jobs:
|
||||
automerge:
|
||||
uses: openedx/.github/.github/workflows/pr-automerge-open-release.yml@master
|
||||
@@ -23,7 +23,7 @@ from .views import (
|
||||
|
||||
app_name = 'v1'
|
||||
|
||||
VIDEO_ID_PATTERN = r'(?:(?P<edx_video_id>[-\w]+))'
|
||||
VIDEO_ID_PATTERN = r'(?P<edx_video_id>[-\w]+)'
|
||||
|
||||
urlpatterns = [
|
||||
path(
|
||||
@@ -61,38 +61,6 @@ urlpatterns = [
|
||||
CourseGradingView.as_view(),
|
||||
name="course_grading"
|
||||
),
|
||||
re_path(
|
||||
fr'^xblock/{settings.COURSE_ID_PATTERN}/{settings.USAGE_KEY_PATTERN}?$',
|
||||
xblock.XblockView.as_view(), name='studio_content'
|
||||
),
|
||||
re_path(
|
||||
fr'^file_assets/{settings.COURSE_ID_PATTERN}/{settings.ASSET_KEY_PATTERN}?$',
|
||||
assets.AssetsView.as_view(), name='studio_content_assets'
|
||||
),
|
||||
re_path(
|
||||
fr'^videos/uploads/{settings.COURSE_ID_PATTERN}/{VIDEO_ID_PATTERN}?$',
|
||||
videos.VideosView.as_view(), name='studio_content_videos_uploads'
|
||||
),
|
||||
re_path(
|
||||
fr'^videos/images/{settings.COURSE_ID_PATTERN}/{VIDEO_ID_PATTERN}$',
|
||||
videos.VideoImagesView.as_view(), name='studio_content_videos_images'
|
||||
),
|
||||
re_path(
|
||||
fr'^videos/encodings/{settings.COURSE_ID_PATTERN}$',
|
||||
videos.VideoEncodingsDownloadView.as_view(), name='studio_content_videos_encodings'
|
||||
),
|
||||
path(
|
||||
'videos/features/',
|
||||
videos.VideoFeaturesView.as_view(), name='studio_content_videos_features'
|
||||
),
|
||||
re_path(
|
||||
fr'^videos/upload_link/{settings.COURSE_ID_PATTERN}$',
|
||||
videos.UploadLinkView.as_view(), name='studio_content_videos_upload_link'
|
||||
),
|
||||
re_path(
|
||||
fr'^video_transcripts/{settings.COURSE_ID_PATTERN}$',
|
||||
transcripts.TranscriptView.as_view(), name='studio_content_video_transcripts'
|
||||
),
|
||||
path(
|
||||
'help_urls',
|
||||
HelpUrlsView.as_view(),
|
||||
@@ -103,4 +71,46 @@ urlpatterns = [
|
||||
CourseRerunView.as_view(),
|
||||
name="course_rerun"
|
||||
),
|
||||
|
||||
# CMS API
|
||||
re_path(
|
||||
fr'^file_assets/{settings.COURSE_ID_PATTERN}/$',
|
||||
assets.AssetsCreateRetrieveView.as_view(), name='cms_api_create_retrieve_assets'
|
||||
),
|
||||
re_path(
|
||||
fr'^file_assets/{settings.COURSE_ID_PATTERN}/{settings.ASSET_KEY_PATTERN}$',
|
||||
assets.AssetsUpdateDestroyView.as_view(), name='cms_api_update_destroy_assets'
|
||||
),
|
||||
re_path(
|
||||
fr'^videos/encodings/{settings.COURSE_ID_PATTERN}$',
|
||||
videos.VideoEncodingsDownloadView.as_view(), name='cms_api_videos_encodings'
|
||||
),
|
||||
path(
|
||||
'videos/features/',
|
||||
videos.VideoFeaturesView.as_view(), name='cms_api_videos_features'
|
||||
),
|
||||
re_path(
|
||||
fr'^videos/images/{settings.COURSE_ID_PATTERN}/{VIDEO_ID_PATTERN}$',
|
||||
videos.VideoImagesView.as_view(), name='cms_api_videos_images'
|
||||
),
|
||||
re_path(
|
||||
fr'^videos/uploads/{settings.COURSE_ID_PATTERN}/$',
|
||||
videos.VideosCreateUploadView.as_view(), name='cms_api_create_videos_upload'
|
||||
),
|
||||
re_path(
|
||||
fr'^videos/uploads/{settings.COURSE_ID_PATTERN}/{VIDEO_ID_PATTERN}$',
|
||||
videos.VideosUploadsView.as_view(), name='cms_api_videos_uploads'
|
||||
),
|
||||
re_path(
|
||||
fr'^video_transcripts/{settings.COURSE_ID_PATTERN}$',
|
||||
transcripts.TranscriptView.as_view(), name='cms_api_video_transcripts'
|
||||
),
|
||||
re_path(
|
||||
fr'^xblock/{settings.COURSE_ID_PATTERN}/$',
|
||||
xblock.XblockCreateView.as_view(), name='cms_api_create_xblock'
|
||||
),
|
||||
re_path(
|
||||
fr'^xblock/{settings.COURSE_ID_PATTERN}/{settings.USAGE_KEY_PATTERN}$',
|
||||
xblock.XblockView.as_view(), name='cms_api_xblock'
|
||||
),
|
||||
]
|
||||
|
||||
@@ -8,7 +8,13 @@ from .grading import CourseGradingView
|
||||
from .proctoring import ProctoredExamSettingsView, ProctoringErrorsView
|
||||
from .home import HomePageView
|
||||
from .settings import CourseSettingsView
|
||||
from .xblock import XblockView
|
||||
from .assets import AssetsView
|
||||
from .videos import VideosView
|
||||
from .xblock import XblockView, XblockCreateView
|
||||
from .assets import AssetsCreateRetrieveView, AssetsUpdateDestroyView
|
||||
from .videos import (
|
||||
VideosUploadsView,
|
||||
VideosCreateUploadView,
|
||||
VideoImagesView,
|
||||
VideoEncodingsDownloadView,
|
||||
VideoFeaturesView
|
||||
)
|
||||
from .help_urls import HelpUrlsView
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
Public rest API endpoints for the CMS API Assets.
|
||||
"""
|
||||
import logging
|
||||
from rest_framework.generics import RetrieveUpdateDestroyAPIView, CreateAPIView
|
||||
from rest_framework.generics import CreateAPIView, RetrieveAPIView, UpdateAPIView, DestroyAPIView
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
from django.http import Http404
|
||||
|
||||
@@ -24,7 +24,40 @@ toggles = contentstore_toggles
|
||||
|
||||
|
||||
@view_auth_classes()
|
||||
class AssetsView(DeveloperErrorViewMixin, RetrieveUpdateDestroyAPIView, CreateAPIView):
|
||||
class AssetsCreateRetrieveView(DeveloperErrorViewMixin, CreateAPIView, RetrieveAPIView):
|
||||
"""
|
||||
public rest API endpoints for the CMS API Assets.
|
||||
course_key: required argument, needed to authorize course authors and identify the asset.
|
||||
asset_key_string: required argument, needed to identify the asset.
|
||||
"""
|
||||
serializer_class = AssetSerializer
|
||||
parser_classes = (JSONParser, MultiPartParser, FormParser, TypedFileUploadParser)
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
# TODO: probably want to refactor this to a decorator.
|
||||
"""
|
||||
The dispatch method of a View class handles HTTP requests in general
|
||||
and calls other methods to handle specific HTTP methods.
|
||||
We use this to raise a 404 if the content api is disabled.
|
||||
"""
|
||||
if not toggles.use_studio_content_api():
|
||||
raise Http404
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
@csrf_exempt
|
||||
@course_author_access_required
|
||||
@validate_request_with_serializer
|
||||
def create(self, request, course_key): # pylint: disable=arguments-differ
|
||||
return handle_assets(request, course_key.html_id())
|
||||
|
||||
@course_author_access_required
|
||||
@expect_json_in_class_view
|
||||
def retrieve(self, request, course_key): # pylint: disable=arguments-differ
|
||||
return handle_assets(request, course_key.html_id())
|
||||
|
||||
|
||||
@view_auth_classes()
|
||||
class AssetsUpdateDestroyView(DeveloperErrorViewMixin, UpdateAPIView, DestroyAPIView):
|
||||
"""
|
||||
public rest API endpoints for the CMS API Assets.
|
||||
course_key: required argument, needed to authorize course authors and identify the asset.
|
||||
@@ -44,17 +77,6 @@ class AssetsView(DeveloperErrorViewMixin, RetrieveUpdateDestroyAPIView, CreateAP
|
||||
raise Http404
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
@course_author_access_required
|
||||
@expect_json_in_class_view
|
||||
def retrieve(self, request, course_key): # pylint: disable=arguments-differ
|
||||
return handle_assets(request, course_key.html_id())
|
||||
|
||||
@csrf_exempt
|
||||
@course_author_access_required
|
||||
@validate_request_with_serializer
|
||||
def create(self, request, course_key): # pylint: disable=arguments-differ
|
||||
return handle_assets(request, course_key.html_id())
|
||||
|
||||
@course_author_access_required
|
||||
@expect_json_in_class_view
|
||||
@validate_request_with_serializer
|
||||
|
||||
@@ -44,7 +44,7 @@ class AssetsViewTestCase(AuthorizeStaffTestCase):
|
||||
|
||||
def get_url(self, _course_id=None):
|
||||
return reverse(
|
||||
"cms.djangoapps.contentstore:v1:studio_content_assets",
|
||||
"cms.djangoapps.contentstore:v1:cms_api_update_destroy_assets",
|
||||
kwargs=self.get_url_params(),
|
||||
)
|
||||
|
||||
@@ -102,6 +102,12 @@ class AssetsViewGetTest(AssetsViewTestCase, ModuleStoreTestCase, APITestCase):
|
||||
def get_url_params(self):
|
||||
return {"course_id": self.get_course_key_string()}
|
||||
|
||||
def get_url(self, _course_id=None):
|
||||
return reverse(
|
||||
"cms.djangoapps.contentstore:v1:cms_api_create_retrieve_assets",
|
||||
kwargs=self.get_url_params(),
|
||||
)
|
||||
|
||||
def get_test_data(self):
|
||||
return None
|
||||
|
||||
@@ -148,6 +154,12 @@ class AssetsViewPostTest(AssetsViewTestCase, ModuleStoreTestCase, APITestCase):
|
||||
def get_url_params(self):
|
||||
return {"course_id": self.get_course_key_string()}
|
||||
|
||||
def get_url(self, _course_id=None):
|
||||
return reverse(
|
||||
"cms.djangoapps.contentstore:v1:cms_api_create_retrieve_assets",
|
||||
kwargs=self.get_url_params(),
|
||||
)
|
||||
|
||||
def get_test_data(self):
|
||||
return {
|
||||
"file": mock_image,
|
||||
|
||||
@@ -38,7 +38,7 @@ class XBlockViewTestCase(AuthorizeStaffTestCase):
|
||||
|
||||
def get_url(self, _course_id=None):
|
||||
return reverse(
|
||||
"cms.djangoapps.contentstore:v1:studio_content",
|
||||
"cms.djangoapps.contentstore:v1:cms_api_xblock",
|
||||
kwargs=self.get_url_params(),
|
||||
)
|
||||
|
||||
@@ -140,7 +140,7 @@ class XBlockViewPostTest(XBlockViewTestCase, ModuleStoreTestCase, APITestCase):
|
||||
|
||||
def get_url(self, _course_id=None):
|
||||
return reverse(
|
||||
"cms.djangoapps.contentstore:v1:studio_content",
|
||||
"cms.djangoapps.contentstore:v1:cms_api_create_xblock",
|
||||
kwargs=self.get_url_params(),
|
||||
)
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ toggles = contentstore_toggles
|
||||
|
||||
|
||||
@view_auth_classes()
|
||||
class VideosView(DeveloperErrorViewMixin, CreateAPIView, RetrieveAPIView, DestroyAPIView):
|
||||
class VideosUploadsView(DeveloperErrorViewMixin, RetrieveAPIView, DestroyAPIView):
|
||||
"""
|
||||
public rest API endpoints for the CMS API video assets.
|
||||
course_key: required argument, needed to authorize course authors and identify the video.
|
||||
@@ -41,6 +41,35 @@ class VideosView(DeveloperErrorViewMixin, CreateAPIView, RetrieveAPIView, Destro
|
||||
"""
|
||||
serializer_class = VideoUploadSerializer
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
# TODO: probably want to refactor this to a decorator.
|
||||
"""
|
||||
The dispatch method of a View class handles HTTP requests in general
|
||||
and calls other methods to handle specific HTTP methods.
|
||||
We use this to raise a 404 if the content api is disabled.
|
||||
"""
|
||||
if not toggles.use_studio_content_api():
|
||||
raise Http404
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
@course_author_access_required
|
||||
def retrieve(self, request, course_key, edx_video_id=None): # pylint: disable=arguments-differ
|
||||
return handle_videos(request, course_key.html_id(), edx_video_id)
|
||||
|
||||
@course_author_access_required
|
||||
@expect_json_in_class_view
|
||||
def destroy(self, request, course_key, edx_video_id): # pylint: disable=arguments-differ
|
||||
return handle_videos(request, course_key.html_id(), edx_video_id)
|
||||
|
||||
|
||||
@view_auth_classes()
|
||||
class VideosCreateUploadView(DeveloperErrorViewMixin, CreateAPIView):
|
||||
"""
|
||||
public rest API endpoints for the CMS API video assets.
|
||||
course_key: required argument, needed to authorize course authors and identify the video.
|
||||
"""
|
||||
serializer_class = VideoUploadSerializer
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
# TODO: probably want to refactor this to a decorator.
|
||||
"""
|
||||
@@ -57,18 +86,8 @@ class VideosView(DeveloperErrorViewMixin, CreateAPIView, RetrieveAPIView, Destro
|
||||
@expect_json_in_class_view
|
||||
@validate_request_with_serializer
|
||||
def create(self, request, course_key): # pylint: disable=arguments-differ
|
||||
"""Deprecated. Use the upload_link endpoint instead."""
|
||||
return handle_videos(request, course_key.html_id())
|
||||
|
||||
@course_author_access_required
|
||||
def retrieve(self, request, course_key, edx_video_id=None): # pylint: disable=arguments-differ
|
||||
return handle_videos(request, course_key.html_id(), edx_video_id)
|
||||
|
||||
@course_author_access_required
|
||||
@expect_json_in_class_view
|
||||
def destroy(self, request, course_key, edx_video_id): # pylint: disable=arguments-differ
|
||||
return handle_videos(request, course_key.html_id(), edx_video_id)
|
||||
|
||||
|
||||
@view_auth_classes()
|
||||
class VideoImagesView(DeveloperErrorViewMixin, CreateAPIView):
|
||||
@@ -143,29 +162,3 @@ class VideoFeaturesView(DeveloperErrorViewMixin, RetrieveAPIView):
|
||||
@csrf_exempt
|
||||
def retrieve(self, request): # pylint: disable=arguments-differ
|
||||
return enabled_video_features(request)
|
||||
|
||||
|
||||
@view_auth_classes()
|
||||
class UploadLinkView(DeveloperErrorViewMixin, CreateAPIView):
|
||||
"""
|
||||
public rest API endpoint providing a list of enabled video features.
|
||||
"""
|
||||
serializer_class = VideoUploadSerializer
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
# TODO: probably want to refactor this to a decorator.
|
||||
"""
|
||||
The dispatch method of a View class handles HTTP requests in general
|
||||
and calls other methods to handle specific HTTP methods.
|
||||
We use this to raise a 404 if the content api is disabled.
|
||||
"""
|
||||
if not toggles.use_studio_content_api():
|
||||
raise Http404
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
@csrf_exempt
|
||||
@course_author_access_required
|
||||
@expect_json_in_class_view
|
||||
@validate_request_with_serializer
|
||||
def create(self, request, course_key): # pylint: disable=arguments-differ
|
||||
return handle_videos(request, course_key.html_id())
|
||||
|
||||
@@ -23,7 +23,7 @@ handle_xblock = view_handlers.handle_xblock
|
||||
|
||||
|
||||
@view_auth_classes()
|
||||
class XblockView(DeveloperErrorViewMixin, RetrieveUpdateDestroyAPIView, CreateAPIView):
|
||||
class XblockView(DeveloperErrorViewMixin, RetrieveUpdateDestroyAPIView):
|
||||
"""
|
||||
Public rest API endpoints for the CMS API.
|
||||
course_key: required argument, needed to authorize course authors.
|
||||
@@ -66,6 +66,29 @@ class XblockView(DeveloperErrorViewMixin, RetrieveUpdateDestroyAPIView, CreateAP
|
||||
def destroy(self, request, course_key, usage_key_string=None):
|
||||
return handle_xblock(request, usage_key_string)
|
||||
|
||||
|
||||
@view_auth_classes()
|
||||
class XblockCreateView(DeveloperErrorViewMixin, CreateAPIView):
|
||||
"""
|
||||
Public rest API endpoints for the CMS API.
|
||||
course_key: required argument, needed to authorize course authors.
|
||||
usage_key_string (optional):
|
||||
xblock identifier, for example in the form of "block-v1:<course id>+type@<type>+block@<block id>"
|
||||
"""
|
||||
serializer_class = XblockSerializer
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
# TODO: probably want to refactor this to a decorator.
|
||||
"""
|
||||
The dispatch method of a View class handles HTTP requests in general
|
||||
and calls other methods to handle specific HTTP methods.
|
||||
We use this to raise a 404 if the content api is disabled.
|
||||
"""
|
||||
if not toggles.use_studio_content_api():
|
||||
raise Http404
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
# pylint: disable=arguments-differ
|
||||
@csrf_exempt
|
||||
@course_author_access_required
|
||||
@expect_json_in_class_view
|
||||
|
||||
@@ -7136,6 +7136,16 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "مالك"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -9090,16 +9100,6 @@ msgid ""
|
||||
"to date."
|
||||
msgstr "لقد قمت بنقل جدول مساقك بنجاح والتقويم محدّث."
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "مالك"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -6369,6 +6369,16 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "propietari"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -8144,16 +8154,6 @@ msgid ""
|
||||
"to date."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "propietari"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -7087,6 +7087,16 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "Inhaber"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -9092,16 +9102,6 @@ msgid ""
|
||||
"to date."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "Inhaber"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -6516,6 +6516,17 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -8362,16 +8373,6 @@ msgid ""
|
||||
"to date."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -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-09-24 20:36+0000\n"
|
||||
"PO-Revision-Date: 2023-09-24 20:36:20.303017\n"
|
||||
"POT-Creation-Date: 2023-10-01 20:36+0000\n"
|
||||
"PO-Revision-Date: 2023-10-01 20:36:14.857987\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: openedx-translation <openedx-translation@googlegroups.com>\n"
|
||||
"Language: en\n"
|
||||
@@ -6809,6 +6809,14 @@ msgstr ""
|
||||
msgid "Learner Pathways"
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/notifications/admin.py
|
||||
msgid "Notification App"
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/notifications/admin.py
|
||||
msgid "Notification Type"
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/notifications/base_notification.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
|
||||
@@ -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-09-24 20:36+0000\n"
|
||||
"PO-Revision-Date: 2023-09-24 20:36:20.294880\n"
|
||||
"POT-Creation-Date: 2023-10-01 20:36+0000\n"
|
||||
"PO-Revision-Date: 2023-10-01 20:36:14.819628\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: openedx-translation <openedx-translation@googlegroups.com>\n"
|
||||
"Language: en\n"
|
||||
|
||||
Binary file not shown.
@@ -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-09-24 20:36+0000\n"
|
||||
"PO-Revision-Date: 2023-09-24 20:36:20.303017\n"
|
||||
"POT-Creation-Date: 2023-10-01 20:36+0000\n"
|
||||
"PO-Revision-Date: 2023-10-01 20:36:14.857987\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: openedx-translation <openedx-translation@googlegroups.com>\n"
|
||||
"Language: eo\n"
|
||||
@@ -8653,6 +8653,14 @@ msgstr "Bläçklïst {country} för {course} Ⱡ'σяєм ιρѕυм ∂σłσя
|
||||
msgid "Learner Pathways"
|
||||
msgstr "Léärnér Päthwäýs Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#"
|
||||
|
||||
#: openedx/core/djangoapps/notifications/admin.py
|
||||
msgid "Notification App"
|
||||
msgstr "Nötïfïçätïön Àpp Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#"
|
||||
|
||||
#: openedx/core/djangoapps/notifications/admin.py
|
||||
msgid "Notification Type"
|
||||
msgstr "Nötïfïçätïön Týpé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмє#"
|
||||
|
||||
#: openedx/core/djangoapps/notifications/base_notification.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
|
||||
Binary file not shown.
@@ -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-09-24 20:36+0000\n"
|
||||
"PO-Revision-Date: 2023-09-24 20:36:20.294880\n"
|
||||
"POT-Creation-Date: 2023-10-01 20:36+0000\n"
|
||||
"PO-Revision-Date: 2023-10-01 20:36:14.819628\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: openedx-translation <openedx-translation@googlegroups.com>\n"
|
||||
"Language: eo\n"
|
||||
|
||||
@@ -7466,6 +7466,19 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr "Clave/ID de uso original de lo que está en el portapapeles."
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "propietario"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
"Organización relacionada con esta taxonomía. Si no hay ninguna, esta "
|
||||
"taxonomía está relacionada con todas las organizaciones."
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -9541,18 +9554,6 @@ msgstr ""
|
||||
"Has cambiado exitosamente el horario de tu curso y tu calendario está "
|
||||
"actualizado."
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "propietario"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
"Organización relacionada con esta taxonomía. Si no hay ninguna, esta "
|
||||
"taxonomía está relacionada con todas las organizaciones."
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -6477,6 +6477,16 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "jabea"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -8296,16 +8306,6 @@ msgid ""
|
||||
"to date."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "jabea"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -134,7 +134,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 0.1a\n"
|
||||
"Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n"
|
||||
"POT-Creation-Date: 2023-09-03 20:43+0000\n"
|
||||
"POT-Creation-Date: 2023-09-24 20:43+0000\n"
|
||||
"PO-Revision-Date: 2019-01-20 20:43+0000\n"
|
||||
"Last-Translator: Somaye Joolaee, 2022\n"
|
||||
"Language-Team: Persian (Iran) (https://app.transifex.com/open-edx/teams/6205/fa_IR/)\n"
|
||||
@@ -7068,6 +7068,19 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr "استفاده اصلی کلید/شناسه از چیزی که در کلیپ بورد است."
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "مالک"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
"سازمانی که به این طبقه بندی مربوط می شود. اگر هیچ کدام، پس این طبقه بندی به "
|
||||
"همه سازمان ها مربوط می شود."
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -9077,18 +9090,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"شما با موفقیت برنامۀ آموزشی خود را تغییر دادهاید و تقویم شما روزآمد است."
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "مالک"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
"سازمانی که به این طبقه بندی مربوط می شود. اگر هیچ کدام، پس این طبقه بندی به "
|
||||
"همه سازمان ها مربوط می شود."
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -7473,6 +7473,16 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "propriétaire"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -9528,16 +9538,6 @@ msgstr ""
|
||||
"Vous avez réussi à modifier votre horaire de cours et votre calendrier est à"
|
||||
" jour."
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "propriétaire"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -6705,6 +6705,16 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "pemilik"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -8563,16 +8573,6 @@ msgid ""
|
||||
"to date."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "pemilik"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -7314,6 +7314,16 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "proprietario"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -9359,16 +9369,6 @@ msgstr ""
|
||||
"Hai correttamente sposato il tuo programma del corso e il calendario è stato"
|
||||
" aggiornato."
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "proprietario"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -6410,6 +6410,16 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "オーナー"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -8212,16 +8222,6 @@ msgid ""
|
||||
"to date."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "オーナー"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -6562,6 +6562,16 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "მფლობელი"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -8415,16 +8425,6 @@ msgid ""
|
||||
"to date."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "მფლობელი"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -6333,6 +6333,16 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "savininkas"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -8094,16 +8104,6 @@ msgid ""
|
||||
"to date."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "savininkas"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -6699,6 +6699,17 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -8603,16 +8614,6 @@ msgid ""
|
||||
"to date."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -6391,6 +6391,16 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "эзэмшигч"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -8182,16 +8192,6 @@ msgid ""
|
||||
"to date."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "эзэмшигч"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -6824,6 +6824,16 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "właściciel"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -8695,16 +8705,6 @@ msgid ""
|
||||
"to date."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "właściciel"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -7279,6 +7279,16 @@ msgstr ""
|
||||
"Chave de utilização/ID original do objecto que se encontra na área de "
|
||||
"transferência."
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "proprietário"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -9317,16 +9327,6 @@ msgstr ""
|
||||
"Mudou com sucesso a sua programação de cursos e o seu calendário já se "
|
||||
"encontra atualizado."
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "proprietário"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
Binary file not shown.
@@ -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-09-24 20:36+0000\n"
|
||||
"PO-Revision-Date: 2023-09-24 20:36:20.303017\n"
|
||||
"POT-Creation-Date: 2023-10-01 20:36+0000\n"
|
||||
"PO-Revision-Date: 2023-10-01 20:36:14.857987\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: openedx-translation <openedx-translation@googlegroups.com>\n"
|
||||
"Language: rtl\n"
|
||||
@@ -7491,6 +7491,14 @@ msgstr "Ƀlɐɔʞlᴉsʇ {country} ɟøɹ {course}"
|
||||
msgid "Learner Pathways"
|
||||
msgstr "Łǝɐɹnǝɹ Ᵽɐʇɥʍɐʎs"
|
||||
|
||||
#: openedx/core/djangoapps/notifications/admin.py
|
||||
msgid "Notification App"
|
||||
msgstr "Nøʇᴉɟᴉɔɐʇᴉøn Ⱥdd"
|
||||
|
||||
#: openedx/core/djangoapps/notifications/admin.py
|
||||
msgid "Notification Type"
|
||||
msgstr "Nøʇᴉɟᴉɔɐʇᴉøn Ŧʎdǝ"
|
||||
|
||||
#: openedx/core/djangoapps/notifications/base_notification.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
|
||||
Binary file not shown.
@@ -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-09-24 20:36+0000\n"
|
||||
"PO-Revision-Date: 2023-09-24 20:36:20.294880\n"
|
||||
"POT-Creation-Date: 2023-10-01 20:36+0000\n"
|
||||
"PO-Revision-Date: 2023-10-01 20:36:14.819628\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: openedx-translation <openedx-translation@googlegroups.com>\n"
|
||||
"Language: rtl\n"
|
||||
|
||||
@@ -6412,6 +6412,16 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "vlastník"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -8207,16 +8217,6 @@ msgid ""
|
||||
"to date."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "vlastník"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -6442,6 +6442,16 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "mmiliki"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -8274,16 +8284,6 @@ msgid ""
|
||||
"to date."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "mmiliki"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -6271,6 +6271,16 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "เจ้าของ"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -8032,16 +8042,6 @@ msgid ""
|
||||
"to date."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "เจ้าของ"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -7152,6 +7152,17 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "sahip"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -9182,16 +9193,6 @@ msgid ""
|
||||
"to date."
|
||||
msgstr "Ders programınızı başarıyla değiştirdiniz ve takviminiz güncel. "
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "sahip"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -6874,6 +6874,16 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "власник"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -8783,16 +8793,6 @@ msgid ""
|
||||
"to date."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "власник"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
msgid "Enabled As Of"
|
||||
|
||||
@@ -6350,6 +6350,16 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "chủ sở hữu"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -8109,16 +8119,6 @@ msgid ""
|
||||
"to date."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "chủ sở hữu"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -6797,6 +6797,16 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "所有者"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -8633,16 +8643,6 @@ msgid ""
|
||||
"to date."
|
||||
msgstr "您已成功更改课程安排,并且您的日历是最新的。"
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "所有者"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -6797,6 +6797,16 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "所有者"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -8633,16 +8643,6 @@ msgid ""
|
||||
"to date."
|
||||
msgstr "您已成功更改课程安排,并且您的日历是最新的。"
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "所有者"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -6436,6 +6436,16 @@ msgstr ""
|
||||
msgid "Original usage key/ID of the thing that is in the clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "擁有者"
|
||||
|
||||
#: openedx/core/djangoapps/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/core/djangoapps/cors_csrf/models.py
|
||||
msgid ""
|
||||
"List of domains that are allowed to make cross-domain requests to this site."
|
||||
@@ -8226,16 +8236,6 @@ msgid ""
|
||||
"to date."
|
||||
msgstr ""
|
||||
|
||||
#: wiki/models/article.py
|
||||
msgid "owner"
|
||||
msgstr "擁有者"
|
||||
|
||||
#: openedx/features/content_tagging/models/base.py
|
||||
msgid ""
|
||||
"Organization that is related to this taxonomy.If None, then this taxonomy is"
|
||||
" related to all organizations."
|
||||
msgstr ""
|
||||
|
||||
#: openedx/features/content_type_gating/models.py
|
||||
#: openedx/features/course_duration_limits/models.py
|
||||
#: lms/templates/support/feature_based_enrollments.html
|
||||
|
||||
@@ -83,19 +83,8 @@ Test Locations
|
||||
Running Tests
|
||||
=============
|
||||
|
||||
You can run all of the unit-level tests using this command::
|
||||
**Unless otherwise mentioned, all the following commands should be run from inside the lms docker container.**
|
||||
|
||||
paver test
|
||||
|
||||
This includes python, JavaScript, and documentation tests.
|
||||
|
||||
Note -
|
||||
`paver` is a scripting tool. To get information about various options, you can run the this command::
|
||||
|
||||
paver -h
|
||||
|
||||
Note -
|
||||
Unless otherwise mentioned, all the following commands should be run from inside lms docker container.
|
||||
|
||||
Running Python Unit tests
|
||||
-------------------------
|
||||
@@ -107,8 +96,8 @@ Pytest (and all of the plugins we use with it) has a lot of options. Use `pytest
|
||||
.. _pytest: https://pytest.org/
|
||||
|
||||
|
||||
Running a Single Test
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
Running Python Test Subsets
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
When developing tests, it is often helpful to be able to really just run one single test without the overhead of PIP installs, UX builds, etc.
|
||||
|
||||
|
||||
@@ -516,7 +516,7 @@ edx-proctoring==4.16.1
|
||||
# via
|
||||
# -r requirements/edx/kernel.in
|
||||
# edx-proctoring-proctortrack
|
||||
edx-proctoring-proctortrack==1.0.5
|
||||
edx-proctoring-proctortrack==1.2.1
|
||||
# via -r requirements/edx/kernel.in
|
||||
edx-rbac==1.8.0
|
||||
# via edx-enterprise
|
||||
|
||||
@@ -801,7 +801,7 @@ edx-proctoring==4.16.1
|
||||
# -r requirements/edx/doc.txt
|
||||
# -r requirements/edx/testing.txt
|
||||
# edx-proctoring-proctortrack
|
||||
edx-proctoring-proctortrack==1.0.5
|
||||
edx-proctoring-proctortrack==1.2.1
|
||||
# via
|
||||
# -r requirements/edx/doc.txt
|
||||
# -r requirements/edx/testing.txt
|
||||
|
||||
@@ -593,7 +593,7 @@ edx-proctoring==4.16.1
|
||||
# via
|
||||
# -r requirements/edx/base.txt
|
||||
# edx-proctoring-proctortrack
|
||||
edx-proctoring-proctortrack==1.0.5
|
||||
edx-proctoring-proctortrack==1.2.1
|
||||
# via -r requirements/edx/base.txt
|
||||
edx-rbac==1.8.0
|
||||
# via
|
||||
|
||||
@@ -81,7 +81,7 @@ edx-name-affirmation
|
||||
edx-opaque-keys
|
||||
edx-organizations
|
||||
edx-proctoring>=2.0.1
|
||||
edx-proctoring-proctortrack==1.0.5 # Intentionally and permanently pinned to ensure code changes are reviewed
|
||||
edx-proctoring-proctortrack==1.2.1 # Intentionally and permanently pinned to ensure code changes are reviewed
|
||||
edx-rest-api-client
|
||||
edx-search
|
||||
edx-submissions
|
||||
|
||||
@@ -621,7 +621,7 @@ edx-proctoring==4.16.1
|
||||
# via
|
||||
# -r requirements/edx/base.txt
|
||||
# edx-proctoring-proctortrack
|
||||
edx-proctoring-proctortrack==1.0.5
|
||||
edx-proctoring-proctortrack==1.2.1
|
||||
# via -r requirements/edx/base.txt
|
||||
edx-rbac==1.8.0
|
||||
# via
|
||||
|
||||
Reference in New Issue
Block a user