From 2fb4cba8785430d41a388dea86d2a08c70f15218 Mon Sep 17 00:00:00 2001 From: Maxim Beder Date: Fri, 25 Apr 2025 19:08:53 +0400 Subject: [PATCH 001/443] feat: update certificate icon Old certificates icon contained edX trademark logo, which was not suitable for the open source repos. Replaced with the icon that contains Open edX logo. --- lms/static/images/programs/sample-cert.png | Bin 8316 -> 8459 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/lms/static/images/programs/sample-cert.png b/lms/static/images/programs/sample-cert.png index 09de8897d3a2962ced164885a2e820711ef363fd..4639a97f8cd08d9378ed0ee51d4ff81da485337e 100644 GIT binary patch literal 8459 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 literal 8316 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 E0IDIK+W-In From c0bea2b3c5b3bc2992a30c26036513355a1b43d0 Mon Sep 17 00:00:00 2001 From: ihor-romaniuk Date: Tue, 29 Apr 2025 11:08:00 +0200 Subject: [PATCH 002/443] fix: unit xblock adaptivity and small visual enhancements --- .../sass/course-unit-mfe-iframe-bundle.scss | 46 ++++++++++++++----- 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/cms/static/sass/course-unit-mfe-iframe-bundle.scss b/cms/static/sass/course-unit-mfe-iframe-bundle.scss index 7a75cc53da84..4100310f406b 100644 --- a/cms/static/sass/course-unit-mfe-iframe-bundle.scss +++ b/cms/static/sass/course-unit-mfe-iframe-bundle.scss @@ -8,7 +8,7 @@ html { body { - min-width: 800px; + min-width: 560px; background: transparent; &.openassessment_full_height.view-container { overflow-y: hidden; @@ -39,11 +39,19 @@ body, padding: ($baseline * 1.2) ($baseline * 1.2) ($baseline / 1.67); border-bottom: none; - .header-details .xblock-display-name { - font-size: 22px; - line-height: 28px; - font-weight: 700; - color: $black; + .header-details { + .xblock-display-title { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + + .xblock-display-name { + font-size: 22px; + line-height: 28px; + font-weight: 700; + color: $black; + } } } @@ -345,7 +353,6 @@ body, } .tip.setting-help { - color: $border-color; font-size: 14px; line-height: $base-font-size; } @@ -452,6 +459,11 @@ body, .modal-lg.modal-window.confirm.openassessment_modal_window { height: 635px; + max-height: 100vh; + + .edit-xblock-modal .modal-content { + max-height: 100%; + } } // Additions for the xblock editor on the Library Authoring @@ -672,11 +684,21 @@ body [class*="view-"] .openassessment_editor_buttons.xblock-actions { max-width: 1200px; } - .modal-lg.modal-editor .modal-header .editor-modes .action-item { - .editor-button, - .settings-button { - @extend %light-button; - } + .modal-lg.modal-editor { + .modal-header .editor-modes .action-item { + .editor-button, + .settings-button { + @extend %light-button; + } + } + + .edit-xblock-modal .modal-content { + max-height: calc(100vh - 144px); + + .editor-with-buttons.wrapper-comp-settings .list-input.settings-list { + max-height: calc(100vh - 205px); + } + } } .wrapper.wrapper-modal-window .modal-window .modal-actions .action-primary { From e92e406df504518544c9acebd0e9bd439325e246 Mon Sep 17 00:00:00 2001 From: ihor-romaniuk Date: Wed, 30 Apr 2025 11:16:40 +0200 Subject: [PATCH 003/443] fix: improve calculation for xblock action dropdown menu on unit page --- cms/static/js/base.js | 12 ++++++ cms/static/js/views/pages/container.js | 52 +++++++++++++------------- 2 files changed, 39 insertions(+), 25 deletions(-) diff --git a/cms/static/js/base.js b/cms/static/js/base.js index 5f970a89d592..8b6bca95f315 100644 --- a/cms/static/js/base.js +++ b/cms/static/js/base.js @@ -73,6 +73,18 @@ function( // nav - dropdown related $body.click(function() { + // Reset iframe height to default when the XBlock action dropdown is closed + if ($('.nav-dd .nav-item .wrapper-nav-sub.is-shown').length && window.self !== window.top) { + try { + window.parent.postMessage({ + type: 'toggleCourseXBlockDropdown', + message: 'Adjust the height of the dropdown menu', + payload: { courseXBlockDropdownHeight: 0 } + }, document.referrer); + } catch (e) { + console.error('Failed to post message:', e); + } + } $('.nav-dd .nav-item .wrapper-nav-sub').removeClass('is-shown'); $('.nav-dd .nav-item .title').removeClass('is-selected'); $('.custom-dropdown .dropdown-options').hide(); diff --git a/cms/static/js/views/pages/container.js b/cms/static/js/views/pages/container.js index b483b98f1174..39b6ba30a3f4 100644 --- a/cms/static/js/views/pages/container.js +++ b/cms/static/js/views/pages/container.js @@ -678,33 +678,35 @@ function($, _, Backbone, gettext, BasePage, // Calculate the viewport height and the dropdown menu height. // Check if the dropdown would overflow beyond the iframe height based on the user's click position. // If the dropdown overflows, adjust its position to display above the click point. - const courseUnitXBlockIframeHeight = window.innerHeight; - const courseXBlockDropdownHeight = subMenu.offsetHeight; - const clickYPosition = event.clientY; - - if (courseUnitXBlockIframeHeight < courseXBlockDropdownHeight) { - // If the dropdown menu is taller than the iframe, adjust the height of the dropdown menu. + const iframeHeight = window.innerHeight; + const dropdownHeight = subMenu.offsetHeight; + const offsetBuffer = 10; + + const targetRect = event.target.getBoundingClientRect(); + const targetBottom = targetRect.bottom; + const targetTop = targetRect.top; + + // Calculate total space needed below the target to fit dropdown + const dropdownBottom = targetBottom + dropdownHeight + offsetBuffer; + + const dropdownFitsBelow = dropdownBottom <= iframeHeight; + const dropdownFitsAbove = dropdownHeight + offsetBuffer < targetTop; + + if (!dropdownFitsBelow) { + if (dropdownFitsAbove && this.options.isIframeEmbed) { + // Display the dropdown above the button + subMenu.style.top = `-${dropdownHeight}px`; + } else { + // Request parent to expand iframe height to fit dropdown + const requiredExtraHeight = dropdownBottom - iframeHeight; this.postMessageToParent({ - type: 'toggleCourseXBlockDropdown', - message: 'Adjust the height of the dropdown menu', - payload: { courseXBlockDropdownHeight }, + type: 'toggleCourseXBlockDropdown', + message: 'Expand iframe to fit dropdown', + payload: { + courseXBlockDropdownHeight: requiredExtraHeight, + }, }); - } else if ((courseXBlockDropdownHeight + clickYPosition) > courseUnitXBlockIframeHeight) { - if (courseXBlockDropdownHeight > courseUnitXBlockIframeHeight / 2) { - // If the dropdown menu is taller than half the iframe, send a message to adjust its height. - this.postMessageToParent({ - type: 'toggleCourseXBlockDropdown', - message: 'Adjust the height of the dropdown menu', - payload: { - courseXBlockDropdownHeight: courseXBlockDropdownHeight / 2, - }, - }); - } else { - // Move the dropdown menu upward to prevent it from overflowing out of the viewport. - if (this.options.isIframeEmbed) { - subMenu.style.top = `-${courseXBlockDropdownHeight}px`; - } - } + } } // if propagation is not stopped, the event will bubble up to the From 75b4b846e95e750fab2e893f529bb84f9026ece1 Mon Sep 17 00:00:00 2001 From: Navin Karkera Date: Thu, 1 May 2025 22:27:12 +0000 Subject: [PATCH 004/443] refactor: update sync model helper function docs and minor cleanup (#36599) (#36645) * refactor: update sync model helper function docs Adds some comments to explain certain confusing sections * refactor: sync library content method * feat: use edited_on block field * test: modified field in course block index * fix: extract uncommon methods to child class from base (cherry picked from commit c2d9e40be4ac45df1a08db31bffd248258c277e7) --- cms/djangoapps/contentstore/models.py | 171 ++++++++++++------ cms/djangoapps/contentstore/utils.py | 7 +- .../xblock_storage_handlers/view_handlers.py | 4 +- .../djangoapps/content/search/documents.py | 2 + .../content/search/tests/test_api.py | 36 ++-- .../content/search/tests/test_documents.py | 35 ++-- .../content/search/tests/test_handlers.py | 15 +- 7 files changed, 169 insertions(+), 101 deletions(-) diff --git a/cms/djangoapps/contentstore/models.py b/cms/djangoapps/contentstore/models.py index 24dc6748d2c7..9782a37057c1 100644 --- a/cms/djangoapps/contentstore/models.py +++ b/cms/djangoapps/contentstore/models.py @@ -106,6 +106,34 @@ class EntityLinkBase(models.Model): class Meta: abstract = True + +class ComponentLink(EntityLinkBase): + """ + This represents link between any two publishable entities or link between publishable entity and a course + XBlock. It helps in tracking relationship between XBlocks imported from libraries and used in different courses. + """ + upstream_block = models.ForeignKey( + Component, + on_delete=models.SET_NULL, + related_name="links", + null=True, + blank=True, + ) + upstream_usage_key = UsageKeyField( + max_length=255, + help_text=_( + "Upstream block usage key, this value cannot be null" + " and useful to track upstream library blocks that do not exist yet" + ) + ) + + class Meta: + verbose_name = _("Component Link") + verbose_name_plural = _("Component Links") + + def __str__(self): + return f"ComponentLink<{self.upstream_usage_key}->{self.downstream_usage_key}>" + @property def upstream_version_num(self) -> int | None: """ @@ -177,34 +205,6 @@ def summarize_by_downstream_context(cls, downstream_context_key: CourseKey) -> Q ) return result - -class ComponentLink(EntityLinkBase): - """ - This represents link between any two publishable entities or link between publishable entity and a course - XBlock. It helps in tracking relationship between XBlocks imported from libraries and used in different courses. - """ - upstream_block = models.ForeignKey( - Component, - on_delete=models.SET_NULL, - related_name="links", - null=True, - blank=True, - ) - upstream_usage_key = UsageKeyField( - max_length=255, - help_text=_( - "Upstream block usage key, this value cannot be null" - " and useful to track upstream library blocks that do not exist yet" - ) - ) - - class Meta: - verbose_name = _("Component Link") - verbose_name_plural = _("Component Links") - - def __str__(self): - return f"ComponentLink<{self.upstream_usage_key}->{self.downstream_usage_key}>" - @classmethod def update_or_create( cls, @@ -232,25 +232,15 @@ def update_or_create( 'version_declined': version_declined, } if upstream_block: - new_values.update( - { - 'upstream_block': upstream_block, - } - ) + new_values['upstream_block'] = upstream_block try: link = cls.objects.get(downstream_usage_key=downstream_usage_key) - # TODO: until we save modified datetime for course xblocks in index, the modified time for links are updated - # everytime a downstream/course block is updated. This allows us to order links[1] based on recently - # modified downstream version. - # pylint: disable=line-too-long - # 1. https://github.com/open-craft/frontend-app-course-authoring/blob/0443d88824095f6f65a3a64b77244af590d4edff/src/course-libraries/ReviewTabContent.tsx#L222-L233 - has_changes = True # change to false once above condition is met. - for key, value in new_values.items(): - prev = getattr(link, key) - # None != None is True, so we need to check for it specially - if prev != value and ~(prev is None and value is None): + has_changes = False + for key, new_value in new_values.items(): + prev_value = getattr(link, key) + if prev_value != new_value: has_changes = True - setattr(link, key, value) + setattr(link, key, new_value) if has_changes: link.updated = created link.save() @@ -290,6 +280,77 @@ class Meta: def __str__(self): return f"ContainerLink<{self.upstream_container_key}->{self.downstream_usage_key}>" + @property + def upstream_version_num(self) -> int | None: + """ + Returns upstream container version number if available. + """ + published_version = get_published_version(self.upstream_container.publishable_entity.id) + return published_version.version_num if published_version else None + + @property + def upstream_context_title(self) -> str: + """ + Returns upstream context title. + """ + return self.upstream_container.publishable_entity.learning_package.title + + @classmethod + def filter_links( + cls, + **link_filter, + ) -> QuerySet["EntityLinkBase"]: + """ + Get all links along with sync flag, upstream context title and version, with optional filtering. + """ + ready_to_sync = link_filter.pop('ready_to_sync', None) + result = cls.objects.filter(**link_filter).select_related( + "upstream_container__publishable_entity__published__version", + "upstream_container__publishable_entity__learning_package" + ).annotate( + ready_to_sync=( + GreaterThan( + Coalesce("upstream_container__publishable_entity__published__version__version_num", 0), + Coalesce("version_synced", 0) + ) & GreaterThan( + Coalesce("upstream_container__publishable_entity__published__version__version_num", 0), + Coalesce("version_declined", 0) + ) + ) + ) + if ready_to_sync is not None: + result = result.filter(ready_to_sync=ready_to_sync) + return result + + @classmethod + def summarize_by_downstream_context(cls, downstream_context_key: CourseKey) -> QuerySet: + """ + Returns a summary of links by upstream context for given downstream_context_key. + Example: + [ + { + "upstream_context_title": "CS problems 3", + "upstream_context_key": "lib:OpenedX:CSPROB3", + "ready_to_sync_count": 11, + "total_count": 14 + }, + { + "upstream_context_title": "CS problems 2", + "upstream_context_key": "lib:OpenedX:CSPROB2", + "ready_to_sync_count": 15, + "total_count": 24 + }, + ] + """ + result = cls.filter_links(downstream_context_key=downstream_context_key).values( + "upstream_context_key", + upstream_context_title=F("upstream_container__publishable_entity__learning_package__title"), + ).annotate( + ready_to_sync_count=Count("id", Q(ready_to_sync=True)), + total_count=Count('id') + ) + return result + @classmethod def update_or_create( cls, @@ -317,25 +378,15 @@ def update_or_create( 'version_declined': version_declined, } if upstream_container: - new_values.update( - { - 'upstream_container': upstream_container, - } - ) + new_values['upstream_container'] = upstream_container try: link = cls.objects.get(downstream_usage_key=downstream_usage_key) - # TODO: until we save modified datetime for course xblocks in index, the modified time for links are updated - # everytime a downstream/course block is updated. This allows us to order links[1] based on recently - # modified downstream version. - # pylint: disable=line-too-long - # 1. https://github.com/open-craft/frontend-app-course-authoring/blob/0443d88824095f6f65a3a64b77244af590d4edff/src/course-libraries/ReviewTabContent.tsx#L222-L233 - has_changes = True # change to false once above condition is met. - for key, value in new_values.items(): - prev = getattr(link, key) - # None != None is True, so we need to check for it specially - if prev != value and ~(prev is None and value is None): + has_changes = False + for key, new_value in new_values.items(): + prev_value = getattr(link, key) + if prev_value != new_value: has_changes = True - setattr(link, key, value) + setattr(link, key, new_value) if has_changes: link.updated = created link.save() diff --git a/cms/djangoapps/contentstore/utils.py b/cms/djangoapps/contentstore/utils.py index ce244f616ddb..21270a188aba 100644 --- a/cms/djangoapps/contentstore/utils.py +++ b/cms/djangoapps/contentstore/utils.py @@ -2429,8 +2429,5 @@ def create_or_update_xblock_upstream_link(xblock, course_key: CourseKey, created _create_or_update_component_link(course_key, created, xblock) except InvalidKeyError: # It is possible that the upstream is a container and UsageKeyV2 parse failed - # Create upstream container link - try: - _create_or_update_container_link(course_key, created, xblock) - except InvalidKeyError: - log.error(f"Invalid key: {xblock.upstream}") + # Create upstream container link and raise InvalidKeyError if xblock.upstream is a valid key. + _create_or_update_container_link(course_key, created, xblock) diff --git a/cms/djangoapps/contentstore/xblock_storage_handlers/view_handlers.py b/cms/djangoapps/contentstore/xblock_storage_handlers/view_handlers.py index 54beb783f3b0..31a17466769d 100644 --- a/cms/djangoapps/contentstore/xblock_storage_handlers/view_handlers.py +++ b/cms/djangoapps/contentstore/xblock_storage_handlers/view_handlers.py @@ -548,8 +548,7 @@ def sync_library_content(downstream: XBlock, request, store) -> StaticFileNotice notices = [] # Store final children keys to update order of components in unit children = [] - for i in range(len(upstream_children)): - upstream_child = upstream_children[i] + for i, upstream_child in enumerate(upstream_children): assert isinstance(upstream_child, LibraryXBlockMetadata) # for now we only support units if upstream_child.usage_key not in downstream_children_keys: # This upstream_child is new, create it. @@ -574,6 +573,7 @@ def sync_library_content(downstream: XBlock, request, store) -> StaticFileNotice for child in downstream_children: if child.usage_key not in children: # This downstream block was added, or deleted from upstream block. + # NOTE: This will also delete any local additions to a unit in the next upstream sync. store.delete_item(child.usage_key, user_id=request.user.id) downstream.children = children store.update_item(downstream, request.user.id) diff --git a/openedx/core/djangoapps/content/search/documents.py b/openedx/core/djangoapps/content/search/documents.py index 6a40f049bf96..134899a819c2 100644 --- a/openedx/core/djangoapps/content/search/documents.py +++ b/openedx/core/djangoapps/content/search/documents.py @@ -212,6 +212,8 @@ class implementation returns only: Fields.access_id: _meili_access_id_from_context_key(block.usage_key.context_key), Fields.breadcrumbs: [], } + if hasattr(block, "edited_on"): + block_data[Fields.modified] = block.edited_on.timestamp() # Get the breadcrumbs (course, section, subsection, etc.): if block.usage_key.context_key.is_course: # Getting parent is not yet implemented in Learning Core (for libraries). cur_block = block diff --git a/openedx/core/djangoapps/content/search/tests/test_api.py b/openedx/core/djangoapps/content/search/tests/test_api.py index ee70bd444721..46354d6eb3cd 100644 --- a/openedx/core/djangoapps/content/search/tests/test_api.py +++ b/openedx/core/djangoapps/content/search/tests/test_api.py @@ -61,19 +61,27 @@ def setUp(self): # Clear the Meilisearch client to avoid side effects from other tests api.clear_meilisearch_client() + modified_date = datetime(2024, 5, 6, 7, 8, 9, tzinfo=timezone.utc) # Create course - self.course = self.store.create_course( - "org1", - "test_course", - "test_run", - self.user_id, - fields={"display_name": "Test Course"}, - ) - course_access, _ = SearchAccess.objects.get_or_create(context_key=self.course.id) - self.course_block_key = "block-v1:org1+test_course+test_run+type@course+block@course" - - # Create XBlocks - self.sequential = self.store.create_child(self.user_id, self.course.location, "sequential", "test_sequential") + with freeze_time(modified_date): + self.course = self.store.create_course( + "org1", + "test_course", + "test_run", + self.user_id, + fields={"display_name": "Test Course"}, + ) + course_access, _ = SearchAccess.objects.get_or_create(context_key=self.course.id) + self.course_block_key = "block-v1:org1+test_course+test_run+type@course+block@course" + + # Create XBlocks + self.sequential = self.store.create_child( + self.user_id, + self.course.location, + "sequential", + "test_sequential" + ) + self.store.create_child(self.user_id, self.sequential.location, "vertical", "test_vertical") self.doc_sequential = { "id": "block-v1org1test_coursetest_runtypesequentialblocktest_sequential-f702c144", "type": "course_block", @@ -90,8 +98,8 @@ def setUp(self): ], "content": {}, "access_id": course_access.id, + "modified": modified_date.timestamp(), } - self.store.create_child(self.user_id, self.sequential.location, "vertical", "test_vertical") self.doc_vertical = { "id": "block-v1org1test_coursetest_runtypeverticalblocktest_vertical-e76a10a4", "type": "course_block", @@ -112,6 +120,7 @@ def setUp(self): ], "content": {}, "access_id": course_access.id, + "modified": modified_date.timestamp(), } # Make sure the CourseOverview for the course is created: CourseOverview.get_from_id(self.course.id) @@ -130,7 +139,6 @@ def setUp(self): self.problem1 = library_api.create_library_block(self.library.key, "problem", "p1") self.problem2 = library_api.create_library_block(self.library.key, "problem", "p2") # Update problem1, freezing the date so we can verify modified date serializes correctly. - modified_date = datetime(2024, 5, 6, 7, 8, 9, tzinfo=timezone.utc) with freeze_time(modified_date): library_api.set_library_block_olx(self.problem1.usage_key, "") diff --git a/openedx/core/djangoapps/content/search/tests/test_documents.py b/openedx/core/djangoapps/content/search/tests/test_documents.py index 0a5d871fbb96..b70594eff0eb 100644 --- a/openedx/core/djangoapps/content/search/tests/test_documents.py +++ b/openedx/core/djangoapps/content/search/tests/test_documents.py @@ -52,23 +52,23 @@ class StudioDocumentsTest(SharedModuleStoreTestCase): def setUpClass(cls): super().setUpClass() cls.store = modulestore() - cls.org = Organization.objects.create(name="edX", short_name="edX") - cls.toy_course = ToyCourseFactory.create() # See xmodule/modulestore/tests/sample_courses.py - cls.toy_course_key = cls.toy_course.id - - # Get references to some blocks in the toy course - cls.html_block_key = cls.toy_course_key.make_usage_key("html", "toyjumpto") - # Create a problem in course - cls.problem_block = BlockFactory.create( - category="problem", - parent_location=cls.toy_course_key.make_usage_key("vertical", "vertical_test"), - display_name='Test Problem', - data="What is a test?", - ) - # Create a library and collection with a block - created_date = datetime(2023, 4, 5, 6, 7, 8, tzinfo=timezone.utc) - with freeze_time(created_date): + cls.created_date = datetime(2023, 4, 5, 6, 7, 8, tzinfo=timezone.utc) + with freeze_time(cls.created_date): + # Get references to some blocks in the toy course + cls.org = Organization.objects.create(name="edX", short_name="edX") + cls.toy_course = ToyCourseFactory.create() # See xmodule/modulestore/tests/sample_courses.py + cls.toy_course_key = cls.toy_course.id + + cls.html_block_key = cls.toy_course_key.make_usage_key("html", "toyjumpto") + # Create a problem in course + cls.problem_block = BlockFactory.create( + category="problem", + parent_location=cls.toy_course_key.make_usage_key("vertical", "vertical_test"), + display_name='Test Problem', + data="What is a test?", + ) + cls.library = library_api.create_library( org=cls.org, slug="2012_Fall", @@ -190,6 +190,7 @@ def test_problem_block(self): 'usage_key': 'block-v1:edX+toy+2012_Fall+type@vertical+block@vertical_test', }, ], + "modified": self.created_date.timestamp(), "content": { "capa_content": "What is a test?", "problem_types": ["multiplechoiceresponse"], @@ -223,6 +224,7 @@ def test_html_block(self): "display_name": "Text", "description": "This is a link to another page and some Chinese 四節比分和七年前 Some " "more Chinese 四節比分和七年前 ", + "modified": self.created_date.timestamp(), "breadcrumbs": [ { 'display_name': 'Toy Course', @@ -276,6 +278,7 @@ def test_video_block_untagged(self): }, ], "content": {}, + "modified": self.created_date.timestamp(), # This video has no tags. } diff --git a/openedx/core/djangoapps/content/search/tests/test_handlers.py b/openedx/core/djangoapps/content/search/tests/test_handlers.py index 95b2ecb6f52a..33d0e4db8378 100644 --- a/openedx/core/djangoapps/content/search/tests/test_handlers.py +++ b/openedx/core/djangoapps/content/search/tests/test_handlers.py @@ -59,7 +59,9 @@ def test_create_delete_xblock(self, meilisearch_client): course_access, _ = SearchAccess.objects.get_or_create(context_key=course.id) # Create XBlocks - sequential = self.store.create_child(self.user_id, course.location, "sequential", "test_sequential") + created_date = datetime(2023, 4, 5, 6, 7, 8, tzinfo=timezone.utc) + with freeze_time(created_date): + sequential = self.store.create_child(self.user_id, course.location, "sequential", "test_sequential") doc_sequential = { "id": "block-v1orgatest_coursetest_runtypesequentialblocktest_sequential-0cdb9395", "type": "course_block", @@ -76,10 +78,11 @@ def test_create_delete_xblock(self, meilisearch_client): ], "content": {}, "access_id": course_access.id, - + "modified": created_date.timestamp(), } meilisearch_client.return_value.index.return_value.update_documents.assert_called_with([doc_sequential]) - vertical = self.store.create_child(self.user_id, sequential.location, "vertical", "test_vertical") + with freeze_time(created_date): + vertical = self.store.create_child(self.user_id, sequential.location, "vertical", "test_vertical") doc_vertical = { "id": "block-v1orgatest_coursetest_runtypeverticalblocktest_vertical-011f143b", "type": "course_block", @@ -100,6 +103,7 @@ def test_create_delete_xblock(self, meilisearch_client): ], "content": {}, "access_id": course_access.id, + "modified": created_date.timestamp(), } meilisearch_client.return_value.index.return_value.update_documents.assert_called_with([doc_vertical]) @@ -107,11 +111,14 @@ def test_create_delete_xblock(self, meilisearch_client): # Update the XBlock sequential = self.store.get_item(sequential.location, self.user_id) # Refresh the XBlock sequential.display_name = "Updated Sequential" - self.store.update_item(sequential, self.user_id) + modified_date = datetime(2024, 5, 6, 7, 8, 9, tzinfo=timezone.utc) + with freeze_time(modified_date): + self.store.update_item(sequential, self.user_id) # The display name and the child's breadcrumbs should be updated doc_sequential["display_name"] = "Updated Sequential" doc_vertical["breadcrumbs"][1]["display_name"] = "Updated Sequential" + doc_sequential["modified"] = modified_date.timestamp() meilisearch_client.return_value.index.return_value.update_documents.assert_called_with([ doc_sequential, doc_vertical, From 45ed39d137c470e8022432e5c132e4f27d97260e Mon Sep 17 00:00:00 2001 From: Jillian Date: Fri, 2 May 2025 10:47:25 +0930 Subject: [PATCH 005/443] feat: store content.child_usage_keys in Container search document [FC-0083] (#36528) * feat: store content.child_usage_keys in Container search document Stores the draft children + published children (if applicable) Related fixes: * fix: lib_api.get_container does not take a "user" arg * refactor: fetch_customizable_fields_from_container does not need a "user" arg * refactor: moves tags_count into LibraryItem because anything that appears in a library may be tagged. * refactor: remove get_container_from_key from public API API users must use get_container and ContainerMetadata. * refactor: made set_library_item_collections take an entity_key string instead of a PublishableEntity instance, so we don't need to fetch a Container object to call it. * refactor: changed ContainerLink.update_or_create to take the container PK instead of a Container object, since this is enough. Added container_pk to ContainerMetadata to support this. (cherry picked from commit 5b3caa93e218e38e7459bdc1ff99ee175e93a22b) --- cms/djangoapps/contentstore/models.py | 6 +-- .../rest_api/v2/views/downstreams.py | 2 +- cms/djangoapps/contentstore/utils.py | 4 +- cms/lib/xblock/upstream_sync_container.py | 6 +-- .../djangoapps/content/search/documents.py | 42 +++++++++++++------ .../content/search/tests/test_api.py | 1 + .../content/search/tests/test_documents.py | 24 +++++++++++ .../content_libraries/api/block_metadata.py | 2 - .../content_libraries/api/collections.py | 7 +++- .../content_libraries/api/containers.py | 28 ++++++++----- .../content_libraries/api/libraries.py | 1 + .../content_libraries/rest_api/blocks.py | 4 +- .../content_libraries/rest_api/containers.py | 5 +-- .../content_libraries/rest_api/serializers.py | 2 +- .../content_libraries/tests/test_api.py | 5 +-- 15 files changed, 95 insertions(+), 44 deletions(-) diff --git a/cms/djangoapps/contentstore/models.py b/cms/djangoapps/contentstore/models.py index 9782a37057c1..68891554f546 100644 --- a/cms/djangoapps/contentstore/models.py +++ b/cms/djangoapps/contentstore/models.py @@ -354,7 +354,7 @@ def summarize_by_downstream_context(cls, downstream_context_key: CourseKey) -> Q @classmethod def update_or_create( cls, - upstream_container: Container | None, + upstream_container_id: int | None, /, upstream_container_key: LibraryContainerLocator, upstream_context_key: str, @@ -377,8 +377,8 @@ def update_or_create( 'version_synced': version_synced, 'version_declined': version_declined, } - if upstream_container: - new_values['upstream_container'] = upstream_container + if upstream_container_id: + new_values['upstream_container_id'] = upstream_container_id try: link = cls.objects.get(downstream_usage_key=downstream_usage_key) has_changes = False diff --git a/cms/djangoapps/contentstore/rest_api/v2/views/downstreams.py b/cms/djangoapps/contentstore/rest_api/v2/views/downstreams.py index 39c2649118f5..fc3e4f296bde 100644 --- a/cms/djangoapps/contentstore/rest_api/v2/views/downstreams.py +++ b/cms/djangoapps/contentstore/rest_api/v2/views/downstreams.py @@ -267,7 +267,7 @@ def put(self, request: _AuthenticatedRequest, usage_key_string: str) -> Response fetch_customizable_fields_from_block(downstream=downstream, user=request.user) else: assert isinstance(link.upstream_key, LibraryContainerLocator) - fetch_customizable_fields_from_container(downstream=downstream, user=request.user) + fetch_customizable_fields_from_container(downstream=downstream) except BadDownstream as exc: logger.exception( "'%s' is an invalid downstream; refusing to set its upstream to '%s'", diff --git a/cms/djangoapps/contentstore/utils.py b/cms/djangoapps/contentstore/utils.py index 21270a188aba..1ad400f3a5eb 100644 --- a/cms/djangoapps/contentstore/utils.py +++ b/cms/djangoapps/contentstore/utils.py @@ -87,7 +87,7 @@ from common.djangoapps.xblock_django.api import deprecated_xblocks from common.djangoapps.xblock_django.user_service import DjangoXBlockUserService from openedx.core import toggles as core_toggles -from openedx.core.djangoapps.content_libraries.api import get_container_from_key +from openedx.core.djangoapps.content_libraries.api import get_container from openedx.core.djangoapps.content_tagging.toggles import is_tagging_feature_disabled from openedx.core.djangoapps.credit.api import get_credit_requirements, is_credit_course from openedx.core.djangoapps.discussions.config.waffle import ENABLE_PAGES_AND_RESOURCES_MICROFRONTEND @@ -2402,7 +2402,7 @@ def _create_or_update_container_link(course_key: CourseKey, created: datetime | """ upstream_container_key = LibraryContainerLocator.from_string(xblock.upstream) try: - lib_component = get_container_from_key(upstream_container_key) + lib_component = get_container(upstream_container_key).container_pk except ObjectDoesNotExist: log.error(f"Library component not found for {upstream_container_key}") lib_component = None diff --git a/cms/lib/xblock/upstream_sync_container.py b/cms/lib/xblock/upstream_sync_container.py index 44e3b429ec05..4e8302323808 100644 --- a/cms/lib/xblock/upstream_sync_container.py +++ b/cms/lib/xblock/upstream_sync_container.py @@ -45,7 +45,7 @@ def sync_from_upstream_container( user, permission=lib_api.permissions.CAN_VIEW_THIS_CONTENT_LIBRARY, ) - upstream_meta = lib_api.get_container(link.upstream_key, user) + upstream_meta = lib_api.get_container(link.upstream_key) upstream_children = lib_api.get_container_children(link.upstream_key, published=True) _update_customizable_fields(upstream=upstream_meta, downstream=downstream, only_fetch=False) _update_non_customizable_fields(upstream=upstream_meta, downstream=downstream) @@ -54,7 +54,7 @@ def sync_from_upstream_container( return upstream_children -def fetch_customizable_fields_from_container(*, downstream: XBlock, user: User) -> None: +def fetch_customizable_fields_from_container(*, downstream: XBlock) -> None: """ Fetch upstream-defined value of customizable fields and save them on the downstream. @@ -62,7 +62,7 @@ def fetch_customizable_fields_from_container(*, downstream: XBlock, user: User) Basically, this sets the value of "upstream_display_name" on the downstream block. """ - upstream = lib_api.get_container(LibraryContainerLocator.from_string(downstream.upstream), user) + upstream = lib_api.get_container(LibraryContainerLocator.from_string(downstream.upstream)) _update_customizable_fields(upstream=upstream, downstream=downstream, only_fetch=True) diff --git a/openedx/core/djangoapps/content/search/documents.py b/openedx/core/djangoapps/content/search/documents.py index 134899a819c2..28b5e74450a6 100644 --- a/openedx/core/djangoapps/content/search/documents.py +++ b/openedx/core/djangoapps/content/search/documents.py @@ -71,6 +71,7 @@ class Fields: # The "content" field is a dictionary of arbitrary data, depending on the block_type. # It comes from each XBlock's index_dictionary() method (if present) plus some processing. # Text (html) blocks have an "html_content" key in here, capa has "capa_content" and "problem_types", and so on. + # Containers store their list of child usage keys here. content = "content" # Collections use this field to communicate how many entities/components they contain. @@ -87,6 +88,7 @@ class Fields: published = "published" published_display_name = "display_name" published_description = "description" + published_content = "content" published_num_children = "num_children" # Note: new fields or values can be added at any time, but if they need to be indexed for filtering or keyword @@ -347,13 +349,10 @@ def _collections_for_content_object(object_id: OpaqueKey) -> dict: collections = authoring_api.get_entity_collections( component.learning_package_id, component.key, - ) + ).values('key', 'title') elif isinstance(object_id, LibraryContainerLocator): - container = lib_api.get_container_from_key(object_id) - collections = authoring_api.get_entity_collections( - container.publishable_entity.learning_package_id, - container.key, - ) + container = lib_api.get_container(object_id, include_collections=True) + collections = container.collections else: log.warning(f"Unexpected key type for {object_id}") @@ -364,8 +363,8 @@ def _collections_for_content_object(object_id: OpaqueKey) -> dict: return result for collection in collections: - result[Fields.collections][Fields.collections_display_name].append(collection.title) - result[Fields.collections][Fields.collections_key].append(collection.key) + result[Fields.collections][Fields.collections_display_name].append(collection["title"]) + result[Fields.collections][Fields.collections_key].append(collection["key"]) return result @@ -581,9 +580,13 @@ def searchable_doc_for_container( container = lib_api.get_container(container_key) except lib_api.ContentLibraryContainerNotFound: # Container not found, so we can only return the base doc + log.error(f"Container {container_key} not found") return doc - draft_num_children = lib_api.get_container_children_count(container_key, published=False) + draft_children = lib_api.get_container_children( + container_key, + published=False, + ) publish_status = PublishStatus.published if container.last_published is None: publish_status = PublishStatus.never @@ -594,7 +597,13 @@ def searchable_doc_for_container( Fields.display_name: container.display_name, Fields.created: container.created.timestamp(), Fields.modified: container.modified.timestamp(), - Fields.num_children: draft_num_children, + Fields.num_children: len(draft_children), + Fields.content: { + "child_usage_keys": [ + str(child.usage_key) + for child in draft_children + ], + }, Fields.publish_status: publish_status, Fields.last_published: container.last_published.timestamp() if container.last_published else None, }) @@ -603,10 +612,19 @@ def searchable_doc_for_container( doc[Fields.breadcrumbs] = [{"display_name": library.title}] if container.published_version_num is not None: - published_num_children = lib_api.get_container_children_count(container_key, published=True) + published_children = lib_api.get_container_children( + container_key, + published=True, + ) doc[Fields.published] = { - Fields.published_num_children: published_num_children, Fields.published_display_name: container.published_display_name, + Fields.published_num_children: len(published_children), + Fields.published_content: { + "child_usage_keys": [ + str(child.usage_key) + for child in published_children + ], + }, } return doc diff --git a/openedx/core/djangoapps/content/search/tests/test_api.py b/openedx/core/djangoapps/content/search/tests/test_api.py index 46354d6eb3cd..492d1b5f7650 100644 --- a/openedx/core/djangoapps/content/search/tests/test_api.py +++ b/openedx/core/djangoapps/content/search/tests/test_api.py @@ -238,6 +238,7 @@ def setUp(self): "display_name": "Unit 1", # description is not set for containers "num_children": 0, + "content": {"child_usage_keys": []}, "publish_status": "never", "context_key": "lib:org1:lib", "org": "org1", diff --git a/openedx/core/djangoapps/content/search/tests/test_documents.py b/openedx/core/djangoapps/content/search/tests/test_documents.py index b70594eff0eb..74772c89c017 100644 --- a/openedx/core/djangoapps/content/search/tests/test_documents.py +++ b/openedx/core/djangoapps/content/search/tests/test_documents.py @@ -531,6 +531,9 @@ def test_draft_container(self): "display_name": "A Unit in the Search Index", # description is not set for containers "num_children": 0, + "content": { + "child_usage_keys": [], + }, "publish_status": "never", "context_key": "lib:edX:2012_Fall", "access_id": self.library_access_id, @@ -571,6 +574,11 @@ def test_published_container(self): "display_name": "A Unit in the Search Index", # description is not set for containers "num_children": 1, + "content": { + "child_usage_keys": [ + "lb:edX:2012_Fall:html:text2", + ], + }, "publish_status": "published", "context_key": "lib:edX:2012_Fall", "access_id": self.library_access_id, @@ -585,6 +593,11 @@ def test_published_container(self): "published": { "num_children": 1, "display_name": "A Unit in the Search Index", + "content": { + "child_usage_keys": [ + "lb:edX:2012_Fall:html:text2", + ], + }, }, } @@ -627,6 +640,12 @@ def test_published_container_with_changes(self): "display_name": "A Unit in the Search Index", # description is not set for containers "num_children": 2, + "content": { + "child_usage_keys": [ + "lb:edX:2012_Fall:html:text2", + "lb:edX:2012_Fall:html:text3", + ], + }, "publish_status": "modified", "context_key": "lib:edX:2012_Fall", "access_id": self.library_access_id, @@ -641,6 +660,11 @@ def test_published_container_with_changes(self): "published": { "num_children": 1, "display_name": "A Unit in the Search Index", + "content": { + "child_usage_keys": [ + "lb:edX:2012_Fall:html:text2", + ], + }, }, } diff --git a/openedx/core/djangoapps/content_libraries/api/block_metadata.py b/openedx/core/djangoapps/content_libraries/api/block_metadata.py index 032d21431a3a..539b3290631b 100644 --- a/openedx/core/djangoapps/content_libraries/api/block_metadata.py +++ b/openedx/core/djangoapps/content_libraries/api/block_metadata.py @@ -26,8 +26,6 @@ class LibraryXBlockMetadata(PublishableItem): Class that represents the metadata about an XBlock in a content library. """ usage_key: LibraryUsageLocatorV2 - # TODO: move tags_count to LibraryItem as all objects under a library can be tagged. - tags_count: int = 0 @classmethod def from_component(cls, library_key, component, associated_collections=None): diff --git a/openedx/core/djangoapps/content_libraries/api/collections.py b/openedx/core/djangoapps/content_libraries/api/collections.py index 2b0ddc08d89c..da8b47ee5e75 100644 --- a/openedx/core/djangoapps/content_libraries/api/collections.py +++ b/openedx/core/djangoapps/content_libraries/api/collections.py @@ -181,7 +181,7 @@ def update_library_collection_items( def set_library_item_collections( library_key: LibraryLocatorV2, - publishable_entity: PublishableEntity, + entity_key: str, *, collection_keys: list[str], created_by: int | None = None, @@ -207,6 +207,11 @@ def set_library_item_collections( assert content_library.learning_package_id assert content_library.library_key == library_key + publishable_entity = authoring_api.get_publishable_entity_by_key( + content_library.learning_package_id, + key=entity_key, + ) + # Note: Component.key matches its PublishableEntity.key collection_qs = authoring_api.get_collections(content_library.learning_package_id).filter( key__in=collection_keys diff --git a/openedx/core/djangoapps/content_libraries/api/containers.py b/openedx/core/djangoapps/content_libraries/api/containers.py index d7ba0fcac01f..36072caf8215 100644 --- a/openedx/core/djangoapps/content_libraries/api/containers.py +++ b/openedx/core/djangoapps/content_libraries/api/containers.py @@ -43,7 +43,6 @@ "ContainerMetadata", "ContainerType", # API methods - "get_container_from_key", "get_container", "create_container", "get_container_children", @@ -111,6 +110,7 @@ class ContainerMetadata(PublishableItem): """ container_key: LibraryContainerLocator container_type: ContainerType + container_pk: int published_display_name: str | None @classmethod @@ -139,6 +139,7 @@ def from_container(cls, library_key, container: Container, associated_collection return cls( container_key=container_key, container_type=container_type, + container_pk=container.pk, display_name=draft.title, created=container.created, modified=draft.created, @@ -173,7 +174,7 @@ def library_container_locator( ) -def get_container_from_key(container_key: LibraryContainerLocator, isDeleted=False) -> Container: +def _get_container_from_key(container_key: LibraryContainerLocator, isDeleted=False) -> Container: """ Internal method to fetch the Container object from its LibraryContainerLocator @@ -192,11 +193,15 @@ def get_container_from_key(container_key: LibraryContainerLocator, isDeleted=Fal raise ContentLibraryContainerNotFound -def get_container(container_key: LibraryContainerLocator, include_collections=False) -> ContainerMetadata: +def get_container( + container_key: LibraryContainerLocator, + *, + include_collections=False, +) -> ContainerMetadata: """ Get a container (a Section, Subsection, or Unit). """ - container = get_container_from_key(container_key) + container = _get_container_from_key(container_key) if include_collections: associated_collections = authoring_api.get_entity_collections( container.publishable_entity.learning_package_id, @@ -268,7 +273,7 @@ def update_container( """ Update a container (e.g. a Unit) title. """ - container = get_container_from_key(container_key) + container = _get_container_from_key(container_key) library_key = container_key.lib_key assert container.unit @@ -297,7 +302,7 @@ def delete_container( No-op if container doesn't exist or has already been soft-deleted. """ library_key = container_key.lib_key - container = get_container_from_key(container_key) + container = _get_container_from_key(container_key) affected_collections = authoring_api.get_entity_collections( container.publishable_entity.learning_package_id, @@ -332,7 +337,7 @@ def restore_container(container_key: LibraryContainerLocator) -> None: Restore the specified library container. """ library_key = container_key.lib_key - container = get_container_from_key(container_key, isDeleted=True) + container = _get_container_from_key(container_key, isDeleted=True) affected_collections = authoring_api.get_entity_collections( container.publishable_entity.learning_package_id, @@ -372,12 +377,13 @@ def restore_container(container_key: LibraryContainerLocator) -> None: def get_container_children( container_key: LibraryContainerLocator, + *, published=False, ) -> list[LibraryXBlockMetadata | ContainerMetadata]: """ Get the entities contained in the given container (e.g. the components/xblocks in a unit) """ - container = get_container_from_key(container_key) + container = _get_container_from_key(container_key) if container_key.container_type == ContainerType.Unit.value: child_components = authoring_api.get_components_in_unit(container.unit, published=published) return [LibraryXBlockMetadata.from_component( @@ -399,7 +405,7 @@ def get_container_children_count( """ Get the count of entities contained in the given container (e.g. the components/xblocks in a unit) """ - container = get_container_from_key(container_key) + container = _get_container_from_key(container_key) return authoring_api.get_container_children_count(container, published=published) @@ -414,7 +420,7 @@ def update_container_children( """ library_key = container_key.lib_key container_type = container_key.container_type - container = get_container_from_key(container_key) + container = _get_container_from_key(container_key) match container_type: case ContainerType.Unit.value: components = [get_component_from_usage_key(key) for key in children_ids] # type: ignore[arg-type] @@ -459,7 +465,7 @@ def publish_container_changes(container_key: LibraryContainerLocator, user_id: i Publish all unpublished changes in a container and all its child containers/blocks. """ - container = get_container_from_key(container_key) + container = _get_container_from_key(container_key) library_key = container_key.lib_key content_library = ContentLibrary.objects.get_by_key(library_key) # type: ignore[attr-defined] learning_package = content_library.learning_package diff --git a/openedx/core/djangoapps/content_libraries/api/libraries.py b/openedx/core/djangoapps/content_libraries/api/libraries.py index 8e238f278096..8549060f3e64 100644 --- a/openedx/core/djangoapps/content_libraries/api/libraries.py +++ b/openedx/core/djangoapps/content_libraries/api/libraries.py @@ -184,6 +184,7 @@ class LibraryItem: created: datetime modified: datetime display_name: str + tags_count: int = 0 @dataclass(frozen=True, kw_only=True) diff --git a/openedx/core/djangoapps/content_libraries/rest_api/blocks.py b/openedx/core/djangoapps/content_libraries/rest_api/blocks.py index 6ab35c47c632..bc314099893c 100644 --- a/openedx/core/djangoapps/content_libraries/rest_api/blocks.py +++ b/openedx/core/djangoapps/content_libraries/rest_api/blocks.py @@ -265,14 +265,14 @@ def patch(self, request: RestRequest, usage_key_str) -> Response: request.user, permissions.CAN_EDIT_THIS_CONTENT_LIBRARY ) - component = api.get_component_from_usage_key(key) serializer = ContentLibraryItemCollectionsUpdateSerializer(data=request.data) serializer.is_valid(raise_exception=True) + component = api.get_component_from_usage_key(key) collection_keys = serializer.validated_data['collection_keys'] api.set_library_item_collections( library_key=key.lib_key, - publishable_entity=component.publishable_entity, + entity_key=component.publishable_entity.key, collection_keys=collection_keys, created_by=request.user.id, content_library=content_library, diff --git a/openedx/core/djangoapps/content_libraries/rest_api/containers.py b/openedx/core/djangoapps/content_libraries/rest_api/containers.py index 061f4a0693d1..19f33b7beb2c 100644 --- a/openedx/core/djangoapps/content_libraries/rest_api/containers.py +++ b/openedx/core/djangoapps/content_libraries/rest_api/containers.py @@ -184,7 +184,7 @@ def get(self, request, container_key: LibraryContainerLocator): request.user, permissions.CAN_VIEW_THIS_CONTENT_LIBRARY, ) - child_entities = api.get_container_children(container_key, published) + child_entities = api.get_container_children(container_key, published=published) if container_key.container_type == api.ContainerType.Unit.value: data = serializers.LibraryXBlockMetadataSerializer(child_entities, many=True).data else: @@ -314,14 +314,13 @@ def patch(self, request: RestRequest, container_key: LibraryContainerLocator) -> request.user, permissions.CAN_EDIT_THIS_CONTENT_LIBRARY ) - container = api.get_container_from_key(container_key) serializer = serializers.ContentLibraryItemCollectionsUpdateSerializer(data=request.data) serializer.is_valid(raise_exception=True) collection_keys = serializer.validated_data['collection_keys'] api.set_library_item_collections( library_key=container_key.lib_key, - publishable_entity=container.publishable_entity, + entity_key=container_key.container_id, collection_keys=collection_keys, created_by=request.user.id, content_library=content_library, diff --git a/openedx/core/djangoapps/content_libraries/rest_api/serializers.py b/openedx/core/djangoapps/content_libraries/rest_api/serializers.py index be386e0e9dfe..04c9e6a9901c 100644 --- a/openedx/core/djangoapps/content_libraries/rest_api/serializers.py +++ b/openedx/core/djangoapps/content_libraries/rest_api/serializers.py @@ -138,6 +138,7 @@ class PublishableItemSerializer(serializers.Serializer): """ id = serializers.SerializerMethodField() display_name = serializers.CharField() + tags_count = serializers.IntegerField(read_only=True) last_published = serializers.DateTimeField(format=DATETIME_FORMAT, read_only=True) published_by = serializers.CharField(read_only=True) last_draft_created = serializers.DateTimeField(format=DATETIME_FORMAT, read_only=True) @@ -149,7 +150,6 @@ class PublishableItemSerializer(serializers.Serializer): # When creating a new XBlock in a library, the slug becomes the ID part of # the definition key and usage key: slug = serializers.CharField(write_only=True) - tags_count = serializers.IntegerField(read_only=True) collections = CollectionMetadataSerializer(many=True, required=False) can_stand_alone = serializers.BooleanField(read_only=True) diff --git a/openedx/core/djangoapps/content_libraries/tests/test_api.py b/openedx/core/djangoapps/content_libraries/tests/test_api.py index 8f79ec7f6339..8dbb5e11946a 100644 --- a/openedx/core/djangoapps/content_libraries/tests/test_api.py +++ b/openedx/core/djangoapps/content_libraries/tests/test_api.py @@ -547,10 +547,9 @@ def test_set_library_component_collections(self): LIBRARY_COLLECTION_UPDATED.connect(collection_update_event_receiver) assert not list(self.col2.entities.all()) component = api.get_component_from_usage_key(UsageKey.from_string(self.lib2_problem_block["id"])) - api.set_library_item_collections( - self.lib2.library_key, - component.publishable_entity, + library_key=self.lib2.library_key, + entity_key=component.publishable_entity.key, collection_keys=[self.col2.key, self.col3.key], ) From d6df4d1d348774fc3703fc8203333a1bb02adad2 Mon Sep 17 00:00:00 2001 From: Navin Karkera Date: Fri, 2 May 2025 17:19:01 +0000 Subject: [PATCH 006/443] fix: unwanted section of code causing cross-origin error (#36643) (#36652) https://github.com/openedx/edx-platform/pull/36477#discussion_r2069105832 (cherry picked from commit 65080107261cb285ea0cb1acf3dfa4221f78d721) --- common/templates/xblock_v2/xblock_iframe.html | 7 ------- 1 file changed, 7 deletions(-) diff --git a/common/templates/xblock_v2/xblock_iframe.html b/common/templates/xblock_v2/xblock_iframe.html index 39eb044b183e..ba4828df02ae 100644 --- a/common/templates/xblock_v2/xblock_iframe.html +++ b/common/templates/xblock_v2/xblock_iframe.html @@ -455,9 +455,6 @@ // it will report the height of its contents to the parent window when the // document loads, window resizes, or DOM mutates. if (window !== window.parent) { - var lastHeight = window.parent[0].offsetHeight; - var lastWidth = window.parent[0].offsetWidth; - function dispatchResizeMessage(event) { // Note: event is actually an Array of MutationRecord objects when fired from the MutationObserver var newHeight = rootNode.scrollHeight; @@ -472,10 +469,6 @@ } }, document.referrer ); - - lastHeight = newHeight; - lastWidth = newWidth; - // Within the authoring microfrontend the iframe resizes to match the // height of this document and it should never scroll. It does scroll // ocassionally when javascript is used to focus elements on the page From 0e2caaffc2985cd90e5a6e1c1965bb2e1d9013c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=B4mulo=20Penido?= Date: Tue, 6 May 2025 14:17:14 -0300 Subject: [PATCH 007/443] chore: upgrade openedx-learning to 0.26.0 (#36654) Backport of https://github.com/openedx/edx-platform/pull/36630 --- requirements/constraints.txt | 2 +- requirements/edx/base.txt | 2 +- requirements/edx/development.txt | 2 +- requirements/edx/doc.txt | 2 +- requirements/edx/testing.txt | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/requirements/constraints.txt b/requirements/constraints.txt index eab8c113b034..ba888ac023ba 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -112,7 +112,7 @@ numpy<2.0.0 # Date: 2023-09-18 # pinning this version to avoid updates while the library is being developed # Issue for unpinning: https://github.com/openedx/edx-platform/issues/35269 -openedx-learning==0.25.0 +openedx-learning==0.26.0 # Date: 2023-11-29 # Open AI version 1.0.0 dropped support for openai.ChatCompletion which is currently in use in enterprise. diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index 3dfe90fd0695..1d60d1e19368 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -817,7 +817,7 @@ openedx-filters==2.0.1 # ora2 openedx-forum==0.2.0 # via -r requirements/edx/kernel.in -openedx-learning==0.25.0 +openedx-learning==0.26.0 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/kernel.in diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt index 0901a9179a41..54d89f96c2f7 100644 --- a/requirements/edx/development.txt +++ b/requirements/edx/development.txt @@ -1378,7 +1378,7 @@ openedx-forum==0.2.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -openedx-learning==0.25.0 +openedx-learning==0.26.0 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/doc.txt diff --git a/requirements/edx/doc.txt b/requirements/edx/doc.txt index 54c3ba3b6519..a543c1843863 100644 --- a/requirements/edx/doc.txt +++ b/requirements/edx/doc.txt @@ -988,7 +988,7 @@ openedx-filters==2.0.1 # ora2 openedx-forum==0.2.0 # via -r requirements/edx/base.txt -openedx-learning==0.25.0 +openedx-learning==0.26.0 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/base.txt diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt index b0a7976ab37e..a41643624e6c 100644 --- a/requirements/edx/testing.txt +++ b/requirements/edx/testing.txt @@ -1046,7 +1046,7 @@ openedx-filters==2.0.1 # ora2 openedx-forum==0.2.0 # via -r requirements/edx/base.txt -openedx-learning==0.25.0 +openedx-learning==0.26.0 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/base.txt From e1375ae9c23b1cfad382970acd658b41aad4e592 Mon Sep 17 00:00:00 2001 From: Jillian Date: Sat, 10 May 2025 01:32:47 +0930 Subject: [PATCH 008/443] fix: Bugs with "Publish All Changes" in Library [FC-0083] (#36640) (#36687) * fix: "[created] received a naive datetime" * fix: leaky "isolation" of events was causing test failures * fix: make lib events more specific, emit them async, handle hierarchy correctly * chore: bump openedx-events to 10.2.0 for new library PUBLISHED events (cherry picked from commit 2e91a0511244e3e3adfac372f1a995d957cf8c83) Co-authored-by: Braden MacDonald --- .../contentstore/views/tests/test_block.py | 6 + openedx/core/djangoapps/content/search/api.py | 23 - .../djangoapps/content/search/handlers.py | 85 ++- .../core/djangoapps/content/search/tasks.py | 3 - .../content/search/tests/test_api.py | 15 - .../content_libraries/api/blocks.py | 30 +- .../content_libraries/api/containers.py | 34 +- .../content_libraries/api/libraries.py | 67 +-- .../djangoapps/content_libraries/tasks.py | 230 +++++++- .../content_libraries/tests/base.py | 76 ++- .../content_libraries/tests/test_api.py | 240 +++----- .../tests/test_containers.py | 154 +---- .../tests/test_content_libraries.py | 324 +---------- .../tests/test_course_to_library.py | 9 +- .../tests/test_embed_block.py | 3 +- .../content_libraries/tests/test_events.py | 548 ++++++++++++++++++ .../tests/test_versioned_apis.py | 3 +- .../course_groups/tests/test_cohorts.py | 6 + .../course_groups/tests/test_events.py | 6 + requirements/edx/base.txt | 2 +- requirements/edx/development.txt | 2 +- requirements/edx/doc.txt | 2 +- requirements/edx/testing.txt | 2 +- 23 files changed, 1043 insertions(+), 827 deletions(-) create mode 100644 openedx/core/djangoapps/content_libraries/tests/test_events.py diff --git a/cms/djangoapps/contentstore/views/tests/test_block.py b/cms/djangoapps/contentstore/views/tests/test_block.py index f03e21342f97..bd0e1c5b1253 100644 --- a/cms/djangoapps/contentstore/views/tests/test_block.py +++ b/cms/djangoapps/contentstore/views/tests/test_block.py @@ -804,6 +804,12 @@ def setUpClass(cls): super().setUpClass() cls.start_events_isolation() + @classmethod + def tearDownClass(cls): + """ Don't let our event isolation affect other test cases """ + super().tearDownClass() + cls.enable_all_events() # Re-enable events other than the ENABLED_OPENEDX_EVENTS subset we isolated. + def setUp(self): """Creates the test course structure and a few components to 'duplicate'.""" super().setUp() diff --git a/openedx/core/djangoapps/content/search/api.py b/openedx/core/djangoapps/content/search/api.py index b3614e9cc673..b866f13dc474 100644 --- a/openedx/core/djangoapps/content/search/api.py +++ b/openedx/core/djangoapps/content/search/api.py @@ -653,29 +653,6 @@ def _delete_index_doc(doc_id) -> None: _wait_for_meili_tasks(tasks) -def delete_all_draft_docs_for_library(library_key: LibraryLocatorV2) -> None: - """ - Deletes draft documents for the given XBlocks from the search index - """ - current_rebuild_index_name = _get_running_rebuild_index_name() - client = _get_meilisearch_client() - # Delete all documents where last_published is null i.e. never published before. - delete_filter = [ - f'{Fields.context_key}="{library_key}"', - # This field should only be NULL or have a value, but we're also checking IS EMPTY just in case. - # Inner arrays are connected by an OR - [f'{Fields.last_published} IS EMPTY', f'{Fields.last_published} IS NULL'], - ] - - tasks = [] - if current_rebuild_index_name: - # If there is a rebuild in progress, the documents will also be deleted from the new index. - tasks.append(client.index(current_rebuild_index_name).delete_documents(filter=delete_filter)) - tasks.append(client.index(STUDIO_INDEX_NAME).delete_documents(filter=delete_filter)) - - _wait_for_meili_tasks(tasks) - - def upsert_library_block_index_doc(usage_key: UsageKey) -> None: """ Creates or updates the document for the given Library Block in the search index diff --git a/openedx/core/djangoapps/content/search/handlers.py b/openedx/core/djangoapps/content/search/handlers.py index 998b2ef870ab..315d3cde53fd 100644 --- a/openedx/core/djangoapps/content/search/handlers.py +++ b/openedx/core/djangoapps/content/search/handlers.py @@ -23,12 +23,14 @@ LIBRARY_BLOCK_CREATED, LIBRARY_BLOCK_DELETED, LIBRARY_BLOCK_UPDATED, + LIBRARY_BLOCK_PUBLISHED, LIBRARY_COLLECTION_CREATED, LIBRARY_COLLECTION_DELETED, LIBRARY_COLLECTION_UPDATED, LIBRARY_CONTAINER_CREATED, LIBRARY_CONTAINER_DELETED, LIBRARY_CONTAINER_UPDATED, + LIBRARY_CONTAINER_PUBLISHED, XBLOCK_CREATED, XBLOCK_DELETED, XBLOCK_UPDATED, @@ -37,6 +39,7 @@ from openedx.core.djangoapps.content.course_overviews.models import CourseOverview from openedx.core.djangoapps.content.search.models import SearchAccess +from openedx.core.djangoapps.content_libraries import api as lib_api from .api import ( only_if_meilisearch_enabled, @@ -136,6 +139,32 @@ def library_block_updated_handler(**kwargs) -> None: upsert_library_block_index_doc.apply(args=[str(library_block_data.usage_key)]) +@receiver(LIBRARY_BLOCK_PUBLISHED) +@only_if_meilisearch_enabled +def library_block_published_handler(**kwargs) -> None: + """ + Update the index for the content library block when its published version + has changed. + """ + library_block_data = kwargs.get("library_block", None) + if not library_block_data or not isinstance(library_block_data, LibraryBlockData): # pragma: no cover + log.error("Received null or incorrect data for event") + return + + # The PUBLISHED event is sent for any change to the published version including deletes, so check if it exists: + try: + lib_api.get_library_block(library_block_data.usage_key) + except lib_api.ContentLibraryBlockNotFound: + log.info(f"Observed published deletion of library block {str(library_block_data.usage_key)}.") + # The document should already have been deleted from the search index + # via the DELETED handler, so there's nothing to do now. + return + + # Update content library index synchronously to make sure that search index is updated before + # the frontend invalidates/refetches results. This is only a single document update so is very fast. + upsert_library_block_index_doc.apply(args=[str(library_block_data.usage_key)]) + + @receiver(LIBRARY_BLOCK_DELETED) @only_if_meilisearch_enabled def library_block_deleted(**kwargs) -> None: @@ -162,14 +191,14 @@ def content_library_updated_handler(**kwargs) -> None: if not content_library_data or not isinstance(content_library_data, ContentLibraryData): # pragma: no cover log.error("Received null or incorrect data for event") return + library_key = content_library_data.library_key - # Update content library index synchronously to make sure that search index is updated before - # the frontend invalidates/refetches index. - # Currently, this is only required to make sure that removed/discarded components are removed - # from the search index and displayed to user properly. If it becomes a performance bottleneck - # for other update operations other than discard, we can update CONTENT_LIBRARY_UPDATED event - # to include a parameter which can help us decide if the task needs to run sync or async. - update_content_library_index_docs.apply(args=[str(content_library_data.library_key)]) + # For now we assume the library has been renamed. Few other things will trigger this event. + + # Update ALL items in the library, because their breadcrumbs will be outdated. + # TODO: just patch the "breadcrumbs" field? It's the same on every one. + # TODO: check if the library display_name has actually changed before updating all items? + update_content_library_index_docs.apply(args=[str(library_key)]) @receiver(LIBRARY_COLLECTION_CREATED) @@ -248,17 +277,34 @@ def library_container_updated_handler(**kwargs) -> None: log.error("Received null or incorrect data for event") return - if library_container.background: - update_library_container_index_doc.delay( - str(library_container.container_key), - ) - else: - # Update container index synchronously to make sure that search index is updated before - # the frontend invalidates/refetches index. - # See content_library_updated_handler for more details. - update_library_container_index_doc.apply(args=[ - str(library_container.container_key), - ]) + update_library_container_index_doc.apply(args=[ + str(library_container.container_key), + ]) + + +@receiver(LIBRARY_CONTAINER_PUBLISHED) +@only_if_meilisearch_enabled +def library_container_published_handler(**kwargs) -> None: + """ + Update the index for the content library container when its published + version has changed. + """ + library_container = kwargs.get("library_container", None) + if not library_container or not isinstance(library_container, LibraryContainerData): # pragma: no cover + log.error("Received null or incorrect data for event") + return + # The PUBLISHED event is sent for any change to the published version including deletes, so check if it exists: + try: + lib_api.get_container(library_container.container_key) + except lib_api.ContentLibraryContainerNotFound: + log.info(f"Observed published deletion of container {str(library_container.container_key)}.") + # The document should already have been deleted from the search index + # via the DELETED handler, so there's nothing to do now. + return + + update_library_container_index_doc.apply(args=[ + str(library_container.container_key), + ]) @receiver(LIBRARY_CONTAINER_DELETED) @@ -275,3 +321,6 @@ def library_container_deleted(**kwargs) -> None: # Update content library index synchronously to make sure that search index is updated before # the frontend invalidates/refetches results. This is only a single document update so is very fast. delete_library_container_index_doc.apply(args=[str(library_container.container_key)]) + # TODO: post-Teak, move all the celery tasks directly inline into this handlers? Because now the + # events are emitted in an [async] worker, so it doesn't matter if the handlers are synchronous. + # See https://github.com/openedx/edx-platform/pull/36640 discussion. diff --git a/openedx/core/djangoapps/content/search/tasks.py b/openedx/core/djangoapps/content/search/tasks.py index 1ab77aba383f..5015f6912b10 100644 --- a/openedx/core/djangoapps/content/search/tasks.py +++ b/openedx/core/djangoapps/content/search/tasks.py @@ -86,9 +86,6 @@ def update_content_library_index_docs(library_key_str: str) -> None: log.info("Updating content index documents for library with id: %s", library_key) api.upsert_content_library_index_docs(library_key) - # Delete all documents in this library that were not published by above function - # as this task is also triggered on discard event. - api.delete_all_draft_docs_for_library(library_key) @shared_task(base=LoggedTask, autoretry_for=(MeilisearchError, ConnectionError)) diff --git a/openedx/core/djangoapps/content/search/tests/test_api.py b/openedx/core/djangoapps/content/search/tests/test_api.py index 492d1b5f7650..90b6a407e717 100644 --- a/openedx/core/djangoapps/content/search/tests/test_api.py +++ b/openedx/core/djangoapps/content/search/tests/test_api.py @@ -734,21 +734,6 @@ def test_index_content_library_metadata(self, mock_meilisearch): [self.doc_problem1, self.doc_problem2] ) - @override_settings(MEILISEARCH_ENABLED=True) - def test_delete_all_drafts(self, mock_meilisearch): - """ - Test deleting all draft documents from the index. - """ - api.delete_all_draft_docs_for_library(self.library.key) - - delete_filter = [ - f'context_key="{self.library.key}"', - ['last_published IS EMPTY', 'last_published IS NULL'], - ] - mock_meilisearch.return_value.index.return_value.delete_documents.assert_called_once_with( - filter=delete_filter - ) - @override_settings(MEILISEARCH_ENABLED=True) def test_index_tags_in_collections(self, mock_meilisearch): # Tag collection diff --git a/openedx/core/djangoapps/content_libraries/api/blocks.py b/openedx/core/djangoapps/content_libraries/api/blocks.py index d440055448f2..d693ff30d7e5 100644 --- a/openedx/core/djangoapps/content_libraries/api/blocks.py +++ b/openedx/core/djangoapps/content_libraries/api/blocks.py @@ -63,10 +63,9 @@ ContainerMetadata, ContainerType, ) -from .libraries import ( - library_collection_locator, - PublishableItem, -) +from .collections import library_collection_locator +from .libraries import PublishableItem +from .. import tasks # This content_libraries API is sometimes imported in the LMS (should we prevent that?), but the content_staging app # cannot be. For now we only need this one type import at module scope, so only import it during type checks. @@ -836,24 +835,13 @@ def publish_component_changes(usage_key: LibraryUsageLocatorV2, user: UserType): # The core publishing API is based on draft objects, so find the draft that corresponds to this component: drafts_to_publish = authoring_api.get_all_drafts(learning_package.id).filter(entity__key=component.key) # Publish the component and update anything that needs to be updated (e.g. search index): - authoring_api.publish_from_drafts(learning_package.id, draft_qset=drafts_to_publish, published_by=user.id) - LIBRARY_BLOCK_UPDATED.send_event( - library_block=LibraryBlockData( - library_key=usage_key.lib_key, - usage_key=usage_key, - ) + publish_log = authoring_api.publish_from_drafts( + learning_package.id, draft_qset=drafts_to_publish, published_by=user.id, ) - - # For each container, trigger LIBRARY_CONTAINER_UPDATED signal and set background=True to trigger - # container indexing asynchronously. - affected_containers = get_containers_contains_component(usage_key) - for container in affected_containers: - LIBRARY_CONTAINER_UPDATED.send_event( - library_container=LibraryContainerData( - container_key=container.container_key, - background=True, - ) - ) + # Since this is a single component, it should be safe to process synchronously and in-process: + tasks.send_events_after_publish(publish_log.pk, str(library_key)) + # IF this is found to be a performance issue, we could instead make it async where necessary: + # tasks.wait_for_post_publish_events(publish_log, library_key=library_key) def _component_exists(usage_key: UsageKeyV2) -> bool: diff --git a/openedx/core/djangoapps/content_libraries/api/containers.py b/openedx/core/djangoapps/content_libraries/api/containers.py index 36072caf8215..2adad97970eb 100644 --- a/openedx/core/djangoapps/content_libraries/api/containers.py +++ b/openedx/core/djangoapps/content_libraries/api/containers.py @@ -4,7 +4,7 @@ from __future__ import annotations from dataclasses import dataclass -from datetime import datetime +from datetime import datetime, timezone from enum import Enum import logging from uuid import uuid4 @@ -14,13 +14,11 @@ from opaque_keys.edx.locator import LibraryContainerLocator, LibraryLocatorV2, LibraryUsageLocatorV2 from openedx_events.content_authoring.data import ( ContentObjectChangedData, - LibraryBlockData, LibraryCollectionData, LibraryContainerData, ) from openedx_events.content_authoring.signals import ( CONTENT_OBJECT_ASSOCIATIONS_CHANGED, - LIBRARY_BLOCK_UPDATED, LIBRARY_COLLECTION_UPDATED, LIBRARY_CONTAINER_CREATED, LIBRARY_CONTAINER_DELETED, @@ -34,8 +32,9 @@ from ..models import ContentLibrary from .exceptions import ContentLibraryContainerNotFound -from .libraries import PublishableItem, library_component_usage_key +from .libraries import PublishableItem from .block_metadata import LibraryXBlockMetadata +from .. import tasks # The public API is only the following symbols: __all__ = [ @@ -250,7 +249,7 @@ def create_container( content_library.learning_package_id, key=slug, title=title, - created=created or datetime.now(), + created=created or datetime.now(tz=timezone.utc), created_by=user_id, ) case _: @@ -280,7 +279,7 @@ def update_container( unit_version = authoring_api.create_next_unit_version( container.unit, title=display_name, - created=datetime.now(), + created=datetime.now(tz=timezone.utc), created_by=user_id, ) @@ -427,7 +426,7 @@ def update_container_children( new_version = authoring_api.create_next_unit_version( container.unit, components=components, # type: ignore[arg-type] - created=datetime.now(), + created=datetime.now(tz=timezone.utc), created_by=user_id, entities_action=entities_action, ) @@ -478,21 +477,6 @@ def publish_container_changes(container_key: LibraryContainerLocator, user_id: i draft_qset=drafts_to_publish, published_by=user_id, ) - # Update anything that needs to be updated (e.g. search index): - for record in publish_log.records.select_related("entity", "entity__container", "entity__component").all(): - if hasattr(record.entity, "component"): - # This is a child component like an XBLock in a Unit that was published: - usage_key = library_component_usage_key(library_key, record.entity.component) - LIBRARY_BLOCK_UPDATED.send_event( - library_block=LibraryBlockData(library_key=library_key, usage_key=usage_key) - ) - elif hasattr(record.entity, "container"): - # This is a child container like a Unit, or is the same "container" we published above. - LIBRARY_CONTAINER_UPDATED.send_event( - library_container=LibraryContainerData(container_key=container_key) - ) - else: - log.warning( - f"PublishableEntity {record.entity.pk} / {record.entity.key} was modified during publish operation " - "but is of unknown type." - ) + # Update the search index (and anything else) for the affected container + blocks + # This is mostly synchronous but may complete some work asynchronously if there are a lot of changes. + tasks.wait_for_post_publish_events(publish_log, library_key) diff --git a/openedx/core/djangoapps/content_libraries/api/libraries.py b/openedx/core/djangoapps/content_libraries/api/libraries.py index 8549060f3e64..9acbff92522e 100644 --- a/openedx/core/djangoapps/content_libraries/api/libraries.py +++ b/openedx/core/djangoapps/content_libraries/api/libraries.py @@ -55,15 +55,11 @@ from opaque_keys.edx.locator import LibraryLocatorV2, LibraryUsageLocatorV2 from openedx_events.content_authoring.data import ( ContentLibraryData, - LibraryCollectionData, - ContentObjectChangedData, ) from openedx_events.content_authoring.signals import ( CONTENT_LIBRARY_CREATED, CONTENT_LIBRARY_DELETED, CONTENT_LIBRARY_UPDATED, - LIBRARY_COLLECTION_UPDATED, - CONTENT_OBJECT_ASSOCIATIONS_CHANGED, ) from openedx_learning.api import authoring as authoring_api from openedx_learning.api.authoring_models import Component @@ -75,7 +71,7 @@ from .. import permissions from ..constants import ALL_RIGHTS_RESERVED from ..models import ContentLibrary, ContentLibraryPermission -from .collections import library_collection_locator +from .. import tasks from .exceptions import ( LibraryAlreadyExists, LibraryPermissionIntegrityError, @@ -664,14 +660,15 @@ def publish_changes(library_key: LibraryLocatorV2, user_id: int | None = None): """ learning_package = ContentLibrary.objects.get_by_key(library_key).learning_package assert learning_package is not None # shouldn't happen but it's technically possible. - authoring_api.publish_all_drafts(learning_package.id, published_by=user_id) + publish_log = authoring_api.publish_all_drafts(learning_package.id, published_by=user_id) - CONTENT_LIBRARY_UPDATED.send_event( - content_library=ContentLibraryData( - library_key=library_key, - update_blocks=True - ) - ) + # Update the search index (and anything else) for the affected blocks + # This is mostly synchronous but may complete some work asynchronously if there are a lot of changes. + tasks.wait_for_post_publish_events(publish_log, library_key) + + # Unlike revert_changes below, we do not have to re-index collections, + # because publishing changes does not affect the component counts, and + # collections themselves don't have draft/published/unpublished status. def revert_changes(library_key: LibraryLocatorV2, user_id: int | None = None) -> None: @@ -681,46 +678,8 @@ def revert_changes(library_key: LibraryLocatorV2, user_id: int | None = None) -> """ learning_package = ContentLibrary.objects.get_by_key(library_key).learning_package assert learning_package is not None # shouldn't happen but it's technically possible. - authoring_api.reset_drafts_to_published(learning_package.id, reset_by=user_id) - - CONTENT_LIBRARY_UPDATED.send_event( - content_library=ContentLibraryData( - library_key=library_key, - update_blocks=True - ) - ) - - # For each collection, trigger LIBRARY_COLLECTION_UPDATED signal and set background=True to trigger - # collection indexing asynchronously. - # - # This is to update component counts in all library collections, - # because there may be components that have been discarded in the revert. - for collection in authoring_api.get_collections(learning_package.id): - LIBRARY_COLLECTION_UPDATED.send_event( - library_collection=LibraryCollectionData( - collection_key=library_collection_locator( - library_key=library_key, - collection_key=collection.key, - ), - background=True, - ) - ) + with authoring_api.bulk_draft_changes_for(learning_package.id) as draft_change_log: + authoring_api.reset_drafts_to_published(learning_package.id, reset_by=user_id) - # Reindex components that are in collections - # - # Use case: When a component that was within a collection has been deleted - # and the changes are reverted, the component should appear in the - # collection again. - components_in_collections = authoring_api.get_components( - learning_package.id, draft=True, namespace='xblock.v1', - ).filter(publishable_entity__collections__isnull=False) - - for component in components_in_collections: - usage_key = library_component_usage_key(library_key, component) - - CONTENT_OBJECT_ASSOCIATIONS_CHANGED.send_event( - content_object=ContentObjectChangedData( - object_id=str(usage_key), - changes=["collections"], - ), - ) + # Call the event handlers as needed. + tasks.wait_for_post_revert_events(draft_change_log, library_key) diff --git a/openedx/core/djangoapps/content_libraries/tasks.py b/openedx/core/djangoapps/content_libraries/tasks.py index b76101e1c62e..b472126e8ce7 100644 --- a/openedx/core/djangoapps/content_libraries/tasks.py +++ b/openedx/core/djangoapps/content_libraries/tasks.py @@ -23,11 +23,34 @@ from celery.utils.log import get_task_logger from edx_django_utils.monitoring import set_code_owner_attribute, set_code_owner_attribute_from_module from opaque_keys.edx.keys import CourseKey +from opaque_keys.edx.locator import ( + BlockUsageLocator, + LibraryCollectionLocator, + LibraryContainerLocator, + LibraryLocatorV2, +) +from openedx_learning.api import authoring as authoring_api +from openedx_learning.api.authoring_models import DraftChangeLog, PublishLog +from openedx_events.content_authoring.data import ( + LibraryBlockData, + LibraryCollectionData, + LibraryContainerData, +) +from openedx_events.content_authoring.signals import ( + LIBRARY_BLOCK_CREATED, + LIBRARY_BLOCK_DELETED, + LIBRARY_BLOCK_UPDATED, + LIBRARY_BLOCK_PUBLISHED, + LIBRARY_COLLECTION_UPDATED, + LIBRARY_CONTAINER_CREATED, + LIBRARY_CONTAINER_DELETED, + LIBRARY_CONTAINER_UPDATED, + LIBRARY_CONTAINER_PUBLISHED, +) from user_tasks.tasks import UserTask, UserTaskStatus from xblock.fields import Scope -from opaque_keys.edx.locator import BlockUsageLocator from openedx.core.lib import ensure_cms from xmodule.capa_block import ProblemBlock from xmodule.library_content_block import ANY_CAPA_TYPE_VALUE, LegacyLibraryContentBlock @@ -39,10 +62,197 @@ from . import api from .models import ContentLibraryBlockImportTask -logger = logging.getLogger(__name__) +log = logging.getLogger(__name__) TASK_LOGGER = get_task_logger(__name__) +@shared_task(base=LoggedTask) +@set_code_owner_attribute +def send_events_after_publish(publish_log_pk: int, library_key_str: str) -> None: + """ + Send events to trigger actions like updating the search index, after we've + published some items in a library. + + We use the PublishLog record so we can detect exactly what was changed, + including any auto-published changes like child items in containers. + + This happens in a celery task so that it can be run asynchronously if + needed, because the "publish all changes" action can potentially publish + hundreds or even thousands of components/containers at once, and synchronous + event handlers like updating the search index may a while to complete in + that case. + """ + publish_log = PublishLog.objects.get(pk=publish_log_pk) + library_key = LibraryLocatorV2.from_string(library_key_str) + affected_entities = publish_log.records.select_related("entity", "entity__container", "entity__component").all() + affected_containers: set[LibraryContainerLocator] = set() + + # Update anything that needs to be updated (e.g. search index): + for record in affected_entities: + if hasattr(record.entity, "component"): + usage_key = api.library_component_usage_key(library_key, record.entity.component) + # Note that this item may be newly created, updated, or even deleted - but all we care about for this event + # is that the published version is now different. Only for draft changes do we send differentiated events. + LIBRARY_BLOCK_PUBLISHED.send_event( + library_block=LibraryBlockData(library_key=library_key, usage_key=usage_key) + ) + # Publishing a container will auto-publish its children, but publishing a single component or all changes + # in the library will NOT usually include any parent containers. But we do need to notify listeners that the + # parent container(s) have changed, e.g. so the search index can update the "has_unpublished_changes" + for parent_container in api.get_containers_contains_component(usage_key): + affected_containers.add(parent_container.container_key) + # TODO: should this be a CONTAINER_CHILD_PUBLISHED event instead of CONTAINER_PUBLISHED ? + elif hasattr(record.entity, "container"): + container_key = api.library_container_locator(library_key, record.entity.container) + affected_containers.add(container_key) + else: + log.warning( + f"PublishableEntity {record.entity.pk} / {record.entity.key} was modified during publish operation " + "but is of unknown type." + ) + + for container_key in affected_containers: + LIBRARY_CONTAINER_PUBLISHED.send_event( + library_container=LibraryContainerData(container_key=container_key) + ) + + +def wait_for_post_publish_events(publish_log: PublishLog, library_key: LibraryLocatorV2): + """ + After publishing some changes, trigger the required event handlers (e.g. + update the search index). Try to wait for that to complete before returning, + up to some reasonable timeout, and then finish anything remaining + asynchonrously. + """ + # Update the search index (and anything else) for the affected blocks + result = send_events_after_publish.apply_async(args=(publish_log.pk, str(library_key))) + # Try waiting a bit for those post-publish events to be handled: + try: + result.get(timeout=15) + except TimeoutError: + pass + # This is fine! The search index is still being updated, and/or other + # event handlers are still following up on the results, but the publish + # already *did* succeed, and the events will continue to be processed in + # the background by the celery worker until everything is updated. + + +@shared_task(base=LoggedTask) +@set_code_owner_attribute +def send_events_after_revert(draft_change_log_id: int, library_key_str: str) -> None: + """ + Send events to trigger actions like updating the search index, after we've + reverted some unpublished changes in a library. + + See notes on the analogous function above, send_events_after_publish. + """ + try: + draft_change_log = DraftChangeLog.objects.get(id=draft_change_log_id) + except DraftChangeLog.DoesNotExist: + # When a revert operation is a no-op, Learning Core deletes the empty + # DraftChangeLog, so we'll assume that's what happened here. + log.info(f"Library revert in {library_key_str} did not result in any changes.") + return + + library_key = LibraryLocatorV2.from_string(library_key_str) + affected_entities = draft_change_log.records.select_related( + "entity", "entity__container", "entity__component", + ).all() + + created_container_keys: set[LibraryContainerLocator] = set() + updated_container_keys: set[LibraryContainerLocator] = set() + deleted_container_keys: set[LibraryContainerLocator] = set() + affected_collection_keys: set[LibraryCollectionLocator] = set() + + # Update anything that needs to be updated (e.g. search index): + for record in affected_entities: + # This will be true if the entity was [soft] deleted, but we're now reverting that deletion: + is_undeleted = (record.old_version is None and record.new_version is not None) + # This will be true if the entity was created and we're now deleting it by reverting that creation: + is_deleted = (record.old_version is not None and record.new_version is None) + if hasattr(record.entity, "component"): + usage_key = api.library_component_usage_key(library_key, record.entity.component) + event = LIBRARY_BLOCK_UPDATED + if is_deleted: + event = LIBRARY_BLOCK_DELETED + elif is_undeleted: + event = LIBRARY_BLOCK_CREATED + event.send_event(library_block=LibraryBlockData(library_key=library_key, usage_key=usage_key)) + # If any containers contain this component, their child list / component count may need to be updated + # e.g. if this was a newly created component in the container and is now deleted, or this was deleted and + # is now restored. + for parent_container in api.get_containers_contains_component(usage_key): + updated_container_keys.add(parent_container.container_key) + + # TODO: do we also need to send CONTENT_OBJECT_ASSOCIATIONS_CHANGED for this component, or is + # LIBRARY_BLOCK_UPDATED sufficient? + elif hasattr(record.entity, "container"): + container_key = api.library_container_locator(library_key, record.entity.container) + if is_deleted: + deleted_container_keys.add(container_key) + elif is_undeleted: + created_container_keys.add(container_key) + else: + updated_container_keys.add(container_key) + else: + log.warning( + f"PublishableEntity {record.entity.pk} / {record.entity.key} was modified during publish operation " + "but is of unknown type." + ) + # If any collections contain this entity, their item count may need to be updated, e.g. if this was a + # newly created component in the collection and is now deleted, or this was deleted and is now re-added. + for parent_collection in authoring_api.get_entity_collections( + record.entity.learning_package_id, record.entity.key, + ): + collection_key = api.library_collection_locator( + library_key=library_key, + collection_key=parent_collection.key, + ) + affected_collection_keys.add(collection_key) + + for container_key in deleted_container_keys: + LIBRARY_CONTAINER_DELETED.send_event( + library_container=LibraryContainerData(container_key=container_key) + ) + # Don't bother sending UPDATED events for these containers that are now deleted + created_container_keys.discard(container_key) + + for container_key in created_container_keys: + LIBRARY_CONTAINER_CREATED.send_event( + library_container=LibraryContainerData(container_key=container_key) + ) + + for container_key in updated_container_keys: + LIBRARY_CONTAINER_UPDATED.send_event( + library_container=LibraryContainerData(container_key=container_key) + ) + + for collection_key in affected_collection_keys: + LIBRARY_COLLECTION_UPDATED.send_event( + library_collection=LibraryCollectionData(collection_key=collection_key) + ) + + +def wait_for_post_revert_events(draft_change_log: DraftChangeLog, library_key: LibraryLocatorV2): + """ + After discard all changes in a library, trigger the required event handlers + (e.g. update the search index). Try to wait for that to complete before + returning, up to some reasonable timeout, and then finish anything remaining + asynchonrously. + """ + # Update the search index (and anything else) for the affected blocks + result = send_events_after_revert.apply_async(args=(draft_change_log.pk, str(library_key))) + # Try waiting a bit for those post-publish events to be handled: + try: + result.get(timeout=15) + except TimeoutError: + pass + # This is fine! The search index is still being updated, and/or other + # event handlers are still following up on the results, but the revert + # already *did* succeed, and the events will continue to be processed in + # the background by the celery worker until everything is updated. + + @shared_task(base=LoggedTask) @set_code_owner_attribute def import_blocks_from_course(import_task_id, course_key_str, use_course_key_as_block_id_suffix=True): @@ -57,9 +267,9 @@ def import_blocks_from_course(import_task_id, course_key_str, use_course_key_as_ def on_progress(block_key, block_num, block_count, exception=None): if exception: - logger.exception('Import block failed: %s', block_key) + log.exception('Import block failed: %s', block_key) else: - logger.info('Import block succesful: %s', block_key) + log.info('Import block succesful: %s', block_key) import_task.save_progress(block_num / block_count) edx_client = api.EdxModulestoreImportClient( @@ -121,6 +331,9 @@ def sync_from_library( ) -> None: """ Celery task to update the children of the library_content block at `dest_block_id`. + + FIXME: this is related to legacy modulestore libraries and shouldn't be part of the + openedx.core.djangoapps.content_libraries app, which is the app for v2 libraries. """ set_code_owner_attribute_from_module(__name__) store = modulestore() @@ -143,6 +356,9 @@ def duplicate_children( ) -> None: """ Celery task to duplicate the children from `source_block_id` to `dest_block_id`. + + FIXME: this is related to legacy modulestore libraries and shouldn't be part of the + openedx.core.djangoapps.content_libraries app, which is the app for v2 libraries. """ set_code_owner_attribute_from_module(__name__) store = modulestore() @@ -180,6 +396,9 @@ def _sync_children( Implementation helper for `sync_from_library` and `duplicate_children` Celery tasks. Can update children with a specific library `library_version`, or latest (`library_version=None`). + + FIXME: this is related to legacy modulestore libraries and shouldn't be part of the + openedx.core.djangoapps.content_libraries app, which is the app for v2 libraries. """ source_blocks = [] library_key = dest_block.source_library_key.for_branch( @@ -220,6 +439,9 @@ def _copy_overrides( ) -> None: """ Copy any overrides the user has made on children of `source` over to the children of `dest_block`, recursively. + + FIXME: this is related to legacy modulestore libraries and shouldn't be part of the + openedx.core.djangoapps.content_libraries app, which is the app for v2 libraries. """ for field in source_block.fields.values(): if field.scope == Scope.settings and field.is_set_on(source_block): diff --git a/openedx/core/djangoapps/content_libraries/tests/base.py b/openedx/core/djangoapps/content_libraries/tests/base.py index 6068d9c20e72..e5a9f5f12ec9 100644 --- a/openedx/core/djangoapps/content_libraries/tests/base.py +++ b/openedx/core/djangoapps/content_libraries/tests/base.py @@ -8,6 +8,8 @@ from organizations.models import Organization from rest_framework.test import APITransactionTestCase, APIClient +from opaque_keys.edx.keys import ContainerKey, UsageKey +from opaque_keys.edx.locator import LibraryLocatorV2, LibraryCollectionLocator from common.djangoapps.student.tests.factories import UserFactory from common.djangoapps.util.json_request import JsonResponse as SpecialJsonResponse @@ -25,6 +27,7 @@ URL_LIB_COMMIT = URL_LIB_DETAIL + 'commit/' # Commit (POST) or revert (DELETE) all pending changes to this library URL_LIB_BLOCKS = URL_LIB_DETAIL + 'blocks/' # Get the list of XBlocks in this library, or add a new one URL_LIB_CONTAINERS = URL_LIB_DETAIL + 'containers/' # Create a new container in this library +URL_LIB_COLLECTIONS = URL_LIB_DETAIL + 'collections/' # Create a new collection in this library URL_LIB_TEAM = URL_LIB_DETAIL + 'team/' # Get the list of users/groups authorized to use this library URL_LIB_TEAM_USER = URL_LIB_TEAM + 'user/{username}/' # Add/edit/remove a user's permission to use this library URL_LIB_TEAM_GROUP = URL_LIB_TEAM + 'group/{group_name}/' # Add/edit/remove a group's permission to use this library @@ -39,6 +42,8 @@ URL_LIB_CONTAINER_RESTORE = URL_LIB_CONTAINER + 'restore/' # Restore a deleted container URL_LIB_CONTAINER_COLLECTIONS = URL_LIB_CONTAINER + 'collections/' # Handle associated collections URL_LIB_CONTAINER_PUBLISH = URL_LIB_CONTAINER + 'publish/' # Publish changes to the specified container + children +URL_LIB_COLLECTION = URL_LIB_COLLECTIONS + '{collection_key}/' # Get a collection in this library +URL_LIB_COLLECTION_ITEMS = URL_LIB_COLLECTION + 'items/' # Get a collection in this library URL_LIB_LTI_PREFIX = URL_PREFIX + 'lti/1.3/' URL_LIB_LTI_JWKS = URL_LIB_LTI_PREFIX + 'pub/jwks/' @@ -70,11 +75,6 @@ class ContentLibrariesRestApiTest(APITransactionTestCase): entire response has some specific shape. That way, things like adding new fields to an API response, which are backwards compatible, won't break any tests, but backwards-incompatible API changes will. - - WARNING: every test should have a unique library slug, because even though - the django/mysql database gets reset for each test case, the lookup between - library slug and bundle UUID does not because it's assumed to be immutable - and cached forever. """ def setUp(self): @@ -379,24 +379,24 @@ def _create_container(self, lib_key, container_type, slug: str | None, display_n data["slug"] = slug return self._api('post', URL_LIB_CONTAINERS.format(lib_key=lib_key), data, expect_response) - def _get_container(self, container_key: str, expect_response=200): + def _get_container(self, container_key: ContainerKey | str, expect_response=200): """ Get a container (unit etc.) """ return self._api('get', URL_LIB_CONTAINER.format(container_key=container_key), None, expect_response) - def _update_container(self, container_key: str, display_name: str, expect_response=200): + def _update_container(self, container_key: ContainerKey | str, display_name: str, expect_response=200): """ Update a container (unit etc.) """ data = {"display_name": display_name} return self._api('patch', URL_LIB_CONTAINER.format(container_key=container_key), data, expect_response) - def _delete_container(self, container_key: str, expect_response=204): + def _delete_container(self, container_key: ContainerKey | str, expect_response=204): """ Delete a container (unit etc.) """ return self._api('delete', URL_LIB_CONTAINER.format(container_key=container_key), None, expect_response) - def _restore_container(self, container_key: str, expect_response=204): + def _restore_container(self, container_key: ContainerKey | str, expect_response=204): """ Restore a deleted a container (unit etc.) """ return self._api('post', URL_LIB_CONTAINER_RESTORE.format(container_key=container_key), None, expect_response) - def _get_container_components(self, container_key: str, expect_response=200): + def _get_container_components(self, container_key: ContainerKey | str, expect_response=200): """ Get container components""" return self._api( 'get', @@ -407,7 +407,7 @@ def _get_container_components(self, container_key: str, expect_response=200): def _add_container_components( self, - container_key: str, + container_key: ContainerKey | str, children_ids: list[str], expect_response=200, ): @@ -421,7 +421,7 @@ def _add_container_components( def _remove_container_components( self, - container_key: str, + container_key: ContainerKey | str, children_ids: list[str], expect_response=200, ): @@ -435,7 +435,7 @@ def _remove_container_components( def _patch_container_components( self, - container_key: str, + container_key: ContainerKey | str, children_ids: list[str], expect_response=200, ): @@ -449,7 +449,7 @@ def _patch_container_components( def _patch_container_collections( self, - container_key: str, + container_key: ContainerKey | str, collection_keys: list[str], expect_response=200, ): @@ -461,6 +461,52 @@ def _patch_container_collections( expect_response ) - def _publish_container(self, container_key, expect_response=200): + def _publish_container(self, container_key: ContainerKey | str, expect_response=200): """ Publish all changes in the specified container + children """ return self._api('post', URL_LIB_CONTAINER_PUBLISH.format(container_key=container_key), None, expect_response) + + def _create_collection( + self, + lib_key: LibraryLocatorV2 | str, + title: str, + description: str = "", + expect_response=200, + ): + """ Create a new collection in this library """ + data = {"title": title, "description": description} + return self._api('post', URL_LIB_COLLECTIONS.format(lib_key=lib_key), data, expect_response) + + def _soft_delete_collection(self, collection_key: LibraryCollectionLocator, expect_response=204): + """ Soft delete (disable) a collection """ + url = URL_LIB_COLLECTION.format(lib_key=collection_key.lib_key, collection_key=collection_key.collection_id) + return self._api('delete', url, {}, expect_response) + + def _update_collection( + self, + collection_key: LibraryCollectionLocator, + title: str | None = None, + description: str | None = None, + expect_response=200, + ): + """ Update a collection's title/description """ + data = {} + if title is not None: + data["title"] = title + if description is not None: + data["description"] = description + url = URL_LIB_COLLECTION.format(lib_key=collection_key.lib_key, collection_key=collection_key.collection_id) + return self._api('patch', url, data, expect_response) + + def _add_items_to_collection( + self, + collection_key: LibraryCollectionLocator, + item_keys: list[str | UsageKey | ContainerKey], + expect_response=200, + ): + """ Add components/containers to a collection """ + data = {"usage_keys": [str(k) for k in item_keys]} + url = URL_LIB_COLLECTION_ITEMS.format( + lib_key=collection_key.lib_key, + collection_key=collection_key.collection_id, + ) + return self._api('patch', url, data, expect_response) diff --git a/openedx/core/djangoapps/content_libraries/tests/test_api.py b/openedx/core/djangoapps/content_libraries/tests/test_api.py index 8dbb5e11946a..3a1121da38c2 100644 --- a/openedx/core/djangoapps/content_libraries/tests/test_api.py +++ b/openedx/core/djangoapps/content_libraries/tests/test_api.py @@ -25,7 +25,6 @@ LIBRARY_COLLECTION_UPDATED, LIBRARY_CONTAINER_UPDATED, ) -from openedx_events.tests.utils import OpenEdxEventsTestMixin from openedx_learning.api import authoring as authoring_api from .. import api @@ -259,30 +258,12 @@ def test_import_block_when_url_is_from_studio( mock_publish_changes.assert_not_called() -class ContentLibraryCollectionsTest(ContentLibrariesRestApiTest, OpenEdxEventsTestMixin): +class ContentLibraryCollectionsTest(ContentLibrariesRestApiTest): """ Tests for Content Library API collections methods. Same guidelines as ContentLibrariesTestCase. """ - ENABLED_OPENEDX_EVENTS = [ - CONTENT_OBJECT_ASSOCIATIONS_CHANGED.event_type, - LIBRARY_COLLECTION_CREATED.event_type, - LIBRARY_COLLECTION_DELETED.event_type, - LIBRARY_COLLECTION_UPDATED.event_type, - ] - - @classmethod - def setUpClass(cls): - """ - Set up class method for the Test class. - - TODO: It's unclear why we need to call start_events_isolation ourselves rather than relying on - OpenEdxEventsTestMixin.setUpClass to handle it. It fails it we don't, and many other test cases do it, - so we're following a pattern here. But that pattern doesn't really make sense. - """ - super().setUpClass() - cls.start_events_isolation() def setUp(self): super().setUp() @@ -555,45 +536,28 @@ def test_set_library_component_collections(self): assert len(authoring_api.get_collection(self.lib2.learning_package_id, self.col2.key).entities.all()) == 1 assert len(authoring_api.get_collection(self.lib2.learning_package_id, self.col3.key).entities.all()) == 1 - self.assertDictContainsSubset( - { - "signal": CONTENT_OBJECT_ASSOCIATIONS_CHANGED, - "sender": None, - "content_object": ContentObjectChangedData( - object_id=self.lib2_problem_block["id"], - changes=["collections"], - ), - }, - event_receiver.call_args_list[0].kwargs, - ) - self.assertDictContainsSubset( - { - "signal": LIBRARY_COLLECTION_UPDATED, - "sender": None, - "library_collection": LibraryCollectionData( - collection_key=api.library_collection_locator( - self.lib2.library_key, - collection_key=self.col2.key, - ), - background=True, - ), - }, - collection_update_event_receiver.call_args_list[0].kwargs, - ) - self.assertDictContainsSubset( - { - "signal": LIBRARY_COLLECTION_UPDATED, - "sender": None, - "library_collection": LibraryCollectionData( - collection_key=api.library_collection_locator( - self.lib2.library_key, - collection_key=self.col3.key, - ), - background=True, - ), - }, - collection_update_event_receiver.call_args_list[1].kwargs, - ) + assert { + "signal": CONTENT_OBJECT_ASSOCIATIONS_CHANGED, + "sender": None, + "content_object": ContentObjectChangedData( + object_id=self.lib2_problem_block["id"], + changes=["collections"], + ), + }.items() <= event_receiver.call_args_list[0].kwargs.items() + + assert len(collection_update_event_receiver.call_args_list) == 2 + collection_update_events = [call.kwargs for call in collection_update_event_receiver.call_args_list] + assert all(event["signal"] == LIBRARY_COLLECTION_UPDATED for event in collection_update_events) + assert {event["library_collection"] for event in collection_update_events} == { + LibraryCollectionData( + collection_key=api.library_collection_locator(self.lib2.library_key, collection_key=self.col2.key), + background=True, + ), + LibraryCollectionData( + collection_key=api.library_collection_locator(self.lib2.library_key, collection_key=self.col3.key), + background=True, + ) + } def test_delete_library_block(self): api.update_library_collection_items( @@ -690,72 +654,46 @@ def test_restore_library_block(self): ) def test_add_component_and_revert(self): - # Add component and publish - api.update_library_collection_items( - self.lib1.library_key, - self.col1.key, - opaque_keys=[ - UsageKey.from_string(self.lib1_problem_block["id"]), - ], - ) + # Publish changes api.publish_changes(self.lib1.library_key) - # Add component and revert + # Create a new component that will only exist as a draft + new_problem_block = self._add_block_to_library( + self.lib1.library_key, "problem", "problemNEW", + ) + + # Add component. Note: collections are not part of the draft/publish cycle so this is not a draft change. api.update_library_collection_items( self.lib1.library_key, self.col1.key, opaque_keys=[ UsageKey.from_string(self.lib1_html_block["id"]), + UsageKey.from_string(new_problem_block["id"]), ], ) - event_receiver = mock.Mock() - CONTENT_OBJECT_ASSOCIATIONS_CHANGED.connect(event_receiver) collection_update_event_receiver = mock.Mock() LIBRARY_COLLECTION_UPDATED.connect(collection_update_event_receiver) api.revert_changes(self.lib1.library_key) assert collection_update_event_receiver.call_count == 1 - assert event_receiver.call_count == 2 - self.assertDictContainsSubset( - { - "signal": LIBRARY_COLLECTION_UPDATED, - "sender": None, - "library_collection": LibraryCollectionData( - collection_key=api.library_collection_locator( - self.lib1.library_key, - collection_key=self.col1.key, - ), - background=True, - ), - }, - collection_update_event_receiver.call_args_list[0].kwargs, - ) - self.assertDictContainsSubset( - { - "signal": CONTENT_OBJECT_ASSOCIATIONS_CHANGED, - "sender": None, - "content_object": ContentObjectChangedData( - object_id=str(self.lib1_problem_block["id"]), - changes=["collections"], + assert { + "signal": LIBRARY_COLLECTION_UPDATED, + "sender": None, + "library_collection": LibraryCollectionData( + collection_key=api.library_collection_locator( + self.lib1.library_key, + collection_key=self.col1.key, ), - }, - event_receiver.call_args_list[0].kwargs, - ) - self.assertDictContainsSubset( - { - "signal": CONTENT_OBJECT_ASSOCIATIONS_CHANGED, - "sender": None, - "content_object": ContentObjectChangedData( - object_id=str(self.lib1_html_block["id"]), - changes=["collections"], - ), - }, - event_receiver.call_args_list[1].kwargs, - ) + ), + }.items() <= collection_update_event_receiver.call_args_list[0].kwargs.items() def test_delete_component_and_revert(self): + """ + When a component is deleted and then the delete is reverted, signals + will be emitted to update any containing collections. + """ # Add components and publish api.update_library_collection_items( self.lib1.library_key, @@ -770,72 +708,28 @@ def test_delete_component_and_revert(self): # Delete component and revert api.delete_library_block(UsageKey.from_string(self.lib1_problem_block["id"])) - event_receiver = mock.Mock() - CONTENT_OBJECT_ASSOCIATIONS_CHANGED.connect(event_receiver) collection_update_event_receiver = mock.Mock() LIBRARY_COLLECTION_UPDATED.connect(collection_update_event_receiver) api.revert_changes(self.lib1.library_key) assert collection_update_event_receiver.call_count == 1 - assert event_receiver.call_count == 2 - self.assertDictContainsSubset( - { - "signal": LIBRARY_COLLECTION_UPDATED, - "sender": None, - "library_collection": LibraryCollectionData( - collection_key=api.library_collection_locator( - self.lib1.library_key, - collection_key=self.col1.key, - ), - background=True, + assert { + "signal": LIBRARY_COLLECTION_UPDATED, + "sender": None, + "library_collection": LibraryCollectionData( + collection_key=api.library_collection_locator( + self.lib1.library_key, + collection_key=self.col1.key, ), - }, - collection_update_event_receiver.call_args_list[0].kwargs, - ) - self.assertDictContainsSubset( - { - "signal": CONTENT_OBJECT_ASSOCIATIONS_CHANGED, - "sender": None, - "content_object": ContentObjectChangedData( - object_id=str(self.lib1_problem_block["id"]), - changes=["collections"], - ), - }, - event_receiver.call_args_list[0].kwargs, - ) - self.assertDictContainsSubset( - { - "signal": CONTENT_OBJECT_ASSOCIATIONS_CHANGED, - "sender": None, - "content_object": ContentObjectChangedData( - object_id=str(self.lib1_html_block["id"]), - changes=["collections"], - ), - }, - event_receiver.call_args_list[1].kwargs, - ) + ), + }.items() <= collection_update_event_receiver.call_args_list[0].kwargs.items() -class ContentLibraryContainersTest(ContentLibrariesRestApiTest, OpenEdxEventsTestMixin): +class ContentLibraryContainersTest(ContentLibrariesRestApiTest): """ Tests for Content Library API containers methods. """ - ENABLED_OPENEDX_EVENTS = [ - LIBRARY_CONTAINER_UPDATED.event_type, - ] - - @classmethod - def setUpClass(cls): - """ - Set up class method for the Test class. - - TODO: It's unclear why we need to call start_events_isolation ourselves rather than relying on - OpenEdxEventsTestMixin.setUpClass to handle it. It fails it we don't, and many other test cases do it, - so we're following a pattern here. But that pattern doesn't really make sense. - """ - super().setUpClass() - cls.start_events_isolation() def setUp(self): super().setUp() @@ -944,3 +838,29 @@ def test_call_container_update_signal_when_update_component(self): self._set_library_block_fields(self.html_block_usage_key, {"data": block_olx, "metadata": {}}) self._validate_calls_of_html_block(container_update_event_receiver) + + def test_delete_component_and_revert(self): + """ + When a component is deleted and then the delete is reverted, signals + will be emitted to update any containing containers. + """ + # Add components and publish + api.update_container_children(self.unit1.container_key, [ + UsageKey.from_string(self.problem_block["id"]), + ], user_id=None) + api.publish_changes(self.lib1.library_key) + + # Delete component and revert + api.delete_library_block(UsageKey.from_string(self.problem_block["id"])) + + container_event_receiver = mock.Mock() + LIBRARY_CONTAINER_UPDATED.connect(container_event_receiver) + + api.revert_changes(self.lib1.library_key) + + assert container_event_receiver.call_count == 1 + assert { + "signal": LIBRARY_CONTAINER_UPDATED, + "sender": None, + "library_container": LibraryContainerData(container_key=self.unit1.container_key), + }.items() <= container_event_receiver.call_args_list[0].kwargs.items() diff --git a/openedx/core/djangoapps/content_libraries/tests/test_containers.py b/openedx/core/djangoapps/content_libraries/tests/test_containers.py index db6456a14a20..6c59c8c086e4 100644 --- a/openedx/core/djangoapps/content_libraries/tests/test_containers.py +++ b/openedx/core/djangoapps/content_libraries/tests/test_containers.py @@ -2,20 +2,11 @@ Tests for Learning-Core-based Content Libraries """ from datetime import datetime, timezone -from unittest import mock import ddt from freezegun import freeze_time -from opaque_keys.edx.locator import LibraryContainerLocator, LibraryLocatorV2, LibraryUsageLocatorV2 -from openedx_events.content_authoring.data import LibraryContainerData -from openedx_events.content_authoring.signals import ( - LIBRARY_BLOCK_UPDATED, - LIBRARY_CONTAINER_CREATED, - LIBRARY_CONTAINER_DELETED, - LIBRARY_CONTAINER_UPDATED, -) -from openedx_events.tests.utils import OpenEdxEventsTestMixin +from opaque_keys.edx.locator import LibraryLocatorV2 from common.djangoapps.student.tests.factories import UserFactory from openedx.core.djangoapps.content_libraries import api @@ -25,7 +16,7 @@ @skip_unless_cms @ddt.ddt -class ContainersTestCase(OpenEdxEventsTestMixin, ContentLibrariesRestApiTest): +class ContainersTestCase(ContentLibrariesRestApiTest): """ Tests for containers (Sections, Subsections, Units) in Content Libraries. @@ -43,12 +34,6 @@ class ContainersTestCase(OpenEdxEventsTestMixin, ContentLibrariesRestApiTest): new fields to an API response, which are backwards compatible, won't break any tests, but backwards-incompatible API changes will. """ - ENABLED_OPENEDX_EVENTS = [ - LIBRARY_BLOCK_UPDATED.event_type, - LIBRARY_CONTAINER_CREATED.event_type, - LIBRARY_CONTAINER_DELETED.event_type, - LIBRARY_CONTAINER_UPDATED.event_type, - ] def test_unit_crud(self): """ @@ -57,15 +42,6 @@ def test_unit_crud(self): lib = self._create_library(slug="containers", title="Container Test Library", description="Units and more") lib_key = LibraryLocatorV2.from_string(lib["id"]) - create_receiver = mock.Mock() - LIBRARY_CONTAINER_CREATED.connect(create_receiver) - - update_receiver = mock.Mock() - LIBRARY_CONTAINER_UPDATED.connect(update_receiver) - - delete_receiver = mock.Mock() - LIBRARY_CONTAINER_DELETED.connect(delete_receiver) - # Create a unit: create_date = datetime(2024, 9, 8, 7, 6, 5, tzinfo=timezone.utc) with freeze_time(create_date): @@ -85,20 +61,6 @@ def test_unit_crud(self): } self.assertDictContainsEntries(container_data, expected_data) - assert create_receiver.call_count == 1 - container_key = LibraryContainerLocator.from_string( - "lct:CL-TEST:containers:unit:u1", - ) - self.assertDictContainsSubset( - { - "signal": LIBRARY_CONTAINER_CREATED, - "sender": None, - "library_container": LibraryContainerData( - container_key, - ), - }, - create_receiver.call_args_list[0].kwargs, - ) # Fetch the unit: unit_as_read = self._get_container(container_data["id"]) @@ -113,18 +75,6 @@ def test_unit_crud(self): expected_data['display_name'] = 'Unit ABC' self.assertDictContainsEntries(container_data, expected_data) - assert update_receiver.call_count == 1 - self.assertDictContainsSubset( - { - "signal": LIBRARY_CONTAINER_UPDATED, - "sender": None, - "library_container": LibraryContainerData( - container_key, - ), - }, - update_receiver.call_args_list[0].kwargs, - ) - # Re-fetch the unit unit_as_re_read = self._get_container(container_data["id"]) # make sure it contains the same data when we read it back: @@ -133,17 +83,6 @@ def test_unit_crud(self): # Delete the unit self._delete_container(container_data["id"]) self._get_container(container_data["id"], expect_response=404) - assert delete_receiver.call_count == 1 - self.assertDictContainsSubset( - { - "signal": LIBRARY_CONTAINER_DELETED, - "sender": None, - "library_container": LibraryContainerData( - container_key, - ), - }, - delete_receiver.call_args_list[0].kwargs, - ) def test_unit_permissions(self): """ @@ -186,8 +125,6 @@ def test_unit_add_children(self): """ Test that we can add and get unit children components """ - update_receiver = mock.Mock() - LIBRARY_CONTAINER_UPDATED.connect(update_receiver) lib = self._create_library(slug="containers", title="Container Test Library", description="Units and more") lib_key = LibraryLocatorV2.from_string(lib["id"]) @@ -212,18 +149,6 @@ def test_unit_add_children(self): container_data["id"], children_ids=[problem_block_2["id"], html_block_2["id"]] ) - self.assertDictContainsSubset( - { - "signal": LIBRARY_CONTAINER_UPDATED, - "sender": None, - "library_container": LibraryContainerData( - container_key=LibraryContainerLocator.from_string( - container_data["id"], - ), - ), - }, - update_receiver.call_args_list[0].kwargs, - ) data = self._get_container_components(container_data["id"]) # Verify total number of components to be 2 + 2 = 4 assert len(data) == 4 @@ -236,8 +161,6 @@ def test_unit_remove_children(self): """ Test that we can remove unit children components """ - update_receiver = mock.Mock() - LIBRARY_CONTAINER_UPDATED.connect(update_receiver) lib = self._create_library(slug="containers", title="Container Test Library", description="Units and more") lib_key = LibraryLocatorV2.from_string(lib["id"]) @@ -262,25 +185,11 @@ def test_unit_remove_children(self): assert len(data) == 2 assert data[0]['id'] == html_block['id'] assert data[1]['id'] == html_block_2['id'] - self.assertDictContainsSubset( - { - "signal": LIBRARY_CONTAINER_UPDATED, - "sender": None, - "library_container": LibraryContainerData( - container_key=LibraryContainerLocator.from_string( - container_data["id"], - ), - ), - }, - update_receiver.call_args_list[0].kwargs, - ) def test_unit_replace_children(self): """ Test that we can completely replace/reorder unit children components. """ - update_receiver = mock.Mock() - LIBRARY_CONTAINER_UPDATED.connect(update_receiver) lib = self._create_library(slug="containers", title="Container Test Library", description="Units and more") lib_key = LibraryLocatorV2.from_string(lib["id"]) @@ -324,18 +233,6 @@ def test_unit_replace_children(self): assert len(data) == 2 assert data[0]['id'] == new_problem_block['id'] assert data[1]['id'] == new_html_block['id'] - self.assertDictContainsSubset( - { - "signal": LIBRARY_CONTAINER_UPDATED, - "sender": None, - "library_container": LibraryContainerData( - container_key=LibraryContainerLocator.from_string( - container_data["id"], - ), - ), - }, - update_receiver.call_args_list[0].kwargs, - ) def test_restore_unit(self): """ @@ -352,9 +249,6 @@ def test_restore_unit(self): # Delete the unit self._delete_container(container_data["id"]) - create_receiver = mock.Mock() - LIBRARY_CONTAINER_CREATED.connect(create_receiver) - # Restore container self._restore_container(container_data["id"]) new_container_data = self._get_container(container_data["id"]) @@ -372,20 +266,6 @@ def test_restore_unit(self): 'collections': [], } - self.assertDictContainsEntries(new_container_data, expected_data) - - assert create_receiver.call_count == 1 - self.assertDictContainsSubset( - { - "signal": LIBRARY_CONTAINER_CREATED, - "sender": None, - "library_container": LibraryContainerData( - container_key=LibraryContainerLocator.from_string("lct:CL-TEST:containers:unit:u1"), - ), - }, - create_receiver.call_args_list[0].kwargs, - ) - def test_container_collections(self): # Create a library lib = self._create_library(slug="containers", title="Container Test Library", description="Units and more") @@ -444,12 +324,6 @@ def test_publish_container(self): # pylint: disable=too-many-statements c2_before = self._get_container(container2["id"]) assert c2_before["has_unpublished_changes"] - # Set up event receivers after the initial mock data setup is complete: - updated_container_receiver = mock.Mock() - updated_block_receiver = mock.Mock() - LIBRARY_CONTAINER_UPDATED.connect(updated_container_receiver) - LIBRARY_BLOCK_UPDATED.connect(updated_block_receiver) - # Now publish only Container 1 self._publish_container(container1["id"]) @@ -476,27 +350,3 @@ def test_publish_container(self): # pylint: disable=too-many-statements assert c2_components_after[1]["id"] == html_block2["id"] assert c2_components_after[1]["has_unpublished_changes"] # unaffected assert c2_components_after[1]["published_by"] is None - - # Make sure that the right events were sent out. - # First, there should be one container updated event: - assert len(updated_container_receiver.call_args_list) == 1 - self.assertDictContainsSubset( - { - "signal": LIBRARY_CONTAINER_UPDATED, - "library_container": LibraryContainerData( - container_key=LibraryContainerLocator.from_string(container1["id"]), - ), - }, - updated_container_receiver.call_args_list[0].kwargs, - ) - - # Second, two XBlock updated events: - assert len(updated_block_receiver.call_args_list) == 2 - updated_block_ids = set( - call.kwargs["library_block"].usage_key for call in updated_block_receiver.call_args_list - ) - assert updated_block_ids == { - LibraryUsageLocatorV2.from_string(problem_block["id"]), - LibraryUsageLocatorV2.from_string(html_block["id"]), - } - assert all(call.kwargs["signal"] == LIBRARY_BLOCK_UPDATED for call in updated_block_receiver.call_args_list) diff --git a/openedx/core/djangoapps/content_libraries/tests/test_content_libraries.py b/openedx/core/djangoapps/content_libraries/tests/test_content_libraries.py index e1b34ebfcbf8..e62a2b6f0243 100644 --- a/openedx/core/djangoapps/content_libraries/tests/test_content_libraries.py +++ b/openedx/core/djangoapps/content_libraries/tests/test_content_libraries.py @@ -3,7 +3,7 @@ """ from datetime import datetime, timezone from unittest import skip -from unittest.mock import Mock, patch +from unittest.mock import patch import ddt from django.contrib.auth.models import Group @@ -11,16 +11,6 @@ from django.test.client import Client from freezegun import freeze_time from opaque_keys.edx.locator import LibraryLocatorV2, LibraryUsageLocatorV2 -from openedx_events.content_authoring.data import ContentLibraryData, LibraryBlockData -from openedx_events.content_authoring.signals import ( - CONTENT_LIBRARY_CREATED, - CONTENT_LIBRARY_DELETED, - CONTENT_LIBRARY_UPDATED, - LIBRARY_BLOCK_CREATED, - LIBRARY_BLOCK_DELETED, - LIBRARY_BLOCK_UPDATED -) -from openedx_events.tests.utils import OpenEdxEventsTestMixin from organizations.models import Organization from rest_framework.test import APITestCase @@ -31,7 +21,7 @@ URL_BLOCK_METADATA_URL, URL_BLOCK_RENDER_VIEW, URL_BLOCK_XBLOCK_HANDLER, - ContentLibrariesRestApiTest + ContentLibrariesRestApiTest, ) from openedx.core.djangoapps.xblock import api as xblock_api from openedx.core.djangolib.testing.utils import skip_unless_cms @@ -39,7 +29,7 @@ @skip_unless_cms @ddt.ddt -class ContentLibrariesTestCase(ContentLibrariesRestApiTest, OpenEdxEventsTestMixin): +class ContentLibrariesTestCase(ContentLibrariesRestApiTest): """ General tests for Learning-Core-based Content Libraries @@ -62,26 +52,6 @@ class ContentLibrariesTestCase(ContentLibrariesRestApiTest, OpenEdxEventsTestMix library slug and bundle UUID does not because it's assumed to be immutable and cached forever. """ - ENABLED_OPENEDX_EVENTS = [ - CONTENT_LIBRARY_CREATED.event_type, - CONTENT_LIBRARY_DELETED.event_type, - CONTENT_LIBRARY_UPDATED.event_type, - LIBRARY_BLOCK_CREATED.event_type, - LIBRARY_BLOCK_DELETED.event_type, - LIBRARY_BLOCK_UPDATED.event_type, - ] - - @classmethod - def setUpClass(cls): - """ - Set up class method for the Test class. - - TODO: It's unclear why we need to call start_events_isolation ourselves rather than relying on - OpenEdxEventsTestMixin.setUpClass to handle it. It fails it we don't, and many other test cases do it, - so we're following a pattern here. But that pattern doesn't really make sense. - """ - super().setUpClass() - cls.start_events_isolation() def test_library_crud(self): """ @@ -792,294 +762,6 @@ def test_library_blocks_limit(self): # Second block should throw error self._add_block_to_library(lib_id, "problem", "problem1", expect_response=400) - def test_content_library_create_event(self): - """ - Check that CONTENT_LIBRARY_CREATED event is sent when a content library is created. - """ - event_receiver = Mock() - CONTENT_LIBRARY_CREATED.connect(event_receiver) - lib = self._create_library( - slug="test_lib_event_create", - title="Event Test Library", - description="Testing event in library" - ) - library_key = LibraryLocatorV2.from_string(lib['id']) - - event_receiver.assert_called_once() - self.assertDictContainsSubset( - { - "signal": CONTENT_LIBRARY_CREATED, - "sender": None, - "content_library": ContentLibraryData( - library_key=library_key, - update_blocks=False, - ), - }, - event_receiver.call_args.kwargs - ) - - def test_content_library_update_event(self): - """ - Check that CONTENT_LIBRARY_UPDATED event is sent when a content library is updated. - """ - event_receiver = Mock() - CONTENT_LIBRARY_UPDATED.connect(event_receiver) - lib = self._create_library( - slug="test_lib_event_update", - title="Event Test Library", - description="Testing event in library" - ) - - lib2 = self._update_library(lib["id"], title="New Title") - library_key = LibraryLocatorV2.from_string(lib2['id']) - - event_receiver.assert_called_once() - self.assertDictContainsSubset( - { - "signal": CONTENT_LIBRARY_UPDATED, - "sender": None, - "content_library": ContentLibraryData( - library_key=library_key, - update_blocks=False, - ), - }, - event_receiver.call_args.kwargs - ) - - def test_content_library_delete_event(self): - """ - Check that CONTENT_LIBRARY_DELETED event is sent when a content library is deleted. - """ - event_receiver = Mock() - CONTENT_LIBRARY_DELETED.connect(event_receiver) - lib = self._create_library( - slug="test_lib_event_delete", - title="Event Test Library", - description="Testing event in library" - ) - library_key = LibraryLocatorV2.from_string(lib['id']) - - self._delete_library(lib["id"]) - - event_receiver.assert_called_once() - self.assertDictContainsSubset( - { - "signal": CONTENT_LIBRARY_DELETED, - "sender": None, - "content_library": ContentLibraryData( - library_key=library_key, - update_blocks=False, - ), - }, - event_receiver.call_args.kwargs - ) - - def test_library_block_create_event(self): - """ - Check that LIBRARY_BLOCK_CREATED event is sent when a library block is created. - """ - event_receiver = Mock() - LIBRARY_BLOCK_CREATED.connect(event_receiver) - lib = self._create_library( - slug="test_lib_block_event_create", - title="Event Test Library", - description="Testing event in library" - ) - lib_id = lib["id"] - self._add_block_to_library(lib_id, "problem", "problem1") - - library_key = LibraryLocatorV2.from_string(lib_id) - usage_key = LibraryUsageLocatorV2( - lib_key=library_key, - block_type="problem", - usage_id="problem1" - ) - - event_receiver.assert_called_once() - self.assertDictContainsSubset( - { - "signal": LIBRARY_BLOCK_CREATED, - "sender": None, - "library_block": LibraryBlockData( - library_key=library_key, - usage_key=usage_key - ), - }, - event_receiver.call_args.kwargs - ) - - def test_library_block_olx_update_event(self): - """ - Check that LIBRARY_BLOCK_CREATED event is sent when the OLX source is updated. - """ - event_receiver = Mock() - LIBRARY_BLOCK_UPDATED.connect(event_receiver) - lib = self._create_library( - slug="test_lib_block_event_olx_update", - title="Event Test Library", - description="Testing event in library" - ) - lib_id = lib["id"] - - library_key = LibraryLocatorV2.from_string(lib_id) - - block = self._add_block_to_library(lib_id, "problem", "problem1") - block_id = block["id"] - usage_key = LibraryUsageLocatorV2( - lib_key=library_key, - block_type="problem", - usage_id="problem1" - ) - - new_olx = """ - - -

This is a normal capa problem with unicode 🔥. It has "maximum attempts" set to **5**.

- - - XBlock metadata only - XBlock data/metadata and associated static asset files - Static asset files for XBlocks and courseware - XModule metadata only - -
-
- """.strip() - - self._set_library_block_olx(block_id, new_olx) - - event_receiver.assert_called_once() - self.assertDictContainsSubset( - { - "signal": LIBRARY_BLOCK_UPDATED, - "sender": None, - "library_block": LibraryBlockData( - library_key=library_key, - usage_key=usage_key - ), - }, - event_receiver.call_args.kwargs - ) - - def test_library_block_add_asset_update_event(self): - """ - Check that LIBRARY_BLOCK_CREATED event is sent when a static asset is - uploaded associated with the XBlock. - """ - event_receiver = Mock() - LIBRARY_BLOCK_UPDATED.connect(event_receiver) - lib = self._create_library( - slug="test_lib_block_event_add_asset_update", - title="Event Test Library", - description="Testing event in library" - ) - lib_id = lib["id"] - - library_key = LibraryLocatorV2.from_string(lib_id) - - block = self._add_block_to_library(lib_id, "html", "h1") - block_id = block["id"] - self._set_library_block_asset(block_id, "static/test.txt", b"data") - - usage_key = LibraryUsageLocatorV2( - lib_key=library_key, - block_type="html", - usage_id="h1" - ) - - event_receiver.assert_called_once() - self.assertDictContainsSubset( - { - "signal": LIBRARY_BLOCK_UPDATED, - "sender": None, - "library_block": LibraryBlockData( - library_key=library_key, - usage_key=usage_key - ), - }, - event_receiver.call_args.kwargs - ) - - def test_library_block_del_asset_update_event(self): - """ - Check that LIBRARY_BLOCK_CREATED event is sent when a static asset is - removed from XBlock. - """ - event_receiver = Mock() - LIBRARY_BLOCK_UPDATED.connect(event_receiver) - lib = self._create_library( - slug="test_lib_block_event_del_asset_update", - title="Event Test Library", - description="Testing event in library" - ) - lib_id = lib["id"] - - library_key = LibraryLocatorV2.from_string(lib_id) - - block = self._add_block_to_library(lib_id, "html", "h321") - block_id = block["id"] - self._set_library_block_asset(block_id, "static/test.txt", b"data") - - self._delete_library_block_asset(block_id, 'static/text.txt') - - usage_key = LibraryUsageLocatorV2( - lib_key=library_key, - block_type="html", - usage_id="h321" - ) - - event_receiver.assert_called() - self.assertDictContainsSubset( - { - "signal": LIBRARY_BLOCK_UPDATED, - "sender": None, - "library_block": LibraryBlockData( - library_key=library_key, - usage_key=usage_key - ), - }, - event_receiver.call_args.kwargs - ) - - def test_library_block_delete_event(self): - """ - Check that LIBRARY_BLOCK_DELETED event is sent when a content library is deleted. - """ - event_receiver = Mock() - LIBRARY_BLOCK_DELETED.connect(event_receiver) - lib = self._create_library( - slug="test_lib_block_event_delete", - title="Event Test Library", - description="Testing event in library" - ) - - lib_id = lib["id"] - library_key = LibraryLocatorV2.from_string(lib_id) - - block = self._add_block_to_library(lib_id, "problem", "problem1") - block_id = block['id'] - - usage_key = LibraryUsageLocatorV2( - lib_key=library_key, - block_type="problem", - usage_id="problem1" - ) - - self._delete_library_block(block_id) - - event_receiver.assert_called() - self.assertDictContainsSubset( - { - "signal": LIBRARY_BLOCK_DELETED, - "sender": None, - "library_block": LibraryBlockData( - library_key=library_key, - usage_key=usage_key - ), - }, - event_receiver.call_args.kwargs - ) - def test_library_paste_xblock(self): """ Check the a new block is created in the library after pasting from clipboard. diff --git a/openedx/core/djangoapps/content_libraries/tests/test_course_to_library.py b/openedx/core/djangoapps/content_libraries/tests/test_course_to_library.py index e6b379d298a0..8f45fdd8cc9d 100644 --- a/openedx/core/djangoapps/content_libraries/tests/test_course_to_library.py +++ b/openedx/core/djangoapps/content_libraries/tests/test_course_to_library.py @@ -3,8 +3,6 @@ """ import ddt from opaque_keys.edx.locator import LibraryContainerLocator -from openedx_events.content_authoring import signals -from openedx_events.tests.utils import OpenEdxEventsTestMixin from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase from xmodule.modulestore.tests.factories import ToyCourseFactory @@ -15,15 +13,10 @@ @skip_unless_cms @ddt.ddt -class CourseToLibraryTestCase(OpenEdxEventsTestMixin, ContentLibrariesRestApiTest, ModuleStoreTestCase): +class CourseToLibraryTestCase(ContentLibrariesRestApiTest, ModuleStoreTestCase): """ Tests that involve copying content from courses to libraries. """ - ENABLED_OPENEDX_EVENTS = [ - signals.LIBRARY_CONTAINER_CREATED.event_type, - signals.LIBRARY_CONTAINER_DELETED.event_type, - signals.LIBRARY_CONTAINER_UPDATED.event_type, - ] def test_library_paste_unit_from_course(self): """ diff --git a/openedx/core/djangoapps/content_libraries/tests/test_embed_block.py b/openedx/core/djangoapps/content_libraries/tests/test_embed_block.py index e9909b7d6063..41abeed82986 100644 --- a/openedx/core/djangoapps/content_libraries/tests/test_embed_block.py +++ b/openedx/core/djangoapps/content_libraries/tests/test_embed_block.py @@ -8,7 +8,6 @@ import ddt from django.core.exceptions import ValidationError from django.test.utils import override_settings -from openedx_events.tests.utils import OpenEdxEventsTestMixin import pytest from xblock.core import XBlock @@ -22,7 +21,7 @@ @skip_unless_cms @ddt.ddt @override_settings(CORS_ORIGIN_WHITELIST=[]) # For some reason, this setting isn't defined in our test environment? -class LibrariesEmbedViewTestCase(ContentLibrariesRestApiTest, OpenEdxEventsTestMixin): +class LibrariesEmbedViewTestCase(ContentLibrariesRestApiTest): """ Tests for embed_view and interacting with draft/published/past versions of Learning-Core-based XBlocks (in Content Libraries). diff --git a/openedx/core/djangoapps/content_libraries/tests/test_events.py b/openedx/core/djangoapps/content_libraries/tests/test_events.py new file mode 100644 index 000000000000..e0e3e7392765 --- /dev/null +++ b/openedx/core/djangoapps/content_libraries/tests/test_events.py @@ -0,0 +1,548 @@ +""" +Tests for Learning-Core-based Content Libraries +""" +from opaque_keys.edx.locator import ( + LibraryCollectionLocator, + LibraryContainerLocator, + LibraryLocatorV2, + LibraryUsageLocatorV2, +) +from openedx_events.content_authoring.signals import ( + ContentLibraryData, + LibraryBlockData, + LibraryCollectionData, + LibraryContainerData, + CONTENT_LIBRARY_CREATED, + CONTENT_LIBRARY_DELETED, + CONTENT_LIBRARY_UPDATED, + LIBRARY_BLOCK_CREATED, + LIBRARY_BLOCK_DELETED, + LIBRARY_BLOCK_UPDATED, + LIBRARY_BLOCK_PUBLISHED, + LIBRARY_COLLECTION_CREATED, + LIBRARY_COLLECTION_DELETED, + LIBRARY_COLLECTION_UPDATED, + LIBRARY_CONTAINER_CREATED, + LIBRARY_CONTAINER_DELETED, + LIBRARY_CONTAINER_UPDATED, + LIBRARY_CONTAINER_PUBLISHED, +) + +from openedx.core.djangoapps.content_libraries.tests.base import ContentLibrariesRestApiTest +from openedx.core.djangolib.testing.utils import skip_unless_cms + + +@skip_unless_cms +class ContentLibrariesEventsTestCase(ContentLibrariesRestApiTest): + """ + Event tests for Learning-Core-based Content Libraries + + These tests use the REST API, which in turn relies on the Python API. + """ + # Note: we assume all events are already enabled, as they should be. We do + # NOT use OpenEdxEventsTestMixin, because it disables any events that you + # don't explicitly enable and does so in a way that interferes with other + # test cases, causing flakiness and failures in *other* test modules. + ALL_EVENTS = [ + CONTENT_LIBRARY_CREATED, + CONTENT_LIBRARY_DELETED, + CONTENT_LIBRARY_UPDATED, + LIBRARY_BLOCK_CREATED, + LIBRARY_BLOCK_DELETED, + LIBRARY_BLOCK_UPDATED, + LIBRARY_BLOCK_PUBLISHED, + LIBRARY_COLLECTION_CREATED, + LIBRARY_COLLECTION_DELETED, + LIBRARY_COLLECTION_UPDATED, + LIBRARY_CONTAINER_CREATED, + LIBRARY_CONTAINER_DELETED, + LIBRARY_CONTAINER_UPDATED, + LIBRARY_CONTAINER_PUBLISHED, + ] + + def setUp(self) -> None: + super().setUp() + + # Create some useful data: + self.lib1 = self._create_library( + slug="test_lib_1", + title="Library 1", + description="First Library for testing", + ) + self.lib1_key = LibraryLocatorV2.from_string(self.lib1['id']) + + # From now on, every time an event is emitted, add it to this set: + self.new_events: list[dict] = [] + + def event_receiver(**kwargs) -> None: + self.new_events.append(kwargs) + + for e in self.ALL_EVENTS: + e.connect(event_receiver) + + def disconnect_all() -> None: + for e in self.ALL_EVENTS: + e.disconnect(event_receiver) + + self.addCleanup(disconnect_all) + + def clear_events(self) -> None: + """ Clear the log of events that we've seen so far. """ + self.new_events.clear() + + def expect_new_events(self, *expected_events: dict) -> None: + """ + assert the the specified events have been emitted since the last call to + this function. + """ + # We assume the events may not be in order. Assuming a specific order can lead to flaky tests. + for expected in expected_events: + found = False + for i, actual in enumerate(self.new_events): + if expected.items() <= actual.items(): + self.new_events.pop(i) + found = True + break + if not found: + raise AssertionError(f"Event {expected} not found among actual events: {self.new_events}") + if len(self.new_events) > 0: + raise AssertionError(f"Events were emitted but not expected: {self.new_events}") + self.clear_events() + + ############################## Libraries ################################## + + def test_content_library_crud_events(self) -> None: + """ + Check that CONTENT_LIBRARY_CREATED event is sent when a content library is created, updated, and deleted + """ + # Setup: none + # Action - create a library + new_lib = self._create_library( + slug="new_lib", + title="New Testing Library", + description="New Library for testing", + ) + lib_key = LibraryLocatorV2.from_string(new_lib['id']) + + # Expect a CREATED event: + self.expect_new_events({ + "signal": CONTENT_LIBRARY_CREATED, + "content_library": ContentLibraryData(library_key=lib_key), + }) + + # Action - change the library name: + self._update_library(lib_key=str(lib_key), title="New title") + # Expect an UPDATED event: + self.expect_new_events({ + "signal": CONTENT_LIBRARY_UPDATED, + "content_library": ContentLibraryData(library_key=lib_key), + }) + + # Action - delete the library: + self._delete_library(str(lib_key)) + # Expect a DELETED event: + self.expect_new_events({ + "signal": CONTENT_LIBRARY_DELETED, + "content_library": ContentLibraryData(library_key=lib_key), + }) + + # Should deleting a library send out _DELETED events for all the items in the library too? + + ############################## Components (XBlocks) ################################## + + def test_library_block_create_event(self) -> None: + """ + Check that LIBRARY_BLOCK_CREATED event is sent when a library block is created. + """ + add_result = self._add_block_to_library(self.lib1_key, "problem", "problem1") + usage_key = LibraryUsageLocatorV2.from_string(add_result["id"]) + + self.expect_new_events({ + "signal": LIBRARY_BLOCK_CREATED, + "library_block": LibraryBlockData(self.lib1_key, usage_key), + }) + + def test_library_block_update_and_publish_events(self) -> None: + """ + Check that appropriate events are emitted when an existing block is updated. + """ + # This block should be ignored: + self._add_block_to_library(self.lib1_key, "problem", "problem1") + # This block will be used in the tests: + add_result = self._add_block_to_library(self.lib1_key, "problem", "problem2") + usage_key = LibraryUsageLocatorV2.from_string(add_result["id"]) + # Clear events from creating the blocks: + self.clear_events() + + # Now update the block's OLX: + new_olx = """ + + ... + + """.strip() + self._set_library_block_olx(usage_key, new_olx) + self.expect_new_events({ + "signal": LIBRARY_BLOCK_UPDATED, + "library_block": LibraryBlockData(self.lib1_key, usage_key), + }) + + # Now add a static asset file to the block: + self._set_library_block_asset(usage_key, "static/test.txt", b"data") + self.expect_new_events({ + "signal": LIBRARY_BLOCK_UPDATED, + "library_block": LibraryBlockData(self.lib1_key, usage_key), + }) + + # Then delete the static asset: + self._delete_library_block_asset(usage_key, 'static/text.txt') + self.expect_new_events({ + "signal": LIBRARY_BLOCK_UPDATED, + "library_block": LibraryBlockData(self.lib1_key, usage_key), + }) + + # Then publish the block: + self._publish_library_block(usage_key) + self.expect_new_events({ + "signal": LIBRARY_BLOCK_PUBLISHED, + "library_block": LibraryBlockData(self.lib1_key, usage_key), + }) + + def test_revert_delete(self) -> None: + """ + Test that when a block is deleted and then the delete is reverted, a + _CREATED event is sent. + """ + # This block should be ignored: + self._add_block_to_library(self.lib1_key, "problem", "problem1") + # This block will be used in the tests: + add_result = self._add_block_to_library(self.lib1_key, "problem", "problem2") + usage_key = LibraryUsageLocatorV2.from_string(add_result["id"]) + # Publish changes + self._commit_library_changes(self.lib1_key) + # Clear events from creating the blocks: + self.clear_events() + + # Delete the block: + self._delete_library_block(usage_key) + # That should emit a _DELETED event: + self.expect_new_events({ + "signal": LIBRARY_BLOCK_DELETED, + "library_block": LibraryBlockData(self.lib1_key, usage_key), + }) + + # Revert the change: + self._revert_library_changes(self.lib1_key) + # That should result in a _CREATED event: + self.expect_new_events({ + "signal": LIBRARY_BLOCK_CREATED, + "library_block": LibraryBlockData(self.lib1_key, usage_key), + }) + + def test_revert_create(self) -> None: + """ + Test that when a block is created and then the changes are reverted, a + _DELETED event is sent. + """ + # Publish any changes from setUp() + self._commit_library_changes(self.lib1_key) + # Clear events: + self.clear_events() + + # Create the block: + add_result = self._add_block_to_library(self.lib1_key, "problem", "problem2") + usage_key = LibraryUsageLocatorV2.from_string(add_result["id"]) + # That should result in a _CREATED event: + self.expect_new_events({ + "signal": LIBRARY_BLOCK_CREATED, + "library_block": LibraryBlockData(self.lib1_key, usage_key), + }) + + # Revert the change: + self._revert_library_changes(self.lib1_key) + # That should result in a _DELETED event: + self.expect_new_events({ + "signal": LIBRARY_BLOCK_DELETED, + "library_block": LibraryBlockData(self.lib1_key, usage_key), + }) + + ############################## Containers ################################## + + def test_unit_crud(self) -> None: + """ + Test Create, Read, Update, and Delete of a Unit + """ + # Create a unit: + container_data = self._create_container(self.lib1_key, "unit", slug="u1", display_name="Test Unit") + container_key = LibraryContainerLocator.from_string(container_data["id"]) + + self.expect_new_events({ + "signal": LIBRARY_CONTAINER_CREATED, + "library_container": LibraryContainerData(container_key), + }) + + # Update the unit: + self._update_container(container_key, display_name="Unit ABC") + + self.expect_new_events({ + "signal": LIBRARY_CONTAINER_UPDATED, + "library_container": LibraryContainerData(container_key), + }) + + # Delete the unit + self._delete_container(container_key) + self._get_container(container_key, expect_response=404) + self.expect_new_events({ + "signal": LIBRARY_CONTAINER_DELETED, + "library_container": LibraryContainerData(container_key), + }) + + def test_publish_all_lib_changes(self) -> None: + """ + Test the events that get emitted when we publish all changes in the library + """ + # Create two containers and add some components + # -> container 1: problem_block, html_block + # -> container 2: html_block, html_block2 + container1 = self._create_container(self.lib1_key, "unit", display_name="Alpha Unit", slug=None) + container2 = self._create_container(self.lib1_key, "unit", display_name="Bravo Unit", slug=None) + problem_block = self._add_block_to_library(self.lib1_key, "problem", "Problem1", can_stand_alone=False) + html_block = self._add_block_to_library(self.lib1_key, "html", "Html1", can_stand_alone=False) + html_block2 = self._add_block_to_library(self.lib1_key, "html", "Html2", can_stand_alone=False) + self._add_container_components(container1["id"], children_ids=[problem_block["id"], html_block["id"]]) + self._add_container_components(container2["id"], children_ids=[html_block["id"], html_block2["id"]]) + + # Now publish only Container 2 (which will auto-publish both HTML blocks since they're children) + self._publish_container(container2["id"]) + # Container 2 is published, container 1 and its contents is unpublished: + assert self._get_container(container2["id"])["has_unpublished_changes"] is False + assert self._get_container(container1["id"])["has_unpublished_changes"] + assert self._get_library_block(problem_block["id"])["has_unpublished_changes"] + assert self._get_library_block(html_block["id"])["has_unpublished_changes"] is False # in containers 1+2 + + # clear event log up to this point + self.clear_events() + + # Now publish ALL remaining changes in the library: + self._commit_library_changes(self.lib1_key) + # Container 1 is now published: + assert self._get_container(container1["id"])["has_unpublished_changes"] is False + # And publish events were emitted: + self.expect_new_events( + { # An event for container 1 being published: + "signal": LIBRARY_CONTAINER_PUBLISHED, + "library_container": LibraryContainerData( + container_key=LibraryContainerLocator.from_string(container1["id"]), + ), + }, + { # An event for the problem block in container 1: + "signal": LIBRARY_BLOCK_PUBLISHED, + "library_block": LibraryBlockData( + self.lib1_key, LibraryUsageLocatorV2.from_string(problem_block["id"]), + ), + }, + # The HTML block in container 1 is not part of this publish event group, because it was + # already published when we published container 2 + ) + + def test_publish_child_block(self) -> None: + """ + Test the events that get emitted when we publish changes to a child of a container + """ + # Create a container and a block + container1 = self._create_container(self.lib1_key, "unit", display_name="Alpha Unit", slug=None) + problem_block = self._add_block_to_library(self.lib1_key, "problem", "Problem1", can_stand_alone=False) + self._add_container_components(container1["id"], children_ids=[problem_block["id"]]) + # Publish all changes + self._commit_library_changes(self.lib1_key) + assert self._get_container(container1["id"])["has_unpublished_changes"] is False + + # Change only the block, not the container: + self._set_library_block_olx(problem_block["id"], "UPDATED") + # Since we modified the block, the container now contains changes (technically it is unchanged and its + # version is the same, but it *contains* unpublished changes) + assert self._get_library_block(problem_block["id"])["has_unpublished_changes"] + assert self._get_container(container1["id"])["has_unpublished_changes"] + # clear event log up to this point + self.clear_events() + + # Now publish ALL remaining changes in the library - should only affect the problem block + self._commit_library_changes(self.lib1_key) + # The container no longer contains unpublished changes: + assert self._get_container(container1["id"])["has_unpublished_changes"] is False + # And publish events were emitted: + self.expect_new_events( + { # An event for container 1 being affected indirectly by the child being published: + # TODO: should this be a CONTAINER_CHILD_PUBLISHED event? + "signal": LIBRARY_CONTAINER_PUBLISHED, + "library_container": LibraryContainerData( + container_key=LibraryContainerLocator.from_string(container1["id"]), + ), + }, + { # An event for the problem block: + "signal": LIBRARY_BLOCK_PUBLISHED, + "library_block": LibraryBlockData( + self.lib1_key, LibraryUsageLocatorV2.from_string(problem_block["id"]), + ), + }, + ) + + def test_publish_container(self) -> None: + """ + Test the events that get emitted when we publish the changes to a specific container + """ + # Create two containers and add some components + container1 = self._create_container(self.lib1_key, "unit", display_name="Alpha Unit", slug=None) + container2 = self._create_container(self.lib1_key, "unit", display_name="Bravo Unit", slug=None) + problem_block = self._add_block_to_library(self.lib1_key, "problem", "Problem1", can_stand_alone=False) + html_block = self._add_block_to_library(self.lib1_key, "html", "Html1", can_stand_alone=False) + html_block2 = self._add_block_to_library(self.lib1_key, "html", "Html2", can_stand_alone=False) + self._add_container_components(container1["id"], children_ids=[problem_block["id"], html_block["id"]]) + self._add_container_components(container2["id"], children_ids=[html_block["id"], html_block2["id"]]) + # At first everything is unpublished: + c1_before = self._get_container(container1["id"]) + assert c1_before["has_unpublished_changes"] + c2_before = self._get_container(container2["id"]) + assert c2_before["has_unpublished_changes"] + + # clear event log after the initial mock data setup is complete: + self.clear_events() + + # Now publish only Container 1 + self._publish_container(container1["id"]) + + # Now it is published: + c1_after = self._get_container(container1["id"]) + assert c1_after["has_unpublished_changes"] is False + # And publish events were emitted: + self.expect_new_events( + { # An event for container 1 being published: + "signal": LIBRARY_CONTAINER_PUBLISHED, + "library_container": LibraryContainerData( + container_key=LibraryContainerLocator.from_string(container1["id"]), + ), + }, + { # An event for the problem block in container 1: + "signal": LIBRARY_BLOCK_PUBLISHED, + "library_block": LibraryBlockData( + self.lib1_key, LibraryUsageLocatorV2.from_string(problem_block["id"]), + ), + }, + { # An event for the html block in container 1 (and container 2): + "signal": LIBRARY_BLOCK_PUBLISHED, + "library_block": LibraryBlockData( + self.lib1_key, LibraryUsageLocatorV2.from_string(html_block["id"]), + ), + }, + { # Not 100% sure we want this, but a PUBLISHED event is emitted for container 2 + # because one of its children's published versions has changed, so whether or + # not it contains unpublished changes may have changed and the search index + # may need to be updated. It is not actually published though. + # TODO: should this be a CONTAINER_CHILD_PUBLISHED event? + "signal": LIBRARY_CONTAINER_PUBLISHED, + "library_container": LibraryContainerData( + container_key=LibraryContainerLocator.from_string(container2["id"]), + ), + }, + ) + + # note that container 2 is still unpublished + c2_after = self._get_container(container2["id"]) + assert c2_after["has_unpublished_changes"] + + def test_restore_unit(self) -> None: + """ + Test restoring a deleted unit via the "restore" API. + """ + # Create a unit: + container_data = self._create_container(self.lib1_key, "unit", slug="u1", display_name="Test Unit") + container_key = LibraryContainerLocator.from_string(container_data["id"]) + + self.expect_new_events({ + "signal": LIBRARY_CONTAINER_CREATED, + "library_container": LibraryContainerData(container_key), + }) + + # Delete the unit + self._delete_container(container_data["id"]) + + self.expect_new_events({ + "signal": LIBRARY_CONTAINER_DELETED, + "library_container": LibraryContainerData(container_key), + }) + + # Restore the unit + self._restore_container(container_data["id"]) + + self.expect_new_events({ + "signal": LIBRARY_CONTAINER_CREATED, + "library_container": LibraryContainerData(container_key), + }) + + def test_restore_unit_via_revert(self) -> None: + """ + Test restoring a deleted unit by reverting changes. + """ + # Publish the existing setup and clear events + self._commit_library_changes(self.lib1_key) + self.clear_events() + + # Create a unit: + container_data = self._create_container(self.lib1_key, "unit", slug="u1", display_name="Test Unit") + container_key = LibraryContainerLocator.from_string(container_data["id"]) + + self.expect_new_events({ + "signal": LIBRARY_CONTAINER_CREATED, + "library_container": LibraryContainerData(container_key), + }) + + # Publish changes + self._publish_container(container_key) + self.expect_new_events({ + "signal": LIBRARY_CONTAINER_PUBLISHED, + "library_container": LibraryContainerData(container_key), + }) + + # Delete the unit + self._delete_container(container_data["id"]) + + self.expect_new_events({ + "signal": LIBRARY_CONTAINER_DELETED, + "library_container": LibraryContainerData(container_key), + }) + + # Revert changes, which will re-create the unit: + self._revert_library_changes(self.lib1_key) + + self.expect_new_events({ + "signal": LIBRARY_CONTAINER_CREATED, + "library_container": LibraryContainerData(container_key), + }) + + ############################## Collections ################################## + + def test_collection_crud(self) -> None: + """ Test basic create, update, and delete events for collections """ + collection = self._create_collection(self.lib1_key, "Test Collection") + # To fix? The response from _create_collection should have the opaque key as the "id" field, not an integer. + collection_key = LibraryCollectionLocator(lib_key=self.lib1_key, collection_id=collection["key"]) + self.expect_new_events({ + "signal": LIBRARY_COLLECTION_CREATED, + "library_collection": LibraryCollectionData(collection_key), + }) + + # Update the collection: + self._update_collection(collection_key, description="Updated description") + self.expect_new_events({ + "signal": LIBRARY_COLLECTION_UPDATED, + "library_collection": LibraryCollectionData(collection_key), + }) + + # Soft delete the collection. NOTE: at the moment, it's only possible to "soft delete" collections via + # the REST API, which sends an UPDATED event because the collection is now "disabled" but not deleted. + self._soft_delete_collection(collection_key) + self.expect_new_events({ + "signal": LIBRARY_COLLECTION_UPDATED, # UPDATED not DELETED. If we do a hard delete, it should be DELETED. + "library_collection": LibraryCollectionData(collection_key), + }) + + # TODO: move more of the event-related collection tests from test_api.py to here, and convert them to use REST APIs diff --git a/openedx/core/djangoapps/content_libraries/tests/test_versioned_apis.py b/openedx/core/djangoapps/content_libraries/tests/test_versioned_apis.py index ad7ea54d8dfb..20d0b38f0b7c 100644 --- a/openedx/core/djangoapps/content_libraries/tests/test_versioned_apis.py +++ b/openedx/core/djangoapps/content_libraries/tests/test_versioned_apis.py @@ -2,7 +2,6 @@ Tests that several XBlock APIs support versioning """ from django.test.utils import override_settings -from openedx_events.tests.utils import OpenEdxEventsTestMixin from xblock.core import XBlock from openedx.core.djangoapps.content_libraries.tests.base import ( @@ -14,7 +13,7 @@ @skip_unless_cms @override_settings(CORS_ORIGIN_WHITELIST=[]) # For some reason, this setting isn't defined in our test environment? -class VersionedXBlockApisTestCase(ContentLibrariesRestApiTest, OpenEdxEventsTestMixin): +class VersionedXBlockApisTestCase(ContentLibrariesRestApiTest): """ Tests for three APIs implemented by djangoapps.xblock, and used by content libraries. These tests focus on versioning. diff --git a/openedx/core/djangoapps/course_groups/tests/test_cohorts.py b/openedx/core/djangoapps/course_groups/tests/test_cohorts.py index 0f6dd85863ba..910eff2b0d01 100644 --- a/openedx/core/djangoapps/course_groups/tests/test_cohorts.py +++ b/openedx/core/djangoapps/course_groups/tests/test_cohorts.py @@ -44,6 +44,12 @@ def setUpClass(cls): super().setUpClass() cls.start_events_isolation() + @classmethod + def tearDownClass(cls): + """ Don't let our event isolation affect other test cases """ + super().tearDownClass() + cls.enable_all_events() # Re-enable events other than the ENABLED_OPENEDX_EVENTS subset we isolated. + def setUp(self): super().setUp() self.course_key = CourseLocator("dummy", "dummy", "dummy") diff --git a/openedx/core/djangoapps/course_groups/tests/test_events.py b/openedx/core/djangoapps/course_groups/tests/test_events.py index 11ec0e365279..616a7bb3f156 100644 --- a/openedx/core/djangoapps/course_groups/tests/test_events.py +++ b/openedx/core/djangoapps/course_groups/tests/test_events.py @@ -46,6 +46,12 @@ def setUpClass(cls): super().setUpClass() cls.start_events_isolation() + @classmethod + def tearDownClass(cls): + """ Don't let our event isolation affect other test cases """ + super().tearDownClass() + cls.enable_all_events() # Re-enable events other than the ENABLED_OPENEDX_EVENTS subset we isolated. + def setUp(self): # pylint: disable=arguments-differ super().setUp() self.course = CourseOverviewFactory() diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index 1d60d1e19368..470ed2ce8c73 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -801,7 +801,7 @@ openedx-django-require==2.1.0 # via -r requirements/edx/kernel.in openedx-django-wiki==2.1.0 # via -r requirements/edx/kernel.in -openedx-events==10.0.0 +openedx-events==10.2.0 # via # -r requirements/edx/kernel.in # edx-enterprise diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt index 54d89f96c2f7..283886b777e7 100644 --- a/requirements/edx/development.txt +++ b/requirements/edx/development.txt @@ -1358,7 +1358,7 @@ openedx-django-wiki==2.1.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -openedx-events==10.0.0 +openedx-events==10.2.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt diff --git a/requirements/edx/doc.txt b/requirements/edx/doc.txt index a543c1843863..3578bf31bb40 100644 --- a/requirements/edx/doc.txt +++ b/requirements/edx/doc.txt @@ -972,7 +972,7 @@ openedx-django-require==2.1.0 # via -r requirements/edx/base.txt openedx-django-wiki==2.1.0 # via -r requirements/edx/base.txt -openedx-events==10.0.0 +openedx-events==10.2.0 # via # -r requirements/edx/base.txt # edx-enterprise diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt index a41643624e6c..5e6f12192b8d 100644 --- a/requirements/edx/testing.txt +++ b/requirements/edx/testing.txt @@ -1030,7 +1030,7 @@ openedx-django-require==2.1.0 # via -r requirements/edx/base.txt openedx-django-wiki==2.1.0 # via -r requirements/edx/base.txt -openedx-events==10.0.0 +openedx-events==10.2.0 # via # -r requirements/edx/base.txt # edx-enterprise From 95a036a217bf6e705c0511fb09e3f8dd0998274e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=B4mulo=20Penido?= Date: Mon, 12 May 2025 14:13:20 -0300 Subject: [PATCH 009/443] feat: add last_published_at to upstream summary endpoint [FC-0083] (#36656) (#36701) Returns the last_published_at date from the upstream summary endpoint. --- cms/djangoapps/contentstore/models.py | 28 +++++++++++++------ .../rest_api/v2/serializers/downstreams.py | 1 + .../rest_api/v2/views/downstreams.py | 4 ++- .../v2/views/tests/test_downstreams.py | 4 +++ 4 files changed, 28 insertions(+), 9 deletions(-) diff --git a/cms/djangoapps/contentstore/models.py b/cms/djangoapps/contentstore/models.py index 68891554f546..2c0a5d42cce9 100644 --- a/cms/djangoapps/contentstore/models.py +++ b/cms/djangoapps/contentstore/models.py @@ -7,7 +7,7 @@ from config_models.models import ConfigurationModel from django.db import models -from django.db.models import Count, F, Q, QuerySet +from django.db.models import Count, F, Q, QuerySet, Max from django.db.models.fields import IntegerField, TextField from django.db.models.functions import Coalesce from django.db.models.lookups import GreaterThan @@ -160,7 +160,8 @@ def filter_links( ready_to_sync = link_filter.pop('ready_to_sync', None) result = cls.objects.filter(**link_filter).select_related( "upstream_block__publishable_entity__published__version", - "upstream_block__publishable_entity__learning_package" + "upstream_block__publishable_entity__learning_package", + "upstream_block__publishable_entity__published__publish_log_record__publish_log", ).annotate( ready_to_sync=( GreaterThan( @@ -186,13 +187,15 @@ def summarize_by_downstream_context(cls, downstream_context_key: CourseKey) -> Q "upstream_context_title": "CS problems 3", "upstream_context_key": "lib:OpenedX:CSPROB3", "ready_to_sync_count": 11, - "total_count": 14 + "total_count": 14, + "last_published_at": "2025-05-02T20:20:44.989042Z" }, { "upstream_context_title": "CS problems 2", "upstream_context_key": "lib:OpenedX:CSPROB2", "ready_to_sync_count": 15, - "total_count": 24 + "total_count": 24, + "last_published_at": "2025-05-03T21:20:44.989042Z" }, ] """ @@ -201,7 +204,10 @@ def summarize_by_downstream_context(cls, downstream_context_key: CourseKey) -> Q upstream_context_title=F("upstream_block__publishable_entity__learning_package__title"), ).annotate( ready_to_sync_count=Count("id", Q(ready_to_sync=True)), - total_count=Count('id') + total_count=Count("id"), + last_published_at=Max( + "upstream_block__publishable_entity__published__publish_log_record__publish_log__published_at" + ) ) return result @@ -307,6 +313,7 @@ def filter_links( result = cls.objects.filter(**link_filter).select_related( "upstream_container__publishable_entity__published__version", "upstream_container__publishable_entity__learning_package" + "upstream_container__publishable_entity__published__publish_log_record__publish_log", ).annotate( ready_to_sync=( GreaterThan( @@ -332,13 +339,15 @@ def summarize_by_downstream_context(cls, downstream_context_key: CourseKey) -> Q "upstream_context_title": "CS problems 3", "upstream_context_key": "lib:OpenedX:CSPROB3", "ready_to_sync_count": 11, - "total_count": 14 + "total_count": 14, + "last_published_at": "2025-05-02T20:20:44.989042Z" }, { "upstream_context_title": "CS problems 2", "upstream_context_key": "lib:OpenedX:CSPROB2", "ready_to_sync_count": 15, - "total_count": 24 + "total_count": 24, + "last_published_at": "2025-05-03T21:20:44.989042Z" }, ] """ @@ -347,7 +356,10 @@ def summarize_by_downstream_context(cls, downstream_context_key: CourseKey) -> Q upstream_context_title=F("upstream_container__publishable_entity__learning_package__title"), ).annotate( ready_to_sync_count=Count("id", Q(ready_to_sync=True)), - total_count=Count('id') + total_count=Count('id'), + last_published_at=Max( + "upstream_container__publishable_entity__published__publish_log_record__publish_log__published_at" + ) ) return result diff --git a/cms/djangoapps/contentstore/rest_api/v2/serializers/downstreams.py b/cms/djangoapps/contentstore/rest_api/v2/serializers/downstreams.py index 390a32b6ed44..848e9e3a5c7f 100644 --- a/cms/djangoapps/contentstore/rest_api/v2/serializers/downstreams.py +++ b/cms/djangoapps/contentstore/rest_api/v2/serializers/downstreams.py @@ -28,3 +28,4 @@ class PublishableEntityLinksSummarySerializer(serializers.Serializer): upstream_context_key = serializers.CharField(read_only=True) ready_to_sync_count = serializers.IntegerField(read_only=True) total_count = serializers.IntegerField(read_only=True) + last_published_at = serializers.DateTimeField(read_only=True) diff --git a/cms/djangoapps/contentstore/rest_api/v2/views/downstreams.py b/cms/djangoapps/contentstore/rest_api/v2/views/downstreams.py index fc3e4f296bde..8ac82a9452db 100644 --- a/cms/djangoapps/contentstore/rest_api/v2/views/downstreams.py +++ b/cms/djangoapps/contentstore/rest_api/v2/views/downstreams.py @@ -205,12 +205,14 @@ def get(self, request: _AuthenticatedRequest, course_key_string: str): "upstream_context_key": "lib:OpenedX:CSPROB3", "ready_to_sync_count": 11, "total_count": 14 + "last_published_at": "2025-05-02T20:20:44.989042Z" }, { "upstream_context_title": "CS problems 2", "upstream_context_key": "lib:OpenedX:CSPROB2", "ready_to_sync_count": 15, - "total_count": 24 + "total_count": 24, + "last_published_at": "2025-05-03T21:20:44.989042Z" }, ] """ diff --git a/cms/djangoapps/contentstore/rest_api/v2/views/tests/test_downstreams.py b/cms/djangoapps/contentstore/rest_api/v2/views/tests/test_downstreams.py index 426b49dc53e7..950464839c09 100644 --- a/cms/djangoapps/contentstore/rest_api/v2/views/tests/test_downstreams.py +++ b/cms/djangoapps/contentstore/rest_api/v2/views/tests/test_downstreams.py @@ -110,6 +110,8 @@ def setUp(self): self.learner = UserFactory(username="learner", password="password") self._set_library_block_olx(self.html_lib_id, "Hello world!") self._publish_library_block(self.html_lib_id) + self._publish_library_block(self.video_lib_id) + self._publish_library_block(self.html_lib_id) def _api(self, method, url, data, expect_response): """ @@ -546,6 +548,7 @@ def test_200_summary(self): 'upstream_context_key': self.library_id, 'ready_to_sync_count': 0, 'total_count': 3, + 'last_published_at': self.now.strftime('%Y-%m-%dT%H:%M:%S.%fZ'), }] self.assertListEqual(data, expected) response = self.call_api(str(self.course.id)) @@ -556,5 +559,6 @@ def test_200_summary(self): 'upstream_context_key': self.library_id, 'ready_to_sync_count': 1, 'total_count': 2, + 'last_published_at': self.now.strftime('%Y-%m-%dT%H:%M:%S.%fZ'), }] self.assertListEqual(data, expected) From 62d8ad441132bbe561f99ff586683bfc110debe5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20Ch=C3=A1vez?= Date: Tue, 13 May 2025 12:53:46 -0500 Subject: [PATCH 010/443] fix: Issues with get container children [FC-0083] (#36686) (#36703) * Fix published param to support strings * Add published_display_name to children response --- openedx/core/djangoapps/content_libraries/api/block_metadata.py | 1 + openedx/core/djangoapps/content_libraries/api/containers.py | 1 - openedx/core/djangoapps/content_libraries/api/libraries.py | 1 + .../core/djangoapps/content_libraries/rest_api/containers.py | 2 +- .../core/djangoapps/content_libraries/rest_api/serializers.py | 1 + .../content_libraries/tests/test_content_libraries.py | 2 ++ 6 files changed, 6 insertions(+), 2 deletions(-) diff --git a/openedx/core/djangoapps/content_libraries/api/block_metadata.py b/openedx/core/djangoapps/content_libraries/api/block_metadata.py index 539b3290631b..507822d3074e 100644 --- a/openedx/core/djangoapps/content_libraries/api/block_metadata.py +++ b/openedx/core/djangoapps/content_libraries/api/block_metadata.py @@ -57,6 +57,7 @@ def from_component(cls, library_key, component, associated_collections=None): modified=draft.created, draft_version_num=draft.version_num, published_version_num=published.version_num if published else None, + published_display_name=published.title if published else None, last_published=None if last_publish_log is None else last_publish_log.published_at, published_by=published_by, last_draft_created=last_draft_created, diff --git a/openedx/core/djangoapps/content_libraries/api/containers.py b/openedx/core/djangoapps/content_libraries/api/containers.py index 2adad97970eb..d97a6100a648 100644 --- a/openedx/core/djangoapps/content_libraries/api/containers.py +++ b/openedx/core/djangoapps/content_libraries/api/containers.py @@ -110,7 +110,6 @@ class ContainerMetadata(PublishableItem): container_key: LibraryContainerLocator container_type: ContainerType container_pk: int - published_display_name: str | None @classmethod def from_container(cls, library_key, container: Container, associated_collections=None): diff --git a/openedx/core/djangoapps/content_libraries/api/libraries.py b/openedx/core/djangoapps/content_libraries/api/libraries.py index 9acbff92522e..290c88a16a64 100644 --- a/openedx/core/djangoapps/content_libraries/api/libraries.py +++ b/openedx/core/djangoapps/content_libraries/api/libraries.py @@ -191,6 +191,7 @@ class PublishableItem(LibraryItem): """ draft_version_num: int published_version_num: int | None = None + published_display_name: str | None last_published: datetime | None = None # The username of the user who last published this. published_by: str = "" diff --git a/openedx/core/djangoapps/content_libraries/rest_api/containers.py b/openedx/core/djangoapps/content_libraries/rest_api/containers.py index 19f33b7beb2c..06baa6fc4254 100644 --- a/openedx/core/djangoapps/content_libraries/rest_api/containers.py +++ b/openedx/core/djangoapps/content_libraries/rest_api/containers.py @@ -178,7 +178,7 @@ def get(self, request, container_key: LibraryContainerLocator): } ] """ - published = request.GET.get('published', False) + published = request.GET.get('published', 'false').lower() == 'true' api.require_permission_for_library_key( container_key.lib_key, request.user, diff --git a/openedx/core/djangoapps/content_libraries/rest_api/serializers.py b/openedx/core/djangoapps/content_libraries/rest_api/serializers.py index 04c9e6a9901c..38765f0b320f 100644 --- a/openedx/core/djangoapps/content_libraries/rest_api/serializers.py +++ b/openedx/core/djangoapps/content_libraries/rest_api/serializers.py @@ -138,6 +138,7 @@ class PublishableItemSerializer(serializers.Serializer): """ id = serializers.SerializerMethodField() display_name = serializers.CharField() + published_display_name = serializers.CharField(required=False) tags_count = serializers.IntegerField(read_only=True) last_published = serializers.DateTimeField(format=DATETIME_FORMAT, read_only=True) published_by = serializers.CharField(read_only=True) diff --git a/openedx/core/djangoapps/content_libraries/tests/test_content_libraries.py b/openedx/core/djangoapps/content_libraries/tests/test_content_libraries.py index e62a2b6f0243..e2fec3aee1ff 100644 --- a/openedx/core/djangoapps/content_libraries/tests/test_content_libraries.py +++ b/openedx/core/djangoapps/content_libraries/tests/test_content_libraries.py @@ -327,6 +327,7 @@ def test_library_blocks(self): # pylint: disable=too-many-statements block_data["has_unpublished_changes"] = False block_data["last_published"] = publish_date.isoformat().replace('+00:00', 'Z') block_data["published_by"] = "Bob" + block_data["published_display_name"] = "Blank Problem" self.assertDictContainsEntries(self._get_library_block(block_id), block_data) assert self._get_library_blocks(lib_id)['results'] == [block_data] @@ -440,6 +441,7 @@ def test_library_blocks_studio_view(self): block_data["has_unpublished_changes"] = False block_data["last_published"] = publish_date.isoformat().replace('+00:00', 'Z') block_data["published_by"] = "Bob" + block_data["published_display_name"] = "Text" self.assertDictContainsEntries(self._get_library_block(block_id), block_data) assert self._get_library_blocks(lib_id)['results'] == [block_data] From 9d5417a90b612d8b66e43c2be1dacf3ff2affbeb Mon Sep 17 00:00:00 2001 From: Tim McCormack Date: Mon, 28 Apr 2025 12:35:41 -0400 Subject: [PATCH 011/443] feat: Fix character range for codejail darklaunch tmpdir normalization (#36615) Python's tempfile naming also includes underscore: https://github.com/python/cpython/blob/3.12/Lib/tempfile.py#L140 This omission would cause normalization to fail about 1/6 of the time. Also expand test to exercise more of character range. (cherry picked from commit ca335b3c3a1d4b4c97e8e4befbbac15116db6608) --- xmodule/capa/safe_exec/safe_exec.py | 3 ++- xmodule/capa/safe_exec/tests/test_safe_exec.py | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/xmodule/capa/safe_exec/safe_exec.py b/xmodule/capa/safe_exec/safe_exec.py index de80fbb6e97d..21363eb711ef 100644 --- a/xmodule/capa/safe_exec/safe_exec.py +++ b/xmodule/capa/safe_exec/safe_exec.py @@ -301,7 +301,8 @@ def emsg_normalizers(): """ default = [ { - 'search': r'/tmp/codejail-[0-9a-zA-Z]+', + # Character range should be at least as broad as what Python's `tempfile` uses. + 'search': r'/tmp/codejail-[0-9a-zA-Z_]+', 'replace': r'/tmp/codejail-', }, ] diff --git a/xmodule/capa/safe_exec/tests/test_safe_exec.py b/xmodule/capa/safe_exec/tests/test_safe_exec.py index 05757b6afb79..0360d67bc9b4 100644 --- a/xmodule/capa/safe_exec/tests/test_safe_exec.py +++ b/xmodule/capa/safe_exec/tests/test_safe_exec.py @@ -351,7 +351,7 @@ def local_exec(code, globals_dict, **kwargs): raise SafeExecException("stack trace involving /tmp/codejail-1234567/whatever.py") def remote_exec(data): - emsg = "stack trace involving /tmp/codejail-abcdefgh/whatever.py" + emsg = "stack trace involving /tmp/codejail-abcd_EFG/whatever.py" return (emsg, SafeExecException(emsg)) results = self.run_dark_launch( @@ -372,7 +372,7 @@ def remote_exec(data): ), call( "Codejail darklaunch remote results for slug=None: globals={}, " - "emsg='stack trace involving /tmp/codejail-abcdefgh/whatever.py', exception=None" + "emsg='stack trace involving /tmp/codejail-abcd_EFG/whatever.py', exception=None" ), ], expect_globals_contains={}, From 6ae8fe06684f4b6a302a7e87d3cb338a2472654a Mon Sep 17 00:00:00 2001 From: Tim McCormack Date: Wed, 30 Apr 2025 16:23:13 -0400 Subject: [PATCH 012/443] fix: Use correct default for unsafely param (#36638) `unsafely` should be a boolean, not None. I believe this is what was causing a 400 in remote codejail-service calls (during darklaunch) when the `calculate_problem_responses_csv.v2` instructor task ran: https://github.com/edx/edx-arch-experiments/issues/1028 There are also places in the code where this member appears to be a scalar property instead of a method, or possibly that's just buggy code that doesn't run. I decided not to touch that in this PR (we're probably going to DEPR the entire unsafe mechanism anyhow) but if this PR doesn't work, that's the next place to look -- because higher up in this file there's a `can_execute_unsafe_code=None` that we could try changing. (cherry picked from commit c9ae3adc24cfa7f39b2d96c87f77be10a8aa475d) --- xmodule/capa_block.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xmodule/capa_block.py b/xmodule/capa_block.py index 1b2d18cf1770..1a096e76b22d 100644 --- a/xmodule/capa_block.py +++ b/xmodule/capa_block.py @@ -726,7 +726,7 @@ def generate_report_data(self, user_state_iterator, limit_responses=None): # For the purposes of this report, we don't need to support those use cases. anonymous_student_id=None, cache=None, - can_execute_unsafe_code=lambda: None, + can_execute_unsafe_code=lambda: False, get_python_lib_zip=( lambda: SandboxService(contentstore, self.scope_ids.usage_id.context_key).get_python_lib_zip() ), From 1c29fb7cc8e6f4e450a8898729f7d4fbaa5be57e Mon Sep 17 00:00:00 2001 From: Tim McCormack Date: Tue, 6 May 2025 16:42:55 -0400 Subject: [PATCH 013/443] feat: Improve codejail darklaunch logging (#36671) This is intended to make logs more or less a standalone source for analyzing mismatches. - Only log mismatches or exceptions - Merge local and remote log messages into one so they can be correlated more easily - Different log messages for mismatch vs. unexpected exceptions - Include course ID (as limit overrides context) in log message (cherry picked from commit 5bc05810dc051a35f2af8191d5767c76d16f12f6) --- xmodule/capa/safe_exec/safe_exec.py | 35 +++++++++---- .../capa/safe_exec/tests/test_safe_exec.py | 52 ++++++++----------- 2 files changed, 45 insertions(+), 42 deletions(-) diff --git a/xmodule/capa/safe_exec/safe_exec.py b/xmodule/capa/safe_exec/safe_exec.py index 21363eb711ef..2fd6be94b8b0 100644 --- a/xmodule/capa/safe_exec/safe_exec.py +++ b/xmodule/capa/safe_exec/safe_exec.py @@ -272,7 +272,7 @@ def safe_exec( local_exc_unexpected = None if isinstance(exception, SafeExecException) else exception report_darklaunch_results( - slug=slug, + limit_overrides_context=limit_overrides_context, slug=slug, globals_local=globals_dict, emsg_local=emsg, unexpected_exc_local=local_exc_unexpected, globals_remote=darklaunch_globals, emsg_remote=remote_emsg, unexpected_exc_remote=remote_exception, ) @@ -347,14 +347,19 @@ def normalize_error_message(emsg): def report_darklaunch_results( - *, slug, + *, limit_overrides_context, slug, globals_local, emsg_local, unexpected_exc_local, globals_remote, emsg_remote, unexpected_exc_remote, ): """Send telemetry for results of darklaunch.""" can_compare_output = True - def report_arm(arm, globals_dict, emsg, unexpected_exception): + def report_arm(arm, emsg, unexpected_exception): + """ + Set custom attributes for each arm of the darklaunch experiment. + + `arm` should be 'local' or 'remote'. + """ nonlocal can_compare_output if unexpected_exception: # .. custom_attribute_name: codejail.darklaunch.status.{local,remote} @@ -373,25 +378,33 @@ def report_arm(arm, globals_dict, emsg, unexpected_exception): set_custom_attribute(f'codejail.darklaunch.status.{arm}', 'ok' if emsg is None else 'safe_error') set_custom_attribute(f'codejail.darklaunch.exception.{arm}', None) - # Logs include full globals and emsg - log.info( - f"Codejail darklaunch {arm} results for slug={slug}: globals={globals_dict!r}, " - f"emsg={emsg!r}, exception={unexpected_exception!r}" - ) - - report_arm('local', globals_local, emsg_local, unexpected_exc_local) - report_arm('remote', globals_remote, emsg_remote, unexpected_exc_remote) + report_arm('local', emsg_local, unexpected_exc_local) + report_arm('remote', emsg_remote, unexpected_exc_remote) # If the arms can't be compared (unexpected errors), stop early -- the rest # is about output comparison. if not can_compare_output: set_custom_attribute('codejail.darklaunch.globals_match', 'N/A') set_custom_attribute('codejail.darklaunch.emsg_match', 'N/A') + log.info( + "Codejail darklaunch had unexpected exception for " + f"course={limit_overrides_context!r}, slug={slug!r}:\n" + f"Local exception: {unexpected_exc_local!r}\n" + f"Remote exception: {unexpected_exc_remote!r}" + ) return globals_match = globals_local == globals_remote emsg_match = normalize_error_message(emsg_local) == normalize_error_message(emsg_remote) + if not globals_match or not emsg_match: + log.info( + f"Codejail darklaunch had mismatch for course={limit_overrides_context!r}, slug={slug!r}:\n" + f"{emsg_match=}, {globals_match=}\n" + f"Local: globals={globals_local!r}, emsg={emsg_local!r}\n" + f"Remote: globals={globals_remote!r}, emsg={emsg_remote!r}" + ) + # .. custom_attribute_name: codejail.darklaunch.globals_match # .. custom_attribute_description: True if local and remote globals_dict # values match, False otherwise. 'N/A' when either arm raised an diff --git a/xmodule/capa/safe_exec/tests/test_safe_exec.py b/xmodule/capa/safe_exec/tests/test_safe_exec.py index 0360d67bc9b4..c2b37eecb74b 100644 --- a/xmodule/capa/safe_exec/tests/test_safe_exec.py +++ b/xmodule/capa/safe_exec/tests/test_safe_exec.py @@ -195,7 +195,10 @@ def run_dark_launch( mock_remote_exec.side_effect = remote try: - safe_exec("", globals_dict) + safe_exec( + "", globals_dict, + limit_overrides_context="course-v1:org+course+run", slug="hw1", + ) except BaseException as e: safe_exec_e = e else: @@ -215,8 +218,8 @@ def run_dark_launch( # These don't change between the tests standard_codejail_attr_calls = [ - call('codejail.slug', None), - call('codejail.limit_overrides_context', None), + call('codejail.slug', 'hw1'), + call('codejail.limit_overrides_context', 'course-v1:org+course+run'), call('codejail.extra_files_count', 0), ] @@ -256,12 +259,11 @@ def remote_exec(data): ], expect_log_info_calls=[ call( - "Codejail darklaunch local results for slug=None: globals={'overwrite': 'mock local'}, " - "emsg=None, exception=None" - ), - call( - "Codejail darklaunch remote results for slug=None: globals={'overwrite': 'mock remote'}, " - "emsg=None, exception=None" + "Codejail darklaunch had mismatch for " + "course='course-v1:org+course+run', slug='hw1':\n" + "emsg_match=True, globals_match=False\n" + "Local: globals={'overwrite': 'mock local'}, emsg=None\n" + "Remote: globals={'overwrite': 'mock remote'}, emsg=None" ), ], # Should only see behavior of local exec @@ -296,12 +298,10 @@ def remote_exec(data): ], expect_log_info_calls=[ call( - "Codejail darklaunch local results for slug=None: globals={}, " - "emsg='unexpected', exception=BaseException('unexpected')" - ), - call( - "Codejail darklaunch remote results for slug=None: globals={}, " - "emsg=None, exception=None" + "Codejail darklaunch had unexpected exception " + "for course='course-v1:org+course+run', slug='hw1':\n" + "Local exception: BaseException('unexpected')\n" + "Remote exception: None" ), ], expect_globals_contains={}, @@ -332,12 +332,11 @@ def remote_exec(data): ], expect_log_info_calls=[ call( - "Codejail darklaunch local results for slug=None: globals={}, " - "emsg='oops', exception=None" - ), - call( - "Codejail darklaunch remote results for slug=None: globals={}, " - "emsg='OH NO', exception=None" + "Codejail darklaunch had mismatch for " + "course='course-v1:org+course+run', slug='hw1':\n" + "emsg_match=False, globals_match=True\n" + "Local: globals={}, emsg='oops'\n" + "Remote: globals={}, emsg='OH NO'" ), ], expect_globals_contains={}, @@ -365,16 +364,7 @@ def remote_exec(data): call('codejail.darklaunch.globals_match', True), call('codejail.darklaunch.emsg_match', True), # even though not exact match ], - expect_log_info_calls=[ - call( - "Codejail darklaunch local results for slug=None: globals={}, " - "emsg='stack trace involving /tmp/codejail-1234567/whatever.py', exception=None" - ), - call( - "Codejail darklaunch remote results for slug=None: globals={}, " - "emsg='stack trace involving /tmp/codejail-abcd_EFG/whatever.py', exception=None" - ), - ], + expect_log_info_calls=[], expect_globals_contains={}, ) assert isinstance(results['raised'], SafeExecException) From a135afec420544919cfc698cf0e43dd935ad61f8 Mon Sep 17 00:00:00 2001 From: Tim McCormack Date: Thu, 8 May 2025 13:43:53 -0400 Subject: [PATCH 014/443] feat!: Expand codejail darklaunch normalizers; append by default (#36682) For darklaunch comparisons where the two sides have different Python versions, we'll want a more comprehensive list of normalizers. - Expand the default list to include patterns discovered during a Python 3.8 vs. 3.12 comparison. - Append the setting value by default, rather than replacing (but still allow replacing). - Use default normalizers if custom ones can't be loaded. - Add log message when loading normalizers fails. - Validate the replacement pattern, not just the search pattern. (cherry picked from commit d5a273ce2f97aa4f6149861860c7edc5e6003cbe) --- xmodule/capa/safe_exec/safe_exec.py | 103 ++++++++++++++---- .../capa/safe_exec/tests/test_safe_exec.py | 61 +++++++++-- 2 files changed, 130 insertions(+), 34 deletions(-) diff --git a/xmodule/capa/safe_exec/safe_exec.py b/xmodule/capa/safe_exec/safe_exec.py index 2fd6be94b8b0..cd7b55357901 100644 --- a/xmodule/capa/safe_exec/safe_exec.py +++ b/xmodule/capa/safe_exec/safe_exec.py @@ -291,6 +291,24 @@ def safe_exec( raise exception +def _compile_normalizers(normalizer_setting): + """ + Compile emsg normalizer search/replace pairs into regex. + + Raises exception on bad settings. + """ + compiled = [] + for pair in normalizer_setting: + search = re.compile(assert_type(pair['search'], str)) + replace = assert_type(pair['replace'], str) + + # Test the replacement string (might contain errors) + re.sub(search, replace, "example") + + compiled.append({'search': search, 'replace': replace}) + return compiled + + @lru_cache(maxsize=1) def emsg_normalizers(): """ @@ -299,38 +317,77 @@ def emsg_normalizers(): The output is like the setting value, except the 'search' patterns have been compiled. """ - default = [ + default_setting = [ { # Character range should be at least as broad as what Python's `tempfile` uses. 'search': r'/tmp/codejail-[0-9a-zA-Z_]+', 'replace': r'/tmp/codejail-', }, + + # These are useful for eliding differences in environments due to Python version: + + { + # Python 3.8 doesn't include the dir here, but Python 3.12 + # does. Normalize to the 3.8 version. + 'search': r'File "/tmp/codejail-/jailed_code"', + 'replace': r'File "jailed_code"' + }, + { + # Python version shows up in stack traces in the virtualenv paths + 'search': r'python3\.[0-9]+', + 'replace': r'python3.XX' + }, + { + # Line numbers in stack traces differ between Python versions + 'search': r', line [0-9]+, in ', + 'replace': r', line XXX, in ' + }, + { + # Some time after 3.8, Python started adding '^^^' indicators to stack traces + 'search': r'\\n\s*\^+\s*\\n', + 'replace': r'\\n' + }, + { + # Python3.8 had these stack trace elements but 3.12 does not + 'search': r'\\n File "[^"]+", line [0-9]+, in \\n', + 'replace': r'\\n' + }, ] + default_normalizers = _compile_normalizers(default_setting) + + # .. setting_name: CODEJAIL_DARKLAUNCH_EMSG_NORMALIZERS + # .. setting_default: [] + # .. setting_description: A list of patterns to search and replace in codejail error + # messages during comparison in codejail-service darklaunch. Each entry is a dict + # of 'search' (a regular expression string) and 'replace' (the replacement string). + # Deployers may also need to add a search/replace pair for the location of the sandbox + # virtualenv, or any other paths that show up in stack traces. + # .. setting_warning: Note that `replace' is a pattern, allowing for + # backreferences. Any backslashes in the replacement pattern that are not + # intended as backreferences should be escaped as `\\`. + # The default list suppresses differences due to the randomly-named sandboxes + # or to differences due to Python version. See setting + # ``CODEJAIL_DARKLAUNCH_EMSG_NORMALIZERS_COMBINE`` for information on how + # this setting interacts with the defaults. + custom_setting = getattr(settings, 'CODEJAIL_DARKLAUNCH_EMSG_NORMALIZERS', []) try: - # .. setting_name: CODEJAIL_DARKLAUNCH_EMSG_NORMALIZERS - # .. setting_default: (see description) - # .. setting_description: A list of patterns to search and replace in codejail error - # messages during comparison in codejail-service darklaunch. Each entry is a dict - # of 'search' (a regular expression string) and 'replace' (the replacement string). - # The default value suppresses differences matching '/tmp/codejail-[0-9a-zA-Z]+', - # the directory structure codejail uses for its random-named sandboxes. Deployers - # may also need to add a search/replace pair for the location of the sandbox - # virtualenv, or any other paths that show up in stack traces. - # .. setting_warning: Note that `replace' is a pattern, allowing for - # backreferences. Any backslashes in the replacement pattern that are not - # intended as backreferences should be escaped as `\\`. - setting = getattr(settings, 'CODEJAIL_DARKLAUNCH_EMSG_NORMALIZERS', default) - - compiled = [] - for pair in setting: - compiled.append({ - 'search': re.compile(assert_type(pair['search'], str)), - 'replace': assert_type(pair['replace'], str), - }) - return compiled + custom_normalizers = _compile_normalizers(custom_setting) except BaseException as e: + log.error("Could not load custom codejail darklaunch emsg normalizers") record_exception() - return [] + return default_normalizers + + # .. setting_name: CODEJAIL_DARKLAUNCH_EMSG_NORMALIZERS_COMBINE + # .. setting_default: 'append' + # .. setting_description: How to combine ``CODEJAIL_DARKLAUNCH_EMSG_NORMALIZERS`` + # with the defaults. If the value is 'replace', the defaults will be replaced + # with the specified patterns. If the value is 'append' (the default), the + # specified replacements will be run after the defaults. + combine = getattr(settings, 'CODEJAIL_DARKLAUNCH_EMSG_NORMALIZERS_COMBINE', 'append') + if combine == 'replace': + return custom_normalizers + else: # 'append', or unknown + return default_normalizers + custom_normalizers def normalize_error_message(emsg): diff --git a/xmodule/capa/safe_exec/tests/test_safe_exec.py b/xmodule/capa/safe_exec/tests/test_safe_exec.py index c2b37eecb74b..d09f8c9d9ba7 100644 --- a/xmodule/capa/safe_exec/tests/test_safe_exec.py +++ b/xmodule/capa/safe_exec/tests/test_safe_exec.py @@ -370,32 +370,71 @@ def remote_exec(data): assert isinstance(results['raised'], SafeExecException) assert 'whatever.py' in repr(results['raised']) + def test_default_normalizers(self): + """ + Default normalizers handle false mismatches we've observed. + + This just provides coverage for some of the more complicated patterns. + """ + side_1 = ( + 'Couldn\'t execute jailed code: stdout: b\'\', stderr: b\'Traceback' + ' (most recent call last):\\n File "/tmp/codejail-9g9715g_/jailed_code"' + ', line 19, in \\n exec(code, g_dict)\\n File ""' + ', line 1, in \\n File "", line 89, in test_add\\n' + ' File "", line 1\\n import random random.choice(range(10))' + '\\n ^\\nSyntaxError: invalid syntax\\n\' with status code: 1' + ) + side_2 = ( + 'Couldn\'t execute jailed code: stdout: b\'\', stderr: b\'Traceback' + ' (most recent call last):\\n File "jailed_code"' + ', line 19, in \\n exec(code, g_dict)\\n File ""' + ', line 203, in \\n File "", line 89, in test_add\\n' + ' File "", line 1\\n import random random.choice(range(10))' + '\\n ^^^^^^\\nSyntaxError: invalid syntax\\n\' with status code: 1' + ) + assert normalize_error_message(side_1) == normalize_error_message(side_2) + @override_settings(CODEJAIL_DARKLAUNCH_EMSG_NORMALIZERS=[ - { - 'search': r'/tmp/codejail-[0-9a-zA-Z]+', - 'replace': r'/tmp/codejail-', - }, { 'search': r'[0-9]+', 'replace': r'', }, ]) def test_configurable_normalizers(self): - """We can override the normalizers, and they run in order.""" + """We can augment the normalizers, and they run in order.""" + emsg_in = "Error in /tmp/codejail-1234abcd/whatever.py: something 12 34 other" + expect_out = "Error in /tmp/codejail-/whatever.py: something other" + assert expect_out == normalize_error_message(emsg_in) + + @override_settings( + CODEJAIL_DARKLAUNCH_EMSG_NORMALIZERS=[ + { + 'search': r'[0-9]+', + 'replace': r'', + }, + ], + CODEJAIL_DARKLAUNCH_EMSG_NORMALIZERS_COMBINE='replace', + ) + def test_can_replace_normalizers(self): + """We can replace the normalizers.""" emsg_in = "Error in /tmp/codejail-1234abcd/whatever.py: something 12 34 other" - expect_out = "Error in /tmp/codejail-/whatever.py: something other" + expect_out = "Error in /tmp/codejail-abcd/whatever.py: something other" assert expect_out == normalize_error_message(emsg_in) @override_settings(CODEJAIL_DARKLAUNCH_EMSG_NORMALIZERS=[ { - 'search': r'broken [', - 'replace': r'replace', + 'search': r'broken', + 'replace': r'replace \g<>', # invalid replacement pattern }, ]) @patch('xmodule.capa.safe_exec.safe_exec.record_exception') - def test_normalizers_validate(self, mock_record_exception): - """Normalizers are validated, and fall back to empty list on error.""" - assert emsg_normalizers() == [] # pylint: disable=use-implicit-booleaness-not-comparison + @patch('xmodule.capa.safe_exec.safe_exec.log.error') + def test_normalizers_validate(self, mock_log_error, mock_record_exception): + """Normalizers are validated, and fall back to default list on error.""" + assert len(emsg_normalizers()) > 0 # pylint: disable=use-implicit-booleaness-not-comparison + mock_log_error.assert_called_once_with( + "Could not load custom codejail darklaunch emsg normalizers" + ) mock_record_exception.assert_called_once() From 100dd88a16196acd255839deb69b191258052c2c Mon Sep 17 00:00:00 2001 From: Tim McCormack Date: Thu, 8 May 2025 16:55:57 -0400 Subject: [PATCH 015/443] fix: Pass limit overrides context to codejail execution in all places (#36685) Some of the calls to `safe_exec` were missing the `limit_overrides_context` parameter. This normally conveys the course key to codejail so that we can give some courses different resource limits, but it's also valuable for diagnosing codejail issues in logs and other telemetry. I wasn't able to test all of these paths manually, but the utility function `get_course_id_from_capa_block` will swallow errors, so the situation should be no worse if the `LoncapaResponse.capa_block` field has something unexpected. (cherry picked from commit 4c462918e8bbf1e0a9b18fdba88e985e9d5a22a4) --- xmodule/capa/responsetypes.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/xmodule/capa/responsetypes.py b/xmodule/capa/responsetypes.py index 73378e7c0a2b..6155fe926ea7 100644 --- a/xmodule/capa/responsetypes.py +++ b/xmodule/capa/responsetypes.py @@ -2140,6 +2140,9 @@ def check_function(expect, ans, **kwargs): globals_dict, python_path=self.context['python_path'], extra_files=self.context['extra_files'], + limit_overrides_context=get_course_id_from_capa_block( + self.capa_block + ), slug=self.id, random_seed=self.context['seed'], unsafely=self.capa_system.can_execute_unsafe_code(), @@ -2291,6 +2294,9 @@ def execute_check_function(self, idset, submission): # lint-amnesty, pylint: di cache=self.capa_system.cache, python_path=self.context['python_path'], extra_files=self.context['extra_files'], + limit_overrides_context=get_course_id_from_capa_block( + self.capa_block + ), slug=self.id, random_seed=self.context['seed'], unsafely=self.capa_system.can_execute_unsafe_code(), @@ -3274,6 +3280,9 @@ def get_score(self, student_answers): cache=self.capa_system.cache, python_path=self.context['python_path'], extra_files=self.context['extra_files'], + limit_overrides_context=get_course_id_from_capa_block( + self.capa_block + ), slug=self.id, random_seed=self.context['seed'], unsafely=self.capa_system.can_execute_unsafe_code(), From 930d0bc29aa0fbe1862e5e6be826aeab01931086 Mon Sep 17 00:00:00 2001 From: Navin Karkera Date: Tue, 20 May 2025 20:52:00 +0000 Subject: [PATCH 016/443] fix: support legacy studio_view in v2 library (#36748) Fix "Add" button in LTI editor in v2 library. The iframe studio view renderer in library now supports legacy studio view. (cherry picked from commit 1002f5f91ba04f544da0abee920a814169848ebb) --- cms/envs/common.py | 2 + common/templates/xblock_v2/xblock_iframe.html | 44 +++++++------------ 2 files changed, 19 insertions(+), 27 deletions(-) diff --git a/cms/envs/common.py b/cms/envs/common.py index 787db40bd308..6c8fe3d1cb47 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -2919,6 +2919,8 @@ def _should_send_learning_badge_events(settings): 'google-calendar', 'google-document', 'invideoquiz', + 'lti', + 'lti_consumer', 'pdf', 'poll', 'survey', diff --git a/common/templates/xblock_v2/xblock_iframe.html b/common/templates/xblock_v2/xblock_iframe.html index ba4828df02ae..10fedc3b9539 100644 --- a/common/templates/xblock_v2/xblock_iframe.html +++ b/common/templates/xblock_v2/xblock_iframe.html @@ -273,8 +273,6 @@ // Check if the XBlock has an initialization function: const initFunctionName = element.getAttribute('data-init'); if (initFunctionName !== null) { - // Since this block has an init function, it may need to call handlers: - element[HANDLER_URL] = HANDLER_URL_MAP[usageId]; // Now proceed with initializing the block's JavaScript: const InitFunction = (window)[initFunctionName]; // Does the XBlock HTML contain arguments to pass to the InitFunction? @@ -293,13 +291,12 @@ // to pass 'element' as a jQuery-wrapped DOM element, whereas the LMS // runtime used to pass 'element' as the pure DOM node. In order not to // break backwards compatibility, we would need to maintain that. - // However, this is currently disabled as it causes issues (need to - // modify the runtime methods like handlerUrl too), and we decided not - // to maintain support for legacy studio_view in this runtime. - // const isStudioView = element.className.indexOf('studio_view') !== -1; - // const passElement = isStudioView && (window as any).$ ? (window as any).$(element) : element; - const blockJS = new InitFunction(runtime, element, data) || {}; - blockJS.element = element; + const isStudioView = element.className.indexOf('studio_view') !== -1; + const passElement = isStudioView && window.$ ? window.$(element) : element; + // Since this block has an init function, it may need to call handlers: + passElement[HANDLER_URL] = HANDLER_URL_MAP[usageId]; + const blockJS = new InitFunction(runtime, passElement, data) || {}; + blockJS.element = passElement; if (['MetadataOnlyEditingDescriptor', 'SequenceDescriptor'].includes(data['xmodule-type'])) { // The xmodule type `MetadataOnlyEditingDescriptor` and `SequenceDescriptor` renders a `
` with @@ -308,7 +305,7 @@ // editor using the metadata. require(['{{ cms_root_url }}/static/studio/js/views/xblock_editor.js'], function(XBlockEditorView) { var editorView = new XBlockEditorView({ - el: element, + el: passElement, xblock: blockJS, }); // To render block using metadata @@ -327,35 +324,28 @@
`; - element.innerHTML += xblockActions; - - const views = editorView.getMetadataEditor().views; - Object.values(views).forEach(view => { - const uniqueId = view.uniqueId; - const input = element.querySelector(`#${uniqueId}`); - if (input) { - input.addEventListener("input", function(event) { - view.model.setValue(event.target.value); - }); - } - }); - + // Check if passElement is a jQuery-wrapped dom element + if (passElement.jquery) { + passElement.append(xblockActions); + } else { + passElement.innerHTML += xblockActions; + } // Adding cancel functionality - $('.cancel-button', element).bind('click', function() { + $('.cancel-button', passElement).bind('click', function() { runtime.notify('cancel', {}); event.preventDefault(); }); // Adding save functionality - $('.save-button', element).bind('click', function() { + $('.save-button', passElement).bind('click', function() { //event.preventDefault(); - var error_message_div = $('.xblock-editor-error-message', element); + var error_message_div = $('.xblock-editor-error-message', passElement); const modifiedData = editorView.getChangedMetadata(); error_message_div.html(); error_message_div.css('display', 'none'); - var handlerUrl = runtime.handlerUrl(element, 'studio_submit'); + var handlerUrl = runtime.handlerUrl(passElement, 'studio_submit'); runtime.notify('save', {state: 'start', message: gettext("Saving")}); From 9a4509a9c61db5961dd55934621ae43d15bcaf4f Mon Sep 17 00:00:00 2001 From: Tim McCormack <59623490+timmc-edx@users.noreply.github.com> Date: Wed, 21 May 2025 14:14:51 -0400 Subject: [PATCH 017/443] Merge commit from fork Allow overriding but prevent download by default. Also, extract `PYTHON_LIB_FILENAME` Django setting as a shared function and document the setting. --- .../contentstore/tests/test_import.py | 3 +- common/test/data/toy/static/python_lib.zip | Bin 0 -> 208 bytes .../contentserver/test/test_contentserver.py | 82 ++++++++++++++++++ .../core/djangoapps/contentserver/views.py | 52 +++++++++-- openedx/core/lib/xblock_serializer/utils.py | 6 +- xmodule/util/sandboxing.py | 14 ++- 6 files changed, 146 insertions(+), 11 deletions(-) create mode 100644 common/test/data/toy/static/python_lib.zip diff --git a/cms/djangoapps/contentstore/tests/test_import.py b/cms/djangoapps/contentstore/tests/test_import.py index 73b65197daeb..260636b51baa 100644 --- a/cms/djangoapps/contentstore/tests/test_import.py +++ b/cms/djangoapps/contentstore/tests/test_import.py @@ -146,6 +146,7 @@ def test_asset_import_nostatic(self): import_course_from_xml( module_store, self.user.id, TEST_DATA_DIR, ['toy'], static_content_store=content_store, do_import_static=False, + do_import_python_lib=False, # python_lib.zip is special-cased -- exclude it too create_if_not_present=True, verbose=True ) @@ -153,7 +154,7 @@ def test_asset_import_nostatic(self): # make sure we have NO assets in our contentstore all_assets, count = content_store.get_all_content_for_course(course.id) - self.assertEqual(len(all_assets), 0) + self.assertEqual(all_assets, []) self.assertEqual(count, 0) def test_no_static_link_rewrites_on_import(self): diff --git a/common/test/data/toy/static/python_lib.zip b/common/test/data/toy/static/python_lib.zip new file mode 100644 index 0000000000000000000000000000000000000000..5854e82b68d9af5b4142c3f1a5b9bebfb7684285 GIT binary patch literal 208 zcmWIWW@h1H00A}cg;9rIq&lgA*g(w1Aj6Pel$es4m#$Y(85+XLz-(S7oB_h672FJr zEH9WD7{EkIYMMf3aeQi7YMw@grWKb05EP}BlosVFR4Aw_7%AA=Dj0ADcr!A|G2^mJ l0^|e+Mj+nO2x1}I%nGp?&DH>KRyL4IMj#9T(pex50|1QbDPjNs literal 0 HcmV?d00001 diff --git a/openedx/core/djangoapps/contentserver/test/test_contentserver.py b/openedx/core/djangoapps/contentserver/test/test_contentserver.py index 4c0180c402e9..df29b64d2781 100644 --- a/openedx/core/djangoapps/contentserver/test/test_contentserver.py +++ b/openedx/core/djangoapps/contentserver/test/test_contentserver.py @@ -102,6 +102,11 @@ def setUpClass(cls): cls.url_unlocked_versioned_old_style = get_old_style_versioned_asset_url(cls.url_unlocked) cls.length_unlocked = cls.contentstore.get_attr(cls.unlocked_asset, 'length') + # Special case: python_lib.zip + cls.pylib_asset = cls.course_key.make_asset_key('asset', 'python_lib.zip') + cls.url_pylib = '/' + str(cls.pylib_asset) + cls.contentstore.set_attr(cls.pylib_asset, 'locked', False) + def setUp(self): """ Create user and login. @@ -208,6 +213,83 @@ def test_locked_asset_staff(self): resp = self.client.get(self.url_locked) assert resp.status_code == 200 + def test_python_lib_zip_staff(self): + """ + Test that staff can download python_lib.zip. + """ + self.client.login(username=self.staff_usr, password=self.TEST_PASSWORD) + resp = self.client.get(self.url_pylib) + assert resp.status_code == 200 + assert resp['Cache-Control'] == 'private, no-cache, no-store' + + def test_python_lib_zip_not_staff(self): + """ + Test that python_lib.zip cannot be downloaded by non-staff by default. + """ + self.client.login(username=self.non_staff_usr, password=self.TEST_PASSWORD) + resp = self.client.get(self.url_pylib) + assert resp.status_code == 403 + # We should be sending a no-cache header, but the contentserver + # currently doesn't set caching headers for "unauthorized" responses. So + # this test allows either in order to make the transition easier if we + # fix that. + assert 'Cache-Control' not in resp or resp['Cache-Control'] == 'private, no-cache, no-store' + + @patch( + 'openedx.core.djangoapps.contentserver.views.COURSE_CODE_LIBRARY_DOWNLOAD_ALLOWED.is_enabled', + return_value=True, + ) + def test_python_lib_zip_not_staff_but_course_allows_it(self, mock_download_allowed_flag): + """ + Test that python_lib.zip can be downloaded by non-staff when flag enabled. + """ + self.client.login(username=self.non_staff_usr, password=self.TEST_PASSWORD) + resp = self.client.get(self.url_pylib) + assert resp.status_code == 200 + assert resp['Cache-Control'] == 'private, no-cache, no-store' + + mock_download_allowed_flag.assert_called_once_with(self.course_key) + + @patch( + 'openedx.core.djangoapps.contentserver.views.COURSE_CODE_LIBRARY_DOWNLOAD_ALLOWED.is_enabled', + return_value=True, + ) + @patch( + 'openedx.core.djangoapps.contentserver.views.is_content_locked', + return_value=True, + ) + def test_python_lib_zip_can_be_locked(self, mock_is_locked, mock_download_allowed_flag): + """ + Even when python_lib.zip download is broadly allowed, it can be locked. + """ + self.client.login(username=self.non_staff_usr, password=self.TEST_PASSWORD) + resp = self.client.get(self.url_pylib) + assert resp.status_code == 403 + assert 'Cache-Control' not in resp or resp['Cache-Control'] == 'private, no-cache, no-store' + + assert mock_is_locked.call_count == 2 # for auth check, then caching check + mock_download_allowed_flag.assert_called_once_with(self.course_key) + + @ddt.data(True, False) + def test_python_lib_zip_uses_studio_read_check(self, allow): + """ + Specifically check that python_lib.zip is gated on studio read access. + + Ideally this test would actually check access for a course team member + who is *not* site staff/superuser, but that would require more + complicated setup. + """ + self.client.login(username=self.non_staff_usr, password=self.TEST_PASSWORD) + with patch('openedx.core.djangoapps.contentserver.views.has_studio_read_access', return_value=allow): + resp = self.client.get(self.url_pylib) + + if allow: + assert resp.status_code == 200 + assert resp['Cache-Control'] == 'private, no-cache, no-store' + else: + assert resp.status_code == 403 + assert 'Cache-Control' not in resp or resp['Cache-Control'] == 'private, no-cache, no-store' + def test_range_request_full_file(self): """ Test that a range request from byte 0 to last, diff --git a/openedx/core/djangoapps/contentserver/views.py b/openedx/core/djangoapps/contentserver/views.py index 3a267f085222..cbdb4124fef7 100644 --- a/openedx/core/djangoapps/contentserver/views.py +++ b/openedx/core/djangoapps/contentserver/views.py @@ -21,13 +21,16 @@ from opaque_keys import InvalidKeyError from opaque_keys.edx.locator import AssetLocator +from common.djangoapps.student.auth import has_studio_read_access from common.djangoapps.student.models import CourseEnrollment from openedx.core.djangoapps.header_control import force_header_for_response +from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag from xmodule.assetstore.assetmgr import AssetManager from xmodule.contentstore.content import XASSET_LOCATION_TAG, StaticContent from xmodule.exceptions import NotFoundError from xmodule.modulestore import InvalidLocationError from xmodule.modulestore.exceptions import ItemNotFoundError +from xmodule.util.sandboxing import course_code_library_asset_name from .caching import get_cached_content, set_cached_content from .models import CdnUserAgentsConfig, CourseAssetCacheTtlConfig @@ -197,17 +200,21 @@ def process_request(request): # middleware we have in place, there's no easy way to use the built-in Django # utilities and properly sanitize and modify a response to ensure that it is as # cacheable as possible, which is why we do it ourselves. - set_caching_headers(content, response) + set_caching_headers(content, loc, response) return response -def set_caching_headers(content, response): +def set_caching_headers(content, location, response): """ - Sets caching headers based on whether or not the asset is locked. + Sets caching headers based on whether or not the asset is restricted. """ - is_locked = getattr(content, "locked", False) + is_pylib = location.path == course_code_library_asset_name() + + # All classes of asset that have any kind of access control should be marked + # as non-cacheable. + is_restricted = is_locked or is_pylib # We want to signal to the end user's browser, and to any intermediate proxies/caches, # whether or not this asset is cacheable. If we have a TTL configured, we inform the @@ -215,12 +222,12 @@ def set_caching_headers(content, response): # assets should be restricted to enrolled students, we simply send headers that # indicate there should be no caching whatsoever. cache_ttl = CourseAssetCacheTtlConfig.get_cache_ttl() - if cache_ttl > 0 and not is_locked: + if cache_ttl > 0 and not is_restricted: set_custom_attribute('contentserver.cacheable', True) response['Expires'] = get_expiration_value(datetime.datetime.utcnow(), cache_ttl) response['Cache-Control'] = "public, max-age={ttl}, s-maxage={ttl}".format(ttl=cache_ttl) - elif is_locked: + elif is_restricted: set_custom_attribute('contentserver.cacheable', False) response['Cache-Control'] = "private, no-cache, no-store" @@ -264,10 +271,43 @@ def is_content_locked(content): return bool(getattr(content, "locked", False)) +# .. toggle_name: course_assets.allow_download_code_library +# .. toggle_implementation: CourseWaffleFlag +# .. toggle_default: False +# .. toggle_description: Whether to allow learners to download the course code library +# that is used for custom Python-graded problem blocks. (This is conventionally +# ``python_lib.zip``, but configurable with Django setting ``PYTHON_LIB_FILENAME``). +# This file may contain custom grading code or problem answers that should not be +# revealed to learners. +# .. toggle_warning: This flag is only intended as a temporary override for use +# in rollout, to be removed before Ulmo. Courses that rely on learners being able +# to download the code library should find an alternative workflow, or the toggle +# should be re-documented as permanent. +# .. toggle_use_cases: temporary +# .. toggle_creation_date: 2025-05-01 +# .. toggle_target_removal_date: 2025-10-01 +COURSE_CODE_LIBRARY_DOWNLOAD_ALLOWED = CourseWaffleFlag( + 'course_assets.allow_download_code_library', module_name=__name__, +) + + def is_user_authorized(request, content, location): """ Determines whether or not the user for this request is authorized to view the given asset. + + Any asset classes that have restrictions placed on them should also + be marked as no-cache in `set_caching_headers`. """ + # Special-case python_lib.zip, since it often contains grading code that + # shouldn't be revealed to learners. + if location.path == course_code_library_asset_name(): + if has_studio_read_access(request.user, location.course_key) or \ + COURSE_CODE_LIBRARY_DOWNLOAD_ALLOWED.is_enabled(location.course_key): + # Fall through to other access checks + pass + else: + return False + if not is_content_locked(content): return True diff --git a/openedx/core/lib/xblock_serializer/utils.py b/openedx/core/lib/xblock_serializer/utils.py index e78c900b1887..6f48eef391e7 100644 --- a/openedx/core/lib/xblock_serializer/utils.py +++ b/openedx/core/lib/xblock_serializer/utils.py @@ -2,11 +2,11 @@ Helper functions for XBlock serialization """ from __future__ import annotations + import logging import re from contextlib import contextmanager -from django.conf import settings from fs.memoryfs import MemoryFS from fs.wrapfs import WrapFS from opaque_keys import InvalidKeyError @@ -17,7 +17,7 @@ from xmodule.contentstore.content import StaticContent from xmodule.exceptions import NotFoundError from xmodule.modulestore.exceptions import ItemNotFoundError -from xmodule.util.sandboxing import DEFAULT_PYTHON_LIB_FILENAME +from xmodule.util.sandboxing import course_code_library_asset_name from xmodule.xml_block import XmlMixin from .data import StaticFile @@ -105,7 +105,7 @@ def get_python_lib_zip_if_using(olx: str, course_id: CourseKey) -> StaticFile | using python_lib.zip """ if _has_python_script(olx): - python_lib_filename = getattr(settings, 'PYTHON_LIB_FILENAME', DEFAULT_PYTHON_LIB_FILENAME) + python_lib_filename = course_code_library_asset_name() asset_key = StaticContent.get_asset_key_from_path(course_id, python_lib_filename) # Now, it seems like this capa problem uses python_lib.zip - but does it exist in the course? if AssetManager.find(asset_key, throw_on_not_found=False): diff --git a/xmodule/util/sandboxing.py b/xmodule/util/sandboxing.py index 12c4243acfc5..a8883ba3e93d 100644 --- a/xmodule/util/sandboxing.py +++ b/xmodule/util/sandboxing.py @@ -7,6 +7,18 @@ DEFAULT_PYTHON_LIB_FILENAME = 'python_lib.zip' +def course_code_library_asset_name(): + """ + Return the asset name to use for course code libraries, defaulting to python_lib.zip. + """ + # .. setting_name: PYTHON_LIB_FILENAME + # .. setting_default: python_lib.zip + # .. setting_description: Name of the course file to make available to code in + # custom Python-graded problems. By default, this file will not be downloadable + # by learners. + return getattr(settings, 'PYTHON_LIB_FILENAME', DEFAULT_PYTHON_LIB_FILENAME) + + def can_execute_unsafe_code(course_id): """ Determine if this course is allowed to run unsafe code. @@ -34,7 +46,7 @@ def can_execute_unsafe_code(course_id): def get_python_lib_zip(contentstore, course_id): """Return the bytes of the course code library file, if it exists.""" - python_lib_filename = getattr(settings, 'PYTHON_LIB_FILENAME', DEFAULT_PYTHON_LIB_FILENAME) + python_lib_filename = course_code_library_asset_name() asset_key = course_id.make_asset_key("asset", python_lib_filename) zip_lib = contentstore().find(asset_key, throw_on_not_found=False) if zip_lib is not None: From 481acb3776ce1d760ee6b60955cc073a23f14449 Mon Sep 17 00:00:00 2001 From: Daniel Valenzuela Date: Wed, 21 May 2025 21:27:12 -0400 Subject: [PATCH 018/443] fix: open mfe modal editor of new duplicated xblock (#36641) (#36766) When duplicating an xblock in the authoring MFE, the iframe was opening its own editor modal instead of the MFE modal. --- .../v1/serializers/course_waffle_flags.py | 7 ++++++ .../rest_api/v1/views/course_waffle_flags.py | 3 ++- .../views/tests/test_course_waffle_flags.py | 1 + cms/static/js/views/pages/container.js | 23 +++++++++++-------- 4 files changed, 23 insertions(+), 11 deletions(-) diff --git a/cms/djangoapps/contentstore/rest_api/v1/serializers/course_waffle_flags.py b/cms/djangoapps/contentstore/rest_api/v1/serializers/course_waffle_flags.py index 3a885f8c96bc..dca8e25cb435 100644 --- a/cms/djangoapps/contentstore/rest_api/v1/serializers/course_waffle_flags.py +++ b/cms/djangoapps/contentstore/rest_api/v1/serializers/course_waffle_flags.py @@ -29,6 +29,7 @@ class CourseWaffleFlagsSerializer(serializers.Serializer): use_new_group_configurations_page = serializers.SerializerMethodField() enable_course_optimizer = serializers.SerializerMethodField() use_react_markdown_editor = serializers.SerializerMethodField() + use_video_gallery_flow = serializers.SerializerMethodField() def get_course_key(self): """ @@ -160,3 +161,9 @@ def get_use_react_markdown_editor(self, obj): """ course_key = self.get_course_key() return toggles.use_react_markdown_editor(course_key) + + def get_use_video_gallery_flow(self, obj): + """ + Method to get the use_video_gallery_flow waffle flag + """ + return toggles.use_video_gallery_flow() diff --git a/cms/djangoapps/contentstore/rest_api/v1/views/course_waffle_flags.py b/cms/djangoapps/contentstore/rest_api/v1/views/course_waffle_flags.py index 47dacdab27d1..69b2898912aa 100644 --- a/cms/djangoapps/contentstore/rest_api/v1/views/course_waffle_flags.py +++ b/cms/djangoapps/contentstore/rest_api/v1/views/course_waffle_flags.py @@ -61,8 +61,9 @@ def get(self, request, course_id=None): "use_new_course_team_page": true, "use_new_certificates_page": true, "use_new_textbooks_page": true, - "use_new_group_configurations_page": true + "use_new_group_configurations_page": true, "use_react_markdown_editor": true, + "use_video_gallery_flow": true } ``` """ diff --git a/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py b/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py index 1d58f99d386c..ad5696834af2 100644 --- a/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py +++ b/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py @@ -34,6 +34,7 @@ class CourseWaffleFlagsViewTest(CourseTestCase): 'use_new_updates_page': True, 'use_new_video_uploads_page': False, 'use_react_markdown_editor': False, + 'use_video_gallery_flow': False, } def setUp(self): diff --git a/cms/static/js/views/pages/container.js b/cms/static/js/views/pages/container.js index 39b6ba30a3f4..3f02ae600a0b 100644 --- a/cms/static/js/views/pages/container.js +++ b/cms/static/js/views/pages/container.js @@ -64,6 +64,8 @@ function($, _, Backbone, gettext, BasePage, this.isLibraryPage = this.model.attributes.category === 'library'; this.isLibraryContentPage = this.model.attributes.category === 'library_content'; this.isSplitTestContentPage = this.model.attributes.category === 'split_test'; + this.isVerticalContentPage = this.model.attributes.category === 'vertical'; + this.nameEditor = new XBlockStringFieldEditor({ el: this.$('.wrapper-xblock-field'), model: this.model @@ -160,6 +162,9 @@ function($, _, Backbone, gettext, BasePage, case 'completeManageXBlockAccess': this.refreshXBlock(xblockElement, false); break; + case 'completeXBlockDuplicating': + this.refreshXBlock(xblockElement, true, true); + break; case 'completeXBlockMoving': xblockWrapper.hide(); break; @@ -1153,15 +1158,7 @@ function($, _, Backbone, gettext, BasePage, || (useNewVideoEditor === 'True' && blockType.includes('video')) || (useNewProblemEditor === 'True' && blockType.includes('problem'))) ){ - var destinationUrl; - if (useVideoGalleryFlow === 'True' && blockType.includes('video')) { - destinationUrl = this.$('.xblock-header-primary').attr("authoring_MFE_base_url") + '/course-videos/' + encodeURI(data.locator); - } - else { - destinationUrl = this.$('.xblock-header-primary').attr("authoring_MFE_base_url") + '/' + blockType[1] + '/' + encodeURI(data.locator); - } - - if (this.options.isIframeEmbed && this.isSplitTestContentPage) { + if (this.options.isIframeEmbed && (this.isSplitTestContentPage || this.isVerticalContentPage)) { return this.postMessageToParent({ type: 'handleRedirectToXBlockEditPage', message: 'Redirect to xBlock edit page', @@ -1171,7 +1168,13 @@ function($, _, Backbone, gettext, BasePage, }, }); } - + var destinationUrl; + if (useVideoGalleryFlow === 'True' && blockType.includes('video')) { + destinationUrl = this.$('.xblock-header-primary').attr("authoring_MFE_base_url") + '/course-videos/' + encodeURI(data.locator); + } + else { + destinationUrl = this.$('.xblock-header-primary').attr("authoring_MFE_base_url") + '/' + blockType[1] + '/' + encodeURI(data.locator); + } window.location.href = destinationUrl; return; } From 4146b3c2aae8dd48101c227934bdf9e9866b15ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20Ch=C3=A1vez?= Date: Wed, 21 May 2025 20:40:12 -0500 Subject: [PATCH 019/443] fix: TinyMCE editor in advanced block editors [FC-0076] (#36754) (#36772) * fix: TinyMCE editors in advanced block editors * Sets baseUrl to avoid an error in: https://github.com/openedx/XBlock/blob/86eee4b05dffa42b009fab2a9050b73766131b9d/xblock/utils/public/studio_edit.js#L52 * Uncouple the listener func of the cancel button (see the comment) * chore: Add `edx_sga` in `LIBRARY_ENABLED_BLOCKS` --- cms/envs/common.py | 1 + common/templates/xblock_v2/xblock_iframe.html | 26 ++++++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/cms/envs/common.py b/cms/envs/common.py index 6c8fe3d1cb47..65425f566597 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -2915,6 +2915,7 @@ def _should_send_learning_badge_events(settings): 'openassessment', 'conditional', 'done', + 'edx_sga', 'freetextresponse', 'google-calendar', 'google-document', diff --git a/common/templates/xblock_v2/xblock_iframe.html b/common/templates/xblock_v2/xblock_iframe.html index 10fedc3b9539..ab635a4af182 100644 --- a/common/templates/xblock_v2/xblock_iframe.html +++ b/common/templates/xblock_v2/xblock_iframe.html @@ -40,6 +40,7 @@ // The minimal RequireJS configuration required for common LMS and CMS building XBlock types to work: require = require || RequireJS.require; define = define || RequireJS.define; + baseUrl = ""; (function (require, define) { if ('{{ view_name | safe }}' === 'studio_view') { // Call `require-config.js` of the CMS @@ -47,9 +48,10 @@ script.type = 'text/javascript'; script.src = "{{ cms_root_url }}/static/studio/cms/js/require-config.js"; document.head.appendChild(script); + baseUrl = "{{ cms_root_url }}/static/studio"; require.config({ - baseUrl: "{{ cms_root_url }}/static/studio", + baseUrl, paths: { accessibility: 'js/src/accessibility_tools', draggabilly: 'js/vendor/draggabilly', @@ -64,8 +66,9 @@ "{{ lms_root_url }}/static/dist{{ oa_manifest.oa_editor_textarea_js }}", ]); } else { + baseUrl = "{{ lms_root_url }}/static/"; require.config({ - baseUrl: "{{ lms_root_url }}/static/", + baseUrl, paths: { accessibility: 'js/src/accessibility_tools', draggabilly: 'js/vendor/draggabilly', @@ -375,7 +378,6 @@ if ('{{ view_name | safe }}' === 'studio_view') { // Used when rendering the `studio_view`, in order to avoid open a new tab on click cancel or save const selectors = [ - '.cancel-button', '.save-button', '.action-cancel', '.action-save', @@ -391,6 +393,24 @@ }); } } + + // This button is used in `StudioEditableXBlockMixin` from the `Xblock` app + // That app adds a listener that removes any TinyMCE editors on click cancel. + // ref: https://github.com/openedx/XBlock/blob/86eee4b05dffa42b009fab2a9050b73766131b9d/xblock/utils/public/studio_edit.js#L169 + // + // Here that is an issue because we show a confirmation modal when clicking cancel, + // if the user stays to edit all TinyMCE editors are no longer there. + // + // We uncouple the listener to avoid remove the TinyMCE editors + const extraCancelSelector = '.cancel-button'; + const elements = $(extraCancelSelector).first(); + if (elements.length) { + elements.first().unbind("click"); + elements.on('click', function() { + event.preventDefault(); + runtime.notify('cancel', {}); + }); + } } } From 6f05f70d66468dd0ba0a54e3b17eea0f861951d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20Ch=C3=A1vez?= Date: Wed, 21 May 2025 20:52:12 -0500 Subject: [PATCH 020/443] fix: clear buttons in advanced components editors in Libraries (#36752) (#36771) --- cms/static/js/views/metadata.js | 9 +++++++-- cms/static/js/views/xblock_editor.js | 5 +++-- common/templates/xblock_v2/xblock_iframe.html | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/cms/static/js/views/metadata.js b/cms/static/js/views/metadata.js index 1dda68b30947..07aa1bed971a 100644 --- a/cms/static/js/views/metadata.js +++ b/cms/static/js/views/metadata.js @@ -60,13 +60,18 @@ define( /** * Returns just the modified metadata values, in the format used to persist to the server. + * Set `replaceNullWithDefault` to true to replace null values with the default values */ - getModifiedMetadataValues: function() { + getModifiedMetadataValues: function(replaceNullWithDefault = false) { var modified_values = {}; this.collection.each( function(model) { if (model.isModified()) { - modified_values[model.getFieldName()] = model.getValue(); + let value = model.getValue(); + if (replaceNullWithDefault && value === null) { + value = model.getDisplayValue(); + } + modified_values[model.getFieldName()] = value } } ); diff --git a/cms/static/js/views/xblock_editor.js b/cms/static/js/views/xblock_editor.js index 52d08dc76fb4..b6bae05bb9dc 100644 --- a/cms/static/js/views/xblock_editor.js +++ b/cms/static/js/views/xblock_editor.js @@ -125,10 +125,11 @@ function($, _, gettext, BaseView, XBlockView, MetadataView, MetadataCollection) /** * Returns the metadata that has changed in the editor. This is a combination of the metadata * modified in the "Settings" editor, as well as any custom metadata provided by the component. + * Set `replaceNullWithDefault` to true to replace null values with the default values. */ - getChangedMetadata: function() { + getChangedMetadata: function(replaceNullWithDefault = false) { var metadataEditor = this.getMetadataEditor(); - return _.extend(metadataEditor.getModifiedMetadataValues(), this.getCustomMetadata()); + return _.extend(metadataEditor.getModifiedMetadataValues(replaceNullWithDefault), this.getCustomMetadata()); }, /** diff --git a/common/templates/xblock_v2/xblock_iframe.html b/common/templates/xblock_v2/xblock_iframe.html index ab635a4af182..cd3096aa4626 100644 --- a/common/templates/xblock_v2/xblock_iframe.html +++ b/common/templates/xblock_v2/xblock_iframe.html @@ -343,7 +343,7 @@ $('.save-button', passElement).bind('click', function() { //event.preventDefault(); var error_message_div = $('.xblock-editor-error-message', passElement); - const modifiedData = editorView.getChangedMetadata(); + const modifiedData = editorView.getChangedMetadata(true); error_message_div.html(); error_message_div.css('display', 'none'); From 8bcdfbf62027a141149061087cb91d3f2482792b Mon Sep 17 00:00:00 2001 From: Jillian Date: Fri, 23 May 2025 00:52:33 +0930 Subject: [PATCH 021/443] fix: recurse through pasted block data to replace static paths (#36723) (#36773) Fixes an error that is triggered when trying to copy/pasting Drag-and-drop block into Courses. When a block is pasted into a Course or Library, we perform a search/replace on block's data to replace any old static URLs with their new path. Ordinary blocks like HTML and Video have a simple string of data where static URLs may live, but DnDv2 blocks have a dict of data which can contain other dicts and lists of strings that need to be modified. Other XBlocks may have similarly complex structures, and so this fix will resolve them as well. This fixes the issue by recursing into the data structure to locate all the strings where replacements may need to be made. This fix helps Course Authors use content staging in their Courses. (cherry picked from commit 21399b48189a3766f2dd3e3347cab909e777a889) --- cms/djangoapps/contentstore/helpers.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/cms/djangoapps/contentstore/helpers.py b/cms/djangoapps/contentstore/helpers.py index f80e304fb791..ff2020afd89f 100644 --- a/cms/djangoapps/contentstore/helpers.py +++ b/cms/djangoapps/contentstore/helpers.py @@ -315,7 +315,8 @@ def _insert_static_files_into_downstream_xblock( if hasattr(downstream_xblock, "data") and substitutions: data_with_substitutions = downstream_xblock.data for old_static_ref, new_static_ref in substitutions.items(): - data_with_substitutions = data_with_substitutions.replace( + data_with_substitutions = _replace_strings( + data_with_substitutions, old_static_ref, new_static_ref, ) @@ -325,6 +326,26 @@ def _insert_static_files_into_downstream_xblock( return notices +def _replace_strings(obj: dict | list | str, old_str: str, new_str: str): + """ + Replacing any instances of the given `old_str` string with `new_str` in any strings found in the the given object. + + Returns the updated object. + """ + if isinstance(obj, dict): + for key, value in obj.items(): + obj[key] = _replace_strings(value, old_str, new_str) + + elif isinstance(obj, list): + for index, item in enumerate(obj): + obj[index] = _replace_strings(item, old_str, new_str) + + elif isinstance(obj, str): + return obj.replace(old_str, new_str) + + return obj + + def import_staged_content_from_user_clipboard(parent_key: UsageKey, request) -> tuple[XBlock | None, StaticFileNotices]: """ Import a block (along with its children and any required static assets) from From 1a38252365361d796f964ce91bdcdbfc5a1ef0bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=B4mulo=20Penido?= Date: Fri, 23 May 2025 02:25:24 -0300 Subject: [PATCH 022/443] fix: remove double edit buttons on unit outline (#36770) (#36780) --- cms/templates/studio_xblock_wrapper.html | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/cms/templates/studio_xblock_wrapper.html b/cms/templates/studio_xblock_wrapper.html index f349ea978686..7ecf2997220a 100644 --- a/cms/templates/studio_xblock_wrapper.html +++ b/cms/templates/studio_xblock_wrapper.html @@ -211,13 +211,12 @@ % endif - % if not show_inline: -
  • - - ${_("Details")} - -
  • - % endif + % elif not show_inline: +
  • + + ${_("Details")} + +
  • % endif % endif From 781a7b14d780ce3a42bae8e3b03f874cfd23a802 Mon Sep 17 00:00:00 2001 From: Tony Busa <70979397+tonybusa@users.noreply.github.com> Date: Tue, 3 Jun 2025 11:42:17 -0600 Subject: [PATCH 023/443] fix: add _top target to view link to open separate route outside of iframe (#36838) --- xmodule/item_bank_block.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xmodule/item_bank_block.py b/xmodule/item_bank_block.py index 7adf935e48ee..b53617e2c8e4 100644 --- a/xmodule/item_bank_block.py +++ b/xmodule/item_bank_block.py @@ -512,7 +512,7 @@ def author_view(self, context): # Show a summary message and instructions. summary_html = loader.render_django_template('templates/item_bank/author_view.html', { # Due to template interpolation limitations, we have to pass some HTML for the link here: - "view_link": f'', + "view_link": f'', "blocks": [ {"display_name": display_name_with_default(child)} for child in self.get_children() From c318e47e53aceabfd3521b2be0a677cff8214f7f Mon Sep 17 00:00:00 2001 From: KEVYN SUAREZ <91025555+efortish@users.noreply.github.com> Date: Thu, 29 May 2025 11:09:39 -0500 Subject: [PATCH 024/443] fix: Certificates display signer information regardless of whether they have a signature image or not(#36293) --- lms/templates/certificates/_accomplishment-rendering.html | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lms/templates/certificates/_accomplishment-rendering.html b/lms/templates/certificates/_accomplishment-rendering.html index 7c5ae957f39b..999c7a39f460 100644 --- a/lms/templates/certificates/_accomplishment-rendering.html +++ b/lms/templates/certificates/_accomplishment-rendering.html @@ -46,17 +46,16 @@

    ${_("Noted by")}

    % if certificate_data: % for signatory in certificate_data.get('signatories', []): - % if signatory.get('signature_image_path'):
    - ${signatory['name']} - + % if signatory.get('signature_image_path'): + ${signatory['name']} + % endif

    ${signatory['name']}

    ${signatory['title']} ${signatory['organization']}

    - % endif % endfor % endif
    From 4637463e21a7fd8b0fcf51704e531a26c0d4829d Mon Sep 17 00:00:00 2001 From: Kyle McCormick Date: Mon, 9 Jun 2025 11:19:05 -0400 Subject: [PATCH 025/443] feat!: enable authoring MFE markdown editor waffle for everyone by default (#36876) This adds a migration to turn on the new React-based Markdown editing option for newly-created ProblemBlocks for all authors. The option is nested under "Advanced settings", just like the Advanced (OLX) problem editor. The migration is written such that it will *not* overwrite an existing global "No" waffle flag. Furthermore, our waffle utilities are designed such that org-level and course-level overrides will still take preference over the flag that the migration creates. Therefore, this should only take effect in cases where no existing waffle flag applies. BREAKING CHANGE: Operators who do not want the new React-based Markdown editor to be shown should create a flag contentstore.use_react_markdown_editor with the value "No". Prior art for flipping waffles like this: 9b0024376a8fb3cb3f7402747735f9985551ff9f Backport of: eb94113c840288bf3ecef1ee368087aaf27d27cc Closes: https://github.com/openedx/platform-roadmap/issues/384 Co-authored-by: Muhammad Anas --- ..._enable_markdown_editor_flag_by_default.py | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 cms/djangoapps/contentstore/migrations/0011_enable_markdown_editor_flag_by_default.py diff --git a/cms/djangoapps/contentstore/migrations/0011_enable_markdown_editor_flag_by_default.py b/cms/djangoapps/contentstore/migrations/0011_enable_markdown_editor_flag_by_default.py new file mode 100644 index 000000000000..491ae0e4224a --- /dev/null +++ b/cms/djangoapps/contentstore/migrations/0011_enable_markdown_editor_flag_by_default.py @@ -0,0 +1,25 @@ +from django.db import migrations + +from cms.djangoapps.contentstore.toggles import ( + ENABLE_REACT_MARKDOWN_EDITOR +) + + +def create_flag(apps, schema_editor): + Flag = apps.get_model('waffle', 'Flag') + Flag.objects.get_or_create( + name=ENABLE_REACT_MARKDOWN_EDITOR.name, defaults={'everyone': True} + ) + + +class Migration(migrations.Migration): + dependencies = [ + ('contentstore', '0010_container_link_models'), + ('waffle', '0001_initial'), + ] + + operations = [ + # Do not remove the flags for rollback. We don't want to lose originals if + # they already existed, and it won't hurt if they are created. + migrations.RunPython(create_flag, reverse_code=migrations.RunPython.noop), + ] From f3aa7bfae9b1953525a7af3fd6d972fabce5f3a6 Mon Sep 17 00:00:00 2001 From: Javier Ontiveros Date: Mon, 9 Jun 2025 11:59:44 -0600 Subject: [PATCH 026/443] fix: strip end slash if any when using a subpath While trying to be enrolled on a verified course, the upgrade process gets to an error screen due to a double slash on the URL that it's added while doing the redirection to the account microfrontend Backport of: 89e3d18 Closes: openedx/wg-build-test-release#468 --- .../management/commands/send_verification_expiry_email.py | 3 ++- lms/djangoapps/verify_student/services.py | 3 ++- lms/djangoapps/verify_student/views.py | 3 ++- openedx/core/djangoapps/notifications/email/utils.py | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lms/djangoapps/verify_student/management/commands/send_verification_expiry_email.py b/lms/djangoapps/verify_student/management/commands/send_verification_expiry_email.py index 04f75ef42439..7902990fcccf 100644 --- a/lms/djangoapps/verify_student/management/commands/send_verification_expiry_email.py +++ b/lms/djangoapps/verify_student/management/commands/send_verification_expiry_email.py @@ -188,10 +188,11 @@ def send_verification_expiry_email(self, batch_verifications, email_config): return True site = Site.objects.get_current() + account_base_url = settings.ACCOUNT_MICROFRONTEND_URL.rstrip('/') message_context = get_base_template_context(site) message_context.update({ 'platform_name': settings.PLATFORM_NAME, - 'lms_verification_link': f'{settings.ACCOUNT_MICROFRONTEND_URL}/id-verification', + 'lms_verification_link': f'{account_base_url}/id-verification', 'help_center_link': settings.ID_VERIFICATION_SUPPORT_LINK }) diff --git a/lms/djangoapps/verify_student/services.py b/lms/djangoapps/verify_student/services.py index 95dbccf0d59d..4091532bd064 100644 --- a/lms/djangoapps/verify_student/services.py +++ b/lms/djangoapps/verify_student/services.py @@ -251,7 +251,8 @@ def get_verify_location(cls, course_id=None): Returns a string: Returns URL for IDV on Account Microfrontend """ - location = f'{settings.ACCOUNT_MICROFRONTEND_URL}/id-verification' + account_base_url = settings.ACCOUNT_MICROFRONTEND_URL.rstrip('/') + location = f'{account_base_url}/id-verification' if course_id: location += f'?course_id={quote(str(course_id))}' diff --git a/lms/djangoapps/verify_student/views.py b/lms/djangoapps/verify_student/views.py index 1b6a47bee879..0552611902cb 100644 --- a/lms/djangoapps/verify_student/views.py +++ b/lms/djangoapps/verify_student/views.py @@ -1128,7 +1128,8 @@ def results_callback(request): # lint-amnesty, pylint: disable=too-many-stateme log.info("[COSMO-184] Denied verification for receipt_id={receipt_id}.".format(receipt_id=receipt_id)) attempt.deny(json.dumps(reason), error_code=error_code) - reverify_url = f'{settings.ACCOUNT_MICROFRONTEND_URL}/id-verification' + account_base_url = settings.ACCOUNT_MICROFRONTEND_URL.rstrip('/') + reverify_url = f'{account_base_url}/id-verification' verification_status_email_vars['reasons'] = reason verification_status_email_vars['reverify_url'] = reverify_url verification_status_email_vars['faq_url'] = settings.ID_VERIFICATION_SUPPORT_LINK diff --git a/openedx/core/djangoapps/notifications/email/utils.py b/openedx/core/djangoapps/notifications/email/utils.py index 79535dbc21a2..1402924c373e 100644 --- a/openedx/core/djangoapps/notifications/email/utils.py +++ b/openedx/core/djangoapps/notifications/email/utils.py @@ -94,12 +94,13 @@ def create_email_template_context(username): 'channel': 'email', 'value': False } + account_base_url = settings.ACCOUNT_MICROFRONTEND_URL.rstrip('/') return { "platform_name": settings.PLATFORM_NAME, "mailing_address": settings.CONTACT_MAILING_ADDRESS, "logo_url": get_logo_url_for_email(), "social_media": social_media_info, - "notification_settings_url": f"{settings.ACCOUNT_MICROFRONTEND_URL}/#notifications", + "notification_settings_url": f"{account_base_url}/#notifications", "unsubscribe_url": get_unsubscribe_link(username, patch) } From 95eea1c79ce4045999aa9f00987561c0d97a94d2 Mon Sep 17 00:00:00 2001 From: Kyle McCormick Date: Mon, 9 Jun 2025 14:57:58 -0400 Subject: [PATCH 027/443] build: Restore .dockerignore to improve image build and caching (#36878) edx-platform's Dockerfile was removed in Jan 2025 because the community was not maintaining or using it. The PR that removed it [1] also removed the .dockerfile as an effort to clean up unnecessary Docker-related files from the repo. However, the .dockerignore file serves an important purpose for *any* Docker image based on edx-platform: it identifies which files and paths aren't relevant for the functioning of the image. For example, Tutor greatly benefited from this file, because by ignoring unnecessary files, the build context was shrunk and image cache layers were less likely to be unnecesarily invalidated. We restore the .dockerfile as it was previously in Sumac [2], with the addition of /venv, /.venv, and __pycache__, and with the removal of /Dockerfile (as it no longer exists). [1] https://github.com/openedx/edx-platform/pull/35731 [2] https://github.com/openedx/edx-platform/blob/open-release/sumac.master/.dockerignore Backports: 0b48f2795a21a79faa4509b0b3c5986b807f6089 --- .dockerignore | 153 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000000..160c48565fce --- /dev/null +++ b/.dockerignore @@ -0,0 +1,153 @@ +# .dockerignore for edx-platform. +# There's a lot here, please try to keep it organized. + +### Files that are not needed in the docker file + +/test_root/ +.git + +### Files private to developers + +# Files that should be git-ignored, but are hand-edited or otherwise valued, +# and so should not be destroyed by "make clean". +# start-noclean +requirements/private.txt +requirements/edx/private.in +requirements/edx/private.txt +lms/envs/private.py +cms/envs/private.py +# end-noclean + +### Python artifacts +**/*.pyc +**/__pycache__ +.venv +venv + +### Editor and IDE artifacts +**/*~ +**/*.swp +**/*.orig +**/nbproject +**/.idea/ +**/.redcar/ +**/codekit-config.json +**/.pycharm_helpers/ +**/_mac/* +**/IntelliLang.xml +**/conda_packages.xml +**/databaseSettings.xml +**/diff.xml +**/debugger.xml +**/editor.xml +**/ide.general.xml +**/inspection/Default.xml +**/other.xml +**/packages.xml +**/web-browsers.xml + +### NFS artifacts +**/.nfs* + +### OS X artifacts +**/*.DS_Store +**/.AppleDouble +**/:2e_* +**/:2e# + +### Internationalization artifacts +**/*.mo +**/*.po +**/*.prob +**/*.dup +!**/django.po +!**/django.mo +!**/djangojs.po +!**/djangojs.mo +conf/locale/en/LC_MESSAGES/*.mo +conf/locale/fake*/LC_MESSAGES/*.po +conf/locale/fake*/LC_MESSAGES/*.mo + +### Testing artifacts +**/.testids/ +**/.noseids +**/nosetests.xml +**/.cache/ +**/.coverage +**/.coverage.* +**/coverage.xml +**/cover/ +**/cover_html/ +**/reports/ +**/jscover.log +**/jscover.log.* +**/.pytest_cache/ +**/pytest_task*.txt +**/.tddium* +common/test/data/test_unicode/static/ +test_root/courses/ +test_root/data/test_bare.git/ +test_root/export_course_repos/ +test_root/paver_logs/ +test_root/uploads/ +**/django-pyfs +**/.tox/ +common/test/data/badges/*.png + +### Installation artifacts +**/*.egg-info +**/.pip_download_cache/ +**/.prereqs_cache +**/.vagrant/ +**/node_modules +**/bin/ + +### Static assets pipeline artifacts +**/*.scssc +lms/static/css/ +lms/static/certificates/css/ +cms/static/css/ +common/static/common/js/vendor/ +common/static/common/css/vendor/ +common/static/bundles +**/webpack-stats.json + +### Styling generated from templates +lms/static/sass/*.css +lms/static/sass/*.css.map +lms/static/certificates/sass/*.css +lms/static/themed_sass/ +cms/static/css/ +cms/static/sass/*.css +cms/static/sass/*.css.map +cms/static/themed_sass/ +themes/**/css + +### Logging artifacts +**/log/ +**/logs +**/chromedriver.log +**/ghostdriver.log + +### Celery artifacts ### +**/celerybeat-schedule + +### Unknown artifacts +**/database.sqlite +**/courseware/static/js/mathjax/* +**/flushdb.sh +**/build +/src/ +\#*\# +**/.env/ +openedx/core/djangoapps/django_comment_common/comment_client/python +**/autodeploy.properties +**/.ws_migrations_complete +**/dist +**/*.bak + +# Visual Studio Code +**/.vscode + +# Locally generated PII reports +**/pii_report From 41016152b25f434d7ce04b0cf36250653810f736 Mon Sep 17 00:00:00 2001 From: KEVYN SUAREZ <91025555+efortish@users.noreply.github.com> Date: Wed, 11 Jun 2025 14:53:20 -0500 Subject: [PATCH 028/443] fix: Include metadata for blocked sequence units to enable proper navigation (#36891) The original issue was that when a sequence was locked due to prerequisites, the API returned an empty items array ([]). This prevented the frontend from knowing what units were inside the locked sequence, meaning it couldn't construct the URLs correctly for navigation so the next/previous buttons stop working. --- xmodule/seq_block.py | 14 ++++- xmodule/tests/test_sequence.py | 94 ++++++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+), 1 deletion(-) diff --git a/xmodule/seq_block.py b/xmodule/seq_block.py index 1b94f47d898c..f06d3030f5e9 100644 --- a/xmodule/seq_block.py +++ b/xmodule/seq_block.py @@ -557,7 +557,19 @@ def _get_render_metadata(self, context, children, prereq_met, prereq_meta_info, 'This section is a prerequisite. You must complete this section in order to unlock additional content.' ) - blocks = self._render_student_view_for_blocks(context, children, fragment, view) if prereq_met else [] + if prereq_met: + blocks = self._render_student_view_for_blocks(context, children, fragment, view) + else: + blocks = [] + for child in children: + usage_id = child.scope_ids.usage_id + blocks.append({ + 'id': str(usage_id), + 'type': child.scope_ids.block_type, + 'display_name': child.display_name_with_default, + 'is_gated': True, # Mark as blocked + 'content': '', # Real content not included + }) params = { 'items': blocks, diff --git a/xmodule/tests/test_sequence.py b/xmodule/tests/test_sequence.py index be773865a717..c299f7bed0d7 100644 --- a/xmodule/tests/test_sequence.py +++ b/xmodule/tests/test_sequence.py @@ -478,3 +478,97 @@ def get_context_dict_from_string(self, data): # Replace tuple and un-necessary info from inside string and get the dictionary. cleaned_data = data.replace("(('seq_block.html',\n", '').replace("),\n {})", '').strip() return ast.literal_eval(cleaned_data) + + def test_not_gated_blocks_rendered_normally(self): + """ + Test that non-gated blocks are rendered with full content when prerequisites are met. + """ + # Mock child block + child = Mock() + child.scope_ids.usage_id = "block1" + child.scope_ids.block_type = "vertical" + child.display_name_with_default = "Test Block" + children = [child] + + # Mock context + context = {"next_url": "next_url", "prev_url": "prev_url"} + fragment = Mock() + + # Mock `_render_student_view_for_blocks` + self.sequence_3_1._render_student_view_for_blocks = Mock(return_value="rendered_blocks") # pylint: disable=protected-access + + # Call `_get_render_metadata` with prerequisites met + metadata = self.sequence_3_1._get_render_metadata( # pylint: disable=protected-access + context, children, prereq_met=True, prereq_meta_info={}, fragment=fragment + ) + + # Assert that blocks are rendered normally + assert metadata["items"] == "rendered_blocks" + assert metadata["next_url"] == "next_url" + assert metadata["prev_url"] == "prev_url" + + def test_gated_blocks_rendered_with_basic_info(self): + """ + Test that gated blocks are rendered with minimal metadata when prerequisites are not met. + """ + # Mock child block + child = Mock() + child.scope_ids.usage_id = "block1" + child.scope_ids.block_type = "vertical" + child.display_name_with_default = "Test Block" + children = [child] + + # Mock context + context = {"next_url": "next_url", "prev_url": "prev_url"} + + # Mock prereq_meta_info with required keys + prereq_meta_info = { + "url": "http://example.com/prereq", + "display_name": "Prerequisite Section", + "id": "prereq_block_id", + } + + # Call `_get_render_metadata` with prerequisites not met + metadata = self.sequence_3_1._get_render_metadata( # pylint: disable=protected-access + context, children, prereq_met=False, prereq_meta_info=prereq_meta_info + ) + + # Assert that gated blocks are rendered with basic info + assert len(metadata["items"]) == 1 + assert metadata["items"][0]["id"] == "block1" + assert metadata["items"][0]["type"] == "vertical" + assert metadata["items"][0]["display_name"] == "Test Block" + assert metadata["items"][0]["is_gated"] is True + assert metadata["items"][0]["content"] == "" + + # Assert that next and previous URLs are present + assert metadata["next_url"] == "next_url" + assert metadata["prev_url"] == "prev_url" + + def test_prereqs_met_content_rendered_normally(self): + """ + Test that content is rendered normally when prerequisites are met. + """ + # Mock child block + child = Mock() + child.scope_ids.usage_id = "block1" + child.scope_ids.block_type = "vertical" + child.display_name_with_default = "Test Block" + children = [child] + + # Mock context + context = {"next_url": "next_url", "prev_url": "prev_url"} + fragment = Mock() + + # Mock `_render_student_view_for_blocks` + self.sequence_3_1._render_student_view_for_blocks = Mock(return_value="rendered_blocks") # pylint: disable=protected-access + + # Call `_get_render_metadata` with prerequisites met + metadata = self.sequence_3_1._get_render_metadata( # pylint: disable=protected-access + context, children, prereq_met=True, prereq_meta_info={}, fragment=fragment + ) + + # Assert that content is rendered normally + assert metadata["items"] == "rendered_blocks" + assert metadata["next_url"] == "next_url" + assert metadata["prev_url"] == "prev_url" From 37fd4617b867b7c793ccc8911597da66e8bb70bd Mon Sep 17 00:00:00 2001 From: Arsen Turchanikov Date: Wed, 11 Jun 2025 23:08:38 +0300 Subject: [PATCH 029/443] fix: correct course catalog visibility for "about" setting (#36776) Previously, courses with the "Course Visibility in Catalog" setting set to "about" still appeared in the course catalog, which contradicts the expected behavior. --- lms/lib/courseware_search/lms_filter_generator.py | 3 ++- .../courseware_search/test/test_lms_filter_generator.py | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lms/lib/courseware_search/lms_filter_generator.py b/lms/lib/courseware_search/lms_filter_generator.py index b0c0564df48a..5b2592e4cd19 100644 --- a/lms/lib/courseware_search/lms_filter_generator.py +++ b/lms/lib/courseware_search/lms_filter_generator.py @@ -9,6 +9,7 @@ from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers from openedx.core.djangoapps.user_api.partition_schemes import RandomUserPartitionScheme from common.djangoapps.student.models import CourseEnrollment +from xmodule.course_block import CATALOG_VISIBILITY_ABOUT, CATALOG_VISIBILITY_NONE INCLUDE_SCHEMES = [CohortPartitionScheme, RandomUserPartitionScheme, ] SCHEME_SUPPORTS_ASSIGNMENT = [RandomUserPartitionScheme, ] @@ -63,6 +64,6 @@ def exclude_dictionary(self, **kwargs): if not getattr(settings, "SEARCH_SKIP_INVITATION_ONLY_FILTERING", True): exclude_dictionary['invitation_only'] = True if not getattr(settings, "SEARCH_SKIP_SHOW_IN_CATALOG_FILTERING", True): - exclude_dictionary['catalog_visibility'] = 'none' + exclude_dictionary['catalog_visibility'] = [CATALOG_VISIBILITY_ABOUT, CATALOG_VISIBILITY_NONE] return exclude_dictionary diff --git a/lms/lib/courseware_search/test/test_lms_filter_generator.py b/lms/lib/courseware_search/test/test_lms_filter_generator.py index 492cf64d8c30..8afa94f70fbf 100644 --- a/lms/lib/courseware_search/test/test_lms_filter_generator.py +++ b/lms/lib/courseware_search/test/test_lms_filter_generator.py @@ -6,6 +6,7 @@ from lms.lib.courseware_search.lms_filter_generator import LmsSearchFilterGenerator from common.djangoapps.student.models import CourseEnrollment from common.djangoapps.student.tests.factories import UserFactory +from xmodule.course_block import CATALOG_VISIBILITY_ABOUT, CATALOG_VISIBILITY_NONE from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase # lint-amnesty, pylint: disable=wrong-import-order from xmodule.modulestore.tests.factories import CourseFactory, BlockFactory # lint-amnesty, pylint: disable=wrong-import-order @@ -139,3 +140,9 @@ def test_excludes_multi_orgs_within(self): assert 'org' not in exclude_dictionary assert 'org' in field_dictionary assert ['TestSite3'] == field_dictionary['org'] + + @patch('django.conf.settings.SEARCH_SKIP_SHOW_IN_CATALOG_FILTERING', False) + def test_excludes_catalog_visibility(self): + _, _, exclude_dictionary = LmsSearchFilterGenerator.generate_field_filters(user=self.user) + assert 'catalog_visibility' in exclude_dictionary + assert exclude_dictionary['catalog_visibility'] == [CATALOG_VISIBILITY_ABOUT, CATALOG_VISIBILITY_NONE] From b07add0a1139e70a0659adc8368628b5ec817fa3 Mon Sep 17 00:00:00 2001 From: Arslan Ashraf <34372316+arslanashraf7@users.noreply.github.com> Date: Tue, 17 Jun 2025 18:52:35 +0500 Subject: [PATCH 030/443] fix: generate IDV URL only if ACCOUNT_MICROFRONTEND_URL is available (#36924) The api/courseware/course fails for all the verified enrollments if you are not using Account MFE, which means that you probably won't set ACCOUNT_MICROFRONTEND_URL in your settings/configurations. So this PR adds a check safely try to do rstrip. Fixes a bug in https://github.com/openedx/edx-platform/pull/36870 Backport of: d6dbc4075c55b8542958904dc538e3cf8c9b0ca9 --- .../management/commands/send_verification_expiry_email.py | 2 +- lms/djangoapps/verify_student/services.py | 2 +- lms/djangoapps/verify_student/views.py | 2 +- openedx/core/djangoapps/notifications/email/utils.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lms/djangoapps/verify_student/management/commands/send_verification_expiry_email.py b/lms/djangoapps/verify_student/management/commands/send_verification_expiry_email.py index 7902990fcccf..0bfef6d0ac91 100644 --- a/lms/djangoapps/verify_student/management/commands/send_verification_expiry_email.py +++ b/lms/djangoapps/verify_student/management/commands/send_verification_expiry_email.py @@ -188,7 +188,7 @@ def send_verification_expiry_email(self, batch_verifications, email_config): return True site = Site.objects.get_current() - account_base_url = settings.ACCOUNT_MICROFRONTEND_URL.rstrip('/') + account_base_url = (settings.ACCOUNT_MICROFRONTEND_URL or "").rstrip('/') message_context = get_base_template_context(site) message_context.update({ 'platform_name': settings.PLATFORM_NAME, diff --git a/lms/djangoapps/verify_student/services.py b/lms/djangoapps/verify_student/services.py index 4091532bd064..5caede3dab83 100644 --- a/lms/djangoapps/verify_student/services.py +++ b/lms/djangoapps/verify_student/services.py @@ -251,7 +251,7 @@ def get_verify_location(cls, course_id=None): Returns a string: Returns URL for IDV on Account Microfrontend """ - account_base_url = settings.ACCOUNT_MICROFRONTEND_URL.rstrip('/') + account_base_url = (settings.ACCOUNT_MICROFRONTEND_URL or "").rstrip('/') location = f'{account_base_url}/id-verification' if course_id: location += f'?course_id={quote(str(course_id))}' diff --git a/lms/djangoapps/verify_student/views.py b/lms/djangoapps/verify_student/views.py index 0552611902cb..deda08e0c741 100644 --- a/lms/djangoapps/verify_student/views.py +++ b/lms/djangoapps/verify_student/views.py @@ -1128,7 +1128,7 @@ def results_callback(request): # lint-amnesty, pylint: disable=too-many-stateme log.info("[COSMO-184] Denied verification for receipt_id={receipt_id}.".format(receipt_id=receipt_id)) attempt.deny(json.dumps(reason), error_code=error_code) - account_base_url = settings.ACCOUNT_MICROFRONTEND_URL.rstrip('/') + account_base_url = (settings.ACCOUNT_MICROFRONTEND_URL or "").rstrip('/') reverify_url = f'{account_base_url}/id-verification' verification_status_email_vars['reasons'] = reason verification_status_email_vars['reverify_url'] = reverify_url diff --git a/openedx/core/djangoapps/notifications/email/utils.py b/openedx/core/djangoapps/notifications/email/utils.py index 1402924c373e..cfc9791ae98a 100644 --- a/openedx/core/djangoapps/notifications/email/utils.py +++ b/openedx/core/djangoapps/notifications/email/utils.py @@ -94,7 +94,7 @@ def create_email_template_context(username): 'channel': 'email', 'value': False } - account_base_url = settings.ACCOUNT_MICROFRONTEND_URL.rstrip('/') + account_base_url = (settings.ACCOUNT_MICROFRONTEND_URL or "").rstrip('/') return { "platform_name": settings.PLATFORM_NAME, "mailing_address": settings.CONTACT_MAILING_ADDRESS, From 413e58fda1beac1f70bfa1eb670746c8f17ef71b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20Ch=C3=A1vez?= Date: Tue, 17 Jun 2025 14:44:07 -0500 Subject: [PATCH 031/443] fix: Edit components in unit that comes from libraries (#36915) * Backport of fix: Edit components in unit that comes from libraries #36914 * Backport of build: remove outdated dependency path #36861, to fix the broken CI --- .github/workflows/check_python_dependencies.yml | 1 - cms/templates/studio_xblock_wrapper.html | 6 ------ 2 files changed, 7 deletions(-) diff --git a/.github/workflows/check_python_dependencies.yml b/.github/workflows/check_python_dependencies.yml index f2d73a1f925a..281e26589db2 100644 --- a/.github/workflows/check_python_dependencies.yml +++ b/.github/workflows/check_python_dependencies.yml @@ -31,7 +31,6 @@ jobs: find_python_dependencies \ --req-file requirements/edx/base.txt \ --req-file requirements/edx/testing.txt \ - --ignore https://github.com/edx/codejail-includes \ --ignore https://github.com/edx/edx-name-affirmation \ --ignore https://github.com/mitodl/edx-sga \ --ignore https://github.com/open-craft/xblock-poll diff --git a/cms/templates/studio_xblock_wrapper.html b/cms/templates/studio_xblock_wrapper.html index 7ecf2997220a..f6022c6ac0e5 100644 --- a/cms/templates/studio_xblock_wrapper.html +++ b/cms/templates/studio_xblock_wrapper.html @@ -211,12 +211,6 @@ % endif - % elif not show_inline: -
  • - - ${_("Details")} - -
  • % endif % endif From 4a0d77a7bd458da021e2c7005aebde0acefc20d1 Mon Sep 17 00:00:00 2001 From: Maria Grimaldi Date: Wed, 18 Jun 2025 15:44:19 +0200 Subject: [PATCH 032/443] fix: redirect to account MFE when using any legacy account URL (#36894) * fix: redirect to account MFE when using any legacy account URL Redirect to the account MFE URL configured each time a legacy account URL like http(s)://lms/account/ or http(s)://lms/account/settings is used to avoid 404 errors while linking SSO accounts or simply trying to access the account view via URLs. --- openedx/core/djangoapps/user_api/legacy_urls.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/openedx/core/djangoapps/user_api/legacy_urls.py b/openedx/core/djangoapps/user_api/legacy_urls.py index ad02f7f19ce8..3c8da9bd830a 100644 --- a/openedx/core/djangoapps/user_api/legacy_urls.py +++ b/openedx/core/djangoapps/user_api/legacy_urls.py @@ -1,7 +1,9 @@ """ Defines the URL routes for this app. """ +from django.conf import settings from django.urls import path, re_path, include +from django.views.generic import RedirectView from rest_framework import routers from . import views as user_api_views @@ -12,6 +14,10 @@ USER_API_ROUTER.register(r'user_prefs', user_api_views.UserPreferenceViewSet) urlpatterns = [ + # This redirect is needed for backward compatibility with the old URL structure for the authentication + # workflows using third-party authentication providers until the authentication workflows fully support + # the URL structure with MFEs. + re_path(r'^account(?:/settings)?/?$', RedirectView.as_view(url=settings.ACCOUNT_MICROFRONTEND_URL)), path('user_api/v1/', include(USER_API_ROUTER.urls)), re_path( fr'^user_api/v1/preferences/(?P{UserPreference.KEY_REGEX})/users/$', From 3955c5cb1567fe8fbe230802e0b5d4332cc42896 Mon Sep 17 00:00:00 2001 From: KEVYN SUAREZ <91025555+efortish@users.noreply.github.com> Date: Mon, 23 Jun 2025 03:45:59 -0500 Subject: [PATCH 033/443] fix: use MFE-aware URL instead of legacy when generating block URL (#36526) (#36871) --- lms/djangoapps/edxnotes/helpers.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/lms/djangoapps/edxnotes/helpers.py b/lms/djangoapps/edxnotes/helpers.py index 17705f835e9d..f81947ce1e78 100644 --- a/lms/djangoapps/edxnotes/helpers.py +++ b/lms/djangoapps/edxnotes/helpers.py @@ -29,6 +29,7 @@ from lms.lib.utils import get_parent_unit from openedx.core.djangoapps.oauth_dispatch.jwt import create_jwt_for_user from openedx.core.djangolib.markup import Text +from openedx.features.course_experience.url_helpers import get_courseware_url from xmodule.modulestore.django import modulestore # lint-amnesty, pylint: disable=wrong-import-order from xmodule.modulestore.exceptions import ItemNotFoundError # lint-amnesty, pylint: disable=wrong-import-order @@ -256,16 +257,8 @@ def get_block_context(course, block): course = block.get_parent() block_dict['index'] = get_index(block_dict['location'], course.children) elif block.category == 'vertical': - section = block.get_parent() - chapter = section.get_parent() - # Position starts from 1, that's why we add 1. - position = get_index(str(block.location), section.children) + 1 - block_dict['url'] = reverse('courseware_position', kwargs={ - 'course_id': str(course.id), - 'chapter': chapter.url_name, - 'section': section.url_name, - 'position': position, - }) + # Use the MFE-aware URL generator instead of always using the legacy URL format + block_dict['url'] = get_courseware_url(block.location) if block.category in ('chapter', 'sequential'): block_dict['children'] = [str(child) for child in block.children] From d0ca72e07f65808ceea60f2a50494063235ca97a Mon Sep 17 00:00:00 2001 From: boomboom0202 Date: Tue, 12 Aug 2025 16:33:02 +0500 Subject: [PATCH 034/443] =?UTF-8?q?=D0=9C=D0=BE=D0=B8=20=D0=B8=D0=B7=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B2=20open-release/te?= =?UTF-8?q?ak?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lms/djangoapps/univerapi/__init__.py | 0 lms/djangoapps/univerapi/admin.py | 3 + lms/djangoapps/univerapi/apps.py | 6 + .../univerapi/migrations/0001_initial.py | 24 + .../migrations/0002_univeruser_univer_id2.py | 20 + .../migrations/0003_auto_20211125_0136.py | 34 ++ .../0004_univeruser_edx_username.py | 20 + .../univerapi/migrations/__init__.py | 0 lms/djangoapps/univerapi/models.py | 12 + lms/djangoapps/univerapi/table_univeruser.sql | 0 .../univerapi/templates/univerapi/index.html | 98 +++ .../univerapi/templates/univerapi/login.html | 42 ++ .../templates/univerapi/redirect.html | 117 ++++ lms/djangoapps/univerapi/tests.py | 3 + lms/djangoapps/univerapi/urls.py | 7 + lms/djangoapps/univerapi/views.py | 404 +++++++++++++ lms/djangoapps/univerapi/views.py.save | 504 +++++++++++++++ lms/djangoapps/univerapi/views.py.save.1 | 232 +++++++ lms/djangoapps/univerapi/views.py.save.2 | 572 ++++++++++++++++++ 19 files changed, 2098 insertions(+) create mode 100644 lms/djangoapps/univerapi/__init__.py create mode 100644 lms/djangoapps/univerapi/admin.py create mode 100644 lms/djangoapps/univerapi/apps.py create mode 100644 lms/djangoapps/univerapi/migrations/0001_initial.py create mode 100644 lms/djangoapps/univerapi/migrations/0002_univeruser_univer_id2.py create mode 100644 lms/djangoapps/univerapi/migrations/0003_auto_20211125_0136.py create mode 100644 lms/djangoapps/univerapi/migrations/0004_univeruser_edx_username.py create mode 100644 lms/djangoapps/univerapi/migrations/__init__.py create mode 100644 lms/djangoapps/univerapi/models.py create mode 100644 lms/djangoapps/univerapi/table_univeruser.sql create mode 100644 lms/djangoapps/univerapi/templates/univerapi/index.html create mode 100644 lms/djangoapps/univerapi/templates/univerapi/login.html create mode 100644 lms/djangoapps/univerapi/templates/univerapi/redirect.html create mode 100644 lms/djangoapps/univerapi/tests.py create mode 100644 lms/djangoapps/univerapi/urls.py create mode 100644 lms/djangoapps/univerapi/views.py create mode 100644 lms/djangoapps/univerapi/views.py.save create mode 100644 lms/djangoapps/univerapi/views.py.save.1 create mode 100644 lms/djangoapps/univerapi/views.py.save.2 diff --git a/lms/djangoapps/univerapi/__init__.py b/lms/djangoapps/univerapi/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/lms/djangoapps/univerapi/admin.py b/lms/djangoapps/univerapi/admin.py new file mode 100644 index 000000000000..ea5d68b7c457 --- /dev/null +++ b/lms/djangoapps/univerapi/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/lms/djangoapps/univerapi/apps.py b/lms/djangoapps/univerapi/apps.py new file mode 100644 index 000000000000..d222a69cc2ab --- /dev/null +++ b/lms/djangoapps/univerapi/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class UniverapiConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'univerapi' diff --git a/lms/djangoapps/univerapi/migrations/0001_initial.py b/lms/djangoapps/univerapi/migrations/0001_initial.py new file mode 100644 index 000000000000..98694b9cae06 --- /dev/null +++ b/lms/djangoapps/univerapi/migrations/0001_initial.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.29 on 2021-11-25 06:21 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Univeruser', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('edx_pass', models.CharField(max_length=300)), + ('univer_id', models.CharField(max_length=300)), + ], + ), + ] diff --git a/lms/djangoapps/univerapi/migrations/0002_univeruser_univer_id2.py b/lms/djangoapps/univerapi/migrations/0002_univeruser_univer_id2.py new file mode 100644 index 000000000000..1764f5bd570e --- /dev/null +++ b/lms/djangoapps/univerapi/migrations/0002_univeruser_univer_id2.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.29 on 2021-11-25 06:33 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('univerapi', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='univeruser', + name='univer_id2', + field=models.CharField(max_length=300, null=True), + ), + ] diff --git a/lms/djangoapps/univerapi/migrations/0003_auto_20211125_0136.py b/lms/djangoapps/univerapi/migrations/0003_auto_20211125_0136.py new file mode 100644 index 000000000000..50d2a07f73e1 --- /dev/null +++ b/lms/djangoapps/univerapi/migrations/0003_auto_20211125_0136.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.29 on 2021-11-25 06:36 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('univerapi', '0002_univeruser_univer_id2'), + ] + + operations = [ + migrations.RemoveField( + model_name='univeruser', + name='univer_id2', + ), + migrations.AddField( + model_name='univeruser', + name='edx_id', + field=models.IntegerField(null=True), + ), + migrations.AlterField( + model_name='univeruser', + name='edx_pass', + field=models.CharField(max_length=300, null=True), + ), + migrations.AlterField( + model_name='univeruser', + name='univer_id', + field=models.CharField(max_length=300, null=True), + ), + ] diff --git a/lms/djangoapps/univerapi/migrations/0004_univeruser_edx_username.py b/lms/djangoapps/univerapi/migrations/0004_univeruser_edx_username.py new file mode 100644 index 000000000000..049d469cc50c --- /dev/null +++ b/lms/djangoapps/univerapi/migrations/0004_univeruser_edx_username.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.29 on 2021-12-06 09:18 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('univerapi', '0003_auto_20211125_0136'), + ] + + operations = [ + migrations.AddField( + model_name='univeruser', + name='edx_username', + field=models.CharField(max_length=300, null=True), + ), + ] diff --git a/lms/djangoapps/univerapi/migrations/__init__.py b/lms/djangoapps/univerapi/migrations/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/lms/djangoapps/univerapi/models.py b/lms/djangoapps/univerapi/models.py new file mode 100644 index 000000000000..1144b1ca5ed9 --- /dev/null +++ b/lms/djangoapps/univerapi/models.py @@ -0,0 +1,12 @@ +from django.db import models +from django.contrib import admin + +# Create your models here. + +class Univeruser(models.Model): + edx_id = models.IntegerField(null=True) + edx_pass = models.CharField(max_length=300, null=True) + univer_id = models.CharField(max_length=300, null=True) + edx_username = models.CharField(max_length=300, null=True) + +admin.site.register(Univeruser) \ No newline at end of file diff --git a/lms/djangoapps/univerapi/table_univeruser.sql b/lms/djangoapps/univerapi/table_univeruser.sql new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/lms/djangoapps/univerapi/templates/univerapi/index.html b/lms/djangoapps/univerapi/templates/univerapi/index.html new file mode 100644 index 000000000000..3bb9f685436d --- /dev/null +++ b/lms/djangoapps/univerapi/templates/univerapi/index.html @@ -0,0 +1,98 @@ + + + + + + +
    + {% csrf_token %} + +
    + + + +
    + + + + +
    + + + + + + + + + + + diff --git a/lms/djangoapps/univerapi/templates/univerapi/login.html b/lms/djangoapps/univerapi/templates/univerapi/login.html new file mode 100644 index 000000000000..548df9dfd583 --- /dev/null +++ b/lms/djangoapps/univerapi/templates/univerapi/login.html @@ -0,0 +1,42 @@ +login page + + + + diff --git a/lms/djangoapps/univerapi/templates/univerapi/redirect.html b/lms/djangoapps/univerapi/templates/univerapi/redirect.html new file mode 100644 index 000000000000..2a3d726e749e --- /dev/null +++ b/lms/djangoapps/univerapi/templates/univerapi/redirect.html @@ -0,0 +1,117 @@ +login page + + + + diff --git a/lms/djangoapps/univerapi/tests.py b/lms/djangoapps/univerapi/tests.py new file mode 100644 index 000000000000..de8bdc00eb2f --- /dev/null +++ b/lms/djangoapps/univerapi/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/lms/djangoapps/univerapi/urls.py b/lms/djangoapps/univerapi/urls.py new file mode 100644 index 000000000000..9aad72b602ec --- /dev/null +++ b/lms/djangoapps/univerapi/urls.py @@ -0,0 +1,7 @@ +from django.urls import path + +from . import views + +urlpatterns = [ + path('', views.test, name='test'), +] \ No newline at end of file diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py new file mode 100644 index 000000000000..f2c44f8343e9 --- /dev/null +++ b/lms/djangoapps/univerapi/views.py @@ -0,0 +1,404 @@ +# -*- coding: utf-8 -*- + +from django.shortcuts import render +from django.http import HttpResponse +import logging +import jwt +import openedx.core.djangoapps.user_api.views as user_api_view +import requests +import django.middleware.csrf +from django.views.decorators.csrf import csrf_exempt, csrf_protect, ensure_csrf_cookie +from django.utils.decorators import method_decorator +from django.shortcuts import redirect +import re +secret = '$ecRet@3#$2958GPIs!1' + +from django.shortcuts import render +from rest_framework.views import APIView +from rest_framework.generics import GenericAPIView + +from univerapi.models import Univeruser +from random import randint +import json +import random +from student.models import User +import time +from django.db import connection +from django.contrib.sites.models import Site +from django.conf import settings +from django.http import JsonResponse + +class UniverView(GenericAPIView): + + def createuser(): + return 123 + + @method_decorator(csrf_protect) + def post(self, request): + return HttpResponse('post') + + auth = request.POST.get('auth') + encoded_jwt = request.GET.get('auth') + decoded = jwt.decode(encoded_jwt, "$ecRet@3#$2958GPIs!1", algorithms=["HS256"]) + + new_user = Univeruser() + created_user = '' + created_user_email = '' + try: + exist_user = Univeruser.objects.get(univer_id=decoded['uname']) + + return HttpResponse('user exist') + + except: + surname, name, gender, stage, birth_year = decode_token_and_fetch_profile(encoded_jwt) + created_user = decoded['uname'].replace(".", "_") + str(random.randint(100, 999)) + created_user_email = decoded['uname'].replace(".", "_")+'@kaznu.edu.kz' + multipart_form_data = { + 'email': (None, created_user_email), + 'password': (None, decoded['upwd'][:75]), + 'name': (None, name), + 'username': (None, created_user), + 'level_of_education': (None, stage), + 'gender': (None, gender), + 'year_of_birth': (None, birth_year), + 'honor_code': (None, 'true'), + 'country': (None, 'KZ'), + 'goals': (None, 'education'), + 'surname': (None, surname), + 'mailing_address': (None, 'Kaznu') + } + client = requests.session() + client.get('http://192.168.199.128', verify=False) + csrftoken = client.cookies['csrftoken'] + login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') + coky = 'csrftoken='+csrftoken + headers = { + 'X-CSRFToken': csrftoken, + 'Cookie':coky + } + + response = requests.post('http://192.168.199.128:8181/user_api/v1/account/registration/', data=login_data, files=multipart_form_data, headers=headers, verify=False) + + json_data = json.loads(response.text) + + if ( ('success' in json_data) and (json_data['success'] == True)): + created_user_str = str(created_user) + + exist_user = None + i = 0 + while i < 60: + try: + exist_user = User.objects.get(username=created_user_str) + User.refresh_from_db() + break + except: + i += 1 + time.sleep(3) + + out_html='' + query = """SELECT id, username FROM auth_user where username LIKE '""" + "%%" + "hakymova" + "%%" + """'""" + query2 = """SELECT id, username FROM auth_user where username = '""" + created_user_str + """'""" + + + return HttpResponse(repr(exist_user)) + + time.sleep(10) + cursor = connection.cursor() + row = None + sql = 'SELECT id, username FROM auth_user' + try: + cursor.execute(str(query2)) + row = cursor.fetchall() + return HttpResponse(repr(row)) + except Exception as e: + cursor.close + return HttpResponse('error =' + str(e)) + + return HttpResponse(repr(cursor)) + else: + return HttpResponse('no registration') + + return HttpResponse((json_data['success'])) + + + return HttpResponse(repr(exist_user)) + + multipart_form_data = { + 'email': (None, 'dl@kaznu.kz'), + 'password': (None, 'DlGao3wo'), + 'remember': (None, 'true') + } + client = requests.session() + client.get('http://192.168.199.128') + csrftoken = client.cookies['csrftoken'] + login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') + coky = 'csrftoken='+csrftoken + headers = { + 'X-CSRFToken': csrftoken, + 'Cookie':coky + } + + response = requests.post('http://192.168.199.128/user_api/v1/account/login_session/', data=login_data, files=multipart_form_data, headers=headers, verify = False) + + headers2 = response.headers + + csrfToken = re.search(r'csrftoken=(\w+);', headers2['Set-Cookie']) + sessionid = re.search(r'sessionid="(\S+)";', headers2['Set-Cookie']) + + + cookies2 = { + '_ga': 'GA1.1.1602606957.1602045613', + 'experiments_is_enterprise': 'false', + 'openedx-language-preference': 'ru', + 'csrftoken': csrfToken.group(1), + 'edxloggedin': 'true', + 'sessionid': sessionid.group(1), + 'edx-user-info': '{\\"username\\": \\"staff\\"\\054 \\"version\\": 1\\054 \\"enrollmentStatusHash\\": \\"ace9f6124341dc7692d41de5b91bff7d\\"\\054 \\"header_urls\\": {\\"learner_profile\\": \\"http://192.168.199.128/u/staff\\"\\054 \\"resume_block\\": \\"http://192.168.199.128/user_api/v1/account/login_session/\\"\\054 \\"logout\\": \\"http://192.168.199.128/logout\\"\\054 \\"account_settings\\": \\"http://192.168.199.128/account/settings\\"}}', + } + + headers3 = { + 'Connection': 'keep-alive', + 'Upgrade-Insecure-Requests': '1', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36', + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', + 'Referer': 'http://192.168.199.128/login?next=%2F', + 'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7', + 'sec-gpc': '1', + } + + response = requests.get('http://192.168.199.128', headers=headers3, cookies=cookies2, verify=False) + return HttpResponse(response) + + + @method_decorator(ensure_csrf_cookie) + def get(self, request): + current_site = 'https://open.kaznu.kz' + + auth = request.POST.get('auth') + encoded_jwt = request.GET.get('auth') + decoded = jwt.decode(encoded_jwt, secret, algorithms=["HS256"]) + created_user = '' + created_user_email = '' + + try: + exist_user = Univeruser.objects.get(univer_id=decoded['uname']) + + return render(request, 'univerapi/redirect.html') + + except: + surname, name, gender, stage, birth_year = decode_token_and_fetch_profile(encoded_jwt) + created_user = decoded['uname'].replace(".", "_") + str(random.randint(100, 999)) + + created_user_email = decoded['uname'].replace(".", "_")+'@kaznu.edu.kz' + multipart_form_data = { + 'email': (None, created_user_email), + 'password': (None, decoded['upwd'][:75]), + 'name': (None, name), + 'username': (None, created_user), + 'level_of_education': (None, stage), + 'gender': (None, gender), + 'year_of_birth': (None, birth_year), + 'honor_code': (None, 'true'), + 'country': (None , 'KZ'), + 'surname': (None, surname), + 'goals': (None, 'education'), + 'mailing_address': (None, 'Kaznu') + } + client = requests.session() + client.get(current_site, verify = False) + csrftoken = client.cookies['csrftoken'] + login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') + coky = 'csrftoken='+csrftoken + headers = { + 'X-CSRFToken': csrftoken, + 'Cookie':coky + } + + count_try = 0 + while True: + response = requests.post(current_site + '/user_api/v1/account/registration/', data=login_data, files=multipart_form_data, headers=headers, verify = False) + json_data = json.loads(response.text) + if ( ('success' in json_data) and (json_data['success'] == True)): + break + if ( ('username' in json_data) ): + if "existing account" in str(json_data): + + + return render(request, 'univerapi/redirect.html') + time.sleep(3) + count_try += 1 + if (count_try == 20): + return JsonResponse(json_data) + + if ( ('success' in json_data) and (json_data['success'] == True)): + new_user = Univeruser() + new_user.edx_username = created_user + new_user.edx_id=0 + new_user.edx_pass='0' + new_user.univer_id = decoded['uname'] + new_user.save() + return render(request, 'univerapi/redirect.html') + created_user_str = str(created_user) + + exist_user = None + i = 0 + while i < 60: + try: + exist_user = User.objects.get(username=created_user_str) + User.refresh_from_db() + break + except: + i += 1 + time.sleep(3) + + out_html='' + query = """SELECT id, username FROM auth_user where username LIKE '""" + "%%" + "hakymova" + "%%" + """'""" + query2 = """SELECT id, username FROM auth_user where username = '""" + created_user_str + """'""" + + return HttpResponse(repr(exist_user)) + + time.sleep(10) + cursor = connection.cursor() + row = None + sql = 'SELECT id, username FROM auth_user' + try: + cursor.execute(str(query2)) + row = cursor.fetchall() + return HttpResponse(repr(row)) + except Exception as e: + cursor.close + return HttpResponse('error =' + str(e)) + + return HttpResponse(repr(cursor)) + else: + return HttpResponse('no registration') + + +def authview(request): + return render(request, 'univerapi/index.html') + + +def authview_check(request): + auth = request.POST.get('auth') + auth = auth.split("auth=")[1] + encoded_jwt = auth + decoded = jwt.decode(encoded_jwt, "$ecRet@3#$2958GPIs!1", algorithms=["HS256"]) + already_exist_user = decoded['uname'] + + try: + exist_user = Univeruser.objects.get(univer_id=decoded['uname']) + exist_edx_user = User.objects.get(username=exist_user.edx_username) + exist_edx_user.is_active = 1 + exist_edx_user.save() + + except: + return JsonResponse({"success":"false"}) + + return JsonResponse({"success":"true"}) + + +# -*- coding: utf-8 -*- +import requests +import jwt + +def decode_token_and_fetch_profile(token, secret_key='$ecRet@3#$2958GPIs!1'): + try: + decoded = jwt.decode(token, secret_key, algorithms=['HS256']) + except jwt.InvalidSignatureError: + raise SystemExit("Ошибка: неверная подпись JWT") + except jwt.DecodeError as e: + raise SystemExit("Ошибка при декодировании JWT: {0}".format(e)) + + uname = decoded.get('uname') + upwd = decoded.get('upwd') + if not uname or not upwd: + raise SystemExit("Ошибка: в токене нет 'uname' или 'upwd'") + + session = requests.Session() + resp = session.post( + "https://univerapi.kaznu.kz/user/loginMoodle", + data={'login': uname, 'password': upwd}, + ) + resp.raise_for_status() + data = resp.json() + if data.get('code') != 0: + raise SystemExit("loginMoodle вернул: {0}".format(data.get('message', ''))) + + # Сначала пробуем получить профиль студента + student_resp = session.get("https://univerapi.kaznu.kz/student/profile") + student_data = None + if student_resp.status_code == 200: + try: + student_data = student_resp.json() + except: + pass + + # Если данные студента получены успешно + if student_data and student_data.get('code') == 0 and 'data' in student_data: + info_list, personal_list = student_data['data'] + + def find_value(lst, key): + for d in lst: + if key in d and ':' in d[key]: + return d[key].split(':', 1)[1].strip() + return None + + surname = find_value(personal_list, 'sname') + name = find_value(personal_list, 'name') + + raw_sex = find_value(personal_list, 'sex') or '' + if isinstance(raw_sex, bytes): + raw_sex = raw_sex.decode('utf-8') + raw_sex = raw_sex.lower() + + if u'муж' in raw_sex: + gender = 'm' + elif u'жен' in raw_sex: + gender = 'f' + else: + gender = 'o' + + raw_stage = find_value(info_list, 'stage') or '' + if isinstance(raw_stage, bytes): + raw_stage = raw_stage.decode('utf-8') + raw_stage = raw_stage.lower() + + if u'бакалав' in raw_stage: + stage = 'b' + elif u'магис' in raw_stage: + stage = 'm' + elif u'доктор' in raw_stage: + stage = 'p' + else: + stage = 'none' + + # Установка дефолтного года рождения для студента + birth_year = 1995 + return surname, name, gender, stage, birth_year + + # Если не удалось получить данные студента, пробуем профиль преподавателя + teacher_resp = session.get("https://univerapi.kaznu.kz/teacher/profile") + if teacher_resp.status_code >= 500: + raise SystemExit("teacher/profile 500:\n{0}".format(teacher_resp.text)) + teacher_resp.raise_for_status() + teacher_data = teacher_resp.json() + + if teacher_data.get('code') != 0 or 'data' not in teacher_data: + raise SystemExit("Не удалось получить данные ни студента, ни преподавателя") + + # Обработка данных преподавателя + teacher_profile = teacher_data['data'][0] # Первый элемент в списке данных + surname = teacher_profile.get('sname', '') + name = teacher_profile.get('name', '') + gender = 'o' # По умолчанию, если поле отсутствует + stage = 'none' # Для преподавателя ступень не применима + + # Извлечение года рождения из даты (формат "дд.мм.гггг") + birth_year = None + if 'dateOfBirth' in teacher_profile: + try: + birth_year = int(teacher_profile['dateOfBirth'].split('.')[-1]) + except (ValueError, IndexError): + pass + + return surname, name, gender, stage, birth_year diff --git a/lms/djangoapps/univerapi/views.py.save b/lms/djangoapps/univerapi/views.py.save new file mode 100644 index 000000000000..d6b496770248 --- /dev/null +++ b/lms/djangoapps/univerapi/views.py.save @@ -0,0 +1,504 @@ +from django.shortcuts import render +from django.http import HttpResponse +import logging +#import authlib +import jwt +import openedx.core.djangoapps.user_api.views as user_api_view +import requests +import django.middleware.csrf +from django.views.decorators.csrf import csrf_exempt, csrf_protect, ensure_csrf_cookie +from django.utils.decorators import method_decorator +from django.shortcuts import redirect +import re +secret = '$ecRet@3#$2958GPIs!1' + +from django.shortcuts import render +from rest_framework.views import APIView +from rest_framework.generics import GenericAPIView + +from univerapi.models import Univeruser +from random import randint +import json +from student.models import User +import time +from django.db import connection +from django.contrib.sites.models import Site +from django.conf import settings +from django.http import JsonResponse + +class UniverView(GenericAPIView): + + def createuser(): + return 123 + + @method_decorator(csrf_protect) + def post(self, request): + return HttpResponse('post') + # TEST user + #exist_user = User.objects.get(email='hakymova.tyyshtyq642@kaznu.kz') + #return HttpResponse(repr(exist_user)) + # TEST user + + auth = request.POST.get('auth') + #auth = auth.split("auth=")[1] + encoded_jwt = request.GET.get('auth') + decoded = jwt.decode(encoded_jwt, "$ecRet@3#$2958GPIs!1", algorithms=["HS256"]) + + + new_user = Univeruser() + #new_user = Univeruser(edx_id = 0, edx_pass=decoded['upwd'], univer_id = decoded['uname']) + ''' + new_user.edx_pass=decoded['upwd'] + new_user.univer_id = decoded['uname'] + new_user.save() + ''' + created_user = '' + created_user_email = '' + try: + exist_user = Univeruser.objects.get(univer_id=decoded['uname']) + return HttpResponse('user exist') + + except: + created_user = decoded['uname'].split(".")[0]+str(randint(0, 1000)) + created_user_email = decoded['uname']+str(randint(0, 1000))+'@kaznu.kz' + multipart_form_data = { + 'email': (None, created_user_email), + 'password': (None, decoded['upwd'][:75]), + 'name': (None, decoded['uname']), + 'username': (None, created_user), + 'level_of_education': (None, 'b'), + 'gender': (None, 'o'), + 'year_of_birth': (None, '1995'), + 'honor_code': (None, 'true'), + 'surname': (None, 'surname'), + 'goals': (None, 'education'), + 'country': (None, 'KZ'), + 'mailing_address': (None, 'Kaznu') + } + client = requests.session() + client.get('http://192.168.199.128', verify=False) + csrftoken = client.cookies['csrftoken'] + login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') + coky = 'csrftoken='+csrftoken + headers = { + 'X-CSRFToken': csrftoken, + 'Cookie':coky + } + + response = requests.post('http://192.168.199.128:8181/user_api/v1/account/registration/', data=login_data, files=multipart_form_data, headers=headers, verify=False) + + #new_user.edx_pass=decoded['upwd'] + #new_user.univer_id = decoded['uname'] + #new_user.save() + json_data = json.loads(response.text) + + if ( ('success' in json_data) and (json_data['success'] == True)): + created_user_str = str(created_user) + + exist_user = None + i = 0 + while i < 60: + try: + exist_user = User.objects.get(username=created_user_str) + #exist_user = User.objects.raw('SELECT * FROM auth_user') + User.refresh_from_db() + break + except: + i += 1 + time.sleep(1) + + out_html='' + query = """SELECT id, username FROM auth_user where username LIKE '""" + "%%" + "hakymova" + "%%" + """'""" + query2 = """SELECT id, username FROM auth_user where username = '""" + created_user_str + """'""" + + + return HttpResponse(repr(exist_user)) + + # raw sql + time.sleep(10) + cursor = connection.cursor() + row = None + sql = 'SELECT id, username FROM auth_user' + try: + cursor.execute(str(query2)) + row = cursor.fetchall() + return HttpResponse(repr(row)) + except Exception as e: + cursor.close + return HttpResponse('error =' + str(e)) + # raw sql + + return HttpResponse(repr(cursor)) + #time.sleep(20) + #for p in User.objects.raw(query): + #User.refresh_from_db() + # out_html += str(p.username) + '\n' + #exist_user = User.objects.raw(str(query)) + #exist_user = User.objects.get(id=51808) + #return HttpResponse(str(created_user_str) + ' = ' + repr(exist_user) + str(i) + str(out_html)) + #return HttpResponse( str(out_html)) + else: + return HttpResponse('no registration') + + return HttpResponse((json_data['success'])) + + + #check_user = Univeruser.objects.get(univer_id=decoded['uname']) + + return HttpResponse(repr(exist_user)) + + multipart_form_data = { + 'email': (None, 'dl@kaznu.kz'), + 'password': (None, 'DlGao3wo'), + 'remember': (None, 'true') + } + client = requests.session() + client.get('http://192.168.199.128') + csrftoken = client.cookies['csrftoken'] + login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') + coky = 'csrftoken='+csrftoken + headers = { + 'X-CSRFToken': csrftoken, + 'Cookie':coky + } + + response = requests.post('http://192.168.199.128/user_api/v1/account/login_session/', data=login_data, files=multipart_form_data, headers=headers) + + headers2 = response.headers + + csrfToken = re.search(r'csrftoken=(\w+);', headers2['Set-Cookie']) + sessionid = re.search(r'sessionid="(\S+)";', headers2['Set-Cookie']) + + + cookies2 = { + '_ga': 'GA1.1.1602606957.1602045613', + 'experiments_is_enterprise': 'false', + 'openedx-language-preference': 'ru', + 'csrftoken': csrfToken.group(1), + 'edxloggedin': 'true', + 'sessionid': sessionid.group(1), + 'edx-user-info': '{\\"username\\": \\"staff\\"\\054 \\"version\\": 1\\054 \\"enrollmentStatusHash\\": \\"ace9f6124341dc7692d41de5b91bff7d\\"\\054 \\"header_urls\\": {\\"learner_profile\\": \\"http://192.168.199.128/u/staff\\"\\054 \\"resume_block\\": \\"http://192.168.199.128/user_api/v1/account/login_session/\\"\\054 \\"logout\\": \\"http://192.168.199.128/logout\\"\\054 \\"account_settings\\": \\"http://192.168.199.128/account/settings\\"}}', + } + + headers3 = { + 'Connection': 'keep-alive', + 'Upgrade-Insecure-Requests': '1', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36', + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', + 'Referer': 'http://192.168.199.128/login?next=%2F', + 'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7', + 'sec-gpc': '1', + } + + response = requests.get('http://192.168.199.128', headers=headers3, cookies=cookies2, verify=False) + return HttpResponse(response) + + #return HttpResponse(request.POST['csrf']) + + @method_decorator(ensure_csrf_cookie) + def get(self, request): + #return HttpResponse('get') + #return HttpResponse(repr(django.middleware.csrf.get_token(request))) + #return render(request, 'univerapi/login.html') + # TEST user + #exist_user = User.objects.get(email='hakymova.tyyshtyq642@kaznu.kz') + #return HttpResponse(repr(exist_user)) + # TEST user + current_site = 'https://open.kaznu.kz' + + + auth = request.POST.get('auth') + #auth = auth.split("auth=")[1] + encoded_jwt = request.GET.get('auth') + decoded = jwt.decode(encoded_jwt, secret, algorithms=["HS256"]) + + #return HttpResponse(decoded['upwd'][:75]) + #new_user = Univeruser() + #new_user = Univeruser(edx_id = 0, edx_pass=decoded['upwd'], univer_id = decoded['uname']) + ''' + new_user.edx_pass=decoded['upwd'] + new_user.univer_id = decoded['uname'] + new_user.save() + ''' + created_user = '' + created_user_email = '' + #return HttpResponse(repr(current_site)) + + try: + exist_user = Univeruser.objects.get(univer_id=decoded['uname']) + + return render(request, 'univerapi/redirect.html') + #return HttpResponse('user exist') + + except: + #created_user = decoded['uname'].split(".")[0]+str(randint(0, 1000)) + created_user = decoded['uname'].split(".")[0]+"_"+decoded['uname'].split(".")[1] + created_user_email = decoded['uname']+str(randint(0, 1000))+'@kaznu.kz' + multipart_form_data = { + 'email': (None, created_user_email), + 'password': (None, decoded['upwd'][:75]), + 'name': (None, decoded['uname']), + 'username': (None, created_user), + 'level_of_education': (None, 'b'), + 'gender': (None, 'o'), + 'year_of_birth': (None, '1995'), + 'honor_code': (None, 'true'), + 'surname': (None, 'surname'), + 'goals': (None, 'education'), + 'country': (None, 'KZ'), + 'mailing_address': (None, 'Kaznu') + + } + client = requests.session() + client.get(current_site, verify = False) + csrftoken = client.cookies['csrftoken'] + login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') + coky = 'csrftoken='+csrftoken + headers = { + 'X-CSRFToken': csrftoken, + 'Cookie':coky + } + + count_try = 0 + while True: + response = requests.post(current_site + '/user_api/v1/account/registration/', data=login_data, files=multipart_form_data, headers=headers, verify = False) + json_data = json.loads(response.text) + if ( ('success' in json_data) and (json_data['success'] == True)): + break + if ( ('username' in json_data) ): + if "existing account" in str(json_data): + #new_user = Univeruser() + #new_user = Univeruser(edx_id = created_user, edx_pass=0, univer_id = decoded['uname']) + #new_user.edx_username = created_user + #new_user.edx_id=0 + #new_user.edx_pass='0' + #new_user.univer_id = decoded['uname'] + #new_user.save() + + return render(request, 'univerapi/redirect.html') + time.sleep(1) + count_try += 1 + if (count_try == 20): + return JsonResponse(json_data) + + if ( ('success' in json_data) and (json_data['success'] == True)): + new_user = Univeruser() + new_user.edx_username = created_user + new_user.edx_id=0 + new_user.edx_pass='0' + new_user.univer_id = decoded['uname'] + new_user.save() + + return render(request, 'univerapi/redirect.html') + + created_user_str = str(created_user) + + exist_user = None + i = 0 + while i < 60: + try: + exist_user = User.objects.get(username=created_user_str) + #exist_user = User.objects.raw('SELECT * FROM auth_user') + User.refresh_from_db() + break + except: + i += 1 + time.sleep(1) + + out_html='' + query = """SELECT id, username FROM auth_user where username LIKE '""" + "%%" + "hakymova" + "%%" + """'""" + query2 = """SELECT id, username FROM auth_user where username = '""" + created_user_str + """'""" + + + return HttpResponse(repr(exist_user)) + + # raw sql + time.sleep(10) + cursor = connection.cursor() + row = None + sql = 'SELECT id, username FROM auth_user' + try: + cursor.execute(str(query2)) + row = cursor.fetchall() + return HttpResponse(repr(row)) + except Exception as e: + cursor.close + return HttpResponse('error =' + str(e)) + # raw sql + + return HttpResponse(repr(cursor)) + else: + return HttpResponse('no registration') + +#@method_decorator(csrf_protect) +#method_decorator(csrf_protect) + +def authview(request): + return render(request, 'univerapi/index.html') + #return HttpResponse('auth') + +# check activated +def authview_check(request): + auth = request.POST.get('auth') + auth = auth.split("auth=")[1] + #encoded_jwt = request.GET.get('auth') + #decoded = jwt.decode(encoded_jwt, "$ecRet@3#$2958GPIs!1", algorithms=["HS256"]) + #return HttpResponse('OK') + encoded_jwt = auth + decoded = jwt.decode(encoded_jwt, "$ecRet@3#$2958GPIs!1", algorithms=["HS256"]) + already_exist_user = decoded['uname'] + + try: + exist_user = Univeruser.objects.get(univer_id=decoded['uname']) + exist_edx_user = User.objects.get(username=exist_user.edx_username) + exist_edx_user.is_active = 1 + exist_edx_user.save() + #return render(request, 'univerapi/redirect.html') + + + except: + return JsonResponse({"success":"false"}) + + #return HttpResponse('') + return JsonResponse({"success":"true"}) + +@method_decorator(csrf_protect) +def test(request, *args, **kwargs): + logger = logging.getLogger(__name__) + logger.error("Test api") + #logger.error(request) + #logger.error(request.GET.get('auth')) + #encoded_jwt = jwt.encode({"some": "payload"}, "secret", algorithm="HS256") + + #return HttpResponse(answer) + # hash = eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1bmFtZSI6Imhha3ltb3ZhLnR5eXNodHlxIiwidXB3ZCI6IjA3NzdGMDk4MEIzMUE2MEZDRkVFQzlEQjNGOTFEOUI4RUVCQUU4NDQ0NjAwRTQ3MUQyMzEyQjYyNDA2MjVCNTZFM0Q0RDM5RDRBREYwMTg5N0QzQTEzMDkzRTcwRkU1NjRGMUJBRDZCOTIxMUE0NTAwODQxRDFFQzNFMkNGODcwIn0.QLCZHTM2ACm0byg77h0C7KpGwMxcxJuy-M96lQzc3Mk + + #return HttpResponse(repr(args)) + + client = requests.session() + client.get('http://192.168.199.128', verify = False) + csrftoken = client.cookies['csrftoken'] + login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') + coky = 'csrftoken='+csrftoken + headers = { + 'X-CSRFToken': csrftoken, + 'Cookie':coky + } + + # register + multipart_form_data_register = { + 'email': (None, 'hakymova.tyyshtyq@test11.ru'), + 'name': (None, 'hakymova.tyyshtyq'), + 'username': (None, 'hakymova11'), + 'password': (None, '988EBA1673B2F08F99F61719A2F8BC47791250B3A052DA2992D0148DE2D2E084C2E23E6E3C7'), + 'level_of_education': (None, 'hs'), + 'gender': (None, 'f'), + 'year_of_birth': (None, '1969'), + 'mailing_address': (None, ''), + 'goals': (None, ''), + 'honor_code': (None, 'true'), + + } + + response_register = requests.post('http://192.168.199.128/user_api/v1/account/registration/', data=login_data, files=multipart_form_data_register, headers=headers, verify = False) + + return HttpResponse(repr(response_register)) + + # /register + + multipart_form_data = { + 'email': (None, 'dl@kaznu.kz'), + 'password': (None, 'DlGao3wo'), + 'remember': (None, 'false') + } + client = requests.session() + client.get('http://192.168.199.128', verify = False) + csrftoken = client.cookies['csrftoken'] + login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') + coky = 'csrftoken='+csrftoken + headers = { + 'X-CSRFToken': csrftoken, + 'Cookie':coky + } + # http://192.168.199.128/user_api/v1/account/login_session/ + # https://webhook.site/8bdb471b-3d63-46c2-b788-79f7398144e6 + + + + + + + + + + response = requests.post('http://192.168.199.128/user_api/v1/account/login_session/', data=login_data, files=multipart_form_data, headers=headers, verify = False) + + return HttpResponse(repr(request.GET)) + + #client.get('http://192.168.199.128:8181') + #session_key = client.cookies['sessionid'] + + + #edx_auth = user_api_view.LoginSessionView() + #testauth = edx_auth.post(request) + + headers2 = response.headers + #home = requests.get('http://192.168.199.128/dashboard', headers=headers2) + #home = HttpResponse(status=302) + #home['Location'] = 'http://192.168.199.128/' + csrfToken = re.search(r'csrftoken=(\w+);', headers2['Set-Cookie']) + sessionid = re.search(r'sessionid="(\S+)";', headers2['Set-Cookie']) + + + + + + cookies2 = { + '_ga': 'GA1.1.1602606957.1602045613', + 'experiments_is_enterprise': 'false', + 'openedx-language-preference': 'ru', + 'csrftoken': csrfToken.group(1), + 'edxloggedin': 'true', + 'sessionid': sessionid.group(1), + 'edx-user-info': '{\\"username\\": \\"staff\\"\\054 \\"version\\": 1\\054 \\"enrollmentStatusHash\\": \\"ace9f6124341dc7692d41de5b91bff7d\\"\\054 \\"header_urls\\": {\\"learner_profile\\": \\"http://192.168.199.128/u/staff\\"\\054 \\"resume_block\\": \\"http://192.168.199.128/user_api/v1/account/login_session/\\"\\054 \\"logout\\": \\"http://192.168.199.128/logout\\"\\054 \\"account_settings\\": \\"http://192.168.199.128/account/settings\\"}}', + } + + headers3 = { + 'Connection': 'keep-alive', + 'Upgrade-Insecure-Requests': '1', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36', + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', + 'Referer': 'http://192.168.199.128/login?next=%2F', + 'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7', + 'sec-gpc': '1', + } + + response = requests.get('http://192.168.199.128/dashboard', headers=headers3, cookies=cookies2, verify=False) + return HttpResponse(response) + + + + + + + + return HttpResponse(sessionid.group(1)) + + + #home = redirect('http://192.168.199.128') + #return home + + try: + #test = edx_auth.post(request) + test = 0 + except Exception as e: + return HttpResponse(e.message) + + hash = request.GET.get('auth') + try: + answer = jwt.decode(hash, secret, algorithms=["HS256"]) + except Exception as e: + return HttpResponse(e.message) + + #return HttpResponse(repr(request)) + return HttpResponse(repr(response.headers)) diff --git a/lms/djangoapps/univerapi/views.py.save.1 b/lms/djangoapps/univerapi/views.py.save.1 new file mode 100644 index 000000000000..3b6b93561cb7 --- /dev/null +++ b/lms/djangoapps/univerapi/views.py.save.1 @@ -0,0 +1,232 @@ +# -*- coding: utf-8 -*- + +from django.shortcuts import render +from django.http import HttpResponse +import logging +#import authlib +import jwt +import openedx.core.djangoapps.user_api.views as user_api_view +import requests +import django.middleware.csrf +from django.views.decorators.csrf import csrf_exempt, csrf_protect, ensure_csrf_cookie +from django.utils.decorators import method_decorator +from django.shortcuts import redirect +import re +secret = '$ecRet@3#$2958GPIs!1' + +from django.shortcuts import render +from rest_framework.views import APIView +from rest_framework.generics import GenericAPIView + +from univerapi.models import Univeruser +from random import randint +import json +from student.models import User +import time +from django.db import connection +from django.contrib.sites.models import Site +from django.conf import settings +from django.http import JsonResponse + +class UniverView(GenericAPIView): + + def createuser(): + return 123 + + @method_decorator(csrf_protect) + def post(self, request): + return HttpResponse('post') + # TEST user + #exist_user = User.objects.get(email='hakymova.tyyshtyq642@kaznu.kz') + #return HttpResponse(repr(exist_user)) + # TEST user + + auth = request.POST.get('auth') + #auth = auth.split("auth=")[1] + encoded_jwt = request.GET.get('auth') + decoded = jwt.decode(encoded_jwt, "$ecRet@3#$2958GPIs!1", algorithms=["HS256"]) + + new_user = Univeruser() + #new_user = Univeruser(edx_id = 0, edx_pass=decoded['upwd'], univer_id = decoded['uname']) + ''' + new_user.edx_pass=decoded['upwd'] + new_user.univer_id = decoded['uname'] + new_user.save() + ''' + created_user = '' + created_user_email = '' + try: + exist_user = Univeruser.objects.get(univer_id=decoded['uname']) + + return HttpResponse('user exist') + + except: + surname, name, gender, stage, birth_year = decode_token_and_fetch_profile(encoded_jwt) + created_user = decoded['uname'].split(".")[0]+str(randint(0, 1000)) + created_user_email = decoded['uname']+str(randint(0, 1000))+'@kaznu.kz' + multipart_form_data = { + 'email': (None, created_user_email), + 'password': (None, decoded['upwd'][:75]), + 'name': (None, name), + 'username': (None, created_user), + 'level_of_education': (None, stage), + 'gender': (None, gender), + 'year_of_birth': (None, birth_year), + 'honor_code': (None, 'true'), + 'country': (None, 'KZ'), + 'goals': (None, 'education'), + 'surname': (None, surname), + 'mailing_address': (None, 'Kaznu') + } + client = requests.session() + client.get('http://192.168.199.128', verify=False) + csrftoken = client.cookies['csrftoken'] + login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') + coky = 'csrftoken='+csrftoken + headers = { + 'X-CSRFToken': csrftoken, + 'Cookie':coky + } + + response = requests.post('http://192.168.199.128:8181/user_api/v1/account/registration/', data=login_data, files=multipart_form_data, headers=headers, verify=False) + + #new_user.edx_pass=decoded['upwd'] + #new_user.univer_id = decoded['uname'] + #new_user.save() + json_data = json.loads(response.text) + + if ( ('success' in json_data) and (json_data['success'] == True)): + created_user_str = str(created_user) + + exist_user = None + i = 0 + while i < 60: + try: + exist_user = User.objects.get(username=created_user_str) + #exist_user = User.objects.raw('SELECT * FROM auth_user') + User.refresh_from_db() + break + except: + i += 1 + time.sleep(3) + + out_html='' + query = """SELECT id, username FROM auth_user where username LIKE '""" + "%%" + "hakymova" + "%%" + """'""" + query2 = """SELECT id, username FROM auth_user where username = '""" + created_user_str + """'""" + + + return HttpResponse(repr(exist_user)) + + # raw sql + time.sleep(10) + cursor = connection.cursor() + row = None + sql = 'SELECT id, username FROM auth_user' + try: + cursor.execute(str(query2)) + row = cursor.fetchall() + return HttpResponse(repr(row)) + except Exception as e: + cursor.close + return HttpResponse('error =' + str(e)) + # raw sql + + return HttpResponse(repr(cursor)) + #time.sleep(20) + #for p in User.objects.raw(query): + #User.refresh_from_db() + # out_html += str(p.username) + '\n' + #exist_user = User.objects.raw(str(query)) + #exist_user = User.objects.get(id=51808) + #return HttpResponse(str(created_user_str) + ' = ' + repr(exist_user) + str(i) + str(out_html)) + #return HttpResponse( str(out_html)) + else: + return HttpResponse('no registration') + + return HttpResponse((json_data['success'])) + + + #check_user = Univeruser.objects.get(univer_id=decoded['uname']) + + return HttpResponse(repr(exist_user)) + + multipart_form_data = { + 'email': (None, 'dl@kaznu.kz'), + 'password': (None, 'DlGao3wo'), + 'remember': (None, 'true') + } + client = requests.session() + client.get('http://192.168.199.128') + csrftoken = client.cookies['csrftoken'] + login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') + coky = 'csrftoken='+csrftoken + headers = { + 'X-CSRFToken': csrftoken, + 'Cookie':coky + } + + response = requests.post('http://192.168.199.128/user_api/v1/account/login_session/', data=login_data, files=multipart_form_data, headers=headers, verify = False) + + headers2 = response.headers + + csrfToken = re.search(r'csrftoken=(\w+);', headers2['Set-Cookie']) + sessionid = re.search(r'sessionid="(\S+)";', headers2['Set-Cookie']) + + + cookies2 = { + '_ga': 'GA1.1.1602606957.1602045613', + 'experiments_is_enterprise': 'false', + 'openedx-language-preference': 'ru', + 'csrftoken': csrfToken.group(1), + 'edxloggedin': 'true', + 'sessionid': sessionid.group(1), + 'edx-user-info': '{\\"username\\": \\"staff\\"\\054 \\"version\\": 1\\054 \\"enrollmentStatusHash\\": \\"ace9f6124341dc7692d41de5b91bff7d\\"\\054 \\"header_urls\\": {\\"learner_profile\\": \\"http://192.168.199.128/u/staff\\"\\054 \\"resume_block\\": \\"http://192.168.199.128/user_api/v1/account/login_session/\\"\\054 \\"logout\\": \\"http://192.168.199.128/logout\\"\\054 \\"account_settings\\": \\"http://192.168.199.128/account/settings\\"}}', + } + + headers3 = { + 'Connection': 'keep-alive', + 'Upgrade-Insecure-Requests': '1', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36', + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', + 'Referer': 'http://192.168.199.128/login?next=%2F', + 'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7', + 'sec-gpc': '1', + } + + response = requests.get('http://192.168.199.128', headers=headers3, cookies=cookies2, verify=False) + return HttpResponse(response) + + #return HttpResponse(request.POST['csrf']) + + @method_decorator(ensure_csrf_cookie) + def get(self, request): + #return HttpResponse('get') + #return HttpResponse(repr(django.middleware.csrf.get_token(request))) + #return render(request, 'univerapi/login.html') + # TEST user + #exist_user = User.objects.get(email='hakymova.tyyshtyq642@kaznu.kz') + #return HttpResponse(repr(exist_user)) + # TEST user + current_site = 'https://open.kaznu.kz' + + + auth = request.POST.get('auth') + #auth = auth.split("auth=")[1] + encoded_jwt = request.GET.get('auth') + decoded = jwt.decode(encoded_jwt, secret, algorithms=["HS256"]) + + #return HttpResponse(decoded['upwd'][:75]) + #new_user = Univeruser() + #new_user = Univeruser(edx_id = 0, edx_pass=decoded['upwd'], univer_id = decoded['uname']) + ''' + new_user.edx_pass=decoded['upwd'] + new_user.univer_id = decoded['uname'] + new_user.save() + ''' + created_user = '' + created_user_email = '' + #return HttpResponse(repr(current_site)) + + try: + exist_user = Univeruser.objects.get(univer_id=decoded['uname']) + diff --git a/lms/djangoapps/univerapi/views.py.save.2 b/lms/djangoapps/univerapi/views.py.save.2 new file mode 100644 index 000000000000..936d09d9db84 --- /dev/null +++ b/lms/djangoapps/univerapi/views.py.save.2 @@ -0,0 +1,572 @@ +# -*- coding: utf-8 -*- + +from django.shortcuts import render +from django.http import HttpResponse +import logging +#import authlib +import jwt +import openedx.core.djangoapps.user_api.views as user_api_view +import requests +import django.middleware.csrf +from django.views.decorators.csrf import csrf_exempt, csrf_protect, ensure_csrf_cookie +from django.utils.decorators import method_decorator +from django.shortcuts import redirect +import re +secret = '$ecRet@3#$2958GPIs!1' + +from django.shortcuts import render +from rest_framework.views import APIView +from rest_framework.generics import GenericAPIView + +from univerapi.models import Univeruser +from random import randint +import json +from student.models import User +import time +from django.db import connection +from django.contrib.sites.models import Site +from django.conf import settings +from django.http import JsonResponse + +class UniverView(GenericAPIView): + + def createuser(): + return 123 + + @method_decorator(csrf_protect) + def post(self, request): + return HttpResponse('post') + # TEST user + #exist_user = User.objects.get(email='hakymova.tyyshtyq642@kaznu.kz') + #return HttpResponse(repr(exist_user)) + # TEST user + + auth = request.POST.get('auth') + #auth = auth.split("auth=")[1] + encoded_jwt = request.GET.get('auth') + decoded = jwt.decode(encoded_jwt, "$ecRet@3#$2958GPIs!1", algorithms=["HS256"]) + + new_user = Univeruser() + #new_user = Univeruser(edx_id = 0, edx_pass=decoded['upwd'], univer_id = decoded['uname']) + ''' + new_user.edx_pass=decoded['upwd'] + new_user.univer_id = decoded['uname'] + new_user.save() + ''' + created_user = '' + created_user_email = '' + try: + exist_user = Univeruser.objects.get(univer_id=decoded['uname']) + + return HttpResponse('user exist') + + except: + surname, name, gender, stage, birth_year = decode_token_and_fetch_profile(encoded_jwt) + created_user = decoded['uname'].split(".")[0]+str(randint(0, 1000)) + created_user_email = decoded['uname']+str(randint(0, 1000))+'@kaznu.kz' + multipart_form_data = { + 'email': (None, created_user_email), + 'password': (None, decoded['upwd'][:75]), + 'name': (None, name), + 'username': (None, created_user), + 'level_of_education': (None, stage), + 'gender': (None, gender), + 'year_of_birth': (None, birth_year), + 'honor_code': (None, 'true'), + 'country': (None, 'KZ'), + 'goals': (None, 'education'), + 'surname': (None, surname), + 'mailing_address': (None, 'Kaznu') + } + client = requests.session() + client.get('http://192.168.199.128', verify=False) + csrftoken = client.cookies['csrftoken'] + login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') + coky = 'csrftoken='+csrftoken + headers = { + 'X-CSRFToken': csrftoken, + 'Cookie':coky + } + + response = requests.post('http://192.168.199.128:8181/user_api/v1/account/registration/', data=login_data, files=multipart_form_data, headers=headers, verify=False) + + #new_user.edx_pass=decoded['upwd'] + #new_user.univer_id = decoded['uname'] + #new_user.save() + json_data = json.loads(response.text) + + if ( ('success' in json_data) and (json_data['success'] == True)): + created_user_str = str(created_user) + + exist_user = None + i = 0 + while i < 60: + try: + exist_user = User.objects.get(username=created_user_str) + #exist_user = User.objects.raw('SELECT * FROM auth_user') + User.refresh_from_db() + break + except: + i += 1 + time.sleep(3) + + out_html='' + query = """SELECT id, username FROM auth_user where username LIKE '""" + "%%" + "hakymova" + "%%" + """'""" + query2 = """SELECT id, username FROM auth_user where username = '""" + created_user_str + """'""" + + + return HttpResponse(repr(exist_user)) + + # raw sql + time.sleep(10) + cursor = connection.cursor() + row = None + sql = 'SELECT id, username FROM auth_user' + try: + cursor.execute(str(query2)) + row = cursor.fetchall() + return HttpResponse(repr(row)) + except Exception as e: + cursor.close + return HttpResponse('error =' + str(e)) + # raw sql + + return HttpResponse(repr(cursor)) + #time.sleep(20) + #for p in User.objects.raw(query): + #User.refresh_from_db() + # out_html += str(p.username) + '\n' + #exist_user = User.objects.raw(str(query)) + #exist_user = User.objects.get(id=51808) + #return HttpResponse(str(created_user_str) + ' = ' + repr(exist_user) + str(i) + str(out_html)) + #return HttpResponse( str(out_html)) + else: + return HttpResponse('no registration') + + return HttpResponse((json_data['success'])) + + + #check_user = Univeruser.objects.get(univer_id=decoded['uname']) + + return HttpResponse(repr(exist_user)) + + multipart_form_data = { + 'email': (None, 'dl@kaznu.kz'), + 'password': (None, 'DlGao3wo'), + 'remember': (None, 'true') + } + client = requests.session() + client.get('http://192.168.199.128') + csrftoken = client.cookies['csrftoken'] + login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') + coky = 'csrftoken='+csrftoken + headers = { + 'X-CSRFToken': csrftoken, + 'Cookie':coky + } + + response = requests.post('http://192.168.199.128/user_api/v1/account/login_session/', data=login_data, files=multipart_form_data, headers=headers, verify = False) + + headers2 = response.headers + + csrfToken = re.search(r'csrftoken=(\w+);', headers2['Set-Cookie']) + sessionid = re.search(r'sessionid="(\S+)";', headers2['Set-Cookie']) + + + cookies2 = { + '_ga': 'GA1.1.1602606957.1602045613', + 'experiments_is_enterprise': 'false', + 'openedx-language-preference': 'ru', + 'csrftoken': csrfToken.group(1), + 'edxloggedin': 'true', + 'sessionid': sessionid.group(1), + 'edx-user-info': '{\\"username\\": \\"staff\\"\\054 \\"version\\": 1\\054 \\"enrollmentStatusHash\\": \\"ace9f6124341dc7692d41de5b91bff7d\\"\\054 \\"header_urls\\": {\\"learner_profile\\": \\"http://192.168.199.128/u/staff\\"\\054 \\"resume_block\\": \\"http://192.168.199.128/user_api/v1/account/login_session/\\"\\054 \\"logout\\": \\"http://192.168.199.128/logout\\"\\054 \\"account_settings\\": \\"http://192.168.199.128/account/settings\\"}}', + } + + headers3 = { + 'Connection': 'keep-alive', + 'Upgrade-Insecure-Requests': '1', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36', + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', + 'Referer': 'http://192.168.199.128/login?next=%2F', + 'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7', + 'sec-gpc': '1', + } + + response = requests.get('http://192.168.199.128', headers=headers3, cookies=cookies2, verify=False) + return HttpResponse(response) + + #return HttpResponse(request.POST['csrf']) + + @method_decorator(ensure_csrf_cookie) + def get(self, request): + #return HttpResponse('get') + #return HttpResponse(repr(django.middleware.csrf.get_token(request))) + #return render(request, 'univerapi/login.html') + # TEST user + #exist_user = User.objects.get(email='hakymova.tyyshtyq642@kaznu.kz') + #return HttpResponse(repr(exist_user)) + # TEST user + current_site = 'https://open.kaznu.kz' + + + auth = request.POST.get('auth') + #auth = auth.split("auth=")[1] + encoded_jwt = request.GET.get('auth') + decoded = jwt.decode(encoded_jwt, secret, algorithms=["HS256"]) + + #return HttpResponse(decoded['upwd'][:75]) + #new_user = Univeruser() + #new_user = Univeruser(edx_id = 0, edx_pass=decoded['upwd'], univer_id = decoded['uname']) + ''' + new_user.edx_pass=decoded['upwd'] + new_user.univer_id = decoded['uname'] + new_user.save() + ''' + created_user = '' + created_user_email = '' + #return HttpResponse(repr(current_site)) + + try: + exist_user = Univeruser.objects.get(univer_id=decoded['uname']) + + return render(request, 'univerapi/redirect.html') + #return HttpResponse('user exist') + + except: + surname, name, gender, stage, birth_year = decode_token_and_fetch_profile(encoded_jwt) + #created_user = decoded['uname'].split(".")[0]+str(randint(0, 1000)) + created_user = decoded['uname'].split(".")[0]+"_"+decoded['uname'].split(".")[1] + created_user_email = decoded['uname']+str(randint(0, 1000))+'@kaznu.kz' + multipart_form_data = { + 'email': (None, created_user_email), + 'password': (None, decoded['upwd'][:75]), + 'name': (None, name), + 'username': (None, created_user), + 'level_of_education': (None, stage), + 'gender': (None, gender), + 'year_of_birth': (None, birth_year), + 'honor_code': (None, 'true'), + 'country': (None , 'KZ'), + 'surname': (None, surname), + 'goals': (None, 'education'), + 'mailing_address': (None, 'Kaznu') + } + client = requests.session() + client.get(current_site, verify = False) + csrftoken = client.cookies['csrftoken'] + login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') + coky = 'csrftoken='+csrftoken + headers = { + 'X-CSRFToken': csrftoken, + 'Cookie':coky + } + + count_try = 0 + while True: + response = requests.post(current_site + '/user_api/v1/account/registration/', data=login_data, files=multipart_form_data, headers=headers, verify = False) + json_data = json.loads(response.text) + if ( ('success' in json_data) and (json_data['success'] == True)): + break + if ( ('username' in json_data) ): + if "existing account" in str(json_data): + #new_user = Univeruser() + #new_user = Univeruser(edx_id = created_user, edx_pass=0, univer_id = decoded['uname']) + #new_user.edx_username = created_user + #new_user.edx_id=0 + #new_user.edx_pass='0' + #new_user.univer_id = decoded['uname'] + #new_user.save() + + return render(request, 'univerapi/redirect.html') + time.sleep(3) + count_try += 1 + if (count_try == 20): + return JsonResponse(json_data) + + if ( ('success' in json_data) and (json_data['success'] == True)): + new_user = Univeruser() + new_user.edx_username = created_user + new_user.edx_id=0 + new_user.edx_pass='0' + new_user.univer_id = decoded['uname'] + new_user.save() + + return render(request, 'univerapi/redirect.html') + + created_user_str = str(created_user) + + exist_user = None + i = 0 + while i < 60: + try: + exist_user = User.objects.get(username=created_user_str) + #exist_user = User.objects.raw('SELECT * FROM auth_user') + User.refresh_from_db() + break + except: + i += 1 + time.sleep(3) + + out_html='' + query = """SELECT id, username FROM auth_user where username LIKE '""" + "%%" + "hakymova" + "%%" + """'""" + query2 = """SELECT id, username FROM auth_user where username = '""" + created_user_str + """'""" + + + return HttpResponse(repr(exist_user)) + + # raw sql + time.sleep(10) + cursor = connection.cursor() + row = None + sql = 'SELECT id, username FROM auth_user' + try: + cursor.execute(str(query2)) + row = cursor.fetchall() + return HttpResponse(repr(row)) + except Exception as e: + cursor.close + return HttpResponse('error =' + str(e)) + # raw sql + + return HttpResponse(repr(cursor)) + else: + return HttpResponse('no registration') + +#@method_decorator(csrf_protect) +#method_decorator(csrf_protect) + +def authview(request): + return render(request, 'univerapi/index.html') + #return HttpResponse('auth') + +# check activated +def authview_check(request): + auth = request.POST.get('auth') + auth = auth.split("auth=")[1] + #encoded_jwt = request.GET.get('auth') + #decoded = jwt.decode(encoded_jwt, "$ecRet@3#$2958GPIs!1", algorithms=["HS256"]) + #return HttpResponse('OK') + encoded_jwt = auth + decoded = jwt.decode(encoded_jwt, "$ecRet@3#$2958GPIs!1", algorithms=["HS256"]) + already_exist_user = decoded['uname'] + + try: + exist_user = Univeruser.objects.get(univer_id=decoded['uname']) + exist_edx_user = User.objects.get(username=exist_user.edx_username) + exist_edx_user.is_active = 1 + exist_edx_user.save() + #return render(request, 'univerapi/redirect.html') + + + except: + return JsonResponse({"success":"false"}) + + #return HttpResponse('') + return JsonResponse({"success":"true"}) + +@method_decorator(csrf_protect) +def test(request, *args, **kwargs): + logger = logging.getLogger(__name__) + logger.error("Test api") + #logger.error(request) + #logger.error(request.GET.get('auth')) + #encoded_jwt = jwt.encode({"some": "payload"}, "secret", algorithm="HS256") + + #return HttpResponse(answer) + # hash = eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1bmFtZSI6Imhha3ltb3ZhLnR5eXNodHlxIiwidXB3ZCI6IjA3NzdGMDk4MEIzMUE2MEZDRkVFQzlEQjNGOTFEOUI4RUVCQUU4NDQ0NjAwRTQ3MUQyMzEyQjYyNDA2MjVCNTZFM0Q0RDM5RDRBREYwMTg5N0QzQTEzMDkzRTcwRkU1NjRGMUJBRDZCOTIxMUE0NTAwODQxRDFFQzNFMkNGODcwIn0.QLCZHTM2ACm0byg77h0C7KpGwMxcxJuy-M96lQzc3Mk + + #return HttpResponse(repr(args)) + + client = requests.session() + client.get('http://192.168.199.128', verify = False) + csrftoken = client.cookies['csrftoken'] + login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') + coky = 'csrftoken='+csrftoken + headers = { + 'X-CSRFToken': csrftoken, + 'Cookie':coky + } + + # register + multipart_form_data_register = { + 'email': (None, 'hakymova.tyyshtyq@test11.ru'), + 'name': (None, 'hakymova.tyyshtyq'), + 'username': (None, 'hakymova11'), + 'password': (None, '988EBA1673B2F08F99F61719A2F8BC47791250B3A052DA2992D0148DE2D2E084C2E23E6E3C7'), + 'level_of_education': (None, 'hs'), + 'gender': (None, 'f'), + 'year_of_birth': (None, '1969'), + 'mailing_address': (None, ''), + 'goals': (None, ''), + 'honor_code': (None, 'true'), + + } + + response_register = requests.post('http://192.168.199.128/user_api/v1/account/registration/', data=login_data, files=multipart_form_data_register, headers=headers) + + return HttpResponse(repr(response_register)) + + # /register + + multipart_form_data = { + 'email': (None, 'dl@kaznu.kz'), + 'password': (None, 'DlGao3wo'), + 'remember': (None, 'false') + } + client = requests.session() + client.get('http://192.168.199.128', verify = False) + csrftoken = client.cookies['csrftoken'] + login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') + coky = 'csrftoken='+csrftoken + headers = { + 'X-CSRFToken': csrftoken, + 'Cookie':coky + } + # http://192.168.199.128/user_api/v1/account/login_session/ + # https://webhook.site/8bdb471b-3d63-46c2-b788-79f7398144e6 + + + + + + + + + + response = requests.post('http://192.168.199.128/user_api/v1/account/login_session/', data=login_data, files=multipart_form_data, headers=headers) + + return HttpResponse(repr(request.GET)) + + #client.get('http://192.168.199.128:8181') + #session_key = client.cookies['sessionid'] + + + #edx_auth = user_api_view.LoginSessionView() + #testauth = edx_auth.post(request) + + headers2 = response.headers + #home = requests.get('http://192.168.199.128/dashboard', headers=headers2) + #home = HttpResponse(status=302) + #home['Location'] = 'http://192.168.199.128/' + csrfToken = re.search(r'csrftoken=(\w+);', headers2['Set-Cookie']) + sessionid = re.search(r'sessionid="(\S+)";', headers2['Set-Cookie']) + + + + + + cookies2 = { + '_ga': 'GA1.1.1602606957.1602045613', + 'experiments_is_enterprise': 'false', + 'openedx-language-preference': 'ru', + 'csrftoken': csrfToken.group(1), + 'edxloggedin': 'true', + 'sessionid': sessionid.group(1), + 'edx-user-info': '{\\"username\\": \\"staff\\"\\054 \\"version\\": 1\\054 \\"enrollmentStatusHash\\": \\"ace9f6124341dc7692d41de5b91bff7d\\"\\054 \\"header_urls\\": {\\"learner_profile\\": \\"http://192.168.199.128/u/staff\\"\\054 \\"resume_block\\": \\"http://192.168.199.128/user_api/v1/account/login_session/\\"\\054 \\"logout\\": \\"http://192.168.199.128/logout\\"\\054 \\"account_settings\\": \\"http://192.168.199.128/account/settings\\"}}', + } + + headers3 = { + 'Connection': 'keep-alive', + 'Upgrade-Insecure-Requests': '1', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36', + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', + 'Referer': 'http://192.168.199.128/login?next=%2F', + 'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7', + 'sec-gpc': '1', + } + + response = requests.get('http://192.168.199.128/dashboard', headers=headers3, cookies=cookies2, verify=False) + return HttpResponse(response) + + + + + + return HttpResponse(sessionid.group(1)) + + + #home = redirect('http://192.168.199.128') + #return home + + try: + #test = edx_auth.post(request) + test = 0 + except Exception as e: + return HttpResponse(e.message) + + hash = request.GET.get('auth') + try: + answer = jwt.decode(hash, secret, algorithms=["HS256"]) + except Exception as e: + return HttpResponse(e.message) + + #return HttpResponse(repr(request)) + return HttpResponse(repr(response.headers)) + + + + + + + + +import requests +import jwt # Убедитесь, что установлен PyJWT версии 1.x: pip install "PyJWT<2" + + +def decode_token_and_fetch_profile(token, secret_key='$ecRet@3#$2958GPIs!1'): + decoded_token = jwt.decode(token, secret_key, algorithms=['HS256']) + uname = decoded_token.get('uname', None) + upwd = decoded_token.get('upwd', None) + + if uname and upwd: + login_url = "https://univerapi.kaznu.kz/user/loginMoodle" + credentials = { + 'login': uname, + 'password': upwd + } + + session = requests.Session() + response = session.post(login_url, data=credentials) + response_data = response.json() + + if response.status_code == 200 and response_data.get('code') == 0: + profile_url = "https://univerapi.kaznu.kz/teacher/profile" + profile_response = session.get(profile_url) + profile_data = profile_response.json() + roles = "teacher" + + if profile_data.get('code') == 1: + profile_url = "https://univerapi.kaznu.kz/student/profile" + profile_response = session.get(profile_url) + profile_data = profile_response.json() + roles = "student" + + surname = '' + name = '' + birth_year = '' + gender = '' + stage = '' + + if roles == "teacher": + user_data = profile_data['data'][0] + surname = user_data['sname'] + name = user_data['name'] + date_of_birth = user_data['dateOfBirth'] + birth_year = date_of_birth.split('.')[-1] + + if roles == "student": + surname = profile_data['data'][1][0]['sname'].split(':')[1] + name = profile_data['data'][1][1]['name'].split(':')[1] + gender = profile_data['data'][1][4]['sex'].split(':')[1] + stage = profile_data['data'][0][4]['stage'].split(':')[1] + + # Обработка stage и gender в одну строку + + + return surname, name, gender, stage, birth_year + + return None, None, None, None, None # Возвращаем None, если авторизация не удалась + + From 250ccb69d9eae69b24a92eea250a165d5ab58047 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Tue, 12 Aug 2025 16:43:49 +0500 Subject: [PATCH 035/443] Update common.py --- lms/envs/common.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lms/envs/common.py b/lms/envs/common.py index 763bd83b9d8e..ea8a4b7f78de 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -3033,6 +3033,7 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring # - Make it a plugin (which are auto-registered) and add it to the EDXAPP_PRIVATE_REQUIREMENTS configuration variable # (See https://github.com/openedx/edx-django-utils/tree/master/edx_django_utils/plugins) INSTALLED_APPS = [ + 'lms.djangoapps.univerapi' # Standard ones that are always installed... 'django.contrib.auth', 'django.contrib.contenttypes', From f1f19474a3eef1e5f56e4e354afab710ccb00e44 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Tue, 12 Aug 2025 16:45:03 +0500 Subject: [PATCH 036/443] Update common.py --- cms/envs/common.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cms/envs/common.py b/cms/envs/common.py index 65425f566597..a2475a7de9c2 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -1608,6 +1608,7 @@ # remember to check that you are not creating new # RemovedInDjango19Warnings in the test logs. INSTALLED_APPS = [ + 'lms.djangoapps.univerapi', # Standard apps 'django.contrib.auth', 'django.contrib.contenttypes', From a41a7c906518df95f08fead77c69c2bb2ec338aa Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Tue, 12 Aug 2025 16:45:53 +0500 Subject: [PATCH 037/443] Update common.py --- lms/envs/common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/envs/common.py b/lms/envs/common.py index ea8a4b7f78de..c520f9ab3d41 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -3033,7 +3033,7 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring # - Make it a plugin (which are auto-registered) and add it to the EDXAPP_PRIVATE_REQUIREMENTS configuration variable # (See https://github.com/openedx/edx-django-utils/tree/master/edx_django_utils/plugins) INSTALLED_APPS = [ - 'lms.djangoapps.univerapi' + 'lms.djangoapps.univerapi', # Standard ones that are always installed... 'django.contrib.auth', 'django.contrib.contenttypes', From 90654ff667f0f6f47e48973276dd731e1cf51a71 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Tue, 12 Aug 2025 17:01:03 +0500 Subject: [PATCH 038/443] Delete lms/djangoapps/univerapi/apps.py --- lms/djangoapps/univerapi/apps.py | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 lms/djangoapps/univerapi/apps.py diff --git a/lms/djangoapps/univerapi/apps.py b/lms/djangoapps/univerapi/apps.py deleted file mode 100644 index d222a69cc2ab..000000000000 --- a/lms/djangoapps/univerapi/apps.py +++ /dev/null @@ -1,6 +0,0 @@ -from django.apps import AppConfig - - -class UniverapiConfig(AppConfig): - default_auto_field = 'django.db.models.BigAutoField' - name = 'univerapi' From 91511c8d8343e49def8b685aded2a667babb2a7f Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Tue, 12 Aug 2025 17:09:29 +0500 Subject: [PATCH 039/443] Update urls.py --- lms/urls.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lms/urls.py b/lms/urls.py index 1ae425c9a9be..68237ad8124b 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -94,6 +94,10 @@ urlpatterns = [ + url(r'^api/univertest$', univer_views.UniverView.as_view(), name="post"), + url(r'^univerauth$', univer_views.authview, name="test"), + url(r'^api/univerauthcheck$', univer_views.authview_check, name="check"), + path('', branding_views.index, name='root'), # Main marketing page, or redirect to courseware path('', include('common.djangoapps.student.urls')), From af02a99698fcf36df15717fadeedb58168fa3574 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Tue, 12 Aug 2025 17:10:57 +0500 Subject: [PATCH 040/443] Update urls.py --- lms/urls.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/urls.py b/lms/urls.py index 68237ad8124b..4b21db8ba863 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -50,7 +50,7 @@ from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers from openedx.core.djangoapps.user_authn.views.login import redirect_to_lms_login from openedx.features.enterprise_support.api import enterprise_enabled - +from univerapi import views as univer_views RESET_COURSE_DEADLINES_NAME = 'reset_course_deadlines' RENDER_XBLOCK_NAME = 'render_xblock' RENDER_VIDEO_XBLOCK_NAME = 'render_public_video_xblock' From 349a7b404dcbd107cc199ad1fac2133a7ac868b6 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Tue, 12 Aug 2025 17:12:56 +0500 Subject: [PATCH 041/443] Update urls.py --- lms/urls.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/urls.py b/lms/urls.py index 4b21db8ba863..8b1b3aae6a9a 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -50,7 +50,7 @@ from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers from openedx.core.djangoapps.user_authn.views.login import redirect_to_lms_login from openedx.features.enterprise_support.api import enterprise_enabled -from univerapi import views as univer_views +from lms.djangoapps.univerapi import views as univer_views RESET_COURSE_DEADLINES_NAME = 'reset_course_deadlines' RENDER_XBLOCK_NAME = 'render_xblock' RENDER_VIDEO_XBLOCK_NAME = 'render_public_video_xblock' From 788083698e5ba2c003c531401eda1e5115d276c4 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Tue, 12 Aug 2025 17:16:31 +0500 Subject: [PATCH 042/443] Update views.py --- lms/djangoapps/univerapi/views.py | 122 +++++++++++++++--------------- 1 file changed, 61 insertions(+), 61 deletions(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index f2c44f8343e9..9a7bbf001d02 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -36,7 +36,7 @@ def createuser(): @method_decorator(csrf_protect) def post(self, request): return HttpResponse('post') - + auth = request.POST.get('auth') encoded_jwt = request.GET.get('auth') decoded = jwt.decode(encoded_jwt, "$ecRet@3#$2958GPIs!1", algorithms=["HS256"]) @@ -46,13 +46,13 @@ def post(self, request): created_user_email = '' try: exist_user = Univeruser.objects.get(univer_id=decoded['uname']) - + return HttpResponse('user exist') except: - surname, name, gender, stage, birth_year = decode_token_and_fetch_profile(encoded_jwt) - created_user = decoded['uname'].replace(".", "_") + str(random.randint(100, 999)) - created_user_email = decoded['uname'].replace(".", "_")+'@kaznu.edu.kz' + surname, name, gender, stage, birth_year = decode_token_and_fetch_profile(encoded_jwt) + created_user = decoded['uname'].replace(".", "_") + str(random.randint(100, 999)) + created_user_email = decoded['uname'].replace(".", "_")+'@kaznu.edu.kz' multipart_form_data = { 'email': (None, created_user_email), 'password': (None, decoded['upwd'][:75]), @@ -62,10 +62,10 @@ def post(self, request): 'gender': (None, gender), 'year_of_birth': (None, birth_year), 'honor_code': (None, 'true'), - 'country': (None, 'KZ'), - 'goals': (None, 'education'), - 'surname': (None, surname), - 'mailing_address': (None, 'Kaznu') + 'country': (None, 'KZ'), + 'goals': (None, 'education'), + 'surname': (None, surname), + 'mailing_address': (None, 'Kaznu') } client = requests.session() client.get('http://192.168.199.128', verify=False) @@ -76,31 +76,31 @@ def post(self, request): 'X-CSRFToken': csrftoken, 'Cookie':coky } - + response = requests.post('http://192.168.199.128:8181/user_api/v1/account/registration/', data=login_data, files=multipart_form_data, headers=headers, verify=False) json_data = json.loads(response.text) - + if ( ('success' in json_data) and (json_data['success'] == True)): created_user_str = str(created_user) - + exist_user = None i = 0 while i < 60: - try: + try: exist_user = User.objects.get(username=created_user_str) User.refresh_from_db() break except: - i += 1 + i += 1 time.sleep(3) - - out_html='' - query = """SELECT id, username FROM auth_user where username LIKE '""" + "%%" + "hakymova" + "%%" + """'""" + + out_html='' + query = """SELECT id, username FROM auth_user where username LIKE '""" + "%%" + "hakymova" + "%%" + """'""" query2 = """SELECT id, username FROM auth_user where username = '""" + created_user_str + """'""" - return HttpResponse(repr(exist_user)) + return HttpResponse(repr(exist_user)) time.sleep(10) cursor = connection.cursor() @@ -109,24 +109,24 @@ def post(self, request): try: cursor.execute(str(query2)) row = cursor.fetchall() - return HttpResponse(repr(row)) + return HttpResponse(repr(row)) except Exception as e: cursor.close - return HttpResponse('error =' + str(e)) + return HttpResponse('error =' + str(e)) - return HttpResponse(repr(cursor)) + return HttpResponse(repr(cursor)) else: - return HttpResponse('no registration') - + return HttpResponse('no registration') + return HttpResponse((json_data['success'])) return HttpResponse(repr(exist_user)) multipart_form_data = { - 'email': (None, 'dl@kaznu.kz'), - 'password': (None, 'DlGao3wo'), - 'remember': (None, 'true') + 'email': (None, 'dl@kaznu.kz'), + 'password': (None, 'DlGao3wo'), + 'remember': (None, 'true') } client = requests.session() client.get('http://192.168.199.128') @@ -137,11 +137,11 @@ def post(self, request): 'X-CSRFToken': csrftoken, 'Cookie':coky } - + response = requests.post('http://192.168.199.128/user_api/v1/account/login_session/', data=login_data, files=multipart_form_data, headers=headers, verify = False) headers2 = response.headers - + csrfToken = re.search(r'csrftoken=(\w+);', headers2['Set-Cookie']) sessionid = re.search(r'sessionid="(\S+)";', headers2['Set-Cookie']) @@ -172,7 +172,7 @@ def post(self, request): @method_decorator(ensure_csrf_cookie) def get(self, request): - current_site = 'https://open.kaznu.kz' + current_site = 'https://open.kaznu.kz' auth = request.POST.get('auth') encoded_jwt = request.GET.get('auth') @@ -182,12 +182,12 @@ def get(self, request): try: exist_user = Univeruser.objects.get(univer_id=decoded['uname']) - + return render(request, 'univerapi/redirect.html') - + except: - surname, name, gender, stage, birth_year = decode_token_and_fetch_profile(encoded_jwt) - created_user = decoded['uname'].replace(".", "_") + str(random.randint(100, 999)) + surname, name, gender, stage, birth_year = decode_token_and_fetch_profile(encoded_jwt) + created_user = decoded['uname'].replace(".", "_") + str(random.randint(100, 999)) created_user_email = decoded['uname'].replace(".", "_")+'@kaznu.edu.kz' multipart_form_data = { @@ -199,10 +199,10 @@ def get(self, request): 'gender': (None, gender), 'year_of_birth': (None, birth_year), 'honor_code': (None, 'true'), - 'country': (None , 'KZ'), - 'surname': (None, surname), - 'goals': (None, 'education'), - 'mailing_address': (None, 'Kaznu') + 'country': (None , 'KZ'), + 'surname': (None, surname), + 'goals': (None, 'education'), + 'mailing_address': (None, 'Kaznu') } client = requests.session() client.get(current_site, verify = False) @@ -213,49 +213,49 @@ def get(self, request): 'X-CSRFToken': csrftoken, 'Cookie':coky } - + count_try = 0 while True: response = requests.post(current_site + '/user_api/v1/account/registration/', data=login_data, files=multipart_form_data, headers=headers, verify = False) json_data = json.loads(response.text) if ( ('success' in json_data) and (json_data['success'] == True)): break - if ( ('username' in json_data) ): - if "existing account" in str(json_data): - + if ( ('username' in json_data) ): + if "existing account" in str(json_data): + return render(request, 'univerapi/redirect.html') - time.sleep(3) + time.sleep(3) count_try += 1 if (count_try == 20): - return JsonResponse(json_data) - + return JsonResponse(json_data) + if ( ('success' in json_data) and (json_data['success'] == True)): new_user = Univeruser() new_user.edx_username = created_user new_user.edx_id=0 new_user.edx_pass='0' new_user.univer_id = decoded['uname'] - new_user.save() + new_user.save() return render(request, 'univerapi/redirect.html') created_user_str = str(created_user) - + exist_user = None i = 0 while i < 60: - try: + try: exist_user = User.objects.get(username=created_user_str) User.refresh_from_db() break except: - i += 1 + i += 1 time.sleep(3) - - out_html='' - query = """SELECT id, username FROM auth_user where username LIKE '""" + "%%" + "hakymova" + "%%" + """'""" + + out_html='' + query = """SELECT id, username FROM auth_user where username LIKE '""" + "%%" + "hakymova" + "%%" + """'""" query2 = """SELECT id, username FROM auth_user where username = '""" + created_user_str + """'""" - return HttpResponse(repr(exist_user)) + return HttpResponse(repr(exist_user)) time.sleep(10) cursor = connection.cursor() @@ -264,18 +264,18 @@ def get(self, request): try: cursor.execute(str(query2)) row = cursor.fetchall() - return HttpResponse(repr(row)) + return HttpResponse(repr(row)) except Exception as e: cursor.close - return HttpResponse('error =' + str(e)) + return HttpResponse('error =' + str(e)) - return HttpResponse(repr(cursor)) + return HttpResponse(repr(cursor)) else: return HttpResponse('no registration') def authview(request): - return render(request, 'univerapi/index.html') + return render(request, 'univerapi/index.html') def authview_check(request): @@ -332,11 +332,11 @@ def decode_token_and_fetch_profile(token, secret_key='$ecRet@3#$2958GPIs!1'): student_data = student_resp.json() except: pass - + # Если данные студента получены успешно if student_data and student_data.get('code') == 0 and 'data' in student_data: info_list, personal_list = student_data['data'] - + def find_value(lst, key): for d in lst: if key in d and ':' in d[key]: @@ -345,7 +345,7 @@ def find_value(lst, key): surname = find_value(personal_list, 'sname') name = find_value(personal_list, 'name') - + raw_sex = find_value(personal_list, 'sex') or '' if isinstance(raw_sex, bytes): raw_sex = raw_sex.decode('utf-8') @@ -382,7 +382,7 @@ def find_value(lst, key): raise SystemExit("teacher/profile 500:\n{0}".format(teacher_resp.text)) teacher_resp.raise_for_status() teacher_data = teacher_resp.json() - + if teacher_data.get('code') != 0 or 'data' not in teacher_data: raise SystemExit("Не удалось получить данные ни студента, ни преподавателя") @@ -392,7 +392,7 @@ def find_value(lst, key): name = teacher_profile.get('name', '') gender = 'o' # По умолчанию, если поле отсутствует stage = 'none' # Для преподавателя ступень не применима - + # Извлечение года рождения из даты (формат "дд.мм.гггг") birth_year = None if 'dateOfBirth' in teacher_profile: From ddc6b354fff15a5b27a72f83f9316384d8f87b41 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Tue, 12 Aug 2025 17:18:03 +0500 Subject: [PATCH 043/443] Update views.py --- lms/djangoapps/univerapi/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 9a7bbf001d02..5d16242fd536 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -17,7 +17,7 @@ from rest_framework.views import APIView from rest_framework.generics import GenericAPIView -from univerapi.models import Univeruser +from lms.djangoapps.univerapi.models import Univeruser from random import randint import json import random From fed92c27171fff9f2059a1c99437d01128d96258 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Tue, 12 Aug 2025 17:19:44 +0500 Subject: [PATCH 044/443] Update views.py --- lms/djangoapps/univerapi/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 5d16242fd536..eae7c391f976 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -21,7 +21,7 @@ from random import randint import json import random -from student.models import User +from common.djangoapps.student.models import User import time from django.db import connection from django.contrib.sites.models import Site From c36b9eb1abf8202f74aa7b480219e76b6da01e3f Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Tue, 12 Aug 2025 17:26:01 +0500 Subject: [PATCH 045/443] Update urls.py --- lms/urls.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lms/urls.py b/lms/urls.py index 8b1b3aae6a9a..b4cdc70b0d10 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -94,9 +94,10 @@ urlpatterns = [ - url(r'^api/univertest$', univer_views.UniverView.as_view(), name="post"), - url(r'^univerauth$', univer_views.authview, name="test"), - url(r'^api/univerauthcheck$', univer_views.authview_check, name="check"), + + re_path(r'^api/univertest$', univer_views.UniverView.as_view(), name="post"), + re_path(r'^univerauth$', univer_views.authview, name="test"), + re_path(r'^api/univerauthcheck$', univer_views.authview_check, name="check"), path('', branding_views.index, name='root'), # Main marketing page, or redirect to courseware From 7253287f3f4dd43942437836d0eb517b4d3d701d Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Tue, 12 Aug 2025 17:50:04 +0500 Subject: [PATCH 046/443] Update views.py --- openedx/core/djangoapps/user_api/views.py | 85 +++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/openedx/core/djangoapps/user_api/views.py b/openedx/core/djangoapps/user_api/views.py index d52493556a19..ef81cd7b1fcb 100644 --- a/openedx/core/djangoapps/user_api/views.py +++ b/openedx/core/djangoapps/user_api/views.py @@ -25,6 +25,91 @@ from openedx.core.lib.api.permissions import ApiKeyHeaderPermission from openedx.core.lib.api.view_utils import require_post_params +# univerapi +import logging +import lms.djangoapps.univerapi +from django.shortcuts import redirect +import jwt +from univerapi.models import Univeruser +# univerapi + +class LoginSessionView(APIView): + """HTTP end-points for logging in users. """ + + # This end-point is available to anonymous users, + # so do not require authentication. + authentication_classes = [] + + @method_decorator(ensure_csrf_cookie) + def get(self, request): + return HttpResponse(get_login_session_form(request).to_json(), content_type="application/json") + + @method_decorator(require_post_params(["email", "password"])) + @method_decorator(csrf_protect) + def post(self, request): + """Log in a user. + + You must send all required form fields with the request. + + You can optionally send an `analytics` param with a JSON-encoded + object with additional info to include in the login analytics event. + Currently, the only supported field is "enroll_course_id" to indicate + that the user logged in while enrolling in a particular course. + + Arguments: + request (HttpRequest) + + Returns: + HttpResponse: 200 on success + HttpResponse: 400 if the request is not valid. + HttpResponse: 403 if authentication failed. + 403 with content "third-party-auth" if the user + has successfully authenticated with a third party provider + but does not have a linked account. + HttpResponse: 302 if redirecting to another page. + + Example Usage: + + POST /user_api/v1/login_session + with POST params `email`, `password`, and `remember`. + + 200 OK + + """ + # univer + try: + if (request.POST.get('auth')): + auth = request.POST.get('auth') + auth = auth.split("auth=")[1] + #encoded_jwt = request.GET.get('auth') + decoded = jwt.decode(auth, "$ecRet@3#$2958GPIs!1", algorithms=["HS256"]) + + # Get user + exist_user = Univeruser.objects.get(univer_id=decoded['uname']) + exist_edx_user = User.objects.get(username=exist_user.edx_username) + + # edit request + request.POST._mutable = True + request.POST["email"] = exist_edx_user.email + request.POST["password"] = decoded['upwd'][:75] + #request.POST. exist_edx_user.email + #decoded['upwd'][:75] + + #return HttpResponse(repr(decoded)) + except Exception as e: + return HttpResponse('error =' + str(e)) + # univer + + # For the initial implementation, shim the existing login view + # from the student Django app. + from openedx.core.djangoapps.user_authn.views.login import login_user + return shim_student_view(login_user, check_logged_in=True)(request) + + @method_decorator(sensitive_post_parameters("password")) + def dispatch(self, request, *args, **kwargs): + return super(LoginSessionView, self).dispatch(request, *args, **kwargs) + + class UserViewSet(viewsets.ReadOnlyModelViewSet): """ From d1b1101e8c240f2f5c80cdda4b2fda161b9bcf95 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Tue, 12 Aug 2025 17:50:25 +0500 Subject: [PATCH 047/443] Update views.py --- openedx/core/djangoapps/user_api/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openedx/core/djangoapps/user_api/views.py b/openedx/core/djangoapps/user_api/views.py index ef81cd7b1fcb..59def3d90ac3 100644 --- a/openedx/core/djangoapps/user_api/views.py +++ b/openedx/core/djangoapps/user_api/views.py @@ -30,7 +30,7 @@ import lms.djangoapps.univerapi from django.shortcuts import redirect import jwt -from univerapi.models import Univeruser +from lms.djangoapps.univerapi.models import Univeruser # univerapi class LoginSessionView(APIView): From 2019f8ae86055d76096d2aea88272dc6c92fc75e Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Tue, 12 Aug 2025 17:52:00 +0500 Subject: [PATCH 048/443] Update views.py --- openedx/core/djangoapps/user_api/views.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openedx/core/djangoapps/user_api/views.py b/openedx/core/djangoapps/user_api/views.py index 59def3d90ac3..e063fbb2b580 100644 --- a/openedx/core/djangoapps/user_api/views.py +++ b/openedx/core/djangoapps/user_api/views.py @@ -24,6 +24,7 @@ ) from openedx.core.lib.api.permissions import ApiKeyHeaderPermission from openedx.core.lib.api.view_utils import require_post_params +from django.views.decorators.csrf import csrf_protect # univerapi import logging From 8654653fc4b745605563154ef8e1019776594f50 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Tue, 12 Aug 2025 17:53:19 +0500 Subject: [PATCH 049/443] Update views.py --- openedx/core/djangoapps/user_api/views.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openedx/core/djangoapps/user_api/views.py b/openedx/core/djangoapps/user_api/views.py index e063fbb2b580..da8273835ccd 100644 --- a/openedx/core/djangoapps/user_api/views.py +++ b/openedx/core/djangoapps/user_api/views.py @@ -25,6 +25,7 @@ from openedx.core.lib.api.permissions import ApiKeyHeaderPermission from openedx.core.lib.api.view_utils import require_post_params from django.views.decorators.csrf import csrf_protect +from django.views.decorators.debug import sensitive_post_parameters # univerapi import logging From 0fe44f6acdf91af00bc479bf2e9863dbc16304e9 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Tue, 12 Aug 2025 18:05:26 +0500 Subject: [PATCH 050/443] Update views.py --- lms/djangoapps/univerapi/views.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index eae7c391f976..5cce19b5ccd7 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -62,10 +62,10 @@ def post(self, request): 'gender': (None, gender), 'year_of_birth': (None, birth_year), 'honor_code': (None, 'true'), - 'country': (None, 'KZ'), - 'goals': (None, 'education'), - 'surname': (None, surname), - 'mailing_address': (None, 'Kaznu') + 'country': (None, 'KZ') + + + } client = requests.session() client.get('http://192.168.199.128', verify=False) @@ -199,10 +199,9 @@ def get(self, request): 'gender': (None, gender), 'year_of_birth': (None, birth_year), 'honor_code': (None, 'true'), - 'country': (None , 'KZ'), - 'surname': (None, surname), - 'goals': (None, 'education'), - 'mailing_address': (None, 'Kaznu') + 'country': (None , 'KZ') + + } client = requests.session() client.get(current_site, verify = False) From 75a1ca8a8ead2847f8692da99509816ed9498ec3 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:00:08 +0500 Subject: [PATCH 051/443] Update views.py --- lms/djangoapps/univerapi/views.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 5cce19b5ccd7..dcd41b715928 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -172,8 +172,7 @@ def post(self, request): @method_decorator(ensure_csrf_cookie) def get(self, request): - current_site = 'https://open.kaznu.kz' - + current_site = "http://127.0.0.1:8000" auth = request.POST.get('auth') encoded_jwt = request.GET.get('auth') decoded = jwt.decode(encoded_jwt, secret, algorithms=["HS256"]) From b02a238d59bc5a4636a49ebc651d098e0231b98a Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:23:50 +0500 Subject: [PATCH 052/443] Delete lms/djangoapps/univerapi/views.py.save --- lms/djangoapps/univerapi/views.py.save | 504 ------------------------- 1 file changed, 504 deletions(-) delete mode 100644 lms/djangoapps/univerapi/views.py.save diff --git a/lms/djangoapps/univerapi/views.py.save b/lms/djangoapps/univerapi/views.py.save deleted file mode 100644 index d6b496770248..000000000000 --- a/lms/djangoapps/univerapi/views.py.save +++ /dev/null @@ -1,504 +0,0 @@ -from django.shortcuts import render -from django.http import HttpResponse -import logging -#import authlib -import jwt -import openedx.core.djangoapps.user_api.views as user_api_view -import requests -import django.middleware.csrf -from django.views.decorators.csrf import csrf_exempt, csrf_protect, ensure_csrf_cookie -from django.utils.decorators import method_decorator -from django.shortcuts import redirect -import re -secret = '$ecRet@3#$2958GPIs!1' - -from django.shortcuts import render -from rest_framework.views import APIView -from rest_framework.generics import GenericAPIView - -from univerapi.models import Univeruser -from random import randint -import json -from student.models import User -import time -from django.db import connection -from django.contrib.sites.models import Site -from django.conf import settings -from django.http import JsonResponse - -class UniverView(GenericAPIView): - - def createuser(): - return 123 - - @method_decorator(csrf_protect) - def post(self, request): - return HttpResponse('post') - # TEST user - #exist_user = User.objects.get(email='hakymova.tyyshtyq642@kaznu.kz') - #return HttpResponse(repr(exist_user)) - # TEST user - - auth = request.POST.get('auth') - #auth = auth.split("auth=")[1] - encoded_jwt = request.GET.get('auth') - decoded = jwt.decode(encoded_jwt, "$ecRet@3#$2958GPIs!1", algorithms=["HS256"]) - - - new_user = Univeruser() - #new_user = Univeruser(edx_id = 0, edx_pass=decoded['upwd'], univer_id = decoded['uname']) - ''' - new_user.edx_pass=decoded['upwd'] - new_user.univer_id = decoded['uname'] - new_user.save() - ''' - created_user = '' - created_user_email = '' - try: - exist_user = Univeruser.objects.get(univer_id=decoded['uname']) - return HttpResponse('user exist') - - except: - created_user = decoded['uname'].split(".")[0]+str(randint(0, 1000)) - created_user_email = decoded['uname']+str(randint(0, 1000))+'@kaznu.kz' - multipart_form_data = { - 'email': (None, created_user_email), - 'password': (None, decoded['upwd'][:75]), - 'name': (None, decoded['uname']), - 'username': (None, created_user), - 'level_of_education': (None, 'b'), - 'gender': (None, 'o'), - 'year_of_birth': (None, '1995'), - 'honor_code': (None, 'true'), - 'surname': (None, 'surname'), - 'goals': (None, 'education'), - 'country': (None, 'KZ'), - 'mailing_address': (None, 'Kaznu') - } - client = requests.session() - client.get('http://192.168.199.128', verify=False) - csrftoken = client.cookies['csrftoken'] - login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') - coky = 'csrftoken='+csrftoken - headers = { - 'X-CSRFToken': csrftoken, - 'Cookie':coky - } - - response = requests.post('http://192.168.199.128:8181/user_api/v1/account/registration/', data=login_data, files=multipart_form_data, headers=headers, verify=False) - - #new_user.edx_pass=decoded['upwd'] - #new_user.univer_id = decoded['uname'] - #new_user.save() - json_data = json.loads(response.text) - - if ( ('success' in json_data) and (json_data['success'] == True)): - created_user_str = str(created_user) - - exist_user = None - i = 0 - while i < 60: - try: - exist_user = User.objects.get(username=created_user_str) - #exist_user = User.objects.raw('SELECT * FROM auth_user') - User.refresh_from_db() - break - except: - i += 1 - time.sleep(1) - - out_html='' - query = """SELECT id, username FROM auth_user where username LIKE '""" + "%%" + "hakymova" + "%%" + """'""" - query2 = """SELECT id, username FROM auth_user where username = '""" + created_user_str + """'""" - - - return HttpResponse(repr(exist_user)) - - # raw sql - time.sleep(10) - cursor = connection.cursor() - row = None - sql = 'SELECT id, username FROM auth_user' - try: - cursor.execute(str(query2)) - row = cursor.fetchall() - return HttpResponse(repr(row)) - except Exception as e: - cursor.close - return HttpResponse('error =' + str(e)) - # raw sql - - return HttpResponse(repr(cursor)) - #time.sleep(20) - #for p in User.objects.raw(query): - #User.refresh_from_db() - # out_html += str(p.username) + '\n' - #exist_user = User.objects.raw(str(query)) - #exist_user = User.objects.get(id=51808) - #return HttpResponse(str(created_user_str) + ' = ' + repr(exist_user) + str(i) + str(out_html)) - #return HttpResponse( str(out_html)) - else: - return HttpResponse('no registration') - - return HttpResponse((json_data['success'])) - - - #check_user = Univeruser.objects.get(univer_id=decoded['uname']) - - return HttpResponse(repr(exist_user)) - - multipart_form_data = { - 'email': (None, 'dl@kaznu.kz'), - 'password': (None, 'DlGao3wo'), - 'remember': (None, 'true') - } - client = requests.session() - client.get('http://192.168.199.128') - csrftoken = client.cookies['csrftoken'] - login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') - coky = 'csrftoken='+csrftoken - headers = { - 'X-CSRFToken': csrftoken, - 'Cookie':coky - } - - response = requests.post('http://192.168.199.128/user_api/v1/account/login_session/', data=login_data, files=multipart_form_data, headers=headers) - - headers2 = response.headers - - csrfToken = re.search(r'csrftoken=(\w+);', headers2['Set-Cookie']) - sessionid = re.search(r'sessionid="(\S+)";', headers2['Set-Cookie']) - - - cookies2 = { - '_ga': 'GA1.1.1602606957.1602045613', - 'experiments_is_enterprise': 'false', - 'openedx-language-preference': 'ru', - 'csrftoken': csrfToken.group(1), - 'edxloggedin': 'true', - 'sessionid': sessionid.group(1), - 'edx-user-info': '{\\"username\\": \\"staff\\"\\054 \\"version\\": 1\\054 \\"enrollmentStatusHash\\": \\"ace9f6124341dc7692d41de5b91bff7d\\"\\054 \\"header_urls\\": {\\"learner_profile\\": \\"http://192.168.199.128/u/staff\\"\\054 \\"resume_block\\": \\"http://192.168.199.128/user_api/v1/account/login_session/\\"\\054 \\"logout\\": \\"http://192.168.199.128/logout\\"\\054 \\"account_settings\\": \\"http://192.168.199.128/account/settings\\"}}', - } - - headers3 = { - 'Connection': 'keep-alive', - 'Upgrade-Insecure-Requests': '1', - 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36', - 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', - 'Referer': 'http://192.168.199.128/login?next=%2F', - 'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7', - 'sec-gpc': '1', - } - - response = requests.get('http://192.168.199.128', headers=headers3, cookies=cookies2, verify=False) - return HttpResponse(response) - - #return HttpResponse(request.POST['csrf']) - - @method_decorator(ensure_csrf_cookie) - def get(self, request): - #return HttpResponse('get') - #return HttpResponse(repr(django.middleware.csrf.get_token(request))) - #return render(request, 'univerapi/login.html') - # TEST user - #exist_user = User.objects.get(email='hakymova.tyyshtyq642@kaznu.kz') - #return HttpResponse(repr(exist_user)) - # TEST user - current_site = 'https://open.kaznu.kz' - - - auth = request.POST.get('auth') - #auth = auth.split("auth=")[1] - encoded_jwt = request.GET.get('auth') - decoded = jwt.decode(encoded_jwt, secret, algorithms=["HS256"]) - - #return HttpResponse(decoded['upwd'][:75]) - #new_user = Univeruser() - #new_user = Univeruser(edx_id = 0, edx_pass=decoded['upwd'], univer_id = decoded['uname']) - ''' - new_user.edx_pass=decoded['upwd'] - new_user.univer_id = decoded['uname'] - new_user.save() - ''' - created_user = '' - created_user_email = '' - #return HttpResponse(repr(current_site)) - - try: - exist_user = Univeruser.objects.get(univer_id=decoded['uname']) - - return render(request, 'univerapi/redirect.html') - #return HttpResponse('user exist') - - except: - #created_user = decoded['uname'].split(".")[0]+str(randint(0, 1000)) - created_user = decoded['uname'].split(".")[0]+"_"+decoded['uname'].split(".")[1] - created_user_email = decoded['uname']+str(randint(0, 1000))+'@kaznu.kz' - multipart_form_data = { - 'email': (None, created_user_email), - 'password': (None, decoded['upwd'][:75]), - 'name': (None, decoded['uname']), - 'username': (None, created_user), - 'level_of_education': (None, 'b'), - 'gender': (None, 'o'), - 'year_of_birth': (None, '1995'), - 'honor_code': (None, 'true'), - 'surname': (None, 'surname'), - 'goals': (None, 'education'), - 'country': (None, 'KZ'), - 'mailing_address': (None, 'Kaznu') - - } - client = requests.session() - client.get(current_site, verify = False) - csrftoken = client.cookies['csrftoken'] - login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') - coky = 'csrftoken='+csrftoken - headers = { - 'X-CSRFToken': csrftoken, - 'Cookie':coky - } - - count_try = 0 - while True: - response = requests.post(current_site + '/user_api/v1/account/registration/', data=login_data, files=multipart_form_data, headers=headers, verify = False) - json_data = json.loads(response.text) - if ( ('success' in json_data) and (json_data['success'] == True)): - break - if ( ('username' in json_data) ): - if "existing account" in str(json_data): - #new_user = Univeruser() - #new_user = Univeruser(edx_id = created_user, edx_pass=0, univer_id = decoded['uname']) - #new_user.edx_username = created_user - #new_user.edx_id=0 - #new_user.edx_pass='0' - #new_user.univer_id = decoded['uname'] - #new_user.save() - - return render(request, 'univerapi/redirect.html') - time.sleep(1) - count_try += 1 - if (count_try == 20): - return JsonResponse(json_data) - - if ( ('success' in json_data) and (json_data['success'] == True)): - new_user = Univeruser() - new_user.edx_username = created_user - new_user.edx_id=0 - new_user.edx_pass='0' - new_user.univer_id = decoded['uname'] - new_user.save() - - return render(request, 'univerapi/redirect.html') - - created_user_str = str(created_user) - - exist_user = None - i = 0 - while i < 60: - try: - exist_user = User.objects.get(username=created_user_str) - #exist_user = User.objects.raw('SELECT * FROM auth_user') - User.refresh_from_db() - break - except: - i += 1 - time.sleep(1) - - out_html='' - query = """SELECT id, username FROM auth_user where username LIKE '""" + "%%" + "hakymova" + "%%" + """'""" - query2 = """SELECT id, username FROM auth_user where username = '""" + created_user_str + """'""" - - - return HttpResponse(repr(exist_user)) - - # raw sql - time.sleep(10) - cursor = connection.cursor() - row = None - sql = 'SELECT id, username FROM auth_user' - try: - cursor.execute(str(query2)) - row = cursor.fetchall() - return HttpResponse(repr(row)) - except Exception as e: - cursor.close - return HttpResponse('error =' + str(e)) - # raw sql - - return HttpResponse(repr(cursor)) - else: - return HttpResponse('no registration') - -#@method_decorator(csrf_protect) -#method_decorator(csrf_protect) - -def authview(request): - return render(request, 'univerapi/index.html') - #return HttpResponse('auth') - -# check activated -def authview_check(request): - auth = request.POST.get('auth') - auth = auth.split("auth=")[1] - #encoded_jwt = request.GET.get('auth') - #decoded = jwt.decode(encoded_jwt, "$ecRet@3#$2958GPIs!1", algorithms=["HS256"]) - #return HttpResponse('OK') - encoded_jwt = auth - decoded = jwt.decode(encoded_jwt, "$ecRet@3#$2958GPIs!1", algorithms=["HS256"]) - already_exist_user = decoded['uname'] - - try: - exist_user = Univeruser.objects.get(univer_id=decoded['uname']) - exist_edx_user = User.objects.get(username=exist_user.edx_username) - exist_edx_user.is_active = 1 - exist_edx_user.save() - #return render(request, 'univerapi/redirect.html') - - - except: - return JsonResponse({"success":"false"}) - - #return HttpResponse('') - return JsonResponse({"success":"true"}) - -@method_decorator(csrf_protect) -def test(request, *args, **kwargs): - logger = logging.getLogger(__name__) - logger.error("Test api") - #logger.error(request) - #logger.error(request.GET.get('auth')) - #encoded_jwt = jwt.encode({"some": "payload"}, "secret", algorithm="HS256") - - #return HttpResponse(answer) - # hash = eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1bmFtZSI6Imhha3ltb3ZhLnR5eXNodHlxIiwidXB3ZCI6IjA3NzdGMDk4MEIzMUE2MEZDRkVFQzlEQjNGOTFEOUI4RUVCQUU4NDQ0NjAwRTQ3MUQyMzEyQjYyNDA2MjVCNTZFM0Q0RDM5RDRBREYwMTg5N0QzQTEzMDkzRTcwRkU1NjRGMUJBRDZCOTIxMUE0NTAwODQxRDFFQzNFMkNGODcwIn0.QLCZHTM2ACm0byg77h0C7KpGwMxcxJuy-M96lQzc3Mk - - #return HttpResponse(repr(args)) - - client = requests.session() - client.get('http://192.168.199.128', verify = False) - csrftoken = client.cookies['csrftoken'] - login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') - coky = 'csrftoken='+csrftoken - headers = { - 'X-CSRFToken': csrftoken, - 'Cookie':coky - } - - # register - multipart_form_data_register = { - 'email': (None, 'hakymova.tyyshtyq@test11.ru'), - 'name': (None, 'hakymova.tyyshtyq'), - 'username': (None, 'hakymova11'), - 'password': (None, '988EBA1673B2F08F99F61719A2F8BC47791250B3A052DA2992D0148DE2D2E084C2E23E6E3C7'), - 'level_of_education': (None, 'hs'), - 'gender': (None, 'f'), - 'year_of_birth': (None, '1969'), - 'mailing_address': (None, ''), - 'goals': (None, ''), - 'honor_code': (None, 'true'), - - } - - response_register = requests.post('http://192.168.199.128/user_api/v1/account/registration/', data=login_data, files=multipart_form_data_register, headers=headers, verify = False) - - return HttpResponse(repr(response_register)) - - # /register - - multipart_form_data = { - 'email': (None, 'dl@kaznu.kz'), - 'password': (None, 'DlGao3wo'), - 'remember': (None, 'false') - } - client = requests.session() - client.get('http://192.168.199.128', verify = False) - csrftoken = client.cookies['csrftoken'] - login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') - coky = 'csrftoken='+csrftoken - headers = { - 'X-CSRFToken': csrftoken, - 'Cookie':coky - } - # http://192.168.199.128/user_api/v1/account/login_session/ - # https://webhook.site/8bdb471b-3d63-46c2-b788-79f7398144e6 - - - - - - - - - - response = requests.post('http://192.168.199.128/user_api/v1/account/login_session/', data=login_data, files=multipart_form_data, headers=headers, verify = False) - - return HttpResponse(repr(request.GET)) - - #client.get('http://192.168.199.128:8181') - #session_key = client.cookies['sessionid'] - - - #edx_auth = user_api_view.LoginSessionView() - #testauth = edx_auth.post(request) - - headers2 = response.headers - #home = requests.get('http://192.168.199.128/dashboard', headers=headers2) - #home = HttpResponse(status=302) - #home['Location'] = 'http://192.168.199.128/' - csrfToken = re.search(r'csrftoken=(\w+);', headers2['Set-Cookie']) - sessionid = re.search(r'sessionid="(\S+)";', headers2['Set-Cookie']) - - - - - - cookies2 = { - '_ga': 'GA1.1.1602606957.1602045613', - 'experiments_is_enterprise': 'false', - 'openedx-language-preference': 'ru', - 'csrftoken': csrfToken.group(1), - 'edxloggedin': 'true', - 'sessionid': sessionid.group(1), - 'edx-user-info': '{\\"username\\": \\"staff\\"\\054 \\"version\\": 1\\054 \\"enrollmentStatusHash\\": \\"ace9f6124341dc7692d41de5b91bff7d\\"\\054 \\"header_urls\\": {\\"learner_profile\\": \\"http://192.168.199.128/u/staff\\"\\054 \\"resume_block\\": \\"http://192.168.199.128/user_api/v1/account/login_session/\\"\\054 \\"logout\\": \\"http://192.168.199.128/logout\\"\\054 \\"account_settings\\": \\"http://192.168.199.128/account/settings\\"}}', - } - - headers3 = { - 'Connection': 'keep-alive', - 'Upgrade-Insecure-Requests': '1', - 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36', - 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', - 'Referer': 'http://192.168.199.128/login?next=%2F', - 'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7', - 'sec-gpc': '1', - } - - response = requests.get('http://192.168.199.128/dashboard', headers=headers3, cookies=cookies2, verify=False) - return HttpResponse(response) - - - - - - - - return HttpResponse(sessionid.group(1)) - - - #home = redirect('http://192.168.199.128') - #return home - - try: - #test = edx_auth.post(request) - test = 0 - except Exception as e: - return HttpResponse(e.message) - - hash = request.GET.get('auth') - try: - answer = jwt.decode(hash, secret, algorithms=["HS256"]) - except Exception as e: - return HttpResponse(e.message) - - #return HttpResponse(repr(request)) - return HttpResponse(repr(response.headers)) From d1f57210fda315573f1cd0fe332e559fa82d4469 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:24:01 +0500 Subject: [PATCH 053/443] Delete lms/djangoapps/univerapi/views.py.save.2 --- lms/djangoapps/univerapi/views.py.save.2 | 572 ----------------------- 1 file changed, 572 deletions(-) delete mode 100644 lms/djangoapps/univerapi/views.py.save.2 diff --git a/lms/djangoapps/univerapi/views.py.save.2 b/lms/djangoapps/univerapi/views.py.save.2 deleted file mode 100644 index 936d09d9db84..000000000000 --- a/lms/djangoapps/univerapi/views.py.save.2 +++ /dev/null @@ -1,572 +0,0 @@ -# -*- coding: utf-8 -*- - -from django.shortcuts import render -from django.http import HttpResponse -import logging -#import authlib -import jwt -import openedx.core.djangoapps.user_api.views as user_api_view -import requests -import django.middleware.csrf -from django.views.decorators.csrf import csrf_exempt, csrf_protect, ensure_csrf_cookie -from django.utils.decorators import method_decorator -from django.shortcuts import redirect -import re -secret = '$ecRet@3#$2958GPIs!1' - -from django.shortcuts import render -from rest_framework.views import APIView -from rest_framework.generics import GenericAPIView - -from univerapi.models import Univeruser -from random import randint -import json -from student.models import User -import time -from django.db import connection -from django.contrib.sites.models import Site -from django.conf import settings -from django.http import JsonResponse - -class UniverView(GenericAPIView): - - def createuser(): - return 123 - - @method_decorator(csrf_protect) - def post(self, request): - return HttpResponse('post') - # TEST user - #exist_user = User.objects.get(email='hakymova.tyyshtyq642@kaznu.kz') - #return HttpResponse(repr(exist_user)) - # TEST user - - auth = request.POST.get('auth') - #auth = auth.split("auth=")[1] - encoded_jwt = request.GET.get('auth') - decoded = jwt.decode(encoded_jwt, "$ecRet@3#$2958GPIs!1", algorithms=["HS256"]) - - new_user = Univeruser() - #new_user = Univeruser(edx_id = 0, edx_pass=decoded['upwd'], univer_id = decoded['uname']) - ''' - new_user.edx_pass=decoded['upwd'] - new_user.univer_id = decoded['uname'] - new_user.save() - ''' - created_user = '' - created_user_email = '' - try: - exist_user = Univeruser.objects.get(univer_id=decoded['uname']) - - return HttpResponse('user exist') - - except: - surname, name, gender, stage, birth_year = decode_token_and_fetch_profile(encoded_jwt) - created_user = decoded['uname'].split(".")[0]+str(randint(0, 1000)) - created_user_email = decoded['uname']+str(randint(0, 1000))+'@kaznu.kz' - multipart_form_data = { - 'email': (None, created_user_email), - 'password': (None, decoded['upwd'][:75]), - 'name': (None, name), - 'username': (None, created_user), - 'level_of_education': (None, stage), - 'gender': (None, gender), - 'year_of_birth': (None, birth_year), - 'honor_code': (None, 'true'), - 'country': (None, 'KZ'), - 'goals': (None, 'education'), - 'surname': (None, surname), - 'mailing_address': (None, 'Kaznu') - } - client = requests.session() - client.get('http://192.168.199.128', verify=False) - csrftoken = client.cookies['csrftoken'] - login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') - coky = 'csrftoken='+csrftoken - headers = { - 'X-CSRFToken': csrftoken, - 'Cookie':coky - } - - response = requests.post('http://192.168.199.128:8181/user_api/v1/account/registration/', data=login_data, files=multipart_form_data, headers=headers, verify=False) - - #new_user.edx_pass=decoded['upwd'] - #new_user.univer_id = decoded['uname'] - #new_user.save() - json_data = json.loads(response.text) - - if ( ('success' in json_data) and (json_data['success'] == True)): - created_user_str = str(created_user) - - exist_user = None - i = 0 - while i < 60: - try: - exist_user = User.objects.get(username=created_user_str) - #exist_user = User.objects.raw('SELECT * FROM auth_user') - User.refresh_from_db() - break - except: - i += 1 - time.sleep(3) - - out_html='' - query = """SELECT id, username FROM auth_user where username LIKE '""" + "%%" + "hakymova" + "%%" + """'""" - query2 = """SELECT id, username FROM auth_user where username = '""" + created_user_str + """'""" - - - return HttpResponse(repr(exist_user)) - - # raw sql - time.sleep(10) - cursor = connection.cursor() - row = None - sql = 'SELECT id, username FROM auth_user' - try: - cursor.execute(str(query2)) - row = cursor.fetchall() - return HttpResponse(repr(row)) - except Exception as e: - cursor.close - return HttpResponse('error =' + str(e)) - # raw sql - - return HttpResponse(repr(cursor)) - #time.sleep(20) - #for p in User.objects.raw(query): - #User.refresh_from_db() - # out_html += str(p.username) + '\n' - #exist_user = User.objects.raw(str(query)) - #exist_user = User.objects.get(id=51808) - #return HttpResponse(str(created_user_str) + ' = ' + repr(exist_user) + str(i) + str(out_html)) - #return HttpResponse( str(out_html)) - else: - return HttpResponse('no registration') - - return HttpResponse((json_data['success'])) - - - #check_user = Univeruser.objects.get(univer_id=decoded['uname']) - - return HttpResponse(repr(exist_user)) - - multipart_form_data = { - 'email': (None, 'dl@kaznu.kz'), - 'password': (None, 'DlGao3wo'), - 'remember': (None, 'true') - } - client = requests.session() - client.get('http://192.168.199.128') - csrftoken = client.cookies['csrftoken'] - login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') - coky = 'csrftoken='+csrftoken - headers = { - 'X-CSRFToken': csrftoken, - 'Cookie':coky - } - - response = requests.post('http://192.168.199.128/user_api/v1/account/login_session/', data=login_data, files=multipart_form_data, headers=headers, verify = False) - - headers2 = response.headers - - csrfToken = re.search(r'csrftoken=(\w+);', headers2['Set-Cookie']) - sessionid = re.search(r'sessionid="(\S+)";', headers2['Set-Cookie']) - - - cookies2 = { - '_ga': 'GA1.1.1602606957.1602045613', - 'experiments_is_enterprise': 'false', - 'openedx-language-preference': 'ru', - 'csrftoken': csrfToken.group(1), - 'edxloggedin': 'true', - 'sessionid': sessionid.group(1), - 'edx-user-info': '{\\"username\\": \\"staff\\"\\054 \\"version\\": 1\\054 \\"enrollmentStatusHash\\": \\"ace9f6124341dc7692d41de5b91bff7d\\"\\054 \\"header_urls\\": {\\"learner_profile\\": \\"http://192.168.199.128/u/staff\\"\\054 \\"resume_block\\": \\"http://192.168.199.128/user_api/v1/account/login_session/\\"\\054 \\"logout\\": \\"http://192.168.199.128/logout\\"\\054 \\"account_settings\\": \\"http://192.168.199.128/account/settings\\"}}', - } - - headers3 = { - 'Connection': 'keep-alive', - 'Upgrade-Insecure-Requests': '1', - 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36', - 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', - 'Referer': 'http://192.168.199.128/login?next=%2F', - 'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7', - 'sec-gpc': '1', - } - - response = requests.get('http://192.168.199.128', headers=headers3, cookies=cookies2, verify=False) - return HttpResponse(response) - - #return HttpResponse(request.POST['csrf']) - - @method_decorator(ensure_csrf_cookie) - def get(self, request): - #return HttpResponse('get') - #return HttpResponse(repr(django.middleware.csrf.get_token(request))) - #return render(request, 'univerapi/login.html') - # TEST user - #exist_user = User.objects.get(email='hakymova.tyyshtyq642@kaznu.kz') - #return HttpResponse(repr(exist_user)) - # TEST user - current_site = 'https://open.kaznu.kz' - - - auth = request.POST.get('auth') - #auth = auth.split("auth=")[1] - encoded_jwt = request.GET.get('auth') - decoded = jwt.decode(encoded_jwt, secret, algorithms=["HS256"]) - - #return HttpResponse(decoded['upwd'][:75]) - #new_user = Univeruser() - #new_user = Univeruser(edx_id = 0, edx_pass=decoded['upwd'], univer_id = decoded['uname']) - ''' - new_user.edx_pass=decoded['upwd'] - new_user.univer_id = decoded['uname'] - new_user.save() - ''' - created_user = '' - created_user_email = '' - #return HttpResponse(repr(current_site)) - - try: - exist_user = Univeruser.objects.get(univer_id=decoded['uname']) - - return render(request, 'univerapi/redirect.html') - #return HttpResponse('user exist') - - except: - surname, name, gender, stage, birth_year = decode_token_and_fetch_profile(encoded_jwt) - #created_user = decoded['uname'].split(".")[0]+str(randint(0, 1000)) - created_user = decoded['uname'].split(".")[0]+"_"+decoded['uname'].split(".")[1] - created_user_email = decoded['uname']+str(randint(0, 1000))+'@kaznu.kz' - multipart_form_data = { - 'email': (None, created_user_email), - 'password': (None, decoded['upwd'][:75]), - 'name': (None, name), - 'username': (None, created_user), - 'level_of_education': (None, stage), - 'gender': (None, gender), - 'year_of_birth': (None, birth_year), - 'honor_code': (None, 'true'), - 'country': (None , 'KZ'), - 'surname': (None, surname), - 'goals': (None, 'education'), - 'mailing_address': (None, 'Kaznu') - } - client = requests.session() - client.get(current_site, verify = False) - csrftoken = client.cookies['csrftoken'] - login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') - coky = 'csrftoken='+csrftoken - headers = { - 'X-CSRFToken': csrftoken, - 'Cookie':coky - } - - count_try = 0 - while True: - response = requests.post(current_site + '/user_api/v1/account/registration/', data=login_data, files=multipart_form_data, headers=headers, verify = False) - json_data = json.loads(response.text) - if ( ('success' in json_data) and (json_data['success'] == True)): - break - if ( ('username' in json_data) ): - if "existing account" in str(json_data): - #new_user = Univeruser() - #new_user = Univeruser(edx_id = created_user, edx_pass=0, univer_id = decoded['uname']) - #new_user.edx_username = created_user - #new_user.edx_id=0 - #new_user.edx_pass='0' - #new_user.univer_id = decoded['uname'] - #new_user.save() - - return render(request, 'univerapi/redirect.html') - time.sleep(3) - count_try += 1 - if (count_try == 20): - return JsonResponse(json_data) - - if ( ('success' in json_data) and (json_data['success'] == True)): - new_user = Univeruser() - new_user.edx_username = created_user - new_user.edx_id=0 - new_user.edx_pass='0' - new_user.univer_id = decoded['uname'] - new_user.save() - - return render(request, 'univerapi/redirect.html') - - created_user_str = str(created_user) - - exist_user = None - i = 0 - while i < 60: - try: - exist_user = User.objects.get(username=created_user_str) - #exist_user = User.objects.raw('SELECT * FROM auth_user') - User.refresh_from_db() - break - except: - i += 1 - time.sleep(3) - - out_html='' - query = """SELECT id, username FROM auth_user where username LIKE '""" + "%%" + "hakymova" + "%%" + """'""" - query2 = """SELECT id, username FROM auth_user where username = '""" + created_user_str + """'""" - - - return HttpResponse(repr(exist_user)) - - # raw sql - time.sleep(10) - cursor = connection.cursor() - row = None - sql = 'SELECT id, username FROM auth_user' - try: - cursor.execute(str(query2)) - row = cursor.fetchall() - return HttpResponse(repr(row)) - except Exception as e: - cursor.close - return HttpResponse('error =' + str(e)) - # raw sql - - return HttpResponse(repr(cursor)) - else: - return HttpResponse('no registration') - -#@method_decorator(csrf_protect) -#method_decorator(csrf_protect) - -def authview(request): - return render(request, 'univerapi/index.html') - #return HttpResponse('auth') - -# check activated -def authview_check(request): - auth = request.POST.get('auth') - auth = auth.split("auth=")[1] - #encoded_jwt = request.GET.get('auth') - #decoded = jwt.decode(encoded_jwt, "$ecRet@3#$2958GPIs!1", algorithms=["HS256"]) - #return HttpResponse('OK') - encoded_jwt = auth - decoded = jwt.decode(encoded_jwt, "$ecRet@3#$2958GPIs!1", algorithms=["HS256"]) - already_exist_user = decoded['uname'] - - try: - exist_user = Univeruser.objects.get(univer_id=decoded['uname']) - exist_edx_user = User.objects.get(username=exist_user.edx_username) - exist_edx_user.is_active = 1 - exist_edx_user.save() - #return render(request, 'univerapi/redirect.html') - - - except: - return JsonResponse({"success":"false"}) - - #return HttpResponse('') - return JsonResponse({"success":"true"}) - -@method_decorator(csrf_protect) -def test(request, *args, **kwargs): - logger = logging.getLogger(__name__) - logger.error("Test api") - #logger.error(request) - #logger.error(request.GET.get('auth')) - #encoded_jwt = jwt.encode({"some": "payload"}, "secret", algorithm="HS256") - - #return HttpResponse(answer) - # hash = eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1bmFtZSI6Imhha3ltb3ZhLnR5eXNodHlxIiwidXB3ZCI6IjA3NzdGMDk4MEIzMUE2MEZDRkVFQzlEQjNGOTFEOUI4RUVCQUU4NDQ0NjAwRTQ3MUQyMzEyQjYyNDA2MjVCNTZFM0Q0RDM5RDRBREYwMTg5N0QzQTEzMDkzRTcwRkU1NjRGMUJBRDZCOTIxMUE0NTAwODQxRDFFQzNFMkNGODcwIn0.QLCZHTM2ACm0byg77h0C7KpGwMxcxJuy-M96lQzc3Mk - - #return HttpResponse(repr(args)) - - client = requests.session() - client.get('http://192.168.199.128', verify = False) - csrftoken = client.cookies['csrftoken'] - login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') - coky = 'csrftoken='+csrftoken - headers = { - 'X-CSRFToken': csrftoken, - 'Cookie':coky - } - - # register - multipart_form_data_register = { - 'email': (None, 'hakymova.tyyshtyq@test11.ru'), - 'name': (None, 'hakymova.tyyshtyq'), - 'username': (None, 'hakymova11'), - 'password': (None, '988EBA1673B2F08F99F61719A2F8BC47791250B3A052DA2992D0148DE2D2E084C2E23E6E3C7'), - 'level_of_education': (None, 'hs'), - 'gender': (None, 'f'), - 'year_of_birth': (None, '1969'), - 'mailing_address': (None, ''), - 'goals': (None, ''), - 'honor_code': (None, 'true'), - - } - - response_register = requests.post('http://192.168.199.128/user_api/v1/account/registration/', data=login_data, files=multipart_form_data_register, headers=headers) - - return HttpResponse(repr(response_register)) - - # /register - - multipart_form_data = { - 'email': (None, 'dl@kaznu.kz'), - 'password': (None, 'DlGao3wo'), - 'remember': (None, 'false') - } - client = requests.session() - client.get('http://192.168.199.128', verify = False) - csrftoken = client.cookies['csrftoken'] - login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') - coky = 'csrftoken='+csrftoken - headers = { - 'X-CSRFToken': csrftoken, - 'Cookie':coky - } - # http://192.168.199.128/user_api/v1/account/login_session/ - # https://webhook.site/8bdb471b-3d63-46c2-b788-79f7398144e6 - - - - - - - - - - response = requests.post('http://192.168.199.128/user_api/v1/account/login_session/', data=login_data, files=multipart_form_data, headers=headers) - - return HttpResponse(repr(request.GET)) - - #client.get('http://192.168.199.128:8181') - #session_key = client.cookies['sessionid'] - - - #edx_auth = user_api_view.LoginSessionView() - #testauth = edx_auth.post(request) - - headers2 = response.headers - #home = requests.get('http://192.168.199.128/dashboard', headers=headers2) - #home = HttpResponse(status=302) - #home['Location'] = 'http://192.168.199.128/' - csrfToken = re.search(r'csrftoken=(\w+);', headers2['Set-Cookie']) - sessionid = re.search(r'sessionid="(\S+)";', headers2['Set-Cookie']) - - - - - - cookies2 = { - '_ga': 'GA1.1.1602606957.1602045613', - 'experiments_is_enterprise': 'false', - 'openedx-language-preference': 'ru', - 'csrftoken': csrfToken.group(1), - 'edxloggedin': 'true', - 'sessionid': sessionid.group(1), - 'edx-user-info': '{\\"username\\": \\"staff\\"\\054 \\"version\\": 1\\054 \\"enrollmentStatusHash\\": \\"ace9f6124341dc7692d41de5b91bff7d\\"\\054 \\"header_urls\\": {\\"learner_profile\\": \\"http://192.168.199.128/u/staff\\"\\054 \\"resume_block\\": \\"http://192.168.199.128/user_api/v1/account/login_session/\\"\\054 \\"logout\\": \\"http://192.168.199.128/logout\\"\\054 \\"account_settings\\": \\"http://192.168.199.128/account/settings\\"}}', - } - - headers3 = { - 'Connection': 'keep-alive', - 'Upgrade-Insecure-Requests': '1', - 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36', - 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', - 'Referer': 'http://192.168.199.128/login?next=%2F', - 'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7', - 'sec-gpc': '1', - } - - response = requests.get('http://192.168.199.128/dashboard', headers=headers3, cookies=cookies2, verify=False) - return HttpResponse(response) - - - - - - return HttpResponse(sessionid.group(1)) - - - #home = redirect('http://192.168.199.128') - #return home - - try: - #test = edx_auth.post(request) - test = 0 - except Exception as e: - return HttpResponse(e.message) - - hash = request.GET.get('auth') - try: - answer = jwt.decode(hash, secret, algorithms=["HS256"]) - except Exception as e: - return HttpResponse(e.message) - - #return HttpResponse(repr(request)) - return HttpResponse(repr(response.headers)) - - - - - - - - -import requests -import jwt # Убедитесь, что установлен PyJWT версии 1.x: pip install "PyJWT<2" - - -def decode_token_and_fetch_profile(token, secret_key='$ecRet@3#$2958GPIs!1'): - decoded_token = jwt.decode(token, secret_key, algorithms=['HS256']) - uname = decoded_token.get('uname', None) - upwd = decoded_token.get('upwd', None) - - if uname and upwd: - login_url = "https://univerapi.kaznu.kz/user/loginMoodle" - credentials = { - 'login': uname, - 'password': upwd - } - - session = requests.Session() - response = session.post(login_url, data=credentials) - response_data = response.json() - - if response.status_code == 200 and response_data.get('code') == 0: - profile_url = "https://univerapi.kaznu.kz/teacher/profile" - profile_response = session.get(profile_url) - profile_data = profile_response.json() - roles = "teacher" - - if profile_data.get('code') == 1: - profile_url = "https://univerapi.kaznu.kz/student/profile" - profile_response = session.get(profile_url) - profile_data = profile_response.json() - roles = "student" - - surname = '' - name = '' - birth_year = '' - gender = '' - stage = '' - - if roles == "teacher": - user_data = profile_data['data'][0] - surname = user_data['sname'] - name = user_data['name'] - date_of_birth = user_data['dateOfBirth'] - birth_year = date_of_birth.split('.')[-1] - - if roles == "student": - surname = profile_data['data'][1][0]['sname'].split(':')[1] - name = profile_data['data'][1][1]['name'].split(':')[1] - gender = profile_data['data'][1][4]['sex'].split(':')[1] - stage = profile_data['data'][0][4]['stage'].split(':')[1] - - # Обработка stage и gender в одну строку - - - return surname, name, gender, stage, birth_year - - return None, None, None, None, None # Возвращаем None, если авторизация не удалась - - From 1535865c7ae78998f8d9aeebc50a64618f145046 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:24:35 +0500 Subject: [PATCH 054/443] Delete lms/djangoapps/univerapi/views.py.save.1 --- lms/djangoapps/univerapi/views.py.save.1 | 232 ----------------------- 1 file changed, 232 deletions(-) delete mode 100644 lms/djangoapps/univerapi/views.py.save.1 diff --git a/lms/djangoapps/univerapi/views.py.save.1 b/lms/djangoapps/univerapi/views.py.save.1 deleted file mode 100644 index 3b6b93561cb7..000000000000 --- a/lms/djangoapps/univerapi/views.py.save.1 +++ /dev/null @@ -1,232 +0,0 @@ -# -*- coding: utf-8 -*- - -from django.shortcuts import render -from django.http import HttpResponse -import logging -#import authlib -import jwt -import openedx.core.djangoapps.user_api.views as user_api_view -import requests -import django.middleware.csrf -from django.views.decorators.csrf import csrf_exempt, csrf_protect, ensure_csrf_cookie -from django.utils.decorators import method_decorator -from django.shortcuts import redirect -import re -secret = '$ecRet@3#$2958GPIs!1' - -from django.shortcuts import render -from rest_framework.views import APIView -from rest_framework.generics import GenericAPIView - -from univerapi.models import Univeruser -from random import randint -import json -from student.models import User -import time -from django.db import connection -from django.contrib.sites.models import Site -from django.conf import settings -from django.http import JsonResponse - -class UniverView(GenericAPIView): - - def createuser(): - return 123 - - @method_decorator(csrf_protect) - def post(self, request): - return HttpResponse('post') - # TEST user - #exist_user = User.objects.get(email='hakymova.tyyshtyq642@kaznu.kz') - #return HttpResponse(repr(exist_user)) - # TEST user - - auth = request.POST.get('auth') - #auth = auth.split("auth=")[1] - encoded_jwt = request.GET.get('auth') - decoded = jwt.decode(encoded_jwt, "$ecRet@3#$2958GPIs!1", algorithms=["HS256"]) - - new_user = Univeruser() - #new_user = Univeruser(edx_id = 0, edx_pass=decoded['upwd'], univer_id = decoded['uname']) - ''' - new_user.edx_pass=decoded['upwd'] - new_user.univer_id = decoded['uname'] - new_user.save() - ''' - created_user = '' - created_user_email = '' - try: - exist_user = Univeruser.objects.get(univer_id=decoded['uname']) - - return HttpResponse('user exist') - - except: - surname, name, gender, stage, birth_year = decode_token_and_fetch_profile(encoded_jwt) - created_user = decoded['uname'].split(".")[0]+str(randint(0, 1000)) - created_user_email = decoded['uname']+str(randint(0, 1000))+'@kaznu.kz' - multipart_form_data = { - 'email': (None, created_user_email), - 'password': (None, decoded['upwd'][:75]), - 'name': (None, name), - 'username': (None, created_user), - 'level_of_education': (None, stage), - 'gender': (None, gender), - 'year_of_birth': (None, birth_year), - 'honor_code': (None, 'true'), - 'country': (None, 'KZ'), - 'goals': (None, 'education'), - 'surname': (None, surname), - 'mailing_address': (None, 'Kaznu') - } - client = requests.session() - client.get('http://192.168.199.128', verify=False) - csrftoken = client.cookies['csrftoken'] - login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') - coky = 'csrftoken='+csrftoken - headers = { - 'X-CSRFToken': csrftoken, - 'Cookie':coky - } - - response = requests.post('http://192.168.199.128:8181/user_api/v1/account/registration/', data=login_data, files=multipart_form_data, headers=headers, verify=False) - - #new_user.edx_pass=decoded['upwd'] - #new_user.univer_id = decoded['uname'] - #new_user.save() - json_data = json.loads(response.text) - - if ( ('success' in json_data) and (json_data['success'] == True)): - created_user_str = str(created_user) - - exist_user = None - i = 0 - while i < 60: - try: - exist_user = User.objects.get(username=created_user_str) - #exist_user = User.objects.raw('SELECT * FROM auth_user') - User.refresh_from_db() - break - except: - i += 1 - time.sleep(3) - - out_html='' - query = """SELECT id, username FROM auth_user where username LIKE '""" + "%%" + "hakymova" + "%%" + """'""" - query2 = """SELECT id, username FROM auth_user where username = '""" + created_user_str + """'""" - - - return HttpResponse(repr(exist_user)) - - # raw sql - time.sleep(10) - cursor = connection.cursor() - row = None - sql = 'SELECT id, username FROM auth_user' - try: - cursor.execute(str(query2)) - row = cursor.fetchall() - return HttpResponse(repr(row)) - except Exception as e: - cursor.close - return HttpResponse('error =' + str(e)) - # raw sql - - return HttpResponse(repr(cursor)) - #time.sleep(20) - #for p in User.objects.raw(query): - #User.refresh_from_db() - # out_html += str(p.username) + '\n' - #exist_user = User.objects.raw(str(query)) - #exist_user = User.objects.get(id=51808) - #return HttpResponse(str(created_user_str) + ' = ' + repr(exist_user) + str(i) + str(out_html)) - #return HttpResponse( str(out_html)) - else: - return HttpResponse('no registration') - - return HttpResponse((json_data['success'])) - - - #check_user = Univeruser.objects.get(univer_id=decoded['uname']) - - return HttpResponse(repr(exist_user)) - - multipart_form_data = { - 'email': (None, 'dl@kaznu.kz'), - 'password': (None, 'DlGao3wo'), - 'remember': (None, 'true') - } - client = requests.session() - client.get('http://192.168.199.128') - csrftoken = client.cookies['csrftoken'] - login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') - coky = 'csrftoken='+csrftoken - headers = { - 'X-CSRFToken': csrftoken, - 'Cookie':coky - } - - response = requests.post('http://192.168.199.128/user_api/v1/account/login_session/', data=login_data, files=multipart_form_data, headers=headers, verify = False) - - headers2 = response.headers - - csrfToken = re.search(r'csrftoken=(\w+);', headers2['Set-Cookie']) - sessionid = re.search(r'sessionid="(\S+)";', headers2['Set-Cookie']) - - - cookies2 = { - '_ga': 'GA1.1.1602606957.1602045613', - 'experiments_is_enterprise': 'false', - 'openedx-language-preference': 'ru', - 'csrftoken': csrfToken.group(1), - 'edxloggedin': 'true', - 'sessionid': sessionid.group(1), - 'edx-user-info': '{\\"username\\": \\"staff\\"\\054 \\"version\\": 1\\054 \\"enrollmentStatusHash\\": \\"ace9f6124341dc7692d41de5b91bff7d\\"\\054 \\"header_urls\\": {\\"learner_profile\\": \\"http://192.168.199.128/u/staff\\"\\054 \\"resume_block\\": \\"http://192.168.199.128/user_api/v1/account/login_session/\\"\\054 \\"logout\\": \\"http://192.168.199.128/logout\\"\\054 \\"account_settings\\": \\"http://192.168.199.128/account/settings\\"}}', - } - - headers3 = { - 'Connection': 'keep-alive', - 'Upgrade-Insecure-Requests': '1', - 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36', - 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', - 'Referer': 'http://192.168.199.128/login?next=%2F', - 'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7', - 'sec-gpc': '1', - } - - response = requests.get('http://192.168.199.128', headers=headers3, cookies=cookies2, verify=False) - return HttpResponse(response) - - #return HttpResponse(request.POST['csrf']) - - @method_decorator(ensure_csrf_cookie) - def get(self, request): - #return HttpResponse('get') - #return HttpResponse(repr(django.middleware.csrf.get_token(request))) - #return render(request, 'univerapi/login.html') - # TEST user - #exist_user = User.objects.get(email='hakymova.tyyshtyq642@kaznu.kz') - #return HttpResponse(repr(exist_user)) - # TEST user - current_site = 'https://open.kaznu.kz' - - - auth = request.POST.get('auth') - #auth = auth.split("auth=")[1] - encoded_jwt = request.GET.get('auth') - decoded = jwt.decode(encoded_jwt, secret, algorithms=["HS256"]) - - #return HttpResponse(decoded['upwd'][:75]) - #new_user = Univeruser() - #new_user = Univeruser(edx_id = 0, edx_pass=decoded['upwd'], univer_id = decoded['uname']) - ''' - new_user.edx_pass=decoded['upwd'] - new_user.univer_id = decoded['uname'] - new_user.save() - ''' - created_user = '' - created_user_email = '' - #return HttpResponse(repr(current_site)) - - try: - exist_user = Univeruser.objects.get(univer_id=decoded['uname']) - From cdbc022ee95093669becd2a0e7c0e99cc22a7bb8 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:24:46 +0500 Subject: [PATCH 055/443] Delete lms/djangoapps/univerapi/table_univeruser.sql --- lms/djangoapps/univerapi/table_univeruser.sql | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 lms/djangoapps/univerapi/table_univeruser.sql diff --git a/lms/djangoapps/univerapi/table_univeruser.sql b/lms/djangoapps/univerapi/table_univeruser.sql deleted file mode 100644 index e69de29bb2d1..000000000000 From 292ebabc3b73df527e7344420d3412de624f91f5 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:33:43 +0500 Subject: [PATCH 056/443] Update views.py --- lms/djangoapps/univerapi/views.py | 455 ++++-------------------------- 1 file changed, 58 insertions(+), 397 deletions(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index dcd41b715928..d7517d53707f 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -1,402 +1,63 @@ -# -*- coding: utf-8 -*- - -from django.shortcuts import render -from django.http import HttpResponse -import logging import jwt -import openedx.core.djangoapps.user_api.views as user_api_view -import requests -import django.middleware.csrf -from django.views.decorators.csrf import csrf_exempt, csrf_protect, ensure_csrf_cookie -from django.utils.decorators import method_decorator -from django.shortcuts import redirect -import re -secret = '$ecRet@3#$2958GPIs!1' - -from django.shortcuts import render -from rest_framework.views import APIView -from rest_framework.generics import GenericAPIView - -from lms.djangoapps.univerapi.models import Univeruser -from random import randint -import json -import random -from common.djangoapps.student.models import User -import time -from django.db import connection -from django.contrib.sites.models import Site from django.conf import settings -from django.http import JsonResponse - -class UniverView(GenericAPIView): - - def createuser(): - return 123 - - @method_decorator(csrf_protect) - def post(self, request): - return HttpResponse('post') - - auth = request.POST.get('auth') - encoded_jwt = request.GET.get('auth') - decoded = jwt.decode(encoded_jwt, "$ecRet@3#$2958GPIs!1", algorithms=["HS256"]) - - new_user = Univeruser() - created_user = '' - created_user_email = '' - try: - exist_user = Univeruser.objects.get(univer_id=decoded['uname']) - - return HttpResponse('user exist') - - except: - surname, name, gender, stage, birth_year = decode_token_and_fetch_profile(encoded_jwt) - created_user = decoded['uname'].replace(".", "_") + str(random.randint(100, 999)) - created_user_email = decoded['uname'].replace(".", "_")+'@kaznu.edu.kz' - multipart_form_data = { - 'email': (None, created_user_email), - 'password': (None, decoded['upwd'][:75]), - 'name': (None, name), - 'username': (None, created_user), - 'level_of_education': (None, stage), - 'gender': (None, gender), - 'year_of_birth': (None, birth_year), - 'honor_code': (None, 'true'), - 'country': (None, 'KZ') - - - - } - client = requests.session() - client.get('http://192.168.199.128', verify=False) - csrftoken = client.cookies['csrftoken'] - login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') - coky = 'csrftoken='+csrftoken - headers = { - 'X-CSRFToken': csrftoken, - 'Cookie':coky - } - - response = requests.post('http://192.168.199.128:8181/user_api/v1/account/registration/', data=login_data, files=multipart_form_data, headers=headers, verify=False) - - json_data = json.loads(response.text) - - if ( ('success' in json_data) and (json_data['success'] == True)): - created_user_str = str(created_user) - - exist_user = None - i = 0 - while i < 60: - try: - exist_user = User.objects.get(username=created_user_str) - User.refresh_from_db() - break - except: - i += 1 - time.sleep(3) - - out_html='' - query = """SELECT id, username FROM auth_user where username LIKE '""" + "%%" + "hakymova" + "%%" + """'""" - query2 = """SELECT id, username FROM auth_user where username = '""" + created_user_str + """'""" - - - return HttpResponse(repr(exist_user)) - - time.sleep(10) - cursor = connection.cursor() - row = None - sql = 'SELECT id, username FROM auth_user' - try: - cursor.execute(str(query2)) - row = cursor.fetchall() - return HttpResponse(repr(row)) - except Exception as e: - cursor.close - return HttpResponse('error =' + str(e)) - - return HttpResponse(repr(cursor)) - else: - return HttpResponse('no registration') - - return HttpResponse((json_data['success'])) - - - return HttpResponse(repr(exist_user)) - - multipart_form_data = { - 'email': (None, 'dl@kaznu.kz'), - 'password': (None, 'DlGao3wo'), - 'remember': (None, 'true') - } - client = requests.session() - client.get('http://192.168.199.128') - csrftoken = client.cookies['csrftoken'] - login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') - coky = 'csrftoken='+csrftoken - headers = { - 'X-CSRFToken': csrftoken, - 'Cookie':coky - } - - response = requests.post('http://192.168.199.128/user_api/v1/account/login_session/', data=login_data, files=multipart_form_data, headers=headers, verify = False) - - headers2 = response.headers - - csrfToken = re.search(r'csrftoken=(\w+);', headers2['Set-Cookie']) - sessionid = re.search(r'sessionid="(\S+)";', headers2['Set-Cookie']) - - - cookies2 = { - '_ga': 'GA1.1.1602606957.1602045613', - 'experiments_is_enterprise': 'false', - 'openedx-language-preference': 'ru', - 'csrftoken': csrfToken.group(1), - 'edxloggedin': 'true', - 'sessionid': sessionid.group(1), - 'edx-user-info': '{\\"username\\": \\"staff\\"\\054 \\"version\\": 1\\054 \\"enrollmentStatusHash\\": \\"ace9f6124341dc7692d41de5b91bff7d\\"\\054 \\"header_urls\\": {\\"learner_profile\\": \\"http://192.168.199.128/u/staff\\"\\054 \\"resume_block\\": \\"http://192.168.199.128/user_api/v1/account/login_session/\\"\\054 \\"logout\\": \\"http://192.168.199.128/logout\\"\\054 \\"account_settings\\": \\"http://192.168.199.128/account/settings\\"}}', - } - - headers3 = { - 'Connection': 'keep-alive', - 'Upgrade-Insecure-Requests': '1', - 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36', - 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', - 'Referer': 'http://192.168.199.128/login?next=%2F', - 'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7', - 'sec-gpc': '1', - } - - response = requests.get('http://192.168.199.128', headers=headers3, cookies=cookies2, verify=False) - return HttpResponse(response) - - - @method_decorator(ensure_csrf_cookie) +from django.contrib.auth import login +from django.contrib.auth.models import User +from django.http import HttpResponseRedirect +from django.views.decorators.csrf import csrf_exempt +from rest_framework.views import APIView +from rest_framework.response import Response +from rest_framework import status +from openedx.core.djangoapps.user_api.views import login_user # Assuming this is importable as per your provided code +SECRET_KEY = "$ecRet@3#$2958GPIs!1" +class UniverTestView(APIView): + authentication_classes = [] # Allow anonymous access since it's a redirect from external auth + permission_classes = [] + + @csrf_exempt # If CSRF is an issue in this redirect flow; adjust based on your setup def get(self, request): - current_site = "http://127.0.0.1:8000" - auth = request.POST.get('auth') - encoded_jwt = request.GET.get('auth') - decoded = jwt.decode(encoded_jwt, secret, algorithms=["HS256"]) - created_user = '' - created_user_email = '' - - try: - exist_user = Univeruser.objects.get(univer_id=decoded['uname']) - - return render(request, 'univerapi/redirect.html') + auth_token = request.GET.get('auth') + if not auth_token: + return Response({'error': 'Missing auth token'}, status=status.HTTP_400_BAD_REQUEST) - except: - surname, name, gender, stage, birth_year = decode_token_and_fetch_profile(encoded_jwt) - created_user = decoded['uname'].replace(".", "_") + str(random.randint(100, 999)) - - created_user_email = decoded['uname'].replace(".", "_")+'@kaznu.edu.kz' - multipart_form_data = { - 'email': (None, created_user_email), - 'password': (None, decoded['upwd'][:75]), - 'name': (None, name), - 'username': (None, created_user), - 'level_of_education': (None, stage), - 'gender': (None, gender), - 'year_of_birth': (None, birth_year), - 'honor_code': (None, 'true'), - 'country': (None , 'KZ') - - - } - client = requests.session() - client.get(current_site, verify = False) - csrftoken = client.cookies['csrftoken'] - login_data = dict(csrfmiddlewaretoken=csrftoken, next='/form_call/') - coky = 'csrftoken='+csrftoken - headers = { - 'X-CSRFToken': csrftoken, - 'Cookie':coky - } - - count_try = 0 - while True: - response = requests.post(current_site + '/user_api/v1/account/registration/', data=login_data, files=multipart_form_data, headers=headers, verify = False) - json_data = json.loads(response.text) - if ( ('success' in json_data) and (json_data['success'] == True)): - break - if ( ('username' in json_data) ): - if "existing account" in str(json_data): - - - return render(request, 'univerapi/redirect.html') - time.sleep(3) - count_try += 1 - if (count_try == 20): - return JsonResponse(json_data) - - if ( ('success' in json_data) and (json_data['success'] == True)): - new_user = Univeruser() - new_user.edx_username = created_user - new_user.edx_id=0 - new_user.edx_pass='0' - new_user.univer_id = decoded['uname'] - new_user.save() - return render(request, 'univerapi/redirect.html') - created_user_str = str(created_user) - - exist_user = None - i = 0 - while i < 60: - try: - exist_user = User.objects.get(username=created_user_str) - User.refresh_from_db() - break - except: - i += 1 - time.sleep(3) - - out_html='' - query = """SELECT id, username FROM auth_user where username LIKE '""" + "%%" + "hakymova" + "%%" + """'""" - query2 = """SELECT id, username FROM auth_user where username = '""" + created_user_str + """'""" - - return HttpResponse(repr(exist_user)) - - time.sleep(10) - cursor = connection.cursor() - row = None - sql = 'SELECT id, username FROM auth_user' - try: - cursor.execute(str(query2)) - row = cursor.fetchall() - return HttpResponse(repr(row)) - except Exception as e: - cursor.close - return HttpResponse('error =' + str(e)) - - return HttpResponse(repr(cursor)) - else: - return HttpResponse('no registration') - - -def authview(request): - return render(request, 'univerapi/index.html') - - -def authview_check(request): - auth = request.POST.get('auth') - auth = auth.split("auth=")[1] - encoded_jwt = auth - decoded = jwt.decode(encoded_jwt, "$ecRet@3#$2958GPIs!1", algorithms=["HS256"]) - already_exist_user = decoded['uname'] - - try: - exist_user = Univeruser.objects.get(univer_id=decoded['uname']) - exist_edx_user = User.objects.get(username=exist_user.edx_username) - exist_edx_user.is_active = 1 - exist_edx_user.save() - - except: - return JsonResponse({"success":"false"}) - - return JsonResponse({"success":"true"}) - - -# -*- coding: utf-8 -*- -import requests -import jwt - -def decode_token_and_fetch_profile(token, secret_key='$ecRet@3#$2958GPIs!1'): - try: - decoded = jwt.decode(token, secret_key, algorithms=['HS256']) - except jwt.InvalidSignatureError: - raise SystemExit("Ошибка: неверная подпись JWT") - except jwt.DecodeError as e: - raise SystemExit("Ошибка при декодировании JWT: {0}".format(e)) - - uname = decoded.get('uname') - upwd = decoded.get('upwd') - if not uname or not upwd: - raise SystemExit("Ошибка: в токене нет 'uname' или 'upwd'") - - session = requests.Session() - resp = session.post( - "https://univerapi.kaznu.kz/user/loginMoodle", - data={'login': uname, 'password': upwd}, - ) - resp.raise_for_status() - data = resp.json() - if data.get('code') != 0: - raise SystemExit("loginMoodle вернул: {0}".format(data.get('message', ''))) - - # Сначала пробуем получить профиль студента - student_resp = session.get("https://univerapi.kaznu.kz/student/profile") - student_data = None - if student_resp.status_code == 200: try: - student_data = student_resp.json() - except: - pass - - # Если данные студента получены успешно - if student_data and student_data.get('code') == 0 and 'data' in student_data: - info_list, personal_list = student_data['data'] - - def find_value(lst, key): - for d in lst: - if key in d and ':' in d[key]: - return d[key].split(':', 1)[1].strip() - return None - - surname = find_value(personal_list, 'sname') - name = find_value(personal_list, 'name') - - raw_sex = find_value(personal_list, 'sex') or '' - if isinstance(raw_sex, bytes): - raw_sex = raw_sex.decode('utf-8') - raw_sex = raw_sex.lower() - - if u'муж' in raw_sex: - gender = 'm' - elif u'жен' in raw_sex: - gender = 'f' - else: - gender = 'o' - - raw_stage = find_value(info_list, 'stage') or '' - if isinstance(raw_stage, bytes): - raw_stage = raw_stage.decode('utf-8') - raw_stage = raw_stage.lower() - - if u'бакалав' in raw_stage: - stage = 'b' - elif u'магис' in raw_stage: - stage = 'm' - elif u'доктор' in raw_stage: - stage = 'p' - else: - stage = 'none' - - # Установка дефолтного года рождения для студента - birth_year = 1995 - return surname, name, gender, stage, birth_year - - # Если не удалось получить данные студента, пробуем профиль преподавателя - teacher_resp = session.get("https://univerapi.kaznu.kz/teacher/profile") - if teacher_resp.status_code >= 500: - raise SystemExit("teacher/profile 500:\n{0}".format(teacher_resp.text)) - teacher_resp.raise_for_status() - teacher_data = teacher_resp.json() - - if teacher_data.get('code') != 0 or 'data' not in teacher_data: - raise SystemExit("Не удалось получить данные ни студента, ни преподавателя") - - # Обработка данных преподавателя - teacher_profile = teacher_data['data'][0] # Первый элемент в списке данных - surname = teacher_profile.get('sname', '') - name = teacher_profile.get('name', '') - gender = 'o' # По умолчанию, если поле отсутствует - stage = 'none' # Для преподавателя ступень не применима - - # Извлечение года рождения из даты (формат "дд.мм.гггг") - birth_year = None - if 'dateOfBirth' in teacher_profile: - try: - birth_year = int(teacher_profile['dateOfBirth'].split('.')[-1]) - except (ValueError, IndexError): - pass - - return surname, name, gender, stage, birth_year + # Decode JWT (replace with your actual secret) + decoded = jwt.decode(auth_token, settings.UNIVER_JWT_SECRET, algorithms=['HS256']) + uname = decoded.get('uname') + upwd = decoded.get('upwd') + + if not uname or not upwd: + return Response({'error': 'Invalid token payload'}, status=status.HTTP_400_BAD_REQUEST) + + # Modify uname: replace '.' with '_' + modified_uname = uname.replace('.', '_') + + # Check if user exists + user, created = User.objects.get_or_create(username=modified_uname) + + # Set or update password (handles updates) + user.set_password(upwd) + user.save() + + # If new user, set additional fields if needed (e.g., email, but minimal for now) + if created: + # Optionally set email or other profile fields; e.g., user.email = f"{modified_uname}@example.com" + user.save() + + # Authenticate and login + # Simulate the login_user call (adapt api_version as needed, e.g., 'v1') + login_response = login_user(request, 'v1') # This assumes login_user handles authentication + if login_response.status_code != status.HTTP_200_OK: + return login_response # Return error if login fails + + # Manually login the user in the session if needed (in case login_user doesn't) + login(request, user) + + # Redirect to main page (e.g., dashboard) + return HttpResponseRedirect('/dashboard') + + except jwt.ExpiredSignatureError: + return Response({'error': 'Token expired'}, status=status.HTTP_401_UNAUTHORIZED) + except jwt.InvalidTokenError: + return Response({'error': 'Invalid token'}, status=status.HTTP_401_UNAUTHORIZED) + except Exception as e: + return Response({'error': str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) From 7528f55eeda28a93c1f881e87221cfd5b7961869 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:34:10 +0500 Subject: [PATCH 057/443] Update views.py --- lms/djangoapps/univerapi/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index d7517d53707f..a4e5cfbd05f6 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -21,7 +21,7 @@ def get(self, request): try: # Decode JWT (replace with your actual secret) - decoded = jwt.decode(auth_token, settings.UNIVER_JWT_SECRET, algorithms=['HS256']) + decoded = jwt.decode(auth_token, SECRET_KEY, algorithms=['HS256']) uname = decoded.get('uname') upwd = decoded.get('upwd') From ca29e7805b7d37c82266f2d3a4024e400fcd38f4 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:34:43 +0500 Subject: [PATCH 058/443] Delete lms/djangoapps/univerapi/models.py --- lms/djangoapps/univerapi/models.py | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 lms/djangoapps/univerapi/models.py diff --git a/lms/djangoapps/univerapi/models.py b/lms/djangoapps/univerapi/models.py deleted file mode 100644 index 1144b1ca5ed9..000000000000 --- a/lms/djangoapps/univerapi/models.py +++ /dev/null @@ -1,12 +0,0 @@ -from django.db import models -from django.contrib import admin - -# Create your models here. - -class Univeruser(models.Model): - edx_id = models.IntegerField(null=True) - edx_pass = models.CharField(max_length=300, null=True) - univer_id = models.CharField(max_length=300, null=True) - edx_username = models.CharField(max_length=300, null=True) - -admin.site.register(Univeruser) \ No newline at end of file From 80982654e333146f052067d655dbd2b8ec61247c Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:34:55 +0500 Subject: [PATCH 059/443] Delete lms/djangoapps/univerapi/templates/univerapi/index.html --- .../univerapi/templates/univerapi/index.html | 98 ------------------- 1 file changed, 98 deletions(-) delete mode 100644 lms/djangoapps/univerapi/templates/univerapi/index.html diff --git a/lms/djangoapps/univerapi/templates/univerapi/index.html b/lms/djangoapps/univerapi/templates/univerapi/index.html deleted file mode 100644 index 3bb9f685436d..000000000000 --- a/lms/djangoapps/univerapi/templates/univerapi/index.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - {% csrf_token %} - -
    - - - -
    - - - - -
    - - - - - - - - - - - From 2492897b020f7a28411054a390ecccbe1ff56597 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:35:04 +0500 Subject: [PATCH 060/443] Delete lms/djangoapps/univerapi/templates/univerapi/redirect.html --- .../templates/univerapi/redirect.html | 117 ------------------ 1 file changed, 117 deletions(-) delete mode 100644 lms/djangoapps/univerapi/templates/univerapi/redirect.html diff --git a/lms/djangoapps/univerapi/templates/univerapi/redirect.html b/lms/djangoapps/univerapi/templates/univerapi/redirect.html deleted file mode 100644 index 2a3d726e749e..000000000000 --- a/lms/djangoapps/univerapi/templates/univerapi/redirect.html +++ /dev/null @@ -1,117 +0,0 @@ -login page - - - - From ff996dbb8890072fd3bc70008440945502ee5948 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:35:12 +0500 Subject: [PATCH 061/443] Delete lms/djangoapps/univerapi/templates/univerapi/login.html --- .../univerapi/templates/univerapi/login.html | 42 ------------------- 1 file changed, 42 deletions(-) delete mode 100644 lms/djangoapps/univerapi/templates/univerapi/login.html diff --git a/lms/djangoapps/univerapi/templates/univerapi/login.html b/lms/djangoapps/univerapi/templates/univerapi/login.html deleted file mode 100644 index 548df9dfd583..000000000000 --- a/lms/djangoapps/univerapi/templates/univerapi/login.html +++ /dev/null @@ -1,42 +0,0 @@ -login page - - - - From 8bdf2c9acc803c34f52dd6bf45ba9013c738fc1b Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:35:26 +0500 Subject: [PATCH 062/443] Delete lms/djangoapps/univerapi/migrations/0004_univeruser_edx_username.py --- .../0004_univeruser_edx_username.py | 20 ------------------- 1 file changed, 20 deletions(-) delete mode 100644 lms/djangoapps/univerapi/migrations/0004_univeruser_edx_username.py diff --git a/lms/djangoapps/univerapi/migrations/0004_univeruser_edx_username.py b/lms/djangoapps/univerapi/migrations/0004_univeruser_edx_username.py deleted file mode 100644 index 049d469cc50c..000000000000 --- a/lms/djangoapps/univerapi/migrations/0004_univeruser_edx_username.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.29 on 2021-12-06 09:18 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('univerapi', '0003_auto_20211125_0136'), - ] - - operations = [ - migrations.AddField( - model_name='univeruser', - name='edx_username', - field=models.CharField(max_length=300, null=True), - ), - ] From 87d4124bd313cd599190faff15f0f6fe344ccb1b Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:35:35 +0500 Subject: [PATCH 063/443] Delete lms/djangoapps/univerapi/migrations/0003_auto_20211125_0136.py --- .../migrations/0003_auto_20211125_0136.py | 34 ------------------- 1 file changed, 34 deletions(-) delete mode 100644 lms/djangoapps/univerapi/migrations/0003_auto_20211125_0136.py diff --git a/lms/djangoapps/univerapi/migrations/0003_auto_20211125_0136.py b/lms/djangoapps/univerapi/migrations/0003_auto_20211125_0136.py deleted file mode 100644 index 50d2a07f73e1..000000000000 --- a/lms/djangoapps/univerapi/migrations/0003_auto_20211125_0136.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.29 on 2021-11-25 06:36 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('univerapi', '0002_univeruser_univer_id2'), - ] - - operations = [ - migrations.RemoveField( - model_name='univeruser', - name='univer_id2', - ), - migrations.AddField( - model_name='univeruser', - name='edx_id', - field=models.IntegerField(null=True), - ), - migrations.AlterField( - model_name='univeruser', - name='edx_pass', - field=models.CharField(max_length=300, null=True), - ), - migrations.AlterField( - model_name='univeruser', - name='univer_id', - field=models.CharField(max_length=300, null=True), - ), - ] From 9184f93da714cc50c8e96d5cb4675decb3e9fd3f Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:35:43 +0500 Subject: [PATCH 064/443] Delete lms/djangoapps/univerapi/migrations/0001_initial.py --- .../univerapi/migrations/0001_initial.py | 24 ------------------- 1 file changed, 24 deletions(-) delete mode 100644 lms/djangoapps/univerapi/migrations/0001_initial.py diff --git a/lms/djangoapps/univerapi/migrations/0001_initial.py b/lms/djangoapps/univerapi/migrations/0001_initial.py deleted file mode 100644 index 98694b9cae06..000000000000 --- a/lms/djangoapps/univerapi/migrations/0001_initial.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.29 on 2021-11-25 06:21 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ] - - operations = [ - migrations.CreateModel( - name='Univeruser', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('edx_pass', models.CharField(max_length=300)), - ('univer_id', models.CharField(max_length=300)), - ], - ), - ] From a332e279df65bcc8c5d28588dd4ea11372fdb2ac Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:35:51 +0500 Subject: [PATCH 065/443] Delete lms/djangoapps/univerapi/migrations/0002_univeruser_univer_id2.py --- .../migrations/0002_univeruser_univer_id2.py | 20 ------------------- 1 file changed, 20 deletions(-) delete mode 100644 lms/djangoapps/univerapi/migrations/0002_univeruser_univer_id2.py diff --git a/lms/djangoapps/univerapi/migrations/0002_univeruser_univer_id2.py b/lms/djangoapps/univerapi/migrations/0002_univeruser_univer_id2.py deleted file mode 100644 index 1764f5bd570e..000000000000 --- a/lms/djangoapps/univerapi/migrations/0002_univeruser_univer_id2.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.29 on 2021-11-25 06:33 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('univerapi', '0001_initial'), - ] - - operations = [ - migrations.AddField( - model_name='univeruser', - name='univer_id2', - field=models.CharField(max_length=300, null=True), - ), - ] From b8a23dcc82dfb55e6b94992e82b1830930db38e9 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:35:58 +0500 Subject: [PATCH 066/443] Delete lms/djangoapps/univerapi/migrations/__init__.py --- lms/djangoapps/univerapi/migrations/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 lms/djangoapps/univerapi/migrations/__init__.py diff --git a/lms/djangoapps/univerapi/migrations/__init__.py b/lms/djangoapps/univerapi/migrations/__init__.py deleted file mode 100644 index e69de29bb2d1..000000000000 From 7e1baaa89f6b49206a4e88d8140d1ff5684f803a Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:36:12 +0500 Subject: [PATCH 067/443] Delete lms/djangoapps/univerapi/__init__.py --- lms/djangoapps/univerapi/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 lms/djangoapps/univerapi/__init__.py diff --git a/lms/djangoapps/univerapi/__init__.py b/lms/djangoapps/univerapi/__init__.py deleted file mode 100644 index e69de29bb2d1..000000000000 From effb07b63f71ce65d97d462aba8f9b9bbb33e30e Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:36:28 +0500 Subject: [PATCH 068/443] Delete lms/djangoapps/univerapi/tests.py --- lms/djangoapps/univerapi/tests.py | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 lms/djangoapps/univerapi/tests.py diff --git a/lms/djangoapps/univerapi/tests.py b/lms/djangoapps/univerapi/tests.py deleted file mode 100644 index de8bdc00eb2f..000000000000 --- a/lms/djangoapps/univerapi/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. From c23ccf0223cb1656535d2d82f549e7cdc032b2f2 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:36:48 +0500 Subject: [PATCH 069/443] Delete lms/djangoapps/univerapi/urls.py --- lms/djangoapps/univerapi/urls.py | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 lms/djangoapps/univerapi/urls.py diff --git a/lms/djangoapps/univerapi/urls.py b/lms/djangoapps/univerapi/urls.py deleted file mode 100644 index 9aad72b602ec..000000000000 --- a/lms/djangoapps/univerapi/urls.py +++ /dev/null @@ -1,7 +0,0 @@ -from django.urls import path - -from . import views - -urlpatterns = [ - path('', views.test, name='test'), -] \ No newline at end of file From 2e882da4e0f6e8d445674ceb8a1a6d7b2c05c40f Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:41:08 +0500 Subject: [PATCH 070/443] Update urls.py --- lms/urls.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lms/urls.py b/lms/urls.py index b4cdc70b0d10..9166d55280e1 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -94,11 +94,7 @@ urlpatterns = [ - - re_path(r'^api/univertest$', univer_views.UniverView.as_view(), name="post"), - re_path(r'^univerauth$', univer_views.authview, name="test"), - re_path(r'^api/univerauthcheck$', univer_views.authview_check, name="check"), - + path('api/univertest/', univer_views.UniverTestView.as_view(), name='univer_test'), path('', branding_views.index, name='root'), # Main marketing page, or redirect to courseware path('', include('common.djangoapps.student.urls')), From 2f9990b75da4c3497934ca22e509e60df443918e Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:42:22 +0500 Subject: [PATCH 071/443] Update views.py --- openedx/core/djangoapps/user_api/views.py | 84 ----------------------- 1 file changed, 84 deletions(-) diff --git a/openedx/core/djangoapps/user_api/views.py b/openedx/core/djangoapps/user_api/views.py index da8273835ccd..cef77e8708e3 100644 --- a/openedx/core/djangoapps/user_api/views.py +++ b/openedx/core/djangoapps/user_api/views.py @@ -27,90 +27,6 @@ from django.views.decorators.csrf import csrf_protect from django.views.decorators.debug import sensitive_post_parameters -# univerapi -import logging -import lms.djangoapps.univerapi -from django.shortcuts import redirect -import jwt -from lms.djangoapps.univerapi.models import Univeruser -# univerapi - -class LoginSessionView(APIView): - """HTTP end-points for logging in users. """ - - # This end-point is available to anonymous users, - # so do not require authentication. - authentication_classes = [] - - @method_decorator(ensure_csrf_cookie) - def get(self, request): - return HttpResponse(get_login_session_form(request).to_json(), content_type="application/json") - - @method_decorator(require_post_params(["email", "password"])) - @method_decorator(csrf_protect) - def post(self, request): - """Log in a user. - - You must send all required form fields with the request. - - You can optionally send an `analytics` param with a JSON-encoded - object with additional info to include in the login analytics event. - Currently, the only supported field is "enroll_course_id" to indicate - that the user logged in while enrolling in a particular course. - - Arguments: - request (HttpRequest) - - Returns: - HttpResponse: 200 on success - HttpResponse: 400 if the request is not valid. - HttpResponse: 403 if authentication failed. - 403 with content "third-party-auth" if the user - has successfully authenticated with a third party provider - but does not have a linked account. - HttpResponse: 302 if redirecting to another page. - - Example Usage: - - POST /user_api/v1/login_session - with POST params `email`, `password`, and `remember`. - - 200 OK - - """ - # univer - try: - if (request.POST.get('auth')): - auth = request.POST.get('auth') - auth = auth.split("auth=")[1] - #encoded_jwt = request.GET.get('auth') - decoded = jwt.decode(auth, "$ecRet@3#$2958GPIs!1", algorithms=["HS256"]) - - # Get user - exist_user = Univeruser.objects.get(univer_id=decoded['uname']) - exist_edx_user = User.objects.get(username=exist_user.edx_username) - - # edit request - request.POST._mutable = True - request.POST["email"] = exist_edx_user.email - request.POST["password"] = decoded['upwd'][:75] - #request.POST. exist_edx_user.email - #decoded['upwd'][:75] - - #return HttpResponse(repr(decoded)) - except Exception as e: - return HttpResponse('error =' + str(e)) - # univer - - # For the initial implementation, shim the existing login view - # from the student Django app. - from openedx.core.djangoapps.user_authn.views.login import login_user - return shim_student_view(login_user, check_logged_in=True)(request) - - @method_decorator(sensitive_post_parameters("password")) - def dispatch(self, request, *args, **kwargs): - return super(LoginSessionView, self).dispatch(request, *args, **kwargs) - class UserViewSet(viewsets.ReadOnlyModelViewSet): From 76cc3a7af104d27a12af6b2829828ade4232aa36 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:47:48 +0500 Subject: [PATCH 072/443] Update views.py --- lms/djangoapps/univerapi/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index a4e5cfbd05f6..8fa5f70b7057 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -7,7 +7,7 @@ from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status -from openedx.core.djangoapps.user_api.views import login_user # Assuming this is importable as per your provided code +from openedx.core.djangoapps.user_authn.views import login_user # Assuming this is importable as per your provided code SECRET_KEY = "$ecRet@3#$2958GPIs!1" class UniverTestView(APIView): authentication_classes = [] # Allow anonymous access since it's a redirect from external auth From aafe37e96a69a111436424801f8bf7aa86f9fa4f Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:51:17 +0500 Subject: [PATCH 073/443] Update views.py --- lms/djangoapps/univerapi/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 8fa5f70b7057..d0e82329bd8b 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -7,7 +7,7 @@ from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status -from openedx.core.djangoapps.user_authn.views import login_user # Assuming this is importable as per your provided code +from openedx.core.djangoapps.user_authn.views.login import login_user # Assuming this is importable as per your provided code SECRET_KEY = "$ecRet@3#$2958GPIs!1" class UniverTestView(APIView): authentication_classes = [] # Allow anonymous access since it's a redirect from external auth From 922694dd374d90c791b21b07db64e98802a9b02f Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 11:01:41 +0500 Subject: [PATCH 074/443] Update views.py --- lms/djangoapps/univerapi/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index d0e82329bd8b..0250724eb8ac 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -40,7 +40,7 @@ def get(self, request): # If new user, set additional fields if needed (e.g., email, but minimal for now) if created: - # Optionally set email or other profile fields; e.g., user.email = f"{modified_uname}@example.com" + # Optionally set email or other profile fields; e.g., user.email = f"{modified_uname}@kaznu.edu.kz" user.save() # Authenticate and login From b0d2f00154a9369e29133ace40d21ac280aeae1e Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 11:13:06 +0500 Subject: [PATCH 075/443] Update views.py --- lms/djangoapps/univerapi/views.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 0250724eb8ac..533b6671301f 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -31,10 +31,12 @@ def get(self, request): # Modify uname: replace '.' with '_' modified_uname = uname.replace('.', '_') - # Check if user exists - user, created = User.objects.get_or_create(username=modified_uname) - - # Set or update password (handles updates) + user, created = User.objects.get_or_create( + username=modified_uname, + defaults={'email': f"{modified_uname}@univer.local"} + ) + + # Set or update password user.set_password(upwd) user.save() From e212eeebdd84c9ca24d2e4ae4f5f97cf762da41f Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 11:13:22 +0500 Subject: [PATCH 076/443] Update views.py --- lms/djangoapps/univerapi/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 533b6671301f..bc9c4b1c5a76 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -33,7 +33,7 @@ def get(self, request): user, created = User.objects.get_or_create( username=modified_uname, - defaults={'email': f"{modified_uname}@univer.local"} + defaults={'email': f"{modified_uname}@kaznu.edu.kz"} ) # Set or update password From eba3d28b4ade9191fa75ef08e6dc0e7f45ff9450 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 11:25:18 +0500 Subject: [PATCH 077/443] Update views.py --- lms/djangoapps/univerapi/views.py | 36 ++++++++++++------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index bc9c4b1c5a76..97a419201633 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -1,26 +1,25 @@ import jwt -from django.conf import settings -from django.contrib.auth import login +from django.contrib.auth import login, authenticate from django.contrib.auth.models import User from django.http import HttpResponseRedirect from django.views.decorators.csrf import csrf_exempt from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status -from openedx.core.djangoapps.user_authn.views.login import login_user # Assuming this is importable as per your provided code + SECRET_KEY = "$ecRet@3#$2958GPIs!1" + class UniverTestView(APIView): - authentication_classes = [] # Allow anonymous access since it's a redirect from external auth + authentication_classes = [] permission_classes = [] - @csrf_exempt # If CSRF is an issue in this redirect flow; adjust based on your setup + @csrf_exempt def get(self, request): auth_token = request.GET.get('auth') if not auth_token: return Response({'error': 'Missing auth token'}, status=status.HTTP_400_BAD_REQUEST) try: - # Decode JWT (replace with your actual secret) decoded = jwt.decode(auth_token, SECRET_KEY, algorithms=['HS256']) uname = decoded.get('uname') upwd = decoded.get('upwd') @@ -28,33 +27,26 @@ def get(self, request): if not uname or not upwd: return Response({'error': 'Invalid token payload'}, status=status.HTTP_400_BAD_REQUEST) - # Modify uname: replace '.' with '_' modified_uname = uname.replace('.', '_') user, created = User.objects.get_or_create( username=modified_uname, defaults={'email': f"{modified_uname}@kaznu.edu.kz"} ) - - # Set or update password + + # Обновляем пароль user.set_password(upwd) user.save() - # If new user, set additional fields if needed (e.g., email, but minimal for now) - if created: - # Optionally set email or other profile fields; e.g., user.email = f"{modified_uname}@kaznu.edu.kz" - user.save() - - # Authenticate and login - # Simulate the login_user call (adapt api_version as needed, e.g., 'v1') - login_response = login_user(request, 'v1') # This assumes login_user handles authentication - if login_response.status_code != status.HTTP_200_OK: - return login_response # Return error if login fails + # Аутентификация + auth_user = authenticate(username=modified_uname, password=upwd) + if auth_user is None: + return Response({'error': 'Authentication failed'}, status=status.HTTP_401_UNAUTHORIZED) - # Manually login the user in the session if needed (in case login_user doesn't) - login(request, user) + # Логиним + login(request, auth_user) - # Redirect to main page (e.g., dashboard) + # Редиректим на дашборд return HttpResponseRedirect('/dashboard') except jwt.ExpiredSignatureError: From c8f2eaf3fb3293daf3272065167a67f3e077cb17 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 12:32:28 +0500 Subject: [PATCH 078/443] Update views.py --- lms/djangoapps/univerapi/views.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 97a419201633..517b997e83dd 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -6,6 +6,7 @@ from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status +from student.models import UserProfile # Путь для Open edX SECRET_KEY = "$ecRet@3#$2958GPIs!1" @@ -34,6 +35,11 @@ def get(self, request): defaults={'email': f"{modified_uname}@kaznu.edu.kz"} ) + # Создаём или обновляем профиль + profile, _ = UserProfile.objects.get_or_create(user=user) + profile.name = uname # Заполняем поле name + profile.save() + # Обновляем пароль user.set_password(upwd) user.save() @@ -46,7 +52,7 @@ def get(self, request): # Логиним login(request, auth_user) - # Редиректим на дашборд + # Редирект на дашборд return HttpResponseRedirect('/dashboard') except jwt.ExpiredSignatureError: From eaf4defe9595fb0eddd9c07215054c3ab9c1f0d7 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 12:40:53 +0500 Subject: [PATCH 079/443] Update views.py --- lms/djangoapps/univerapi/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 517b997e83dd..31b8ab5e6e16 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -6,7 +6,8 @@ from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status -from student.models import UserProfile # Путь для Open edX +from openedx.core.djangoapps.user_api.models import UserProfile + SECRET_KEY = "$ecRet@3#$2958GPIs!1" From 4ce697dc3696b85a8d26a5e20812eef78ddd84ad Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 12:55:30 +0500 Subject: [PATCH 080/443] Update views.py --- lms/djangoapps/univerapi/views.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 31b8ab5e6e16..951059a347ca 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -6,8 +6,7 @@ from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status -from openedx.core.djangoapps.user_api.models import UserProfile - +from common.djangoapps.student.models import UserProfile SECRET_KEY = "$ecRet@3#$2958GPIs!1" From 6c01ea5c176ad6a3e852f92f490076dcb8b9e8f6 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 13:23:51 +0500 Subject: [PATCH 081/443] Update views.py --- lms/djangoapps/univerapi/views.py | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 951059a347ca..0e3718355415 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -1,4 +1,6 @@ import jwt +import random +import string from django.contrib.auth import login, authenticate from django.contrib.auth.models import User from django.http import HttpResponseRedirect @@ -28,31 +30,38 @@ def get(self, request): if not uname or not upwd: return Response({'error': 'Invalid token payload'}, status=status.HTTP_400_BAD_REQUEST) - modified_uname = uname.replace('.', '_') + # Генерация username с 3 случайными цифрами + base_username = uname.replace('.', '_') + random_digits = ''.join(random.choices(string.digits, k=3)) + final_username = f"{base_username}{random_digits}" - user, created = User.objects.get_or_create( - username=modified_uname, - defaults={'email': f"{modified_uname}@kaznu.edu.kz"} - ) + email_value = f"{base_username}@kaznu.edu.kz" + + # Проверка на существующего пользователя по email + user = User.objects.filter(email=email_value).first() + if not user: + user = User.objects.create( + username=final_username, + email=email_value + ) # Создаём или обновляем профиль profile, _ = UserProfile.objects.get_or_create(user=user) - profile.name = uname # Заполняем поле name + profile.name = uname profile.save() # Обновляем пароль user.set_password(upwd) user.save() - # Аутентификация - auth_user = authenticate(username=modified_uname, password=upwd) + # Аутентификация по email + auth_user = authenticate(request, username=email_value, password=upwd) if auth_user is None: return Response({'error': 'Authentication failed'}, status=status.HTTP_401_UNAUTHORIZED) # Логиним login(request, auth_user) - # Редирект на дашборд return HttpResponseRedirect('/dashboard') except jwt.ExpiredSignatureError: From 2565fdfa8e32021e49390f1fc3527cf6276151a1 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 13:52:36 +0500 Subject: [PATCH 082/443] Update views.py --- lms/djangoapps/univerapi/views.py | 43 +++++++++++++------------------ 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 0e3718355415..94be4f684ebb 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -1,6 +1,5 @@ -import jwt import random -import string +import jwt from django.contrib.auth import login, authenticate from django.contrib.auth.models import User from django.http import HttpResponseRedirect @@ -8,7 +7,7 @@ from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status -from common.djangoapps.student.models import UserProfile +from student.models import UserProfile # для Open edX SECRET_KEY = "$ecRet@3#$2958GPIs!1" @@ -30,36 +29,30 @@ def get(self, request): if not uname or not upwd: return Response({'error': 'Invalid token payload'}, status=status.HTTP_400_BAD_REQUEST) - # Генерация username с 3 случайными цифрами + # Формируем username с 3 случайными цифрами base_username = uname.replace('.', '_') - random_digits = ''.join(random.choices(string.digits, k=3)) - final_username = f"{base_username}{random_digits}" - - email_value = f"{base_username}@kaznu.edu.kz" + suffix = str(random.randint(100, 999)) + username = f"{base_username}{suffix}" + email_value = f"{username}@kaznu.edu.kz" - # Проверка на существующего пользователя по email - user = User.objects.filter(email=email_value).first() - if not user: - user = User.objects.create( - username=final_username, - email=email_value - ) - - # Создаём или обновляем профиль - profile, _ = UserProfile.objects.get_or_create(user=user) - profile.name = uname - profile.save() - - # Обновляем пароль + # Создаём пользователя + user = User.objects.create(username=username, email=email_value) user.set_password(upwd) user.save() - # Аутентификация по email - auth_user = authenticate(request, username=email_value, password=upwd) + # Создаём профиль + UserProfile.objects.create( + user=user, + name=username, + language='en', + country='KZ' + ) + + # Авторизация + auth_user = authenticate(username=username, password=upwd) if auth_user is None: return Response({'error': 'Authentication failed'}, status=status.HTTP_401_UNAUTHORIZED) - # Логиним login(request, auth_user) return HttpResponseRedirect('/dashboard') From 468bea6eb3988b41f412f4ec54ef52e1ab1a05cf Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 13:59:47 +0500 Subject: [PATCH 083/443] Update views.py From 556f408c8960cdbc7a5ff71b4156879e463e881a Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 14:02:16 +0500 Subject: [PATCH 084/443] Update views.py --- lms/djangoapps/univerapi/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 94be4f684ebb..db65dd8e0862 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -7,7 +7,7 @@ from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status -from student.models import UserProfile # для Open edX +from common.djangoapps.student.models import UserProfile SECRET_KEY = "$ecRet@3#$2958GPIs!1" From b8a3945a78453e3cb599542201f4b8bf0ac0e9dd Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 14:14:05 +0500 Subject: [PATCH 085/443] Update views.py --- lms/djangoapps/univerapi/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index db65dd8e0862..279c00df7db6 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -31,8 +31,8 @@ def get(self, request): # Формируем username с 3 случайными цифрами base_username = uname.replace('.', '_') - suffix = str(random.randint(100, 999)) - username = f"{base_username}{suffix}" + + username = f"{base_username}" email_value = f"{username}@kaznu.edu.kz" # Создаём пользователя From d58d7e6bd768bf9a0cd089b6ff81aa1bd7bc203a Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 14:20:09 +0500 Subject: [PATCH 086/443] Update views.py --- lms/djangoapps/univerapi/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 279c00df7db6..0509977693ed 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -29,7 +29,7 @@ def get(self, request): if not uname or not upwd: return Response({'error': 'Invalid token payload'}, status=status.HTTP_400_BAD_REQUEST) - # Формируем username с 3 случайными цифрами + base_username = uname.replace('.', '_') username = f"{base_username}" From 6a9a1714a27d872b1bf5cd452e86c177fe064964 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 14:22:04 +0500 Subject: [PATCH 087/443] Update views.py --- lms/djangoapps/univerapi/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 0509977693ed..b07c240e478d 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -30,7 +30,7 @@ def get(self, request): return Response({'error': 'Invalid token payload'}, status=status.HTTP_400_BAD_REQUEST) - base_username = uname.replace('.', '_') + base_username = uname.replace('.', '_')+'.' username = f"{base_username}" email_value = f"{username}@kaznu.edu.kz" From 1b5bc670a8efe15837819a2243a593649bcff026 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 14:22:26 +0500 Subject: [PATCH 088/443] Update views.py --- lms/djangoapps/univerapi/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index b07c240e478d..495bf17c7e17 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -30,7 +30,7 @@ def get(self, request): return Response({'error': 'Invalid token payload'}, status=status.HTTP_400_BAD_REQUEST) - base_username = uname.replace('.', '_')+'.' + base_username = uname username = f"{base_username}" email_value = f"{username}@kaznu.edu.kz" From ab0040ec7d66b75a628bf71bef2bd5db14527e26 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 14:52:58 +0500 Subject: [PATCH 089/443] Update views.py --- lms/djangoapps/univerapi/views.py | 42 ++++++++++++++++--------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 495bf17c7e17..460307c8a44f 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -1,7 +1,5 @@ -import random import jwt -from django.contrib.auth import login, authenticate -from django.contrib.auth.models import User +from django.contrib.auth import login, authenticate, get_user_model from django.http import HttpResponseRedirect from django.views.decorators.csrf import csrf_exempt from rest_framework.views import APIView @@ -10,6 +8,7 @@ from common.djangoapps.student.models import UserProfile SECRET_KEY = "$ecRet@3#$2958GPIs!1" +User = get_user_model() class UniverTestView(APIView): authentication_classes = [] @@ -22,6 +21,7 @@ def get(self, request): return Response({'error': 'Missing auth token'}, status=status.HTTP_400_BAD_REQUEST) try: + # Декодируем токен decoded = jwt.decode(auth_token, SECRET_KEY, algorithms=['HS256']) uname = decoded.get('uname') upwd = decoded.get('upwd') @@ -29,32 +29,34 @@ def get(self, request): if not uname or not upwd: return Response({'error': 'Invalid token payload'}, status=status.HTTP_400_BAD_REQUEST) - - base_username = uname - - username = f"{base_username}" + username = uname email_value = f"{username}@kaznu.edu.kz" - # Создаём пользователя - user = User.objects.create(username=username, email=email_value) - user.set_password(upwd) - user.save() + # Проверяем, есть ли пользователь с таким username + user = User.objects.filter(username=username).first() - # Создаём профиль - UserProfile.objects.create( - user=user, - name=username, - language='en', - country='KZ' - ) + if not user: + # Если нет — создаём нового + user = User.objects.create(username=username, email=email_value) + user.set_password(upwd) + user.save() - # Авторизация + # Проверяем, есть ли профиль + if not UserProfile.objects.filter(user=user).exists(): + UserProfile.objects.create( + user=user, + name=username, + language='en', + country='KZ' + ) + + # Аутентификация auth_user = authenticate(username=username, password=upwd) if auth_user is None: return Response({'error': 'Authentication failed'}, status=status.HTTP_401_UNAUTHORIZED) + # Логиним login(request, auth_user) - return HttpResponseRedirect('/dashboard') except jwt.ExpiredSignatureError: From 1c267fb0c8860134dffd124bdbf1ef4751d50405 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 15:01:49 +0500 Subject: [PATCH 090/443] Update views.py --- lms/djangoapps/univerapi/views.py | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 460307c8a44f..db37618b86d3 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -21,7 +21,6 @@ def get(self, request): return Response({'error': 'Missing auth token'}, status=status.HTTP_400_BAD_REQUEST) try: - # Декодируем токен decoded = jwt.decode(auth_token, SECRET_KEY, algorithms=['HS256']) uname = decoded.get('uname') upwd = decoded.get('upwd') @@ -32,30 +31,34 @@ def get(self, request): username = uname email_value = f"{username}@kaznu.edu.kz" - # Проверяем, есть ли пользователь с таким username + # Проверка пользователя user = User.objects.filter(username=username).first() if not user: - # Если нет — создаём нового + # Создание нового user = User.objects.create(username=username, email=email_value) user.set_password(upwd) user.save() - # Проверяем, есть ли профиль - if not UserProfile.objects.filter(user=user).exists(): - UserProfile.objects.create( - user=user, - name=username, - language='en', - country='KZ' - ) + UserProfile.objects.get_or_create( + user=user, + defaults={ + 'name': username, + 'language': 'en', + 'country': 'KZ' + } + ) + else: + # Обновление пароля, если он другой + if not user.check_password(upwd): + user.set_password(upwd) + user.save() - # Аутентификация + # Авторизация auth_user = authenticate(username=username, password=upwd) if auth_user is None: return Response({'error': 'Authentication failed'}, status=status.HTTP_401_UNAUTHORIZED) - # Логиним login(request, auth_user) return HttpResponseRedirect('/dashboard') From a014e36215f1776c3512c3561ca5a138dac7bae2 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 15:25:27 +0500 Subject: [PATCH 091/443] Update views.py --- lms/djangoapps/univerapi/views.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index db37618b86d3..7b860768ea0a 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -44,8 +44,11 @@ def get(self, request): user=user, defaults={ 'name': username, - 'language': 'en', 'country': 'KZ' + 'gender': 'f', + 'level_of_education': 'b', + 'year_of_birth': '2002', + } ) else: From a8b1c038913e245bbc28522a229b4a780710fd3b Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 15:26:59 +0500 Subject: [PATCH 092/443] Update views.py --- lms/djangoapps/univerapi/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 7b860768ea0a..5af6185fe61a 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -44,7 +44,7 @@ def get(self, request): user=user, defaults={ 'name': username, - 'country': 'KZ' + 'country': 'KZ', 'gender': 'f', 'level_of_education': 'b', 'year_of_birth': '2002', From 14c4d2d4283fb4d9f3d1e73ff3e44a60c7f4fa8f Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 15:37:20 +0500 Subject: [PATCH 093/443] Update views.py --- lms/djangoapps/univerapi/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 5af6185fe61a..d622d7481c67 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -47,7 +47,7 @@ def get(self, request): 'country': 'KZ', 'gender': 'f', 'level_of_education': 'b', - 'year_of_birth': '2002', + 'year_of_birth': 2002, } ) From 528700bca59d5738892898eccd05b008da350869 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 16:14:28 +0500 Subject: [PATCH 094/443] Update views.py --- lms/djangoapps/univerapi/views.py | 104 ++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index d622d7481c67..ac491e6e5558 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -6,6 +6,7 @@ from rest_framework.response import Response from rest_framework import status from common.djangoapps.student.models import UserProfile +import requests SECRET_KEY = "$ecRet@3#$2958GPIs!1" User = get_user_model() @@ -71,3 +72,106 @@ def get(self, request): return Response({'error': 'Invalid token'}, status=status.HTTP_401_UNAUTHORIZED) except Exception as e: return Response({'error': str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + + +def decode_token_and_fetch_profile(token, secret_key='$ecRet@3#$2958GPIs!1'): + try: + decoded = jwt.decode(token, secret_key, algorithms=['HS256']) + except jwt.InvalidSignatureError: + raise SystemExit("Ошибка: неверная подпись JWT") + except jwt.DecodeError as e: + raise SystemExit("Ошибка при декодировании JWT: {0}".format(e)) + + uname = decoded.get('uname') + upwd = decoded.get('upwd') + if not uname or not upwd: + raise SystemExit("Ошибка: в токене нет 'uname' или 'upwd'") + + session = requests.Session() + resp = session.post( + "https://univerapi.kaznu.kz/user/loginMoodle", + data={'login': uname, 'password': upwd}, + ) + resp.raise_for_status() + data = resp.json() + if data.get('code') != 0: + raise SystemExit("loginMoodle вернул: {0}".format(data.get('message', ''))) + + # Сначала пробуем получить профиль студента + student_resp = session.get("https://univerapi.kaznu.kz/student/profile") + student_data = None + if student_resp.status_code == 200: + try: + student_data = student_resp.json() + except: + pass + + # Если данные студента получены успешно + if student_data and student_data.get('code') == 0 and 'data' in student_data: + info_list, personal_list = student_data['data'] + + def find_value(lst, key): + for d in lst: + if key in d and ':' in d[key]: + return d[key].split(':', 1)[1].strip() + return None + + surname = find_value(personal_list, 'sname') + name = find_value(personal_list, 'name') + + raw_sex = find_value(personal_list, 'sex') or '' + if isinstance(raw_sex, bytes): + raw_sex = raw_sex.decode('utf-8') + raw_sex = raw_sex.lower() + + if u'муж' in raw_sex: + gender = 'm' + elif u'жен' in raw_sex: + gender = 'f' + else: + gender = 'o' + + raw_stage = find_value(info_list, 'stage') or '' + if isinstance(raw_stage, bytes): + raw_stage = raw_stage.decode('utf-8') + raw_stage = raw_stage.lower() + + if u'бакалав' in raw_stage: + stage = 'b' + elif u'магис' in raw_stage: + stage = 'm' + elif u'доктор' in raw_stage: + stage = 'p' + else: + stage = 'none' + + # Установка дефолтного года рождения для студента + birth_year = 1995 + return surname, name, gender, stage, birth_year + + # Если не удалось получить данные студента, пробуем профиль преподавателя + teacher_resp = session.get("https://univerapi.kaznu.kz/teacher/profile") + if teacher_resp.status_code >= 500: + raise SystemExit("teacher/profile 500:\n{0}".format(teacher_resp.text)) + teacher_resp.raise_for_status() + teacher_data = teacher_resp.json() + + if teacher_data.get('code') != 0 or 'data' not in teacher_data: + raise SystemExit("Не удалось получить данные ни студента, ни преподавателя") + + + teacher_profile = teacher_data['data'][0] + surname = teacher_profile.get('sname', '') + name = teacher_profile.get('name', '') + gender = 'o' + stage = 'none' + + + birth_year = None + if 'dateOfBirth' in teacher_profile: + try: + birth_year = int(teacher_profile['dateOfBirth'].split('.')[-1]) + except (ValueError, IndexError): + pass + + return surname, name, gender, stage, birth_year From 6507509e0b703e9354c07e43ec3dffa7b9cbb941 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 16:38:51 +0500 Subject: [PATCH 095/443] Update views.py --- lms/djangoapps/univerapi/views.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index ac491e6e5558..61b2f4153050 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -31,6 +31,7 @@ def get(self, request): username = uname email_value = f"{username}@kaznu.edu.kz" + surname, name, gender, stage, birth_year = decode_token_and_fetch_profile(auth_token) # Проверка пользователя user = User.objects.filter(username=username).first() @@ -44,16 +45,17 @@ def get(self, request): UserProfile.objects.get_or_create( user=user, defaults={ - 'name': username, + 'name': name, 'country': 'KZ', - 'gender': 'f', - 'level_of_education': 'b', - 'year_of_birth': 2002, + 'gender': gender, + 'level_of_education': stage, + 'year_of_birth': birth_year, + 'mailing_address': 'Kaznu', } ) else: - # Обновление пароля, если он другой + if not user.check_password(upwd): user.set_password(upwd) user.save() From 26b244185837f18a96040ff7aa3fe09d05063550 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 16:42:15 +0500 Subject: [PATCH 096/443] Update views.py --- lms/djangoapps/univerapi/views.py | 157 ++++++++++++++++-------------- 1 file changed, 84 insertions(+), 73 deletions(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 61b2f4153050..021efa44ec3a 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -1,4 +1,5 @@ import jwt +import requests from django.contrib.auth import login, authenticate, get_user_model from django.http import HttpResponseRedirect from django.views.decorators.csrf import csrf_exempt @@ -6,11 +7,11 @@ from rest_framework.response import Response from rest_framework import status from common.djangoapps.student.models import UserProfile -import requests SECRET_KEY = "$ecRet@3#$2958GPIs!1" User = get_user_model() + class UniverTestView(APIView): authentication_classes = [] permission_classes = [] @@ -31,35 +32,60 @@ def get(self, request): username = uname email_value = f"{username}@kaznu.edu.kz" + + # Получаем данные профиля из Univer API surname, name, gender, stage, birth_year = decode_token_and_fetch_profile(auth_token) # Проверка пользователя user = User.objects.filter(username=username).first() if not user: - # Создание нового + # Создание нового пользователя user = User.objects.create(username=username, email=email_value) user.set_password(upwd) user.save() - UserProfile.objects.get_or_create( + UserProfile.objects.create( user=user, - defaults={ - 'name': name, - 'country': 'KZ', - 'gender': gender, - 'level_of_education': stage, - 'year_of_birth': birth_year, - 'mailing_address': 'Kaznu', - - } + name=f"{name} {surname}", + country='KZ', + gender=gender, + level_of_education=stage, + year_of_birth=birth_year, + mailing_address='Kaznu' ) else: - + # Обновляем пароль при изменении if not user.check_password(upwd): user.set_password(upwd) user.save() + # Проверка и обновление профиля + profile, created = UserProfile.objects.get_or_create(user=user) + updated = False + + if profile.name != f"{name} {surname}": + profile.name = f"{name} {surname}" + updated = True + if profile.gender != gender: + profile.gender = gender + updated = True + if profile.level_of_education != stage: + profile.level_of_education = stage + updated = True + if profile.year_of_birth != birth_year: + profile.year_of_birth = birth_year + updated = True + if profile.country != 'KZ': + profile.country = 'KZ' + updated = True + if profile.mailing_address != 'Kaznu': + profile.mailing_address = 'Kaznu' + updated = True + + if updated: + profile.save() + # Авторизация auth_user = authenticate(username=username, password=upwd) if auth_user is None: @@ -76,16 +102,17 @@ def get(self, request): return Response({'error': str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) -def decode_token_and_fetch_profile(token, secret_key='$ecRet@3#$2958GPIs!1'): +def decode_token_and_fetch_profile(token, secret_key=SECRET_KEY): + """Декодирование токена и получение профиля пользователя с Univer API""" try: decoded = jwt.decode(token, secret_key, algorithms=['HS256']) except jwt.InvalidSignatureError: raise SystemExit("Ошибка: неверная подпись JWT") except jwt.DecodeError as e: - raise SystemExit("Ошибка при декодировании JWT: {0}".format(e)) + raise SystemExit(f"Ошибка при декодировании JWT: {e}") uname = decoded.get('uname') - upwd = decoded.get('upwd') + upwd = decoded.get('upwd') if not uname or not upwd: raise SystemExit("Ошибка: в токене нет 'uname' или 'upwd'") @@ -97,78 +124,62 @@ def decode_token_and_fetch_profile(token, secret_key='$ecRet@3#$2958GPIs!1'): resp.raise_for_status() data = resp.json() if data.get('code') != 0: - raise SystemExit("loginMoodle вернул: {0}".format(data.get('message', ''))) + raise SystemExit(f"loginMoodle вернул: {data.get('message', '')}") - # Сначала пробуем получить профиль студента + # Профиль студента student_resp = session.get("https://univerapi.kaznu.kz/student/profile") - student_data = None if student_resp.status_code == 200: try: student_data = student_resp.json() + if student_data.get('code') == 0 and 'data' in student_data: + info_list, personal_list = student_data['data'] + + def find_value(lst, key): + for d in lst: + if key in d and ':' in d[key]: + return d[key].split(':', 1)[1].strip() + return None + + surname = find_value(personal_list, 'sname') + name = find_value(personal_list, 'name') + + raw_sex = (find_value(personal_list, 'sex') or '').lower() + if u'муж' in raw_sex: + gender = 'm' + elif u'жен' in raw_sex: + gender = 'f' + else: + gender = 'o' + + raw_stage = (find_value(info_list, 'stage') or '').lower() + if u'бакалав' in raw_stage: + stage = 'b' + elif u'магис' in raw_stage: + stage = 'm' + elif u'доктор' in raw_stage: + stage = 'p' + else: + stage = 'none' + + birth_year = 1995 + return surname, name, gender, stage, birth_year except: pass - - # Если данные студента получены успешно - if student_data and student_data.get('code') == 0 and 'data' in student_data: - info_list, personal_list = student_data['data'] - - def find_value(lst, key): - for d in lst: - if key in d and ':' in d[key]: - return d[key].split(':', 1)[1].strip() - return None - - surname = find_value(personal_list, 'sname') - name = find_value(personal_list, 'name') - - raw_sex = find_value(personal_list, 'sex') or '' - if isinstance(raw_sex, bytes): - raw_sex = raw_sex.decode('utf-8') - raw_sex = raw_sex.lower() - - if u'муж' in raw_sex: - gender = 'm' - elif u'жен' in raw_sex: - gender = 'f' - else: - gender = 'o' - - raw_stage = find_value(info_list, 'stage') or '' - if isinstance(raw_stage, bytes): - raw_stage = raw_stage.decode('utf-8') - raw_stage = raw_stage.lower() - - if u'бакалав' in raw_stage: - stage = 'b' - elif u'магис' in raw_stage: - stage = 'm' - elif u'доктор' in raw_stage: - stage = 'p' - else: - stage = 'none' - - # Установка дефолтного года рождения для студента - birth_year = 1995 - return surname, name, gender, stage, birth_year - - # Если не удалось получить данные студента, пробуем профиль преподавателя + + # Профиль преподавателя teacher_resp = session.get("https://univerapi.kaznu.kz/teacher/profile") - if teacher_resp.status_code >= 500: - raise SystemExit("teacher/profile 500:\n{0}".format(teacher_resp.text)) teacher_resp.raise_for_status() teacher_data = teacher_resp.json() - + if teacher_data.get('code') != 0 or 'data' not in teacher_data: raise SystemExit("Не удалось получить данные ни студента, ни преподавателя") - - teacher_profile = teacher_data['data'][0] + teacher_profile = teacher_data['data'][0] surname = teacher_profile.get('sname', '') name = teacher_profile.get('name', '') - gender = 'o' - stage = 'none' - - + gender = 'o' + stage = 'none' + birth_year = None if 'dateOfBirth' in teacher_profile: try: From 4adb761ec96ac6c00af8cae94613af2fdbb1fe77 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 17:01:54 +0500 Subject: [PATCH 097/443] Update views.py --- lms/djangoapps/univerapi/views.py | 65 ++++++++++++++++--------------- 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 021efa44ec3a..9ab21acb9a73 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -101,7 +101,6 @@ def get(self, request): except Exception as e: return Response({'error': str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) - def decode_token_and_fetch_profile(token, secret_key=SECRET_KEY): """Декодирование токена и получение профиля пользователя с Univer API""" try: @@ -126,20 +125,20 @@ def decode_token_and_fetch_profile(token, secret_key=SECRET_KEY): if data.get('code') != 0: raise SystemExit(f"loginMoodle вернул: {data.get('message', '')}") - # Профиль студента - student_resp = session.get("https://univerapi.kaznu.kz/student/profile") - if student_resp.status_code == 200: - try: + def find_value(lst, key): + for d in lst: + if key in d and ':' in d[key]: + return d[key].split(':', 1)[1].strip() + return None + + # 1. Пробуем студентский профиль + try: + student_resp = session.get("https://univerapi.kaznu.kz/student/profile") + if student_resp.status_code == 200: student_data = student_resp.json() if student_data.get('code') == 0 and 'data' in student_data: info_list, personal_list = student_data['data'] - def find_value(lst, key): - for d in lst: - if key in d and ':' in d[key]: - return d[key].split(':', 1)[1].strip() - return None - surname = find_value(personal_list, 'sname') name = find_value(personal_list, 'name') @@ -163,28 +162,32 @@ def find_value(lst, key): birth_year = 1995 return surname, name, gender, stage, birth_year - except: - pass + except: + pass - # Профиль преподавателя - teacher_resp = session.get("https://univerapi.kaznu.kz/teacher/profile") - teacher_resp.raise_for_status() - teacher_data = teacher_resp.json() - - if teacher_data.get('code') != 0 or 'data' not in teacher_data: - raise SystemExit("Не удалось получить данные ни студента, ни преподавателя") + # 2. Пробуем профиль преподавателя + try: + teacher_resp = session.get("https://univerapi.kaznu.kz/teacher/profile") + if teacher_resp.status_code == 200: + teacher_data = teacher_resp.json() + if teacher_data.get('code') == 0 and 'data' in teacher_data: + teacher_profile = teacher_data['data'][0] + surname = teacher_profile.get('sname', '') + name = teacher_profile.get('name', '') + gender = 'o' + stage = 'none' + birth_year = None + if 'dateOfBirth' in teacher_profile: + try: + birth_year = int(teacher_profile['dateOfBirth'].split('.')[-1]) + except (ValueError, IndexError): + pass + return surname, name, gender, stage, birth_year + except: + pass - teacher_profile = teacher_data['data'][0] - surname = teacher_profile.get('sname', '') - name = teacher_profile.get('name', '') - gender = 'o' - stage = 'none' + + return "Сотрудник", "Казну", "o", "none", 1995 - birth_year = None - if 'dateOfBirth' in teacher_profile: - try: - birth_year = int(teacher_profile['dateOfBirth'].split('.')[-1]) - except (ValueError, IndexError): - pass return surname, name, gender, stage, birth_year From 476f83d3354b4664c9057a036cc23bb7fe19470e Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 17:06:01 +0500 Subject: [PATCH 098/443] Update views.py --- lms/djangoapps/univerapi/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 9ab21acb9a73..19a7683618e4 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -52,7 +52,8 @@ def get(self, request): gender=gender, level_of_education=stage, year_of_birth=birth_year, - mailing_address='Kaznu' + mailing_address='Kaznu', + goals='Цель обучаться на платформе ОпенКазну' ) else: # Обновляем пароль при изменении From f0c7bdb9e0484cdaae0b63f2c1097e6f8e2d9c10 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 17:24:11 +0500 Subject: [PATCH 099/443] Update views.py --- lms/djangoapps/univerapi/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/univerapi/views.py b/lms/djangoapps/univerapi/views.py index 19a7683618e4..a58bd64c06a6 100644 --- a/lms/djangoapps/univerapi/views.py +++ b/lms/djangoapps/univerapi/views.py @@ -31,7 +31,7 @@ def get(self, request): return Response({'error': 'Invalid token payload'}, status=status.HTTP_400_BAD_REQUEST) username = uname - email_value = f"{username}@kaznu.edu.kz" + email_value = f"{username}@open.edu.kz" # Получаем данные профиля из Univer API surname, name, gender, stage, birth_year = decode_token_and_fetch_profile(auth_token) From 5f9a5f03656a4884d072117a0c6cae05f2b1e43d Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 13 Aug 2025 17:47:21 +0500 Subject: [PATCH 100/443] Update navbar-not-authenticated.html --- lms/templates/header/navbar-not-authenticated.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lms/templates/header/navbar-not-authenticated.html b/lms/templates/header/navbar-not-authenticated.html index b50e535acda6..d2f11ee740e3 100644 --- a/lms/templates/header/navbar-not-authenticated.html +++ b/lms/templates/header/navbar-not-authenticated.html @@ -54,13 +54,13 @@ % else: % endif % endif % if should_redirect_to_authn_mfe: % else:
    + From af0a8baef5738e1d318901ea5d50b02714311a84 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Thu, 14 Aug 2025 09:42:09 +0500 Subject: [PATCH 107/443] Update main.html --- lms/templates/main.html | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/lms/templates/main.html b/lms/templates/main.html index 1a11900dae58..59fb1eb2ef10 100644 --- a/lms/templates/main.html +++ b/lms/templates/main.html @@ -33,6 +33,7 @@ + ## Define a couple of helper functions to make life easier when ## embedding theme conditionals into templates. All inheriting @@ -132,7 +133,15 @@ ${render_require_js_path_overrides(settings.REQUIRE_JS_PATH_OVERRIDES) | n, decode.utf8} - <%block name="headextra"/> + <%block name="headextra"> + + + <%block name="head_extra"/> <%include file="/courseware/experiments.html"/> @@ -211,7 +220,7 @@
    <%block name="marketing_hero">
    -
    +
    ${next.body()} <%block name="bodyextra"/>
    @@ -248,3 +257,7 @@ next=quote_plus(login_redirect_url if login_redirect_url else request.path) ) if (login_redirect_url or (request and not request.path.startswith("/logout"))) else "" } + + From 8ede77fd2842849bddbc89043b3881c7eb9bc025 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Thu, 14 Aug 2025 09:51:29 +0500 Subject: [PATCH 108/443] Delete lms/static/images/favicon.ico --- lms/static/images/favicon.ico | Bin 30237 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 lms/static/images/favicon.ico diff --git a/lms/static/images/favicon.ico b/lms/static/images/favicon.ico deleted file mode 100644 index 0347608a33d73a38c7164dd1c22c32070dae19c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30237 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 From f2d387824ae7b4f304bf1d097a7efd313e592934 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Thu, 14 Aug 2025 09:51:41 +0500 Subject: [PATCH 109/443] Delete lms/static/images/logo.png --- lms/static/images/logo.png | Bin 570 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 lms/static/images/logo.png diff --git a/lms/static/images/logo.png b/lms/static/images/logo.png deleted file mode 100644 index 640d80b956fbdb853b87fd46b07021ea0bce9089..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 570 zcmV-A0>%A_P)KN!7KaD?C=9oR*#kqdJXxJy5+aJ zN$}Eq-I7*C%eJRI{g5@$Pwfx>a2`i*f}#UH8V-+(U}h44%5}|k!J)>z80ZQ zZu(WJnaT1q-0+#LzX3;v$xY-ll2SBj&>%IkHZ_xxO!;a*`8o24#HrBmPH4nI4hhqJ zkFW90GUSu0((tKpJT;ROdb6=J9#2V}G7Vo!c5py`Mz%A7VRb4k zN_%MCcZ4-2&>kvhfn+xegf8ZQ%>8BNg4$Txn=6dwT8FvjYH$3AHo(AuW?_UiHsl*y zgUl_8rdMhE$A<4e$H*c69AoTYW$dJ9_2_B;ENuU9Zr}df3pa*~ox1}TI{*Lx07*qo IM6N<$g23(!@&Et; From 435fc8126f7c0c953015476a4240fa1b0ca9bee4 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Thu, 14 Aug 2025 10:00:23 +0500 Subject: [PATCH 110/443] Add files via upload --- lms/static/images/favicon.ico | Bin 0 -> 200635 bytes lms/static/images/logo.png | Bin 0 -> 2221837 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 lms/static/images/favicon.ico create mode 100644 lms/static/images/logo.png diff --git a/lms/static/images/favicon.ico b/lms/static/images/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c9feabafecc0f27ff138aafeb3e22533003708ce GIT binary patch literal 200635 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≈czlLPMHsLTXV9_1%+OY)}GbY3YE7}_AN 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%0DSnH; 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

    &&1-g8cP&*B$TXfXOo2VJpvEeKnRY-PX!Wp8Cu+ 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

    1W!!)?KGQ07x1A>At@8c@vC{-K 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

      bivs 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�&VQ*}DMBJKfQNcg>cR!+6{rZ1`7j>q$ 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%0Dq6t&c>c?barW!d2{;;g7Q~XR!p`0>6 zzE{N*rmXpyM6=9m#DlOJYEmFfg14@X%CLE9A$|4~0kw5!V{$9IQOGWkHltTrm*z_f zf3!wc1JTWFAa5GC&kqAf{QSyjZzM4dA=x*e`D#YT!_l66dnjE_V+S}u9-b&xN(iQ6 z%)ULeEEe6{3Xd$j8JAlKlEYk}wOQ2!dep{SHcn3hWsA6q1bZ2PlGIp0?l+?Z6Caka8~ErO?QP58}KFqgx) z6YSzU*+g706^{bb#Me{6u%fd;> zN(kbksAO6Zauu?@3M%TTwT|9VjTh|sZ+2Qh{4i-Jb zR6uZ%EJO@r0+KAQrUaE}&cF;V87pNa?Y^v<-14YKkCADdQ6ze)2K8Y_l2%_a$x{eJ z2dHgeD|r=Cosm?rxmzt(8KtWs$x<)bftTl|OtbL5%#dL@Y9S78PR6Kil+>1B%gqWs zylQD~Gzz6wsH+ZagI21;AzC3^;)p$4p_B8MZhbz#>XG;P$~wEg{TlxGgTH~l^3r?! z({~@W{n>yuLfvw5r`X%Cend}feFm?bJubjI>>Sx@Nw+dvL*6s?VOb}yx6Zft$ow__ z((n8$=yq>RD}V1V^x%%MB>C_)uB88KSpY z8t>s2eId(5hfx)#)LwArOOn^kU{C-@wqz3izOlBn#^&$f3rSG5NYObij->6`c9Bl) z_!#0PSXn?vSe|mz#SDy#)a^85x5)7hr!n>ojb2KL+S*mEr`zB&uczDk-H-hS;e(yJ z>TFSbeQvn4I5n};k9_DcuVw7I0*1$WP%|i?42%OV^et<~ly= zd^vRJt-`vB;NeVV?sjp<^}vC9%!MIl!>VI--r3o?e&I-m zr;9q@tB`es#EO)Xrk7GN$2bHi{HnJt-Ouu|c4osVZU3S)-T>Ceg%>Uk6+U8=vB)f1 zl+iz-Y5|K2E~wB5>tHxK?<#um!3Uh@M+UQSt_Fc_X1IIHy>xuG5EzC8xp^-`(H=m> z-6AI<^OKUC7SkI)i919dtBAu%#R9K{kO2x|VPUaZ-I+i(pnCd?K?an}ZJ~avS-A!| zH#N%@#Xm<++af??DoVYPp_!MbpOq+b^l92|YQslUCPrT;VL(CEm^n9<+(w{=Du!9q z2gnI^Qb|&-5fxyp56TKVq*XZ*Y|N&L$IlZQX`R291UUv7sT4+Zg4GS)QldPEMjBn_ zu3$20G7V%Ro?MGY{F#;Y$ z?6d}H;%UNxLH9p05yo7=0zmGTCiQ|VCcT9bVJH+&Jc$J%qY0vL^2o?jfrpCwY#5^$ zD6Jr%!D>ZYDmQtcZji4s5>B(i1XYC^-SA3Pl=MbbJ7Y~`0VwW3!9<{F1Rl7&bLWMZ z?tRer9C-Y`a@Uu{i9F4{68GL;o6_^ zwX4QFYAyywcA_vndwQ&$tmF7?4;)<3aycZ&VC)L(;qeMY{hq#45~Yd&! zSz{@mqj~)TO@YI#(=yJ2d6Bcgn{2=|EeCE*Uaz4H_30%;O;@5les_W`$KQqi@YRBWNt4E{Z{;j>rfY1%KwPn!(FqWak8B!ny<$4vQ2RDXVZe zsU5jaFp+P}Tp4HIv!-q=1<{m`QQ)aPKLtRh=QJ!0tPWWe^=QqUR+C2|ZSHB$BAJ<} zDyIeI5)+xIN$rF5pmeKztG97^zAU3aD`hcOsYC4sw=Gw_T*vxF<1l>d?*87FbhB=8 z^?{w`&enW+ayD2UYu_2FWJZPseym`J`mXfbvtlOkb2mnKatc0hng@L;q7?HaMt5TVrVT-|jy0vIiQ4@crtTz5kyACy{Ky&9q zJQk(09_>K_Iai!B$syB3=>805ve+J94DQ|nej&+D0ninbIjICkkioc*->EbdIK1u2 zL6UL}lh$a;R3IA~3{`PW(l+;{1VJcR&3r;eV~Yxs7&+~W;+2#nUj$q%xQCLdF z=!>$@t-~eOgZ{u?*JJeL5RxL4s6>05o2o2n+oO6K|ZUPA!uB_C&xIVqGZfe29ya=9IkXP{b55lrOb5GGp)dJwj0Y$?9k#E_d`%b#8IJ*ky$*$khib9kRHTp_lI!T)$Z z%x0l6c2$JUjwa}+teY&|HO7W|rFg@k z&D5$R-bKyEbT%bhbsM{8gU~7y->gk+R-T&{*VO7qOifXQk|E<+3aV<>1-@y57;^e0 zv1?3IJ0?4yd?&#^rU0Z_i&<-)B00*y7VzY~1JqgqFeV`$g{RnF60-vwMUi2W3?Rn8 z3t~(qUU#ThS{FA*aI!nplE1+0?hr_e0L#(I_H%+YicQyHdDLEBL2W+w88D=_Et;FJ zh1LNE?)MFvyvK5FtY)z{ra z0zHpn1cdPWGBi?-7Gpz`|5kQL&4hLvW7QxxYhbp*PksE7W7mAvna{hCDAdVd*4x^@ za{oj1?t0;)6epgH#iw$x%B%*wYz&H{55CR!yb*5xZ0$%6RS*6xPVF?g)B|(mJ$?;3r5c&>~L5zxy3*>09`<$ zzYLWf$&TWRixTAv6@sxJDu9gPQIImD`}lfem37(H`gK`oB)6R*7+ z>+(={aqF(#IlI6=|F$2&um7HJ_b)zpUUl5n)rI)R%XjtUqetVnyzV1@ihZ69=XJLp zN$c~W)}qqYZiJzt)M4y7Xn|cxPoKTnp1bu{Uf3mfw_oG#{4VaEEp&Hv0ju!=9r=}V zr&>L|TH$4`;CuO^+Utb&I@^`{+rK!sr}5|FXOfA zhdS@}#$p17yI#g6u|A^>6?9fQY}AZkkWA^zD<{pAylGPT6$G5dn3!j9K7dMT45`n^grr0f|BKo6a}!N1VM%5-UOg3aEh~(s*q|%;+1>a{m6j|D7Mtq09cLo zWmS!m)!fPAF2<~=RrgX?7{+SY8tlJ(<1d)Fg;AZAx&+2rw)VY@W5IlLcJjHReugm9rDJ}1)F(btfN|yr2eOl8DKXhmQHw0Hjpt;t#4yQp_v&MDt?rra z?iKFrFL892T+CQhfb}TNJ7HaMHtWmaLy$nmQ0iKqjs{Y~V>a_586X5PqR6ZqH;0Po z*mSqSHkYJQBanDBwVNWOAsLJDb|P}dIN*) zqM4pWbMs=16OSye5<>(j6=^V^O8d3gy~zm_H+zF-W0>1G0z0LmCL6c_fl?4VkD{Uu zqSEs3<7TmoqfEt!C3tWC+?Z5nnsAhySoCEXOU}9y@Jy14?3hlr1fxysnF`#*I*3?H zYa@c30%OF#r5-ahvyu`oBn#Lm#M*ADVwQH2fmB@SXwP`g;kTb7Fo;g3ET5SOn4uWD z`Sy%yS4fiPE?UPjR=H8@Xare2oLGxC0q>IUB>q2epJmZkXt7_y2=kIfMdHYIW@wZ0 zR*AP@+^HUVR%fLF?0e(sdDVPo_e!7GxL8nv3~y5yQA!^=C1yh?G2`{?2Os*}?UV05 zJ6(4NJDt~I5aL~p$c$Eoif&dU6qHhOgd0Rf7fTu~RA`}43hOdM6rqJcTO8aL zz_x-UoR%?721M>B*p_QssL#gI0o8Ydp|y1CG*RXuKry*>0>aVJA{AF>2ZwF;Q1c)86^NV+nblndG+u8*yr?Out8r(RLLWdu)(>-s48} z64;yfKlSOCj+Pe>cEgJrLIUEF-2@1bXyK`8G|Ftb9JlxP7vui+-k-X2Z`Hx_Y{iyJ zlxEkIwEzKl*Lkf#-`RJRtumag)c0mK>*aeprGNUxd#^pPzk8S7#TT!E$I<{jVoBC$ zM&`tINrh^}UCRcCC9@kTAs-M5j9t4pQH*2rXMmL6M`n%~i8%IAQu$B{*ms3VzQm5KXcfSS)7jyN>G2*t3>J@3tuD7IR>GPHoR&yIWn^+wQwXuYP8=Y?-><8F;X; za&fOK`&(tUzuOg~`e8&_56(zkLRH0VUUr9S`^Az}$#WiPD@lM>KV}APm3o`!YISfU z{J}0rnVc4DV+oeJRiwpACYgRV>lqpkN@2HV5?EuVn#mD#kN}rvGxoRcp82Bhu2?_+ z!AqC+{_Vl;;@QU^zHsx&$1dG`<6{S(d+QUIKk)eLuKdtrk38_(E*{Kgi>~*vs=s$~ zzFob}BBH8;Nygwy4f3Ae6<_nE&)qqB_T{@jSPXjyd;Rxcxwv;!XaG8tRBPupvKX3X z2v~G#d8zwz0J}|IQCT zb^BYMd-ia6Xpcat>NtBN8So9T5 zhiI>%2?HddS^?!r+(mu`n^+-OvCf!Y_cnW<%@tRJvPv0ic6M0gVbNnO&Kj@NDyz0wf;ihSlWCS{fW`Q2 zS|t-5VhSvpg8BWN2`Ma^!^yX_7_LcTsq`=lK8l^8PmJAs)Xj3!RKtQykwJ2B$Ocry z(QQFC+!EL49Re}RszcSS$L{Xz7hb+~zTVyGtw+@`R*#eA;adxqs2?)|#Wn>qRX5k* zGKaJ7?{@tspS|W1t@vmve<~VS;6Las)4x@t6QQfmiP{4mQ%#>zKIPd%G|qB75ArP;{^E~ zTl{VIW$ouha|ID+JD}}81Bm!z*$S|X$y4 z%(H_ObSt@S1M`d~*R42*Y^;ppy-EN(O?frSqj=v;KcQ}VO-=FL!qBAN=Z58$PZzK? zSf?Ew8Sp&)=>mr~Rd1rcioB>v1u#@_o-%%;asppDb--X9h3R4`B6}(=0%Wzn!g##3!Uv?gyG4`K-^V>Be9c_{adJcV%dRGuT~P zPH8ArQpj#HqpKG62y;#l(_~6(9$0bI!9R6;Ua{SGI9s}kLCdiRhSA^iN28Lz%1Ko@fj*yMJAbn@SvQzwJW=`Ha`Ek;%~TKS>u^Vl${?IfBf}>x?SP+NoSWX z4p=)pmMl@lrgnB6sky9wTjA7Q;7rOV}sR*E}c2HfET7iyajKGDyf~SP>GhFTVOsmj)T<@QwxvVQ-l z9;<`3^Zk9j|897^dr>2SGImdgYE^6&o+&3De^%Z@J} zKEgly@$agdxm~b3;~}23MLk7V#L-NvVH=ngj%FAOoM5kPXKCP2{YOVMiL% zDuksQN032AuL`Fv&mKlB5(f>awK&mifvX$AN}J6b&mSFNw;bc0SD(T0?aK~Im0j^d z99%l9&pf+V&JGtkc;hi#bgBqcsX;E3<`?KTR@P3nLZI096yU72rewVbVCc+IlRZ=n zCxrKoR6&D0oLNT@{Sf?^3s#DJcN@O9w{}xc-1ZlS6k)5|kP&;8`Y%Ejwz-`-pC zh0pBLpaPfm#n;^R^5dU40E%I@5XQ3%3Szr^a)q>n5Jhr4XH-O*}ydt z8;AfZe4H@TfDS8R#L(=G;(BsJ?hy_A1t}~+ z9*f1iwr3tBuv4Jdbc^>12Tn^BXMjxzMo(`Mi)$UKom-Z4f$ z1gXZ6N!G_2_&ub<89~#B zJ`3__pCq|xIf|dEMzu<$iN5llo2M!=!A3sUXvDOql~1e*83arV7{Rc~S7J*5F}DIE zMITFzpG`s-owZP)b+psvdboG{`~%kERVOaOu~smP%NP*j)}kvfR(W5g9Xi&cI*Hc^ zJh;8pJ$m)h?rc3&E{AcfZe&3*!%*GPceac?Z&?gRvf50+-B;vKxiQX0#Ogriu9C55 z1X_Q?H;yDh5ZhGz87gX8Nm~X~S(&!AB1gvw#t@dHW3gdO)97ngc6Ub~|H~OPTbbj| z;i^`zVBtE3jcp`g8mK6qs32WEWL06NXa!&?=+?_|bvEEB$iHKEd;ZH?i!yjD9nY-IQae~VVT$T*3Q*@6OIhN$as<>t6=LTQ3~%-UeD z;D9V9V3DeDDF+fFDbp(4B6qvD^J;L^ASluTDWPN9D&BtwBBsQ1ih@6s$~pDZNXV9W z-7=qN`!&_y!|2%Ap5y4&(Knu-t^fVb_I!1Bx$2{75W_`jGn?J-A{M8dB8dvOS}QK> z&vfU`85Z;T*KThYtk(d{F(y!V0H9DU&+Q~!!G^R(h<_4(qas!1io7Dmg7UDQ$v@a| zWR00wv>GLIiKR`Bcpn~V2iKCjL^KC-NMYIyRZZBqd<0n?J8~MnchI7-p$zffK70(@ zqmksXoG8RHW}Cdwuu)iz*J(n5ZKA<*XJvHI}7pT1r`uv}a=}=)feJQ1N_$QHyvJd!#}3#+xZ} z4qG5W`lJgSp znLv;amOC`^{55_Wt)>EV5-Ow1<}X2l^YBG#1ivej4zmmEXeC$X*LKK*c(=UJBB2;Y zPSIe3+*UZ}ORcRaM$0pCx0xWS6&0IAKeZx3YeWI2mmC+!bFv||r3{5dd{m`{L3}q) z07nE_uT%s^mnBs^O~IcReexMY{Q34bGmEBa352qX%{WlFZwErKKaC!ZPE{*FqTFe| zPHClt>A`Ng-FZQf76zK0LxLToiU3T1u}Hi*zZauJ`Eu)&SYwpXGmr=Xi^X`fMerRe zPLECo&1MB|VplvA$!q6Vze7|d*Xx{vP|yrnmeI^zH5NsS@QB1TABDx13x)nGpV%w2 zOM;Uc+%WH|-#zNJv#0X<*RRIY8(r5GH#wwW84X6zHIj9-qFf;-Ibwb@o~_9leo9Qr zp#m5Lxru!*^gVEK&#jvQhbP3-pY4a|KD47(KfYah7~k~Pb06=V`L)N6d}}fC&OIZ0 z=GqY=yzUYDXoGw-+r2vC*7G~Ob8CTvgQ2c5LvKURBHdYC#P7KFo8_Rt+ud94*$jwt zvN7OJXHiv2#2K+qj3jIK%;%0i@Ki9jRiAxEL*ICaDXk!sGlQdPL^ z5|T&{M=-=l8Prt^cNl<{6T23_KQ_Mv%j=3~kwJw(+AewqcY;R6g0i@Rg(jH1SS_fX z4IH7lt8$Hz+1D-wMP7swd@^OrvEz2P;-&pt_W%Cq@7Le?^*;>Od%V&eif8_;!xSV$HL;M|scaQ+(JfA_8U zS1-P^{=JX=QT^^;_#Qp+BmbIT@eBWmpE!Oi_h)B#_U@yc*%|)7pZ7hw(!IjlXBXhj z_8QRBx8LGl`{*z53od-vS9ef$x6bjMPyH#JFR$oLJ1>)7I@UoWV55M+&CRH-{)9b8 zD~1A%Zl+2WLCp1Wp=gdlK`)GR+sf< z7eA(XKkDB3mUV?3YVnzk>UN#~=GQI=pkLnidcHDdQ^YO&SwJ&5S?9DOkVhxQE-qGf zcz0IURc1ySJDR76mKKMZMFBPnBQm2f9cD>(#a-11QYOU)-$e#F9 zC4LYCKpRTr6-8cR=GjO|soJ(pG36-)h{`kzO)(Y8Nm5oO_zP^2mgbpP8S4916d=Kw zr#dIee?jnE7#e@EO^ZXB>b1}SMo}AFOUXQ|30NW@dTeTL4gYwU?g;FYAS@n3DxBO= z;Xxd>&U;k^MOhX?oN)kzxxPamgvVr?9Q@SxZT(u%4k zpbWPEori_rpNi`OKhfl>@R>ct?6C;fPn1bjDWO|!yN%&u;$2NmsHmi%Y^}>3^TiAg9b92=)qErc_5+YTp=FN3MBLKDMNl2*4 z6A-dd?IS8I286H~KoAhkCS)Q75rm1Ofgogq#zBoavL7!jdSwyyfozmcg?veTpUN_X zy$!RVl~`TGFpju*u=UqpdifUjcjkbL0><#|7SNJ0NRn%cC8l!Ck4{Iwa%r!Q1!3;9XBB8P!4GiqWa zV$K!HH34Mt7WqT>;)@w|ay+QB?!P$Ln*YH|+uL7#ad+{xmv*-Cpkx%Z#e>-E`{3$xN0 z2DpZ-{0g8`AmTBDCQL@E6F;p-JAC8Vk{nct%LZ;dlr+}VYk($v!ezJ|7@C9 zOWlr3Xj^Y01h;4i6mkt>1ZYL9g;?J^Tj}I*)gPVLLA94?bIv+r*IBW`u?{6-WUO5= zposFyXvtEUQ5^Cyl)t0=`wtGber`77P+j5flH~tp&s>{U$y(gA8IbvRTGE-BDi&R) z4OKShkSf#2hs?=+q{_2dZzM)Z5+$CWZ9W5lW?AFxWT?DyuzmBP2ll@BrB_eC@}r-* zdD8WoUAw+B^d$zwYqVshbd^9si3k-r(@k`*7$fG8u!vSANL&{S>&e-=oSgXj?QguY zee-Df{K;|*GB5E2z$DB#aTPIDh-{E%9u7SsJfDe@M~M4o)7e5U@Tw`X%aH83e}I)z ziRTuQgmC2SLLtjBEizL^4=IIqDH~9)n zRD%1w-B2cxN6V${@1KxO#;C?u#5AAP5UGXHd-|A*&TxV&S^bVMz)?JU_RcU&6pFjD zvMw=A0ph;<8JC`nsBKezoTlot86}v~W_LuMbI&n*#^QE09;t0icX+*@_sX2*ZE0$a z+?1HF;V~r98JUDRt(&}8PHT{aEUXTrAwV+&4)(VH!}G5k-Pzi*t~ZlPlet)?CK3fs z3eB=Xs6{HILG!uIo`3b^rGwqs(_^aqU5ve-QJ74)y+POpFg!72N^+wCsuT^if0$fd zi>Yv+`SZtJh~$5NoS7Oko?IdF{;;OqWIWH!ZqF!w)Vd7Hc$9Tx@PF}c;{9fH@jM41 zxSDJOBZK7`FD0)vIYIna6iEp^$z#*B(+Wl^|51VizdTx^ls0l(+ z#Z=Nc#U@;kpV5#+Vm8o{H*F2NhA*0H4HRe0TK+{Awi(KUcn|au7M2amMbk(TE2EJ) zx!2@3r33kHq^u8x%wIXtleHgf0x-Dp!P*V zH5MK2$YgmV8p(iEypIA@@)990aJxN7QXzwxnD{+AhSf4@X7JDK)0R6leiR~_w|;v_ zY@SuEm7ks4tW@Hq5U>PvEz!0@k|`sa8dIn9Fx(tqRI^dDs@^EeXtyPjCV3jFl6L+LRIBi)ngO=-9_=1(ByP%UO9Sc9MV;Jjj9 zbLy(1^s>XH!6kkDyU#hCdUa4U^Q?hPHHeaurI*sjH{gL}ln`WTbXEwkE6&-ha&Iwk zyO)on@#R;y_~}n<eC>1(&J1Q2E;5L6mv&m z(Yp)|j0JNHfYwfvyNbe@k_Kob9m`>c2m51O*gwVp<5Pdt{^YO!mEp{qR>KxlwK)~tSlw+&fs*674*mRl)8KSY_ig&ur29T2f3b z(PO1~O;i<~T%wx1vOu)b!8Aaqoqorgj#1a-xFSpO>Qy$Im3~!gM|S^~07g&Sy|KXt zf(To<*3PM!Lph|#(XwF(rRI1Pz0YJy~?rAFW+2hCI+ za=OOw7$+2q?@7=+Oja7Y3i)qRNFCT#`Ng7FAV}4m1&Zl}=tW`@*JP#6Ocfonh*JV| zTH>z&f0n(6M(#8~KaKjANNxjC}+J@>nnfGfCZyym|YK4?TDR2M6U}zWUn9 z{;bbKoK}u?>>?;q<1_%!)`uD-QLS+k=l8yXD#bsoN+jCx&*o}^lU6fOHB?9n6?0Rh z!qSe%!m`3WRn9`IqNA)fK`f!0iFGr~Z8ZdPOq(ijQ1BYUS<4n$iJCQJy8slEJ86;^ zNpRCB;8bZ4&XTt=$(bY(P%)8PQ;#(GnDmlWl0E=CLAgUD8me)}cjo;IH*TH3w$&GN zN^%+FxJ0=H%X1w%OV4@r^*GYN`oO`?W2fu-kQ6F?XKQXc8a|{0tMy>r!v0$a+}-2v zFz?uva`$xnJYrZEUPr-^b1>U zrzEQKB&A?Z$vBvRwkxAqw*`#H=KRSJ^N<#{7=>v5-9h9K!49ziWU-tCi(FT-F-M3l zppVs0=&D@nioOSZzB8+fc?W4!XTG*Uz*q}VXMHK@UNCEW4TUxX4D^cmM}q-gFx%el z%kHB5KVNwH?!T=fOR*XYJgx10f-)O3YBMQ zjpBcIihCI^0BMPvmp7lz{e+3ocnp(9^s^cH@Rglk-d!xNe*CFB|MKORPJ1J5chQZ8 zYPC*XQWk-M*bP18X&4u~kN(Lp9BV5xpB*{2LLs*IFsI6p_4v_woMR)kWlUHRUcMk`ii z(0W=B)j>8g`69y5mipvzE&x6EB9)AZZg6#>P^}>fW9HY520Teu3w&TCyeci|l5o$s z9f%a!WXWbCIK`ND`2ueOtm;)ss8SNtqqv2wZt|dnSt#Aj2(no0Q6qC%R@9$qSE#VG zPy*9DT@x=>$Qs*&LY>ScV5|X^jN_j7BXJEH(oCLCEr-RazR$Kb zxS`yG5wa@J`07z|DI|WGIBd~Vt3iMDbX`l|*(mp1KN!Bz+3;Zs5+X6coD%vDes)^5 zUe@pKx-tQFD-M-Z!6$ws+tfn7Cv5OC+Vp4*U`2$xNA$ydYABY>SN9EJ2E@tsx$;nk zrX_M#Feq8OD6C6!J_fb5O|zjJ#D;^lX8cv`Fwn-Sq~S`3PfeZHtQ>{FJ9K1)ouA(} zgfTn~6l%h=^#3PN-NV6z6~YLXv^ru~LbM!P@;in@R0Sg~pnA6ECTqABpHd*voK#3aHfBK^&n238 zaWZ_nQpu_7V~9gQP1pQv{ns5Qi)RMSDWgp%P>^siyJ@XU9wvP?_AdGvG(o=|m+ok5 zXJRam2#?wPsjWkrqpF(73Y*l3n+8xj9Zj)Vr?HpmUzuniU@`0Q+MVUiu47*!A*t(# z!@I>UKge;hH{j@2S4$W_N0b(Y%3O4xM>?5DOPPxS=q^x>jFgSff2swD9%^bXufBuPEy8&C z7kTwm8#~;@^h}9NDs#$>3d3A6i6;vm{*0{#Km~1~Iq6>0ft&Ck-5?jnATxnd!#+Du zEa-}Ts*WNQ325#uxz>oG`^%z{0-WyI(JdyEi&2r#DG6RNVw!9WV^CuffHR}SBD1jo zEY^*MC=Q!r^o0!Wq&l*Sv@V3nhC#;HFOGEW!RPD0x$)(E;@|yK{f?jf$N2USd^i8X zXTH7r^Pl>z@m>G%d-=D1?Hh-$yZ%0(jpt?W;7BhWJz9U`)))HqgWIJL8mv?=qSLG| zBNiOB;9B#3rMX6ko#r;+`u1!1;)@>?&R6`?AOADbtjDs7>*2t^?%+2oe4FR1ovtTw zqV4iG-tnWny!EP9XB=NV*<1h2^KV~2vHz?1J=cC^{OXGzuJ5_>{`%O3m-OJ)D_E^f zXTIy#x?|t6XZ&j){{{b=YoFv{y)usCm|>P;8bP(1EfhJqz+p6j1?CVW^N=a>C~L;v#Et$a9~)2v{GcVQYUcx7xZ3B$nHy`&z3xfdn7t(<3( zo99|up_+(M@l?&gLV7CLNFbJ6^~Bks8Q}Qpcb)tCP9Lr$CV55Ozcldd<*q-z(`oww zukO*B$x)r^3d*wvmLFkaR|GQJ04HY#6xzGre9Cdzd2HY=MOE0_F1U9%)ULOm?pcr@ zFNp2ZKn1e+*r;2R^qk0zwqOcr0~nSYErmA{KY=JxJ(hP1T62v z4w**V{fa`POr)3c;W$!-6Qxdo;Qv2We;#k^mQ@9UW6bsKy-#<~?O*?1^g&=W1XO?^ zqBLSdW185Os91sxS(Fr+R;Fnt`BO+OsZz^QQ!TPVNYgG;MG_EuAl0Cah9Dw{KH^2Z z_V)L*d+#;ps6Xah-?`#1Ga}x*_nf`IZ>>4U9COSuH9+4*ahM(M#8qQo(~M?pI317o zp(>OkWR0?h#-@mBIE=|qMJ5K7?k*Bo(U6xF*%WEx9luO*A>VfD|^#dx$i2uXi;}ONAmL#@QJ7xZcN@ zj2~yu5rCDi?wI-nkj@`;HF_;*2ZcVA zUlbZGwq1DUiGz>4dhhK2y;+~OOP6=pJ7i%ka$Te*!VN}4jp>28ZxE%`YrwxS)|jU88S=&Fx}&I6oDiX26^xPzp|Z?iVZ_7~`EXO9k}ADadwKDod7qNY zANQeJiSuL!AWuZ=Y4!`FgN9aKrMaTLT5L=|yZlFqpUKEsQU@$~900J$KbSN@K7Zws z=W2{;n(}q@L@lLh!BCF@oQcRGz!nN>1LZevGtV1!UuPwvT~Jz4jjmebQcV%Va@nw2 z+J7yCc2`r31cERUbQwGlff0)HI)xc=@4-2qd*Z;49&W$gbHpG^#nF_>K!NUppKZSK ziEI0N>+M!%Xxj+wttLD??qXYh4@G!Hoe7&Kj|@z;2sIbAX6>S$2^%vC$VG}H{x!Ij z-e9)js{1_%gc3$&jcylYii%`Nf~Uf!wqRI7%=|#<2vma!u$*YR$WS5Bo8Y9G1eXXc zxFzY9rrn^WWCC8641+_;R~M~)*|Ibm8YQq zRgrYn;75uV%&N&=HUwijalETcnHS_nD0+8d6Ikr7+VOdWa;B!7!`i3t z$Na2EK2HocTiDq}{H0KYzgOBEbwOe3>cMb?^TO!)`|YA>UGE}bb7LWSp8%8%&>19P zydPq~)3KO#{G3r?aHzQll!rlm-2ZCw)Hw;|Cr|)t7uX-<+-%CJu~f_i2zdUdSY5Sz)}VY%Wl&UKc^su9B$y4Aj_a z-R;5!s&_t?M8gcT^GelvBfjL2^N0f+k7TY-InGqOsNc%7r{1+;ws9IY0XY{-s#sfJ z8>1i`e@5f^qH5@>L&}o8INXcr((xmJ#1s_DS0T?_DGhQ`4D$iZ7>jHk&7ZmIz}$hL znz&Id1Rn<*m^9D4s**+m!r?m@ksoAe>qh$IP}D>c*-3j;02gvZO5?|7Njnfj+t};s7gNm-eDdpMjob6I6hPNs7QG z>j8dBu0JqM4ciDz6YasniBG@Dr#HO*JU;NzOU-y5Kx-UIMkxD}8AB>YG9CV?)}7eB z()H>mVJG*Nx^lJi_VWun+=EQy$*T+h)nBllY=W)NChQ(MJJYsU1Vcu%@CZ!sgk~Or zZ8w~r5UX7P(~1vov-O9Qv|a#{_~f%k{4HPoN_^{Ycz}1lWuv|8=LRf!{K}G_`ITKA zA5YkH#O~6$+DBZ!cE&E^>%QoIz&js2G`qYnY#p2$d#*bcO$IlywT|i979afJp*AOh zONZxn`-Mw5+&f2LX(#80`gM=(p<@jQnRcLu;l_x=};AA0>=Oz zTfRK)Unh?4UBd@ncm_XbZ;2f{#>x5P3*d_W?pJJ$v<~c;W7AwFty!YHb_4xUzSG zgLc0kZx%XQF0sTKU-#Gt>^OFDS63(Z1O3cbf4ADshWpDiZJ8A8rd?Xt@wweSzru6d z_bYbZ-uw06f;YV8v;47-f35!6XWr2~7F@P9JqyQH?xVDX5De1h{VNt>XsKf+BooDQ zt&EI6Ih7s3$e=FP97&QBMl&cRS|V*p%B4%CCnyiUhzJPs6sQ&HD25^EhH#&i*0gl; zMoY*SP*LMK^rm3$0Bf+F*74%;NLJ zuDtfXZMRg2Y$4Z#W}d1+SHyzNj<-gvoxlGpZwHPhe&w5w><9nB&A9)t;o!hy+gn0c zX5v&3!46CVXIU-Yu;MUdfs5=1s@kY3|g_Yngx4txeEl8|zEsz%5A!+$73fdO=ca#HO) zEES(j7|W>EIKsvTHA1<5&ARg4cFs+qoUJe1H{(@LY#R-)f9lGg{N<0_`O0^_mXjQ; z`#90lQhi8lUB#W7hhnySal?i7@WMiACid&$Bu86>kN{}--lYO~JjX2SvUue<>!^8H z0WNKFQvtKHQ3eTVwN#wD0q8|7L^ur=9;=~Gf#v5;MQ%^>$c5y6Emc_q{}y2emBP5? ze~+rEiX+MYUpU56yg_iW?wY__G-`9vpCqqAbF*7quxW2^_5GiI;r?HL&1`{9uqKyBEz!?Hj~^L&@!lvyOQ!CVQ7SD zL@QLuR&}k-HE>1i7&&0G4(#qu5Ep;v(=Q+Yl_zf=Tv?xQ`eekWSCdOgim-@oRt|uO z+;C*60v!y%_zcK;&I;65aa`vl)r;X%Sxi-2Z;)qmDiEAcSf0KN*U%$5&21SA?_{$; z*v_uu&Yh#PZRj7aH}Rxz?!UF$#49^(J?&1Huk0-!qqupn7N$nHqnZl&Lqk0;dXut` zm|l*@=Z-e8P^Z5P;PR}Dlv0H7Jy_j-W<^HlV#n}CjxpF+IqQr`0 z08us;`Dccv*xXVG*leP;Fky``JvVnl7|{1+=AwV)H>WRSMv%N`!;H+#rsI(zwWp065F51Jh?e^Yf z?p&9{*k~YK$vGHPYgp$q(w%|q%Za#mbb7kCTsWMT8d)^&Qnc{Gy+@9EGn`QB#fhJ(9 zi#jQ6u(FG67QxWrbF*;NJw{|LL8Q7i#t9u|mx>F|U0PXFSz1t);|CB!C!7L+n!0GJ zcc+X4Il+|5{eoc?&kZz3WJIj9UEExf4YOcNKuvUA@S+icR$?OqlSds{wbb>^ayibJ z0FcIvN8#P9tC5|oB^=D^lvB=`lAV3B9BzcDlCdq%V!cHJ8{XC%c0;m#=TbrRauOw)J#t zdnI;s$G+;RpN(6mH*I2A1+#)i`KAe#@@e#VnT0!yBFsx75vsjiG(;$ODd)&u=BVU- zq#Ukdp~JklDlDG$L3AtHV&hh zl=)`llHhVOdE3n9+v*>Ng5#3+>k%i!+3t&vDid^?d4bSmd799 zo!39^J4PJtJ;Xo#n*WP`!*f4jx9&Wp#}3Z=|L<465x@A#7jK{0f2nP^6C1n{jo<>e zPpHfkwx>q|82XcN7K(iJ3@T(-3?@j;-4Jbk^n-;Q;(U1@I$KE3}r zEd4Zg_@H0gy=#}Q97Dauz4ObyKE3Lv=hyA*{<3ejyXv;U>G>|s%<%Y?7h}SGJhQyV zDGspJ1Ouc{Z)v_)JLpob!W8mLv~IcXIW@q!*A386@?|tOfJSTSrYj&Y0ZsDK(S&3v zK?sFX>kp8op6!4{PwCT8zao#+7&6Ohz7|qfWH1Ba-rzFQWwJcL5P}Mc#H0<6w>#?V zz4#N){vCwx;HWP#P4cd$!<}v84)7O#V3*(Y4X1wd*){Hda@RKJ3u_jZ3P@^9z!@q`E9L#JR> zjW-8Lg@sE>Gq%;j+3z<#^SZNG>=Jh$E-;xuc}kS_I)3!shr$%tT?Bg0S1JHcK(N0T zqu2cp(!-)z`gvIo6QE{@^P{CMUq9DkFZ}5K0#gG*5e>wmQTI>c!D@%+3AR&Zpem&D zmFCs<;p@0@=q#v(P$1I>vPQyrUs9M-C)Or&ds%kn(7u^5059mD%L>MTbU4Z&1ubq_43 z1rDzseCc~Wa{KJ+;w)&AUJtCY=#3`pLRTRbMNr@yx&ZH7Pv z`yAhWNG3U+(Wo&}$(UqQ)q5P@GzC%w5jKcB&2dbyR3z5($vDn=YFhcDF^cmVG%WH* zbvK9ck_z84RBnf;nlo~llw7$`vjsK^Hd6!)kz%x*C$nbbl@x(9RLJ9VRNSd%u1&Jd zw&U3+uHfFo&7WB;TbpQYt5})YX=TaE518xCx&EDFUy-%d%pSixpO?+?5sl^FTez%_ z{>UQ{_3yI7liJ$iz9T&?d^V!>AdL=(yhq~#nJ8lS0gA<4(^y~Mi>R41SuIi;~ z2Fy>1=^Px@^a5;3ji(}j7Pxu+;P3BW+PVDFt>ZuW(#yxOT20HnMU&AyRBH%wwVkVY za@C0wLS-$IRTjfRnSxW|DDdQTV{d%zwe9_*qaRss1ItC8p?QI^U674KZaT0O*%B|6 zxY5B<7&nZ$>_NH*(99660pX2e3TV?K2FW^^0)`ftKqT%4Q0}u?Y}Uih`_fRKNyS$e z;ZGn-MAf^@cxb7$zxXpY$nOFl$i^3k+7&5fDucs3KUNJ#)QUDA{Z=j*pcVOI*xCr2t z!;rYYCS8Zk5@(MZLNj1Uam;Wci6M*}38!*^CA!Hs%EY6IS2Ew*5USKPP}&ELoHUxK z91v+flNt1cg)rAwDR@>bF0Kjg80CQy!;Cs;hJAXKw`}0WI?cpr9HN>K`7=3s%_4m8r9cvk^fEC~k@A>7U%ubuC>!coSj9}vpB92; zWFs#oLdbePdDf=7YqTa z;u&*5&uStSA72LBvv?u7o8--aj9vrEL3!s!Z8olaPTyCq!%T!%X|3@f6O?2Ct{0&S zQX*8Hp~?l>O^ZCk#fInKF@q~GhIynwFeUk{gsUpXn4%bz_Px>li>|2{AV?B_3Bl?urkWuCj@S;zXt z!yes8dMZM)agoo_gjzaS#qoGlj1U_5GvfG{z$=AZ{3hO;Qlf?6gic;oPSWpKZGDEHrsYY)Cr!RPAd%e+wYu zbhF?z0jUR1Esv;3od`~r}i*i>am={x88hO68#JTZ+iPXdfPl$ zB1p5w$OV%~AI8XueFL$xq}@MRMqk5z?ytSTPyUmS=_mf?XX4>M{}ub0|KSt*!@u)( zTv}0|c;9|||Ib|JFTdxKeeR_tY%4zf*j8`;yc0b0+S52+1OMz7R`{>}_6_@r?|hDL z{r%6_b6@i&{f!^G;j1g>u^<39GfpsuSR1eF3u@aZ93FOq8@}&HZW?y>u)92CY!_He z=qKBWn^^FVKJ}A;E|0!{8uXE4d?#VoR8Gv5h9OFFNK9FNAS_@#^QzH`mu0rqqV%bX zpeUmlR$#SMdx6~P3<1r8S;3_(JYn#rqJO9wzO-x^kv67SGnSc=5n_a8W(*K&)%_oY zT+3h7R_27|GJ%??BM#fSEpZj;q}vh@{8Zu_OINVUbFua!&;vV;UPLE z+|`x#BVYP``pK{UQ|)XceB$T^T$840Es|hUv)1s^_KH0-J#TGs-cGqdTY&f1H?ZDJ zyta1&b>Z61%h*D?ySW~i4sg=1$1mM_yI$(OP(@$#d#4a-{~F!c3AlAq=$K#JHHqIB)!tw;U4-;p_~Y(vvV2 z3yIM5;5^>HG=qCJ@4TvGp&B?bH{Elb(sLA9f#{lZ6{>HfLB0jjB4?=8hhddxGkW$z zEOifpNxYRpA&IC#!Iwv@SDu`UsnVzRF_l<^xDu$v@T{K;q6=w4b@~%e*MFwCRTa&0 z(qRCqRGS$>0rvv+g`Xx=Are`PjbuE0LmAnK00>1c3N)2)prx`*k;SbSO1Du|*Z_3- z9_G9pIoU=G)**`{9{@1IatC1`*AS#0#1u`%_Cg9O$007d#X?)u@K;TN&gG~K%nB^O zOU@o=EgBap#cZ6_dj?BguY6vGBoY{xQYC4uDxT`^M@Qrqt;t478yNQT={_@lT)j_W zoUJ@hKJZuBILh;!bi#llT zuCXw-OK1ih>@9!yORqk};qF4=-Vr2KRvyV227;3@0*Xk_CY#RAwtn;GfgPQl|5p)~ z)6t&w$Ou-a>+|1mX@6zw)2=MTyOxWIN5>nimi+TJmFze2{EMSy<8}TkmKQOj5s#5m zB>87AVnPZFE1pUKJPtFu72+>a4- z0?rQ7ax6{`4@F$mnOh&k*hP#V#W?c10xApqe6JCnQwNJh`|GEtXZQDZ7ZL6ci9U@5 ziQ_Y8T}A+b+4e3}Ab1c71U*;FroDjAXDG)eTgE63|9ejr=-BfsL7@rKGSYvuBs!TY z#45K9QVTB**DY0qT(rd-F$g$dy9vkotjB)i!{xO2>f3jY{@wM%-PNXV43IUG6H-Se zrn(QJQDmOz#l%>5*nA#AK88cTFWoah^i*O$na^v|3nZGjURx<#C zl~~XvKvO-(sQS8!|B9~&ws2#{o|_K+T<0lDYEvZS&F29sLby3Ft) z4NM!6-$p+F{?Qosq4bUm96hjF?ib64nS6T^sSJZ$g@J{^U53ZZO=UVO@@h zU@uYED3^*nAKHo}+H9_k^av5kkr!Jf)9UWVz*Y5U$K4%*P@v*Rda3328ManY`{`z= zP}q~Xn=XdJT1Wx*$S;usw!9C-+<>o-F{aa9!<4WZk*UT8%Nj50+}7Mb5W_D1UjsAK!&9eRx9(hOg?4`nX)dp2Hk>*DDm;}l9lTCtgE(bo+=EyD93i|xHw3qkIQ?J!6Fx2WWe|j zMuCw5Zj4tz`2uYw3o7_;h2;^SQ3&7d3v7_-($AJOCs<3kza~969oaG&o@IjP>8?No{y!xpZdVI-S zVT-#F+$t6ewd044zwOuD3gF4*_MWi37V?ed6uc23OODsm9D7S(s&XR&m}J0efgk_b zOF+D2dj}h>*9*33izDuEeP=QK$=`UZf5X4rgPpShVX>uyno87YF#5*TrVw__?ZL~2 zgTrIpyx}@r?C8~x6UXZVYfVHnT)Vc88+)C0w!pSEtZeK5_QQMazxduKaI)OR(Y?<5 z_m+Kq9E2~?_Rn>CTm0_7cir}PO$UctkVpd@7dVA-e!gXt-v(py;I-5CFaOO|ZO+u5 zy|Kk-UtMxBb>E|Oq67T;*Sy4V4pjfbCYC$R$-TVo)d4tmhqltXVMa_Ul^ zJrBx5*2u8DMhUzmn!!c$h-j%JCMF?zj`AVM0B8&$M>587N~hB9&ejkSvMK#~EYh?; z5J3xuT4B~mP3kE47-0#Boe>6`wrFrzcgPnZIqscZ!%5$<*3RSj;f{NBIHURTSztwb zyqzF6raMQ6)AJ`cb*bIPV>_qOn%Ee0$id#a)6T>C*}`>ve08y2KjBxMc+WTf9=z`I zU3~cNb9}><+kJh0!@lMHe*{{r`*W)o+x@oRx53u2(B4x0gLf|Rx%Nx#txvyK`_U?YI6P-{bGU_x5Rb`3Y>>rY{0KJ9=7+Sn6+n#rN2y=^oCwi=EZdf9#bnvXJcV z=1}{qbA0ajroQAS|AIX^J(xbaekL}3!ea6TV7`cGGK+KHZ>J}#c>cHkKI~6-*dY7Z z>2vzZAN`AV`Pu_5C%4tX%f4dgww8TES;mu=r9qNIQFTsvMCGuAkt_~k6lg2}L)JWS zLgK2Jtcijd7?I)z0APqg$Z{%*Otn~MlN=T(1Ch*#l+1*v={E+v1QRW_h^{6=V*o** zsIFK~))rxSc=vI=cIMJN3VVQ2-9xI+4J-XYS;D@ANZeM)_?QAoa-2ej%NmUa^OzV4MC~-rT{du#Ej_9|0Sj_LXXWYA8E5uybetRk@Xl}jwMX3EGPv)s zt+v{pultq9HTl}`(GM=MI`9^7HG>6g)Rs+<=$0M4n8!3=#@L((p)J1Y%kB}UjqCGC zyL*6d!j|a1?K?c)^6x&jv&2FvVI${Nok^Y-AW2PB6mX2J4KlbS&MZ|{4m>3YFOIpC zi@E47*s{PG^Gm>ND`JHlv-e+iJ1u4a#uAT=A}jM_{*VFMX`CAm1WTQo$aUpKpg9`3{Z85D0TSjy)rv@~dH-_c@pA=&oYovdSAv+8$y^Bljl>aWzH^#Gr!5wI} z;9lz45g-mhb!U zt&eOvZZOWVwG|F7Eo0-|mV}(LWwVyXLcLK9Qxmq4cR7m0p&7E%HX+Q@?g2y9$r;-x z@fjH7*{qA3g-OmGMER9k`25~&YCvqmH$7TQJ}pHv&5}^gvBg{nr*d6I7bi;A^XxX-d@$%kEN5`9A`@Rpqbo*Uzd-mGh`={Gzjf8WeJZPj8Y@u)yg3T-x;9@Ze zr)%|{RkSy}_S%=c|6{j)$LBqB_`ex5%MQye!l33kv4+%w&LXs=M$tz7swA`o&Gj$g zXkse%tHEbYqoDzg+BAg4lw^sjj?dE->6}=NnQH%FET}G(rCh{Bp*tK#Ow$5{aCO@I zqT|!`+dlo$$-jQ)`ts&$pS`}m^WeOlt-}`+BP26Sl7h$`?Si!yK(5Q6noaa@anWq@ z-tq8c9XDaXx`z zcL=EZ$%(x~0vl&r$6S&fg>jVMorSIIZ=rA#i*}eAW(&u(gArO8|3(Q=hczD|OiY~D zBR;%7UH|5drGc4c3N>SH!HBRb20i4W16nRu1o+k-`Kf_&_K>9r21UNth*~aPu?s>U z`I!R&1knR93%C=r8W%}~vi?4&baE={85!D%u4-84xM%);1Jp~{o0=S$)mZ_Mx)(=l zmQ4i-)(mYsCawWml#(vci(_m^VGdY}iK{T^b&gZeqdC@fmVhcpqe|47xPIgZN0PWv z9AgxD%TPJ2q!pA^eUSK~xH_fiH}8|`WTdDdvL-BRzZ_W?N|-zt*&>y*On3yBSDYMH z)Lwj{!RoWvTwjF^9YFG!xgTl*mCJ&gibyZvSoY=8CVr~-po(V+WwTbZn)FTAJ*&+g z7ku(yd8HKdwAphv&&@*BN1u7j!UU~>J!TvtTr?(giV6tN=QH9hoO6va@D2*=r*1}o z1+3@yqqh{HSfXVgjXVryt(rfT2NTpd6zKwKg}LgM&%*MI8G$iML!pE!$@xaV_}8qR zQRRc1O@!f%m(Jo9{*=Cwk9JuKd_&pn9@H{MO_&ERFnsh!lc1~|s^HfU3RQ8RA2!M8 zN+uF|y+DV+@Hs&++w)NE;d`{xH&1lbZyxpnV~nbhE>um7R{u=I{8WXq2EfI^8VZt; zDnw*4P%mQG_ds6HvWk3U<3doqtxCj7n24yZ`24$4!l6p|@o2}1#uXZ$6!Q=BesKvnU+wCCD#?|xT3Dv639IW5j(3%Q7R%-0=*2th2dgG-kP%Tt zoE}MgH{F(pXYugCA|`7NLTt@bZWzfGw(4@%M^7%h!3FF*c8*&w?%V0@N!Kn1*IO8E zX>IB{duaI5cbyQ{aremjYJ%9L*65hxP13J9I=%>s6^Y31fo5q(uM{CO-Z+^>( zzv->Vdd-_3xUDw${vW%-|M)N5%&#{Eb=vj*5AMasKd``^YD z+VHh+bsiop!<`C8IH;f`EAAC}SEeWjXoo%Z%&E5L6Mph1FXQ0Gc`QPJnoTWu=j3WX zuv2}*7yS&5?p<%?h%#nCls)5?H7Y!nPNRR6GmjAwIR&6-S%ed0y}U3{YAM~%@sMrN zGM?+bQk2B7(&;F~+#?d{`R-d7C3b;f+4wREphB&7ny31OfrtjC)1u^&IWF zYd|dR{>cq{>fnLicJ1Tw^x{stxjc$rb^SA3AMIhy8@%0bYNH*!@rk=UTsoiH`#264 zr?K`4Y$0P$@uX2C=%MN8)tl4)S=V>G@gMQCU;lM@!{yJk_r3U>9$TEi`l|iLfBT>D z=We|dufO~85|*mi51U2da+eW$;A{5Ze#*`L(=zWR@~FF5#VO`Bs~T2JlL z`9@!S_&)u}S9}M){MmQ&WB1>ng@v8;-S+oB_a)rh-NfPIRGkgiFWuz^D}8+ZIJPwI zE>1PIbu8LivFN=`XK2$2+VYqSIS!`K!Oq4nFV;N6Q@VBkIw6m1tD}5}>Bv3ub{;vV z=~lvdhGui;oD&|CB^ASSior|s8i*nnjer?jR4u#YMjvTb z8rq=Dg~Y{R$eLs_QjywiB4sZDniPnD35^SQKaD+f+qZ9j<4=fexV^qYhT67II9P0j zOMyT4PoH*hi%SQRdxB&%253E4MQ=_6a4od*_EHW9pB&Z z|MiDnw!ii#Uc&m;PTaY@r^QOWEksP#Tnc!U1E_@%qOrRCX0t(;QYn{H=jn41xu_{u zMH1j-cz9@8Xi0+A+dJG_+Q~^wn^^oGOJ>X$kd2H|Fb%~Lz?sY)3)vnO zZ00JGEL_rOv@#o!1a{?NC$spoESBb)4%x_8*-1o^w-;nmXAI%E8`$ z{PVx`%H3<%_NTq2VjIdwmN_n00C zZj@;hEp3kSN4ceHSdBb7-|Dfemku7Bu752if?(?c+GIF7+3w!Bvil@S>r(UxT;8Ah z-3KQvfbZQ~Et8wCTgm*sAlc>JDC$SNDyS9UfTUx9bEhs zW}9brpB)2rx&XuC|*hZL1ay+zU)E~+Bq;Z8(q)I|)QAxpIt)4y6+L;$Yna&^_HLH3A zE*&hfzq|U<=RbFc%Nz?t&eWiBq=}r&Fi_?_Uw(>#X%COLIy_wR*_(Smv^kei9YN)p zDuCI2Hyi(!4}J9I>B_-M2RnxDYNWyC6BWbQE-3Wu z2+ByxBaEO)F1F^U=iXLE?C&qWYU@#}28H2=#LEAJG#g@pl7SW!&};=X-;qAf5uh~5 zYGw>iC}Kd!M4!=447?UaR9J%;j7CYL%@8R5CKauAaaj}I%y}#)7?Qjj_9rU-31~}Z^FiJZb)u~?zj zO_T+D1|-ldL^fB1h=p<}6&jor1JN)O{Xz)>+Q_DLcE{O9dddR;YZ>j}7h`aUWmQVe zfAb>vjlWxQjdfO)rE)!66!EUQKG{q(AQks0B$}O>d@6DBxwQJM zCF;Sbz|I;7kI(5lwX#%T72 zt)B6)G#wM1MGWTm^77u92BxiuSI^dH=Ll- zvak+f(9h$dQWuF~6b)nopwLMC29wZ21u*kKj?5j78htB3Sw+w2sGtrtRLd|_1b$S` zs{=5Wa$P)dgEV1uC`NIf&nma3qf{)j(qj~0%#J((kPX(V16MC{Jc+aziut+Zy~@xN z!}m8s0*Lb7K;~m~4G(n;1fBr?qS#2hH#%My&pQEr2B|!|6reLf)N^Nc|JA9X<$lE+xsHHEU@8SwwAkAV zVA1&ZfBq`C0xlgy+mO(>ZsaTI=<1a2{MTYZI|`Y||+>bmyM1x9IF!;{FlM^90LWl&IR>Co|)=Gxqm` z*y;Wk{?(J@65QQe!^Pg3w8fIAXM6Z_U-Xa3#gXoBu5n>X_jF@&EGmR63&2|0R4DUw zu4*L}Fv|g@2lfUiT`N6OI!~EzsdsUOav+o;-y>huRFMdXLgV6 znce$%V)ubPy>q`kwS35%t79E3PvYTv2Yo$p?Yjx5rc-!l@>w zYP%!=b6VCv)n6ywMR-_sRoPgzeKQ(N?xGo63!>T5rs>x4B^@k}^gEyVDcwK4oIAai zLJz}ZSGUA^7614ruC(d0OD4D{N1Yv7Hd8v!rnh0!=@xPQ#*yCou2cT}dv56CzjBjb z|0iD?XKvU#Pq3Qfo^%jwZ%SDsqi?qh-Dhf7;dm={;swcx+_cb66*Z2wS1SZcLQ7N8S zg%88P7CDVKuvMx2F{|mB|2|i?7WU$WC_tqeN9F1&e6knJQJiIsGlPrF=`7-g0ni&- zQ~}Av9vB$LN?EBY%G9!LRX>!acny`$@H{(EwimqkTwV(2EUe0OUWtC0j+3c^9fFCW z=&JvmNm;1UUCqUeB057PM4(5G$v2z-N4ekIRs17axKEBxx7}>me6hx`-C7ia{2{ zNqm{*em%R9Ex>Bb%;MfAkVuC=Dk3CC0~Fnl^QKveE%F3dW2t89hz&MhM5=Dbb1dR% z5W-Onk7hZs%CcpzLMuNyVNL5~2eOlv{e@6V)1qxQ3qY8m*VUH^Km*6b12hv*s!`8W zd!qi&0MgI5-3||yvAeT)^9Mh6%dcF&3z*T^TEm@t$K2i7 z!Rw#9{$Jj?cl`RkaoBP?4Ml0ZR2v^@Ms-yQkWHa{eq;k-=p+Egm~aKFD4sEM;oho@ zW($KNIhmK;kZOfoh9y{J$6D%nf5{TU41rG0#}z@y z5(X)ojb22+Xc(XzW~_?1`Xva%tk{n6n#S4SR2V#CWS%WmY_Kf)>r%7gLwMlE_5J_( z6VKoC%UAYgy&SEAy{4^QS&?SiNwPZ@fKJX_k6qtgAD?W$8(TqiH_Nm8>g@;L^z35? zt(kQaEjH?Vy9JvBt$b$ybso-Gcl$Zl5{Owp!xgfd7ag$ zrnD3X#%LAnVC!J zJdHt&Dr=*NJoOyK_J~>|Dpm?m#Zp0>%DHquGtevd$8XF19y zdDN~W&Smu2hU5B`y^nwH*3r8Uc6R{g#xKdb1W*6ZFfqa;FS{^C026{;;Dd)7f9~nS z<*P?$KkA(OEUpF%41cBopbH1Io+CC=A%~ZBrxwv zlUn8$%f<^EtMQj@yV>1EfU#FHDCKN5wlmk~`QBSnhX=bq#A*5T`#=2R_R{`>hdV^? zZkFqrl9(B-{2ZnZsFSI%ci03Z724L`{l?|py@$u^wO$yc3rG?kG};Eht6^Y%LQzInm3MT_VgP2o6s=0qh>RQz|c}FsK*|PKA%YlX`zu z0@mXL!Y>*)8Ulj!D%2R4bLBn^To|$qlA1+!M}`oXqWrE4{{W9*&n7NE-);vOJ zMz%aSo;a-KX0DnJq@o19k@maBUOiGMicG6GHo(wqyC&2WK;;i!2xc>u2F9>tx&~%X zXzULdJ13)XB-If;5NIQp7ZzmkZjOktUu4{cI;X>ny#w1Z9;A!ED>kSFU|xL+xCXk;W>%d_8Wti&SkT~?ggA&MA{l$god3yo=V zRkPJzuQNhIolxtDHo|2Jl35}lsuf{B$ac+fbtG-294-H`kji-!D>rjusD=V(Y(Ixf zu%^B3V(E3S07cf6N97Wf93HJm+Y-r;IpI6-dfK*D!!C+PE#u7?*j1on-VdU2P0_09 znGJ}XgI^s?W$ge!TGOE%S>&URL6O~6=ad*M8wIJ}*VtE5!k}bs zGw!lhSf)HMV}Xr&ttOVolymNUul6Yn>2RDEfEazx(YC4I6&DrgEF9zDWb^Js_95zX zjCWpB0Gq*k;y=J8&bs4WIf3WZRc2Z!%xuYsZG|PlaqRN@K{X{&xIh0w@wuMogvqzf z7zL_k!`wh*!Ktjr6t#qf$l6?4$1bWTo6kDCC*#=+KD=@Gch4!XK=KSw$L-56R!ywg z|1rt?JeaCLC`2jXs$i%t94wF|Nfc>4*3%-FajC9FT~u0LyaB#Y1$HV!lCWZqC!x$Q z>+=J%TCkowZFE)Y$~X&r7Ss@OM2G>j^1m$asrj@-^`s(4V=})8q~~`H&g!02swCmX z;X_tIBmI|Z46+j9xD>|W?Nta@)hQo`u?;YuV0P>h7+@2bbL+(sP^)t(%!nTv`eA35VsxR!s2*C0Onu+Wk(igCW+Rj z+=h~FB&G#&^9>|gxiA!5;V^J#D2^Ea>Yi@)>r_TuMubm<9?$6tG9&%Wb< zxW9=%^>?17e1YpX9q)MEah$z6;q<%{+a8;~&?ctFg=2j*>HNV`|KiWRqW|=_Kj4GU zEJ#x`>xz~UJtTzH4kfW|)o}1!Z$JIBJG%A!F0LGI`gR)&0aHWA3lDDKjR!C4UDtmF zFP=ORjoaK+n5q>)W@*`<*V-x{c=lx7X)WE?CBpN0S{f4rObSuapjyWg-IC|eLu4>{ zUdnL+NT;_Dn6S+xPJmaX?GWfK*{;eU>A1py|3jk!EcI{FBCP|_9nr+IRoL5ad>H$i zbG8$4z1S=`o#E=v{dnTqZC;*^vB!0%ZE<;dKdwIea=hcQkHz`4A5nHUInD+xrohR` z0lxPwKQis@oyJFBe4A}|H}R&YKcFA{^l!)8e)MnX7he5*z5Ve|$KGlk-4|#A%zFq+ zG|^5@SGdem$`9?!e(cZV{)0<+<1_EKa|$>2K4&}26I{CXK-_y^Tw!W^7Ee6+L4W@E zalGvx{q?hd_}Op3>#p2`EjrCCCKorckZWO!Wndc(Yc-z7lHHruT5w}c9%K(#ESlQR zMs4-5tro|IxD>$_CJQN2LQ~ai+P_EshnUQW$zU2Qe-TlwUXFVY5Y7R1>c^=-ZPt1e zM4F5paxm0U(xfWg_CQEim{O0-jjg}f+cD$J}1 z-h1ay;=F*I$xmNg*kAk3JN%~q=ppZaY6tg^ znwFC!rJ)*_FeC)Clp#{QC+N|(RzxJWfq8*=!QzJtW ztA)5|&cE|B2jF7it&zTomh@Mn7{iVULRG%t*!@IXn4Ldd@Y$PdwadW=4;t7=Mudx6 zG%j9#5D!+X6q*WI%%wtg_M1M3QW&xKqQ_TKDC+k z5>%)9X5{n4B!RRz9IE_^Jw<}sNXvQgz>74SbY3Ey5a9h0k~O_7EoW6Pw)5tX!E9rK zfLN+Ub_^BX0JbGi@C5-yw_XZ-YOIl?)B-d_`o_v4N;L`tjVp*~Rm?_|!b(*v$kNLm zgt`}=iHq-y1lNsG=Y~~qRY9-J4Gn0k$+Xt6w9tR1CF* z+mW;7t(6aKJ&{2Iw0UH@c0TyH4?}q4FbZw5@Nm0vW#|6!ng8mSU%5BkxPFMf4TD04 zYCEcmU4u+Sa9dC)qA}R4>6N?3{o0k4u3g#x&>Hx>oknhZ$QToq-y-W`t2;$Bc0}R9 z@C1+M0kc*`OR7{8gQ(PQd8cbStcoxq&;hnA=FwoDi&=B3qE%tkV6|lBx>oPFP26a+MTE;79~C z<#lvG3Z~pRC+#yRn!s)Cgqb86E!1IIr!!|G;JV0F$m!~-lzCQZi=#%&(rGT@!TPMC zdO+cNpEdsc)-&LeEx-4St7ctjo{`Z^Hsmv^bHX_R+VCa75aM}&7(zOvon6+L!>Y`t z>XulN%1)&2!W3!kt}xZ)uOT#%5RFDD#-it(vJ>V#50sIH2H@tE{jYxI_QTE9!`ii$w6e4nQRmv2p~Pji=&wDunL#N;4>1EvSnkEmD@`) zQ>n=Sz^)yvUfEf#ZvOlSUOqlN+-v(whUWxZG8c53Wa+Ys7Hp}NPF6Q)a5Kci6vfpqw*WRiIX4%X;NnS$2LQ^% zZe@NAK{Aeg!IV-RUGHTO{)PRD-p9oR<-kA6)w-I|9SqqZL^b-e>1t(7(JlzF#+eKT z>+H701n5ie*C9tc$@EPNB&dg0*_I4P~d<_(c{drMeqgKTzeNJ332| z&pz+B=ijpw0zns(mj$yjFEik?;Dw-i<(|wDo>gFGSOIFv^gyJ2;W)XYcBJO!hnL?3 zz_OR@dH#nesr4~Ij=5`74KWS?FcZj;Vq>OXJ2mP`)cMWNsfuN)2O61+vT=a`)uC3n zv8;Ep{v1y`D#lbk9g_USwApMdZbHgXBVJ5g3z61H&^+xs5Xx9OOtX67hU!}-ZWugl zWW#dCzZDS?UZO*$cseflbygEYWj!iH;i?gQ>IFVhUuQj7&(CyG3u0urnpszUzC=9v zMFTbYl9P|-94ZbX;HiciYK*zdl*P~pDx*tzakYj5B0#T}LV~y~8md#I0$llH+gxa& zx;=Rb@^EAjs&QR1yOltW!bE|&s0+kQh;tAyRwtxBqpB-46D9deHT(8fCn;D9Lzq2I z%)O)n7b-$RppW}I4qJlxxfxQxclhMx2v|L99~Y;RN2m&dISJofki|CE+xS+ zMybYk$gg$bvkB#)hyh|F-^r*=REiaFG-~R**Xhh3IZPqynx)tylUbxERcnT5_M>+m zbicIAw%&#<=n*0I+l=4&rAI;!9-oBFJPpc?mIYyIF>@p_(3m~m+zS!01H`m&{`mVY zyUvM&RjBunwQfOh`(V+(_1B#U9&vn%u-2PGvX%%=4j&VuA>ithTYchF`*`6qZhLR+ z_<#QG$NFkN{B2)ygeRX~bG7VPt~wT1VgKqE_7v+LHg$aSmp>%>LhCgdt43?&YJzU= zslWWf%BG#x-t?|D{@|A%0c%Bb16wo-Uf{(lCI?{hHF53AR_hbQ|Mbru$Npo^Wee{y z#j+9SeFxzy{->Y!qw434XTHMJHVq&fjK)9%JasGMWyvb&r%uYGB9R<0fg_AB=M(OdYzSAKQ7 z^TO-nhhKV^EghVuO(Pgf$=Sg0hV#{~{=|F#7}h>5-t?N!Xt`;6%MX8l{L!EM)3~zQ z#oMlZ%AK;4&7y%|zyxa`WdPj_*yC9|b>+plbN+eL^?&^D{M+CC-^8ajZ-w_~bhdp0 zNB0k~=~wvD`Rnj=FMRRhTYutv_(lKw|G=$3yL|fk^S;!X60}=2{skkYEd{kL%A+aL zP(2p1^v9i+Iz2y#)xmx3F1E0?r{(fx+n-L*ENqdI&#o+WEU75V6hn>IQn;q5k!lu{ zG~a`q&6kI=vI#H*&AhT(q0O$TBnoCK_Ku$C11UC50U*Wn1_I#GOWI;72__JnQUMZW ztq7BcLQ|1REk99217wrq-q9We*>}C=AM*TcPp5qki)pL1Q@hImE=~BeKk_)yx-K13 zh|D!%azi#mkjxSqO}03)y@FGdj*mq| z#~=IZ`;2?0&31~`Iwa!KUi3I``gb4Lg$}lhwvAfR(N*k27$ZCwIo2UU(%4fBpVW`3 zU;mC{0K&-{ZEETr;&O_%+M#YA>&NzYmPk8gR%tlv-7;Bl-~t<{0>)wUF_Nn1*PAB- zF#3I^3Sk2Cth+AMCv&=DP0>ZwNvV_{778q44zog37~akR%EZ2wn@Y1%CxKy(NM4lu znw$1zs^QcTc1BFfm)zI=L{sWXj73B9D<5!oG=yeQB`W_0!yIMub3*LBo&e* zF$hssJ7cVugMb*sREysxmPDNere=HP z7?#guZan1wrhqoUNfk6>)SazxgblKtW%Hw%S5wsxd48;nxn@mJJ_`nVv@5G68?rah z;LxuO#nJPCmCAZS)~_v6hY;Mcu++WU8!Tw zDO4gyT|j6o&sbCgL$DZ=NNLTKu|Ibo6zSB*GaaNwk=Ipdq+bJ@JepE+DDC;r0encwK!)WVB);pdmt z5yfnYjL~Upg`-*H_^AIBFeXIig>glKOt`%Y}0^b+9~xx`w7lt4?Xh_GOy+W^@B zrFJt{U|Lm45knMLF(TdN=F2HW7VUu)Az2BBh{6DFK#{-WBjzM-53jOsRCskZf%NlF z2;GXr%sb}6c|kC%p)@ZYAN3WoT(PpGS0h>@IBnDWD?YBVfkWuDTxez1xGQFU0JTT6SEtb~h@!F+!ZK+rI^AP4Ty zMNN_Ir>roI>{-kal?`C|i=1i_Tha|VFx@M%XaZtNEZPC&PM7*ltm8sRM|H)eF>x_Nm6@ja*O4H}|)dWNLwtRCq_;{`Te zLOwrJP3L4HEv4?rScz3+7tcFY^2DM6+lYhn?dEkyM`!Qab}fcQ<#;|LkB$1Bb%tlL zf>r!LHoL6Vosayxilll&fyb`xo?hNx+<5nUUU+cz%C0Y)Y70_0Nb^PzY$1se)t5=0 zA%i?@(>wQe7ZK2J@^Cbz6G9F%C%MCcePp@AqRwpw!4ARD%I0WzrRS7c8rexGstmze zZ=2=5ARz*6FicsXm(oQVg(j+2$afT#6AQ5CdsI3^4D_ht6I4^9wO=`T35=!=<})DA z{1LVH+^Hn}>eI3;byRp}h@&xRl|j-2fI4J8^CV*GUkHh59A{8WhFonC72uee5L7y@ zNsovz2eVcl?$BsV6n~|0?@N8GVH9R53@xHE1r=qhHon8Gg07HeBmWY$s<^l>Vl21M zuU#S)5Mz>Z+?6Ps8M8XO$(h1?<|i*Ksb&yt+~lpHbhwsdKRJPuVzG$a{3A&&l=mRQ zgR3HSiwcO;rp%)c2DG6nw`vxTr!$^w@orYn6p!$Z5Qqi$lggA7p#hDY-2t&v&&*nP+3zJyB&vlnEp6V+pQv_f+=$G@o(S zKg)qJD_b1ZBx91_ZC2KgW{#?;88&z$10~lwa0ecV*TrvEEo0UAGYP7_JfP(}Q%SEE zs`ms`5s$eDtrx?{Ei$v=iVq7S&3%E2r1gKQyp#KCEStci$38pD#JHJ--)cmupnHB! z&0_21Z!d)5)$l+y6$ZavxKR}c4C8-~nknP#EcCW zHY=t_o<{w^d}16CydwTsrpJ1oX38Z#8sP3iQIN!S76z??THbWdMeoHA%9NbRHK!0N zj1596U$p0CX4l+c8e=-B@H!?EvcoxmMuIoF%4@3pt0)*8Lrplk(jy@aKoIGTJG9Io zBh`5}I*FwiBMPV1XHg9x)x$5bSE&uF+as&)_vn;!9tX?5L;hJ-;G&J^5(!AN6siuF zm9i{JdX5VbNQvF>tU~215)(Q?Qzp?m0Bt1hAV^1Ub4`x0UQvPE3^roG%y6)~^Zt*& zw2d$S!aaN8?glhPh&nwod(9g=rrq98?(Z$GK6{MK7E%2wqEa(O#unR6 z;L0V(9SeQyfA<{!{{Q21v3qUX_HRf>XNJvrlOoKG{qW!n4cF4<-*b< zuv$>u+uC3L(JTBf{>bxj`7q+%LlKLB2iv{-2itFW-On$szvp?p^x!7naP38`ky3hD z3xwy=)sm%HRUBEYXEmZ+*d#br|2-c*q-@!@vbszZZUnjoO+-uH!Fn3`=Z!2+z}(Ur zxv!4EJldb#wB)2Kuo|a2F0QK2k~v2cfX ze=`<~_4KBv-y7E#z1{M?G%ifVjM+fb%9-ibC#@&98@mttrTrNa*Tet;002ouK~!IC zo1+8$t&e^q{>Kl0Z7iGdH3u(fgB_i35a(Osd~=x_?Z%bM52j}>-L_7&6cebsVrp%P zpeS`_D@Th!gG!;q2y;ry7Gw+l!C(6Q^pE_XdF%ALuJV+Z_wHlcP319AG?vX2mjM5uF{>D?h^09q;{kMI--uLG}X-~Y7@!&=3pM1~D_<~n=`N3b_i5qVV>^53B8XG%u z=stVBf`&g|7_Azx`4vf_S4t&mQ^V2y35y-qJHO}zr!Otb<%{ScyZpq~j&AMf=+0hT zdV1S}jRE>ZO=PX0SFjnF6K7=tRO#;AY3RW3{^I){CzH$pF2kZzJA1Ud>B05hNxF z%t1(>_SNEvuV;5-BgD`gvpnj}Yt>yRXP9f7D+O&LQf z(^nDL2VOI;#!Mkg5jhi-L&FddVOVeD>FZbb5M3nHT(MnM;RM5bA>>pjJgKEha>-8> zVP>tcRAL<~LLgOBt)OUu@Om|zA8wBFv!#09LAb+1but;lq0|Bl$(39 z@!1d@XSgtPRDm`8$5B=dMAkK)>kbo3yXv0h`Amz4(a{m)%tgkf+|HwyYBE$)YV@8_ z_c@_>evX#;6xR-RKm6*Q)8l8Ky|Rx7wncg=LLNB*mxIGlnDt~69Bg*~{&_rhZGZWR zPv8CHN2l9=vb$bQYn zEh>PE>|ieTM7ljm>Gw@*3??YH9$Y%GPGd_=d80?2l*C0c7FEnxH6k9NBsglET!WSb zYRd)@sTdzHhV4Y<0aQ~=15%G>7sd}vnkPwp$GoVzLUD~rq~#2&vzjyB)Z+Yy> z`F6dL!idOaz>#i*28M_Ra8jw_Y@*AFS6?~yH@xQRm5+Y%?qAt${>QmmqI*vdnj$mP zGO6Vh3Q*bHW-QPOj<9hI5>(EPBA)UY=0ay6EO5H^tLK~k%P?Ji=K7`fi5DLH{i}yN ze_*v}m4^uxS72!qfH4IzEI+`2$7oh&bAU{nixkZTpq!{&Zv!{4?e){m@tZ#M(U)KR zyw~4|m+r1LS+0>EYC6(#K8Wdp4n~Ij2B~ut#ZPRyu(QlY42v)s4JI$l&{WfMKJt_m zNm@C@H50s3@sG6e)93=tDYJm;V+x3pSb~T=TTIi>WC@DAP8{gz>03ChNP%4bTS+uU z{uLXUjo#k!`6GrHlsUj+QP`%E43aoBR&iU`uG2A9^OohBfLaur-#-hZOaTU3!!$AA z5oF7r0S65Vq&08$$(o?>^ymx+ToF@_7$)gQ*1jR2>tb3Ekz5gx4XcsYBhrS6MUYZ? zrdla}%Ri)epZfgrjEf)`6Vi9R%4#!sWITqD%ge2(J*K{@L$!?d;vPwf)s5*yKNVkP za}Lih)eM0y$m(H-wG`-D^~W;opn>vi*);*d)`6f|(h);25Z*FhqQQ}Pd@MH?k=8zi zxx6rTR5L&MzlsYSl&5CGyn|?w_jZV4je#wc&qVitSJ?>~%!_ZUCVg&s6vplgjHx2z_%|W+ntX{_!Cv_nx!}1oW4zTw zN!m%aTxeO}U6s;Yob$IBXfkvpuB=u-)+9CI!Irt$q7{EvYX53_G;{Ql10euMtNfQy zqfr=pa^}o8I9Jp&Z%N)K4P=-Y=q02!q-K;-K9|ZHnYjSqq>U!+SEdj~Ksdg3)W5k#n7#i?uP= z62=mx75N*=T@XRbdWWORMDf54=mE5HuR-CTR7%VZhvDWjPn+g9L?L91w*REScHpOC zSzFbIxe$&u#ga`38)UN&Aa0fHBn(r$VIfc=&;lmVUEtG z?mPWM6O|xEC`AS|suU#oztaoMGhj~XnKmW`#=*>`KzX2BLXhljAjxr=YMXjKFcTmz z!rcZKxG1`l`>LXJ6!5}@7hr+80f6%qI8@uORG-bu*DET-<&vig_IMQN)k_yJ#*k59 z1YkDE!t1kOE*Qh=0*nha&U^s@6)w%m-8!k`P{XQWW4X<~y2+L&xs-2FjTRNZOAJ-h zX#RK*d%KGVAAhMIEq9xikZ+@5VZi;{6YTO9uYcXibbddZQ91ga3Zw!yQNCFOOvVH< z5?bF1m#=pDdZB;+{zL9u3s(RhpdjA9Wm;a|@Jrr)Km0D#;D#~=b&Oni5|Dk4sFrS@PGTfAH~D<BKI#xP%R^PHP@F?Ot@nZv393CV8kocbnK@%Df6SMlF|?DyjO;Zc0vleYy;ymPioIV=aEthUQ} z4A2CC+6hjK2zKcV+}nNVZ@T^&J$>Vj+s=uej{|Ul-4uPD49vKD{l$u7zysK%!jw|gHpLzHUKXw0gx_k80_TJ_OukSsK zJ?mJh+p_em9C}0(atLa@aEwhH@i_TfRDm&F6wnXO!SJn1%o|*{KeV!qh_*=g zqk;tKtDmViwR*HvaMm43g_2=NH`*ke-QUG)-+0XFI(hH*q&98Y3qdcg1ONJGSAoq! zhgW;JGZ-)$U63nT_<&Nji`+Ldi-Av$8_>M}nlD}R;oW8(=4m-%IM{K0_TF~0x4ZM< z)-ov!%rrb_0YDb$x)@u{dOOKlGnUFf=AtdfKnh$=DD`9|9?UwB1oWd(f@%mbfl21o z%tf>$+vO@@0t*3Eqk9yKxG2IjFhCVe*ihjPdMTyqF`gC24{;l@hLJVbf7RtvcT!n(ULomLxDs-_0~bXv%$aOS|JsYC`F z8d7P^!gdBE=3x~brBn+f3BhT+`<6{E5HT=Y?oNT3%9tUKasH<@!DPlrB0>C&4&_>ouQ^5F^#vMVoUKJgTo z8Juv>Wj-v|hpk7a8N$QY>y+HsG>uXRij=3;U+S{}h2s`vXAzM_bK?CP@kgEo8xufG zSq-N#TAk-0Ple6j)zY=B2ob7OuM%xI0wr*Zs*(`|138N(2e?gHC=4`Z%cE)(OIWE^ zcMcai1y_AO4*&Bk^oP&3qrQ9LOX$RyaG`{PmNw-gZ~bT-{P)!4j&Oc_iph8Wcn*wh@4|IXu|;lC$#-w;RV|XZo() zy~XzQY>OUj)70X4?JYt-JWX~{R}EF85#5rMF0LYvUp4y-xfC~dbEyv01 z$wz}S&}KP$)`)gd7>`1}tX4C=#7y|AMguuzn5fQyfmH2aQwpJAsg);!9x!-QazhMB zCbw$bvSLFH#Ok84i(#7)Ng|G1Qn?RE(jx*!%W>i{^*+3=RkGR|g20I4UI9m}J6-t> zlg(;QR!UP9o`!TSRK-wOl1Bky-ZxjgOUP(Okj-+CMWVHscN#D^C?t8B)QKzRuq})7 zC9d;7awF0rge02rD_(i^#I9aiTBjV@|2A1vqR;MvQuXVpcvLgejy4-J%C215`J?O5 zL5nRWvuw@}kb)$o2C2Y`Gcoe30a3)&cx59N%~O48;$9?hgJd3E+t)sINl!g<&~IG3 z^tDzBz&6ytl|9uAXkN86P)K)vCgNb>HF&aAw`O2MNNU!w>1t11Ke%=Oc>CRV?wu|V z_ZQ*j5f$7CPN@Y;2C3A5gc8I6V4jb0^)uhKvLC_4JG6|uy_Wy7F6Y?a z5My!zSx2;J7dsAGabbm}#3KI-ONW&bDhGEm=V@Rg%nMajLXHp{(O{uv4u=-eLe+Lf zm9s^DO-og3;s;~v(xzbCg{ryL+4MX&Ht@PoO<5M{o;kayW2i7jlI2lnZU{q=4J8UT zY6-6{IojOZ7X+_HXFkj1$pVAa&&L=8J!Tz@Q6$tS!MqE^^UtX=MAl1r&Y^m*^Ym#x z-+?h1X%UnoHDl@!XvmyORih^`=M=X<~p8^@Gv+3cViHyBi1{r=jvRt*(iSoEL-PpUdCG%pVZk@d`&j-eNa zS@9LR5aEm%T=BY93>uhoENDi3h6c=yKtMIco%}DD_2oEwDq=!#jD0|haUYBruGM3j zf<^exZeT#Q+zY={jGk?LP?J2Kd+!SU=XW-M98ZDo9zT*n|kHm4nYx+zV2xZi& z$)66+BmXSMuZ|r8b0y50Y(<&O+Ts&nVHEebakt!Y-y48VF zs{`Ow)Ct3XcwBizfeQs#`vHVOwj;Yo<1&_C*eEeo-#LH3%I+XNPV>1G_*H(lUW7?5 zdl>#@`F*W=Gz^C@LEV$s_X32fVh34Z9U!UoYdVuYwka00|4DAu{R% zq_%Fhw|~|if3Ew@n~k?Vxu7;AjEF_UY87p<2RpfM=tso8y9-d#(a{Qjm zvak9zN9}KX=S%JO|N0sG>A(8f_Dx^@0B7gM)3rIK;1|921UOqTHU@cQV#N2rVMm?gr|L9qXI^(Aqft1p|!mb8hRP-IZ|1&x@RM4|<}!Axp~F4H+CTX(iLF*;i_cDv&1#p`xoi8t@Q zg3sT7$)4G{V^3ed6Z^Yu>f5GGpAZHzdU``oFqp|gqw&gUO|8_;jkzYbks!OZpbl(< z*Is)CZ@Kgm-*Wlm%V+m)hqhF(wXT&rTcquUEO!8tx!lu9=RDy@rZtpm(~)RKFa9f( zovwtCRr_fm>*6_VN=R8PMqx@Zrln_0hMSbY*XTf{_TZR54vyweGR8Cx_<-^Lb~4mLt8?9cpz8?;^Ma6jNqYXDmw zKY?Zpm$?kNl*$bBol6Lh29Jq8;G>M;F)h5?b8k5YcZkDpdUD(mf{7I($gYT6QDp~yCJY9{@6D>0Ja|Y&lWK) zb1mc40Na`Pzx>O?hGk6qdw@I8T9QVC$)aFnZ~{VB$}$0L(!)DTT|GQ&2RAw%-Zoe^ z&~1{i*fo9jj^Ei?O(&W2Pz8)ZeJI>A9}P>37^BybYEi`)!A%$#QAB20_|btV-^GBH z4GNP0$Z(&zF!ImlM4n~)q<&ANKimKY3F>CsiHpB4uMeXt#%eY^`oIk}x>?0QO>AJc z#;bGB0eV$`KL)8^ATv^p2%*%^Xg6FP~eXy73t(BO+DQA!w*zl>s#W zoyxPap1CVYyU4{O!SzU!s_p>On+5=UqrSL& zFm1#A%Rce^{q2)C_9hlKXMQsD5WlEyRC5%>1S}5dyj>)58LS*xOuF_vsd?{PK zSqEf&;ls(e#84i}`fB`rFY*9{(zClY1@;eCfBltL?qhGYXlYcJyDsH0qYH>m_Aaqm z(%xolJUi`ic(7Wmd;F2}&g+*CR7?oqv@;2=0U>OT&`M^ zT|+EZwPBJlz|@HC)`9S4RJ;L+aL3q@P@;;wKUD|2XWYqv*3rajkj!z+JhU1#L|V&; z=}6;K23iIwSxN*4cbNpK*ZK8P9|mTjLQR&30$UGU+Fg9;6Q8^DOD?q)%p)u;5Ed*a zD^=y6>6IWXNYSyJ8t*>X`cqf-x0~(eqbH|nx5gZ$8tEdNW7%)%11F!1J;OMm_opSyc^wd9ohwP!mgH-L<0kXmjm3Qqx-jF4?RG#Tl= zuTrjiLE@oql8XPR)rm8X8PCF{e6Np?r;R}LRJo2}V+LW$qX1D1ql=B9Mo+Sa@)k1X z%r<)7_Yy5czOSgeK4R?5Eey`4l+JR1o~qcqN=i@oaleq*(7m`E7WOJp1R`oM`+|&2 z#rB9U`7AwLa3zEc!_shCw6 zXYf{-3GKopGg+5-ZVrD4Xq!uM8^$P`=J+I4{v6mhUjlk5`V>CLtDM+KJUr43>t=5K{*j?=vj9o`@ zkw`GOa;eUD#i!&Tla$TUHzyh~YMng9bv}{%4(confpnVo)@LKplly|hE*il~j@62b zQ#gh-8w%G(+9=PQBEuf(U5sXNP3K@>V_tBW8gVtz&}^kNYN4vJ(yBW@YZmE(rtxaHt)aQg5yy{!lF~PXI84+PhTQ@4FIi!KZilaw{v6+9{;KhI7HI>iJssLl~t7D3sYc8t!2%?B;Vy;NU*04uu~_km%|WR0fF zP)u9|**5=ul)^s)TB(Vc%CvD9<>}6hK)zJvzaPgnaM4JJIwVnvXsm7XN_L6ctePE# zEUTzf#rLe?5~PIJ;YNWR8few6w3=4P@Snb5vRocE-a`eUkk@jtdDT%hmMU1XUZ`w* z>%92jP_5KKFL0GVA-mAvtdPPSFf+MYjSb{-7y^AfXQb;8$CVZ=q=UT)SFY~As)3k)ekjKk%WY3Mi&5-YWCasv(u+WlD>M)3d;Ix!X_v>>k2PeEPW)ZMF&;uv{u0Z1(!q{ZGd?-27>rY@VcA0No&O*+rqe>XCX^7EUNr#a< zq86ZNRjTD&;WRaJGPriI(Zn?uc&J?+FZTIxd8jp(*!aXXmt5O{ju!`Z>`U{>xLvJy zGF|dh9B{2&ZnWoH?r=*}pUi;Puv~?&53tv|?Qo&ML6hyObBVUxHF8J74qS~rR&p#5 zZRy?2gefL8wAN(Pl0NMjxMSX3e)Ziv09l= zI}#R2yM(HmXa+{uAITj)}f||g*r{W5o_+_M2G0p0nY4@v7B1B3B66t7c{Wd z+)f4vM?U*#GNK`vH$jq_F|x_$aWPSsBz*oa%W#pB()0ZMw>;2iK0dXGu7zzF z-eJCFgKG)*MP*9MBBwDCut|X?*>VB9dj}xT^#{NDRct>sL5o<>P22OOKk->H|L0^T{Xogsl>Hu-|((Ze2-#y3WOU+!MQ{ICiYlvDsNrjC$P7vHi<5ujKuk1Z> za=O04nYhaD!fH5B*`%<1{TLNg?HEpCj2P2cWfzn_&?=OZ!igdx1+Z6DQ7poP`$vHJ zZ(JViX}iq{GP8-Rh54-qYd4!7q+qh4tEN6{vM^>mG~o0FW=hf}KloT09rNESMeOY1 z%c95=psN`?xUv=j2i-f{BA1R@Lo6nXBo>8Q(V5eZCUhe(O~}dF#Kd-?PpnGczs~j%fl2&-1S&q*zs5E&)X;q#6W6cDk9WGz`DjYP!@DPizOU#>-J7 z?<3Y&BfQ7nvX+bxEJ0L~PYM%}yVjY^YznViGgxa`u;*HUM=dKLmX&Tstf-FGEH1PB z4!|hBsxGO?4PuZc_3tdnlmF-c8>aN(vgq^+R=U#gC z^o6~{)n=g{n{9Msjk+XeZ{b`Zf2Wa#a4ki2vv8RsUddq8b6!GdX}E}<3YjvxuPtXX7i7U?VK)@VZ4 zh&NFmIYsRG{nDl_$&T4V%|`KDCxNX9yLwIxO$3Y$fM-(=7n5XY7;EY9@aTlQyY|rq z`pKR9_kV9}lwg_J^z_JF0v~o1NjB8%U4Dcjc3H$PC|E-Tv^6uTT(d|>(XyPwNNi@2 z(hz6Lb%W#-s@)rGX`iNsoSG^UsZ`B7(}ca<6>eO;^lLu#x%=yDS6ADBcbD9e`xT1m zF%anGWf{gEG8wppw0r7(=f;(TCy&oJ-`N8|Q>|GDw892CJdq0H$y%xHHQVMg;YliC zYw~aynx~UW-9HA-*WT6p^JttNoNn>#(>D%|&euQKw_bI45+Gw~XV$+tX#rNBe!l5- zzr#}aHe%W!agaYpve*Q)x7V<i!Lv%q9TL@3l!YZKUtLRguqdKy_N;H@<K$!SoSa>NZJ zO?|P{6lmL7m2Q^gTIKaI&8I;|rXVaes2oV3foRE#SWY%1e9K%ieCjd80-{7Rq%1B3Jhi*(PJQ5}cGxT-Tflerl~1B5%#hmcf7Jew7IPJHbuJHF!N662O1 z-^j0{AyK&|yT~k_s6;SUYuA-Z`p8=hf@rM)h=om%5NWEBqd=*DHh`GaY|02J2Lw*5 zg?Y3~0md}7oLoXqSGhc~tj3w;g-8ZT^`($;OcPo@>v}e0zgM4|#e+K}fR@w2u9_su zXB(dTd4R%gy1>$moDd%h>FoP5n+r&Rt9w<}%BDjIbJKV3=M;Y#QhDqb_AX4pBt76V z1X?x_Eyd3cl+dRzDNx?T5&;5Gd zBkO61p^^vW;FHIltGX?Bt{LcQbtRR(l`fux4eoMoE|1b6IV2%%74wdJckSys*kA1cAwF2&tZRoyqFMR7gs} z%e<_&;%dHu^8a_h=Ik96o2qV%F+t7bfk%T=iFtCO3Ukb^7A2%~4F(Kd;|Lf!m`yZC zMS>#u#lf)7)Atop>(4}S%Bk9{4oe<1wfTQkF+6^B7Jj9FDTI^6bqSxK78s-4si1LG zsvSRmZl(wv)=YKrFMfWgisT}x6F4`d2W={|JbXUfs)RSJo%jeSi1HfF(zFKHatuamP8g3K|;ibg!ITl=6eW(umx)6&^g?D`-aL@ zzi`gkYmWEFm}{S+^{K7 z4RY_bTfuIOfaK`v>?L>@BlyTM?6D{1vsy^Gpjbg+V3pO@w5^&j`evhw@oZ>+V&tmw zNE;iei3Y1wSQKFw(1KuJeedl@8yp`sCNT$lB)|u6h2HV5U9OI{`S3y0v}&ED9O?*> zX&5hn!(=Y0q>TzYp=(d&eDQd#kNofvZatUmskCS0j&IyM;K{W)KmP+~{p|ihXA29= zl9}EhC4rqyQihH%rM8dP`mrBVy!m}UjsM|Se}cdC3pf1icklA&{0Hap8^7i){p~;T zQ~K23`7mC3ev4}_Zt$TG9jC6ge)ZiKx!s-Pt=H!~e{jxgH)p>1_8p&l*M%-$o3T4@ z`9)uFzvISfPOFV=WDyw=2vC8ZY9iAELl>LIXI|JOb}RhBZ+jPypSj4xb??0^8)rP& zTxq-ARs6Bf{KM%8M@K-ubM*6?1YvI$U6 zk{(m(peXOE!ZL#Evo3|?=LjORC3>iQwkZOQULr4=^!D*bHvp^+Sk_6Jz;frz(}v|d zQDH`fgt*L#0;$Msa$mAX1Z6`DaxM*f@rTR|Pb332KMfah8ufm~joJw1CnFnEs}@o; zqAxcYnY~tGp;Yb+BwBN|)c|2tIZ;D>GV-<%=`uK*KxQ!uFers}WuQoA&MtJzV?rr5 zWTpA4UO+V?SW_{+i)zmkY&&)#2rG>(gnUbx&gHB4^o_{Om>Nydkb%$ zEyHIoORiKb6>blC-+-!Cbzx`!0s+df|75NLIf-pb_rx&F=p0g#w;wze#|IDN>ptuM z6OT8?`FL}Q>zMlvic9NVkh}P8f8{w~wbPB89h<%~4@gOwbn{cnWKOHlrUMTjO!%yK zT;vb^2-_QV5;T_?wLTs!D|*JqtWt0R2L|MJfM&%gh< z7Tn_Mvm5-=Km6)+?dnFK`sow3#ymXA%ocK+(NdYkKAV_HA{oTWn7svY_DaJ`?>xng z7npbMtb23kJvWIsxiQC&{M3>9qg7mgdbgXCoWt!rZ~5(`qauzMR`_jdjGToj)xPHE zp2g-))0_>_&{D+F(S)-{yO`SHA6qp8Uwbe52xXBZV-L?zc(eZ5P!$YfC5H_VvDiBd zVr*H2N#~&~ANYv9YJ#QWsF6df*c`yB&_My*%D0v4vs76Ncq-+JeK-s38iQkRfoHs8 zkeyXD7rBn1*eSx1g@EY4dyt6+XIaHVT{+YYf9C%CqDU?nczStN<=xbh^T$L3kd>#$ zw%SKPA*XAa0sjHHSDcZk$bhg9s!76)~LTtoLWrxt4Gd_#oB80#M z@$77iTQ?5l(fRH_u{gt`VU0SIE@;R97}hxK)vy^w1L&VyqZVXf8qu==(IDB!^4Q^4 zmJ;UV$)%&iOPsU!?zys6q}EeRrx*P*>(x|6Y!MLvY#-+5|KwDoN2sf@G}>q?EQb*d z2jP$ylNH1`KmIEQh;NX%U7Rj`b zICb6vwOBX;*DfFZk&k@*&i9Mc>TuO^?oMbOq7tj(3#4B8ChAetWuDVc$wLFg7C?3h zW=l#50GE?4a+6*Rm*dQ-u&@$6Y^BlVMo*`AG7KWTPK5J$WSy7TtL+&GFSDGpg*%gh ztmUK)l!B;Pn97F3wnYg>9Dsf34F(_rdaJ*^00upRztkkv*doR~uX!J5Y-fB95*(!> zbS&tF;h9;@FTW?jV5676Y#{d>4P2Cuv$xBRO9v}u&p&bh&clO)qeFFO11v18$s!?Q zX4As`Oiekb=G7|tv(H@pCAV%~`X)@=ZFcstUabOs+YcU`?!I+>;Ir(W3$c)Q*z4zj zK^_)4Qmi=zM9*cxVp@KJ5KHhC6&#A>8XyZ*pO9|!jtYgPt{cC#8azv0Q5b_Po{TP5 zM2KUCU&)%Ln6naxr#0wdNGerVaO|Z~!a6eBFV+uqOlaesNmX|aWolw{yR$BImSVBe zEm&X=RmTFrcJA0-^q+hE(!o0q4-OjHzCIc-cfWbxWn=7Y@K_)n!?VbRksnx3(v~lP zq}gWe-C%FLx&Wl;_A+A)A$f(Z|4tC`q(Md&SyVOjUP=#w=pCHr#MMjd)B6uMfAakN z;^_Ej>X}JV6X3NGki8(A-xM=VFav@Zd2!M6(xr7?Iyv~pi}Q36x_`7 zV-u)_Z>Z(o4su6;|9D+8=e0e45(KnFlsCR7H-&B+)z>Vx94k|GXr=M1)RsKJSCpSpHK$G+%nk4K-$A(_t_j3r?#h zF*F)y)eo@xR?#HPU2MhJ$z%CM%N9hBY}v(3gqY|Z}$H z*WkHSS*W-#ADbeFJF>TPPFxwMa_-d3v6;OxXpec!OY|hd)hZ{Ix<#RiX@!%~7eaNs zA1%1upD*jq&m$N2JuU)rZ(mY4eF)VBE_|1tb5XP$Kmf}<>h)~PrWk`#2C@XfHSy{b z_XOs5fR%a?^F>rFmZaw1I(k_w)dHEZFsaU~W4Z1ho7r=zVY8XC)T`-nrQ$0fri>4?w^;ariK4}n9+v?CB_kLh(M6& zQCNrd-3I5H!ho?5mgWo!14snglVXJ@>X&gTqPViKUz5}2$02oWlqv+}2}%_P+rPnHFoL5?)`RTtm+PIL^UYVHwJxp8d zunG~^rlpWu0BtUpBCFdvUI5fFmJS;jRPwXgc{S53V1i5W8%x<%2cs@cR_88YA5@>Z z$v|%$R8}(udlrMJE}D-zBzI-Y*}IZljkUlxZ+PU4dReMbdo7>LOB=_N=>Ahr5*eau zQBdsPKTw295g^NGWchaii&AcM4Pk7LgUhSCAA4>0=;SCE*{N(;uMzj}thm0mjn8@i zS=&9B)QCyuWNjmzF~pKesQG{ZEujg4+yyQjE6^r=<3E2Y)|W1Lv_k92#I$M`XNbNL zf74e!2tA6}fo$QmE(m&RTu?~ry~S!0;xO?Y|Kc!jzUvJC+y8V=-~H!anSb~@J{kY# zpZVDQSN>nG^Q*sfi+iv3ete72H0hW9@mqY?Z+?ldeCTT2c;|{Qf8jQse*bQF?cK9J z`PvG!p87Dq`fcBrubw^^NpL-7o7GBT$VPbJ#zg34&d$n1=${)5}!Qk1?T(>qVf zp|zTOA)--%M5mEnC54)*W?Qar*f^$=a2G9l^HMM&tGy5*N!BGqMKVGeA)D(M5-{Bn zWob?9#_a7@G}f-BL!c4%zD>1oC(Ybb#b0NEj1(d;r`NV3LH61S2>%v_QgVf-P#}m_ zA(2TbiUdrhgrJma5tBJZ(S?Thp$(m!N;ME&Q4*V4Z!vLHMv{nRk~5{Cg31E_gcV4| zM*}Fk1xqyOWeBtR#-;?L`E3QehNvf}kvo}zVv(FLY!K0N;7n_k+%;%5?A%3Ce&0$) zv1vwtTCvYNAnspW$5%b|z46k?C-vIqmRd+t+j2LzeCpQY`Rx7?zVmxt#QOS%0cCdh z0Bg_lWi&)E&@yj-<`B1zcKDay_9p+^uYR-7Z;}7@`%d`dKX`?cB?^B_mo1pNm3q<9v!aA3bcl%ZI1@yf2vb@XlnI6+L$;T)7Q5R@6#A6tZWP_#QK^b)jFd#**{2>FASn`~ISI8<#7P_3sMbRcBHYiK2 zFO%RVx2={L0LeYG?r*CCPDAl#{s|5WIbe%>T~1ui)le0bsPTRj89(yBMipD?RgOB& z2VaG9%R4#Js#amI+P2l;09yrE<#*!;lC>L%Sp0;AW$GXXP}3eX4;6ui3Z{~;n}oH` zC!?krjlNpr$L>AeZrdt~#vAa5Ie|MkZa9mWh)^`@Y}0w^WX<~zH@|sCLOmC4Lw$&W z*KOxgMRL`l`{yf_9ZvyLj0p)pOO`5bv=PTdWQ3yk1ata%&)hiSgR@yA&4)y&_lU=* zyFWQiUQ#=j+(Z?St~3h?>ZVTig3vY zAvJCQrPRh*D}os)BgiVSTVb)i3Ry+ij91;W{J(3GV^~uSRcCeW~-<*yjkF+w2J)Se=$Ga@>F{M7k(r zIVx)BwP7_dY+{^g>va2s}s;|F26ulSMw15{u}*b-o< zxJMmTdlhF8mu_7CmXE*oaC7<6Z4k1~oUkFo)g)Z^@I=D~rESF6<*?&coz zoD_+tub<>wcOK{Q;p&grE8YQ|^t(#{%F*l{AczYYg^uNZa_<5I#|MPa@K_k2I_Hg#nB}CYsNIJH69_&wr?9$$H6t8iP{U8Ub=X2s7XLJSXuaffJripF-W@M{B8YKREKjDQ>) zU}GU$Xt1&l0kK7Ra1|ujc3E5?(J0+~32y$e z?4fMU*~c}lBTzz!#M1B%u% zQtxdaU&nIaF&j26*GkLL^*N4;8CfwJLX7DLjz)g?a~D^v`uT1g?i)iRFB2$&y;Rl! z*o!$@>@a;_m#K#Y(pxs|s*x7B47(u8mPO@FTF|u`5|zZrC~T34FrQt2d*QOeA{=+6 z+5ludSEH`xE-ck`!K2kS^FGuYXf7dsHW<$v;Jr|6GYkY(lRcVRbPmhT6I*-_aW z2nL(V$cRfb{@%a3EGcmLa@Tg}(t<&4?m@re=bwTx>%rYgY;5obFE0?MYALuw^3jbQ zKJlUJaqmM{_2~~C;wOJ7+Q)x*;>SLCG=1=29p;aH@Pr2;t!~cv4Zr6(oISdx2X~I} z_FwgKKL6G4&0qYr@5^8KweOE>|Iz30-M{wT`0L;GG;o|ed~W8eZyxCQ5L_J~%Y;*< zyDkuC&mJaQYl__*diI4)=EZUQ=D+uJTzg>yHfipGiJ6Z#hk3D?_(wnM&xdxx?TedO zvs*h_5Ub@YbpPxPyl4TU*duy)q4 zL22g>i}G^N2xvo`>M@&gbzxGGog&p3){~$KnJ&MnB!jkWoE1`lO(4n6YMnD9gdj3Z ziU5?W=+Sbt%dODsr;;6r?CRr22u_PgvUk|1lXRu6QnWR8!lR>tRD%ND?r`kZ&XAd2 zj)&^gs-PsH?lK7M=z)$@rmR6iaY=SgQy7diFm2YYv8jnOQDNSx_K32^QOV%0g6l1WRs{#4I~Pbs$?(Hp96 zvHnNy!W1)Q+$yq=+Gy1>l8rgtKEF)GM*s8szXQD=$NBjhD|GCzZpX20$4_tLFZ`|R z$lh`Dg^jQy8QI7}$V5ZX1O1cwoQ(Nl*Dw6iM+rWTum5i!#P|HESMim<=oFvxfiu4I zJ==Whg-yGBt?TF-;@}GVba;@P%}L+hxdO!0&mJAcZ~3}s@s0oF2HyJkQ663EdgZ%6 zjkmwFpOPY5V?27}5TEyUX?+!XaE6H3MRvBH zz^aj-e6v43Je;_S_J$w+T)EF<)`KW6fG>mDUKVxziGspGD=-fr9en|my+~hkX$J2j(+_G~CUh%@ zC&p5(tbgvmKKEo;;SpONR#AZ}U|KbK-*D+z?QFA& zSc#JI_^`$6Z#~4((dw@nn^kcv+1A4Hh*Dt<6<9CKG%!&ePuR}Nasig=r(sOL1|2|4 zuj)K&2H}vDjYwR5L|S<)J1PX^5k<79SB-!{oJeENu(ZY~ z3y|(T6kx@+!p&K+Wz-b5S*tp$#5~5P!lk1)d;ECwLF_cGrcib^h1A2#FPuR$7{xTu z+VhmM#l+sFc^6_tn<8|0(x%t$oPFl#V0|AI|3>V?X#7Sjqv(FNg9o(5hF?zfisA;iff2rcU6t&A}}sC9h=O* zbLGnV%Gud&lRZ}#+y2iC#RgIL1fe`8G60i?0EbExG3qwkX%rc<4z)-{_^_w#J7F29 zJAYFQ&YaRzxtDadwl2lD7Q#NxFe>*L7c>#*9jog{4cnRj>FamTQpO5SgPyrC zv(VgA$Vi0zScAIQ^tRdb?b~0t`nh)=?tZy(X^|*U5l)o_!mO)?kZ$C)r9tJn_l`ib zlByt|-&Zi^iOu@yiFtO>dGqSQ{NT~{5B559y=v@Mxs*|c(+Y=?!VjU^F9Yu34pcd2 z;Ef_$ilT_t=HB@zCPrX*PH85hit7y0^M?!%tG9`mw}N_nchI&nBiDlRBJ=UaoCu0` zaWk96;w8!}Is?fLv<6^CbV6O3n5t$lB4G?*qs$J@8G!~=H#ourHS4h`c9auYwZbwP zFnBB^Gy_8&$R*y42A3^Fr10`nlwv+;0*%caX9*I^*|w;PEbetM+Z6@sE~&F7t^hA- zE{+4)L{YO zbzl*=7#vX%)zvC4OdRzc3m=t=UUC6Gs{wt6iicxiVXyKq2i6OF0$4uhP`J6FRpQXT zf4-8Sd1fs-U6q}i0^DI4b5OV^*O2ItJeCI}%N8K$_7Mjc=-HC`G~Kbq4dCLssxH{u z`oQ)vqojn4ABEZnHgZQbdtlr)%fHr(5ML}pt3)09!Nxf(TKbHeqq9}vyJ_^XNvVI!C&>y}n9k&q>>hiiFf-(Bz zk-f638CO2xZr@;iA_6cvMs@Az z!?zF*5Eie|EI?U}lL2Be4q@(l>8gJpBdM&e>v&y-UF*L)2sl7u@mXU9;q?AUt0tF- zU4N#RClxfT7waAgP9Dzmy2R|eJ1hRCFTb7084n&q2U8Mk>elN9 zkYzEdiCQIX*T<;seSMC+^3=IL^NAzA{_!cV-r8{IdB&V3>E7)%o_^`PKl_d|JbG)w z;h~UVFxk~f^cG}zlUS!NABnq*otVt$pSsY+#eohFGp}9U=;fCl>5IPXOx}2Up%Geh=4UQmig(`p zD1PM&-;FmL5qw+LO@dti!~?E zfD*H}mAI!vYoh%>OgLv92n79N;3$+Qc=naLcKsnP}u^ZMxk-moyRxzMb~~%pa1kv^w-ax)r3`B z1-RX4e(9Mv^TC}f_<#QSm$14q+eI0e7%tM6d+bbs@2eu8)Y)<<#gyM8*({^5_}?4SLc_V^!t zkZ=9%pNUWXtq^Gkl#sb2ZvL+oLr=6SyGzBAna%!(0V2eeGxcy5z#d<1%YyXEy4rR*sw8juPv zPq(rctTpTbgdzmZ7R{)iwf5_O?t`u^@c2A*)Tmv@e7I8Y9k}<1-#gU^ce2`Hr4ky1 zwf!86MW}o|Mrm2UwkVWPV8ra-Nbf`3P=% z>uN`oc@RMzXdV{StT`ekCK9G%6gvHDFmGGeEWCN)zZ- zq{@@4W6ZtPfoGt6ZHE$=d+dh&9V$Oe7hN(AOA!&&oQZ442XEfHd-|L2+`DMcTs_og zp1ZO+KN(S)F?MGoa`?|ByA;e)-&CMVmGeNM(B;gjf*P2}UPOhgAjVL~0m$@nJAdD- zf+(Oio;xs<&2uJ(UKetN!SCE3jYIp}pSrKx7CRm3&Z4cS+gB`N}J zSI&gyA?RtvFAh5t->MOYEL4e7dAd;r6hA=M0p+t-ce%M9sJJ*t5Y2U4YtqRLe`}3b zX@Y3o0&R8h8{d3zhAYPnsXjBID5pX}Y?$`ji#?Vb5q5JI)vC!jL*nM)MLRv;{r-b> zm>C)6S(Y+W0c9zftGU#J7z+-CvQrypQI2PRI9ej?1bTv_grZS|mDM4o4hYt+6|~r3r7`ew>Gg@%L2CQ)8zBQN8YL1tyiKF~=EH0vTv1w*#MtYJLU4?$b=0!7o#W zgSr3)Z;=w%T1ZNkFw);Nmmlk9Xx$;Uf!hd_lDQZ8RV)1#t_Fn{Sb5btlL8}w!l9l< zv+Y{xi-w~CTbnVDa?{{4lt7>T86x_)(`;xcZKdbaqe+nQ3$07&u9>K`%Uh~! ztxGj)lu}KkthjFSp5rkv7H$TGc@r_t+9EO-R6px{w|W^vSlcV@jrSaMD4#nQvB#Kx zD2k{WRk1wl41h5#x&0e6ufmLs4ftXl+ofU7nd{@BE7>?0CpF=C|1Y*2NsKP~5 z951<}O$6$_y1BF1Xc?3mZuD3b^cAxAi3B4L*1a5gtcY662?sK&^V93+BcAw<6_Klh zz$L2`Usn?{{tPyhjzVXiRIW0Do)9WT<} zCb*9)K4ejUrSGYKo@>v@Sd6nrIccm=jj}>LhLIMj5t9Wh^kd zxi%53Cs7!79Gb@cC4@g4h`t;c1Ik*w!R18bNgZLTJM)j5Rx7 z&!ZIoa4|7ZDGaP!5^!Wi7o>Wk<7vzYq52xwUto?vvB!an62(yiK2T%qB>|0N&hc;K z;*akAc$TqmD&)8XD)$us`d9{%V-yUiEB}8u=>ZJe(gLiA2WB`%w$AFvlDn=?8vtii2mwXP@8YvoBoW@MPw6 z75W!HaJ4`GUw)2$$2YwruDp1PXRpnnxwWUR&wB5BFZ#Pb|8c(e16#fDwk=Mfo&?*!J zTS6*1OVv$1t*G|e&!O+BX4~x5vKb=4m^=&9nAJ?8%6>=+W_UawU}LW_40p#l#t#u? z#w8nQ_$uRJiz^^b@pr!T&&B5a z67FqJGLXH`>ugjUzrFJtzU$?_d$h(gFYR!?Suquy>}kOyhc)vA5bMVN;Pw&T|5<1G z^5>oD)lVMu550PfAN;{Xe(?K`<0pS;r62phr})@UfFJqk(1(6vg^&Emp+5AJhw=Ky zFYDf0>x_BsS1)h#3*NEO7rt=8r;bw7gz1Mqcr7;f+WcK#_XgLOH+t>WruCGVy9e^C zHPc<~1vx2u56q9}_^O}(xFLW?kEY&MUA;#(Mqgda_>S+p63{xYUQKR#WHcc{k>&px z46?OFeLz5%g!R<%_|%u{7kycei`!EyatcKp9S9E}3E8JVKNU`}-9Y911V)*YOX1Qm zn#(M3yr1w3bD-7CcTO%sx{qR{EnTnwH4*EnxWfB-ucCBn%oa>ADBvGpl zF@*_Fd#P0pmsLe6Ai{*hP=reL3_D?u;(B?`!|!&k>4b&V?k!si1e_S#L^s*x`dvbg;0vEquZ^CC2g=A%eAVFZ-YWMs@}GsZgoIc5%b-5 zEen@tFT%uu0v0n>nXXa9Ynj4Hc~PYkmNTfWEwrc!M<}v#xiIn=Nv{S1;JoSIpJUwx zX29c>B2EqtKm6)jk4~>197t&yjE8@PP_#KSv!N@4MfNa7*o&ps0tq-enBtY!AL;1m z=xlUVZC+yMFy><;f|fc>#C6BsI1|@s@|AH;;>qwz~i5 zoG-s{eZK$j;suU7C8=MQDAjA33~83x#R&gSw18WO7HD}xDc-vPzeC0ol6Gw zQcuXboP@2+{NOG2>z9rXrdMBo{OIbXqgQO5XHk)Iu+@W5P<3_6GhBr+s)?GFaq9V_ zre%EeLzM>DN3c^Su&N_G)WQjAuFZi-_v>@EvY3Nj%8}gAXBZby=D6yL+gE4ob`lG<*eCL3ZeA9Nx~!k6}<+~1bUIj0ZRfJ z5abj@OGY#cn+zJ8oP-Lo%B#S0#1$d?AhaFV8O|BKEOD~(#E88vYs)*oJ5OhEizr-_ zv^d$%sz_89@unpUqNuAB>&8fKx#dDwBNN@DE+{09F)fhw_h69RaNw^Em?hp_pb!R+ zsv;kV#84NF+?I)Iu=^X2=A1e}Opf_9w9FB3x_nMrtC(z#*1x>Re<*vusP5IQBDDuO zU-2oHIA0-|Ba7t~;`mad=BMlH|!yGt-(;@fpo)xAzL zo?z%?;gLGm1`vfwSm#H!2(R~mPDCrihB~X^@sGNEs*Vq`3fL+*$}cQcV`tD4k_(SR zEf*yG68A2)4(4^=5e2fxiyWiSV=Nx64gvjp69O7)Y!?``rbwU{X@ORwG$sK^gBFaJ zyc`M_dR|^rL1J76`Xn0fC5F_4BY;$RHH4oX%vle1G)2bc8P5a2F85$&fI76109d?3 zsbQDN0W2HEmvI#V9bO{gKUB{RDDbKZrWIJtr@JFcRMILnBuCfPjfK%n@JA|Jg7PPh zN>r&{&45z!w4unXpf~yX9UUEi{G)GdA6~yQO}#7GQ_kuYdJ>c>TZl?0ou{e;&U4cYZcs|H$=r z^Tn;6ehS)UM>O$#Lq0wg&(F~wZ6h`t;$jn!sC8>#kkK;G6aX4KLg6YZLBy(1A45b& zDw53H?U?JM9&u%Z-}RSYj+W8i_3T+_4hex(+v3yr--R2uKB3?9_P@rvXV-Z}orS5w4&@PDR;hW%0kgy) zge*Cd5L5#KAy8=QVk}NCEP9TFCdHVcz@*wVBrR*jC8c|}Qh2LDriAPWm8J>XC1!#_t%^8q+=Y7b6Q|GPD{lQeK6~voymI;+8YZ-L;pTqbT^PCavL#?w#DxN&2bhetiz6#ew4WM(Is>P%P#z4A#U!22 zL#2+d;II^C_5Oh+HxXDsT=lIMpKx~ti`b@reGL5%a<*4qw8E@%HcNe85-=A8C}o{3 zVCo5A@MA*>Bh<1;K1sz4m68*)15Pi(u)gn7+g8*pvOJTej%$@;VMSEoF#o*{VCJ2C zi&ZL*n)JX>mzmVdWj~Th(jp{F0dvq+Kk>%h(|fJ0S_CcxOafI(EJ2ZWhDK=!1=_0s zcORej_rLSz^LOr_e#KDImsdk!ny|6%AdSMG(Tbd5VNv%!5*8v9bs+ovTG6CY^8+Lv zo?X2E9nW2P$K#6`r2Tu?LYIzKeC3T(Tsb-VYZJ|+mH~#J@{^<3V;a;s-rJ0@6_ zm)W^glF8C7!vs*0fi%60W${zt(NW}%0@aKo(CImfM4~9X(7o_G3sbt#sWUoZ zUtE`g5{LuYs~jL_0Rc~z3;~=gFXNI~R1?wI>cN(Jy6PfZkcyt7fw4HM88N(sT{>4G zPgtoR#`v~>-IvA~_pdOsQ<+H*PiKtFV+gS*G0_rc#XW05Ld^C#GLqsvw2=k z4VZIjoi&hI(=)A#eiAtoXx_Fv3zIM_dHHC{Hy>R5KQSbSIov~i_L`cW?gOw5c?Q9PmUr5goz*$i@`VnIV=6)1E) zmb3&BK&tjj$yAGdTtk|}o$AyChMNi+HB&P`?wApd$8!MQo9lCsMJy$=>f4$aZ{t4u zoduuBCxp5JZ`?cow)ec_+U2vet#*CaS3#a#?B19dXR2d6;;7vqT*nUH&w8+`eaD?6 zN`YGSE32OM0nBU)*RC9GJ>QP;UI$0uY}Ca;#-X%(J|BypI$YoN@V%`8-Ru#(a{2J? z?T6>z%5OvQ+B2V;?FJ^;wQkdRqs|8h-H4VOtB11LLpO!M~ADUxhFa@-DvVJD;OMHfX9uoK4`hw%qs(4jmE#p>0$d)As>tAqyQEN?q?L5c2h1QVT-d7+Wa$GV@-wmj09jz zjX~DZ_!{H?-LR z$Nfj;>uPlOy*A#QxAVEjgB;_74Pe7!0v45%+ITRz)W?3`eR=k!wMVuQ6aDsw{nlt? zEzh8<{vMTp!p}`H&Uaz_Azr9@CFt+s7w+dT^s3*r)ESvv^1BwCJ3e?#W~poG7WY1Y zYc9bpG)9!7UIdqs2?6CF>A$R(M^)y29M4N+%F|Bi4rNxX=18s;_^KmXrFUJ-(E-r{ zEQZP`N_ApqNkQt1Kd!x}VC$OT9+;|p!di97;Gdt+GC{D6;g4oL>IF;445T-&_;XcZ zW{@^cCqR}zRszrrdpqWS45^e)`^g0hHAi=FbmMK6k)WCrDQlE=6oFd2ldy~*?Ey5( zigx+#<3HSd*pE<+uad0)!t^su2NhJ1CPomcfQc-Er{iE1x_37H>y%}SZ|@r&OCc7g3Kz)%KNz3V`2S_vhl6eA60mv5uYyz<;8e)1=;#_cyI-h6f=SByb4 z#r-z}FTQJoThDCy=&cnG2?AN2N!nRZoe9M0Mbq`?=Dc@j+y3OYKh=KaH$IKChpRli zyp4mS-E`%JO}y=z!$9-Bfgoh7h7UoJmBqs;q=)G1dsMAd_63!W0$W%j zyU137Y0fg*OZP_{>7#Q(DbJVGKa{hE+d!2vbi~bPK9~{QxzGmaho>LsH zAM?_UnP2}m-viB!H(oyHuCL%#xDMK+XR2C2zFrM?ZwIcwaG_uN%g=c6nDKo-y3+Uk z;Hp15BQJKn<-Ap{&L*5}pp$J|tv6V$JGE-DI+z3OlVTG`S0C!+(&LDOP2N9m+@3|= zf0)y!-vn;|aOOu}7uQFM!-=t;KuVt3LubMZSJwwJ6N$>LnvMIoeHxKb;UwjV`=lhSqX`)+G zk$t^B;74EUw@)sw&r$iM69vR7Hw-`QEb_j}xniuHbE+Wj!`?%HG{8tmUCIJ;<55s*+O#YvkDxkXMJXq7>hDQ{`|u_sHkypfLM+Es0G&n zgV3`;L30*Z96vJ9dseg^AjqU=!s^!?U{5Mv`68XhbYC@8tYWIq+~LVJ)WlM09x@X{ zA*Td#-miv2&%#Uo&FYoFtKkBPt98Ta+4g%LpI*e#s;!mbS;PAKWnh<;Cm}|NsWt`f zJ-CQxpFY_zcYpWZ!;6EdRdHPfncq{nur1&oCi`;`p+$Zeni_kdngKFdL;xy_lGF1Y z!2H)YpSrf)ZMxjWOPm~X-fa5n^x^j3u8*S&qUt$9MW~?uPLFy4FfR4tE)y%+Yq1;( zj}^X(Ugk}6)>5{BVyx?hS$TFPgc-T25+tmm$+;jP=8hv{r6km0gfk$Ou&m`2{r|PR zEk@a1XR}omq&{f5vQ(;HUp%S0D5Z9N=2MpsHru)XhaZ3K&UE$a+6XsA*+W)Zs6KkR zjzq5|?cU>~fF@aGt^{VfRct}C%k$0E2^?L_%Q?(TLi3`K?c1$e$vDUL#R2@2KO%q@r z38j=Q0cM2cElg8@q*^F7BdnSYDA74(uO@Xp;GUkgLe=~|%i}#gDKhdJP{ie;u2toV zsMuDdf?d^-DLi;^{<&{|=F+b}TCX+_FJ@(?vgah>-`JzMCZtr;u9d4iXIXhpft=?m z`hEU}0ub_NoqMiv$9*=QtRZ07eK9j~wN=0q^|)R+JzgTj;! z^j(6kTw3#$SMTxa)uZ3Gia<)!fF*O*L}THlo&y(YA73@{E&Uwk#K^|xUpj0II=67o zIn0qOD?S!e4}l^*aws6Z5C+-CR04a69txk8+Qfc ziCq3!k)3eCHSSw>bI^f;s6~Xa2y*1WL`DplU4p69b~U5I6tdVT}h?t_SLWN63fpXdt4Us zzVb(+#4&}r%r*9f+|A;$kaeHoJl(r33ccxAeMX{ZU)7l-(55!>sAH7t*Tk?95K3Z3 zW>+Q1s*x+7q9%3H|A}#2{2bAZeY)>$S;h5*I32Mv<;L{Lxytn3AeaR3qpW<)$|$3; zUA2R9;PCYSsKu>?3>*Scdq|$dT6|*Kq{!JW|DE6-?~mpSvd(M?Vcbara<0c(zi-#g z|M`}d=tDxQ25~RT^)ZQraPuw@pb}kWr#fs3WlY;_frrf5ME|JEWOP(odtdpo)fr>` zzJ56#q3adw-&;;;Ms3t+97m-@EdHR?eMfN-##==M4fN-`V1!)FlXOF>8lNh%+OfXQ zeu>FE(PB%@F$v>|Lg&nk8lr$33-kE=utUng(hIXuc`hsGa^MIS$$|t%ktQr#9KYIx)!X< zpssOtF&0YzUbqoaos{aX1&QH#ie<6_@CN8y{yrZ80_bSVrfvV7UYOCV8|K1qh$-xq zRWCn*Xn=YtNr3%D%2rbs{_`A`1X2Ht!^>6+Xy8~BVe}7W130@-?gCpZ9=ja$Z54Z> zFfnl)z^mu&PrUh{|Hn5^I6u0eT4SVu$DeBWiZ8yOm@at#&A^SP)i^dXRRA3VaxVXL zuKg-4wj1L5RpI{bEdSa+xrwj+4R<3x6}@i)tF`pz-Kjl?v;LdE>b3Zz-}?64zJraC znO(?;Kxe@=YS$BoC*X~Dtno+w&JCUB6mS2W8Apfgr)P@bEQ!oHGu0x42r0UhtxOdg z!O9Xb)PxD3Sr{0E{}{T5zrAx25Hc03P$paJ;ts(^^b6_an8~9@{FQ(7J-qW3ySVkt zgM9VX>ybxYC+o+2^WF=1&kG;ZAOC{C%HR5r{|7wyz@@y>9<~H1D!o<7dbeKPKLE5B zvroVCtQV#km08DUfK=KnJhZI;1ApK1L~U>NQrUi9$?Bb=fiBrZ*Kk0BDA1 zohdNO%$o2>1Eiu9(2FNmNgog(MPwkfg_FK z$(ceh)q9{#ZN?@i-8;RBU-|a$z&oxz(oetfVyxRa45gin^Y=}wi>aMj_^6-T1h3B^Y{=L??#=P5+Zhp+w z6ia6JxamCauzT$ie)n&DHKxlOyn6RUtMv}dt)`q}{XBQy`WG*)u*rPp>2sW&h9pD_ zB<2apRO@U#JOZOGM2K^r;&6q2_CSGi>KlLEE9?)~oHyHkbP4Qz!g0&C-OajvvHb@x zK6BN@ZIr5lgOnYMs4M>iXT-n@S)0$(TIT6)M<52FF+Rsc)R>(TH1=JXMhtI z!Xn(MFMoZOwI4(@U|N5}#l`kF-nw+aF(IsA7@HMa2txmy3K-8Y8#@|Wazry)$u1$`#4o)UNN zU*LT1AO75T-#otm;IZ1oE~VxjdHMKo`l*lJzBsvb@Z~Es>^j8QlXbfSy$PF+?F6g{ ztDF~QQ9|M7fESf%X%3{uxOddl3ejqM#o|Yw!0bRK-+$}+F&>`J(UFZ(m(;IbUh9pw z&aWLEO#r4u=0X6Fz#InRw!$eqmaM|9E$2C*Y6{Xyo{H!pe>3SU-e|t`-AF6Wa9?q&lNb zH6={I0t>+kfSUdk=^^1HTSr{UUB|SBcD*4`q8U%iRg=%bA*+TN6CMSfec^Hx@=J|a zamL@jFNJhT7}SvwU^d53C2Wj6W`+VCa`78QD651_@Yx!Ate7U8tmn^s^wr0Af5Der zx%KdDi%g(}CJEWq(7g9ZkVGgV5+U{81BWZ>#?{08;h%bKdvJ8=gJ8pM&Lu8k>19m* z98r@Hkaw?z5OYllP(Ur!Lp6B`7x6t+BBfCW3d3?0V|NNm$zFfY*ym(|O=vlw|K4xd z$by(txOcjJ>FMi7t!gieYk{CVe3*7!OCh@fQVY;#UK??mv;*4&?SNW3gBXol(!_Vw zJY`Y<$?n4)uCI{w`$l&>W;8`Dn{>>ZTF2wl9a_ZqKl{`P?moO=Cfb^b)%sB97Z1Mw zTJLW#lJW5??f;%Sy6&Fk%+IX)QlfhP@)^(VsMl~ZyMz}z$3D*eH>UM#p7sNDW zbV0#b&%2IkwTAkjbsF}I5}mVWdiCCu1eX=3%EQAcH}mTAUwPx+ho8TBlK0PNv4MTo zHh|_=0}@=B)fo<#fTStfN)Jyj^1W}nbojAP-~00?N0)xq zn!&W%xmnXy_+$F@@a$7Zx^g`I?$e9;k6k*7N71+t zhDO!piZFOApmyRdmwvgg4T7hDD`&78V(h=>nd|F(aK7V2^q{>SQrHC{DAG;C$B)t_C+-Sa@j#E~*dhLbJo91O@b(sA)NH zU+o2;v5N6mm`oqMO2wzK06Ju`gUb3D0vc-h?O-Pd?x-epuV2d~GT9$JzBs;lbleii z?N)3@Do1b3EjS56Of-}3W=QF-iS;`8@bURmhX+TmG845`!|_lv#I_J{lrWbKl?52Z z38P|b5!n6ZM0xZxmRb_8Ufd>YJOLd5KV{{mzA+=gXBp7p#_1rbB*P3@_ zcQ}4_&4bj^Zj1uW-=UQIV|QoczHG4bubV|gO-w?V>wIH0H{_f;^0a9?PbBYT5~I&P zi0roAvr^9(tOF%NaN|D{XcOHqDG3JE%_9~eUTLHn7A%1>s~>0l&cYf%Dchs|S#fYd zPs(vtso4F`t>dY`1Hf29YvQ|peOy}-L`U{0do7f;xByJfUllW=jZhZmR|ZQuE-AhF zeNTJ(thP?f;ibzScs8f2EI}9ith`{uXIy3is(ym;lf0#;N6iQgn@$)zg)cFB6qnk| z@`k|J6C}w~a)k3ahpznze$@;Jkbw;INE{M}4s%SSOBDgmRSSd@L0_yKog7BJ2@ShZ z6z4l0Eiun-yhv6qH#iP2?k_;`-J{Q5e?JO473yTw#H`o`3bpyq96V~8IY*~!1eW@I ztVSDQ0uMwV4nCxtxCT-#kQ@U%t}zx&j-Tm~b1p@9YJ6r@{LSU}sye@8)MnW?WCjtn zImFaAN3nyUOu*>F_0f%o3p2<1MC*g3^Z{UwF~BDl_f@zZ_99SvtPd*XU~O{Gp(p~z zIFP?q-BJw25dA%dl7)M+AJy%(sZR}=iv%6zn&psK*8lhT7 zjT4n1ee`C~BPrd_sV0cVH;3e2;!wHNfI5c4Vy@?y^dX1>3?7}5Cqa-^3*~;v&r|N5staensHb#n-rUF!qr_U)ApZXsTH=S7}BTqUEcgEHyB5q+}8 ze9d8udA{nYt=3!csKvMZqszn!IyvgOn~_sX<#y^9Zye&c{jvu=rsTc*Ay#|Ze534< zV~=+c;^m_`kJiL<&-5M;9-Z2~ahsj;12HwK6haJA9f%4Jlw0?1J|Q$wnO)^LSI#y- zGE!4Wo{lF{TdDSxuozU37Uzi^?ruKeC^&d`YrGJ zhj{lpKf>1^KHb*XC=)4J`wvp0*q{h0$PTcca6+|9kE6U3nHdm*QenaxQwiX^MtQzPA`@Y$2VR7GpRy!5cn zAhI(89u27R0r&q&bjrf7riexuU0C|j1l3GHGXW%l+1+PTMo+oh>RZ?dWJV83lFMQ= z5A2JupEs29_U}Y6$H|q5)~bbR;?9)CGM`E&BTGi_+uGbhuyCNe5e`Dl^ES;J4*;Oi zMmN5j9>uj?b3u)OpR}qg;M&EpOlgL`&TbJiRY(y~*uW&Bgbvg!`g>Mek&<^s2Zs(9 zQhgA50;NrM9P%}svU;l|vvOPOfi=6xz{F?b3{c8^Y1swz%@P9k0B+ z)1{Xm^WiyYd?vvCGPxZ8-kjWrM*wL+mcR4B zL|$s<--U6|RH}TZaf6_m-|Q+M`~s;&RW8oD2LI)?Ta!UciK(uo095_mDAJT2K=&jg zjU4OevqsU)wr7D!^BSc}9gu#o@%8;oIgal-&>l@xl`3SI3A4yut6}Oc3DqPiMI-iL zeqj?cF+vy#%yWXAhfJ>;_^iikyBGwPNsUFnB;%Lt9f^+KF(ncQtAii?&?^@oT(cb= zHLiAjOGKZTQC5buZf@(W((r&fR`@UFf?RDPi4+&)nJK;imu0=f3mlcb;!kyR9aH>>cg$QPbJQ zc6IM`^ZQo^(`HW3v5%mBNR^Gj_2XsQWS(4xS-PY)X(b)Sav)z_}}>8%6=;oUSNuRJI1@ zM0xbkdv5|c}sQ`MG<7ml((K<_NC->7$AwH1Zz8JyNwP4RoF)(+Of?AbpE z?3Q<ae;1QFr&00b00L812us9W&U)@|aTaNFPiuBXP(- z5@?OsJ1q^Na#6BvROPS{d!yb}r43Yn9@|~VdNuvmtHTu~*h9V65L@aa*46~{?0W90 z%k86|z9$gB|8Sc6SA`&uz7eiJ>{& zI$W_6u4`%*8m`49^<*|>d66Iv6y$P+eI}m}Rj7Cv6MubZ%SyFOl+!`Q9PX*V}4E#UyV%av|4bEmo>li3^Z2 zfdF?MSg%&8SyO<>VL!Eye_TG3XmxS8Yh`?g1v=DVO}!uOiQU>GH?%j#(cQce3x7M5 zrho2;--QdZ#4+Ak}p6(8RLsGg(+Y7NRo<7sUWXG3O4F*;btBjwmw{v&?2G zD+Wv%=$sYk0vQcSc1oIoK(GP%iNb|rfQ%HlF*C9ACTD3N~7I^v3tP+j5-0; zT&j0h`KbO??07G=v;U0$d5(CFJqBZ8Mo(PS;X++(Cl`IQg-!JLb;@UxPO%Slr;u9;BV+g9#vN$E+xfCX8pC4P^% z&cVY}PP77DMaLD_DWFf@uaO-0H!Cb9T1^;?`^WJP>W;8I@$8G-2H_>X4aJ$dKJrnI zWhxJW{j(dtD^O&3J-&KX&Yg?o0J8S5VrP;6BlX4;lgsrPLC34CJw^M%#_`t7iAndU zA8D@K=eZ3(=7G29hD-y2R%`ewHnj0$E548ENxybK!Ct?|yGQ&T$K8lZbBh=|YT8t; zsk{TWYMaXEQPW0QHCpUJ9+qMr8gO@fAQose=(Byp_^kugR?xKs%{?Vmu#%J12zXNk zOuxMPyQnJKh2a53VPD`nv7{gfpi?NswtW=%rp@Q_owlKU7TM+ESJcFeO>>y^0rM~QSfJ))W3VI8Tr&2-4 z4?e1!YocQBxx9aC)zcpY$N0Z`rU~qW-{J{1E^Ab98pR#_PSZb!P1WVBf>c&!bBx?K z;_Bt~=A&=)pIEgP(-cy&O|A3MSpM9Vrs?+P zsW@nf$W*9{=(c)6rdohrqR{~^yH?0D8i-)C%a3>8z|qUzE}k$7+A9Pb=IsehF7PftxIe}dfuV&NFl7%i++RjAnmu%R>UD{GI|ssgM`Le{FH zA$bU6OemUxITOJUW<*XQ)vgBjmw=WGc14T<9WQ`$l1RT5Tj^Eua8sj(-ICeGuIfD2 z40atsFC1YqQxS~B_S$AwMIb`aCQ*VK8?u2QGb1E2ICq+y5JQ>X z`0MSAZgv&T)`nR(q<}J73pP7_O>M>Pyu$6%=i}?%`|Z4T>6QG%y{EB0@M+s@!55!C z=bwH@OjkFU);*C_xO2rx%3e|^!d4co1M?QTbY+fMBd02E)pV{f{@896XmuJ51<&GC#nDOk>9k-t9 zc?FR`h~=EFQuM-p-dC#VMfHChE~^hkE|`bKQFH zS>E~hA&#aQDaO1-+=9Pid%t%tay?~Zv`Jk!z7+iMYuocnN9!N(-i5X_&yA_xxDe$|YrUFIv=X~+-yl_x30qz5izLaw*x+j9s+t~Pk&6Yw zL;x)-C&N1TWGUo}jLZd_E=5=<(AA3SQ|a0301oh&KJg zAN$0k-P2F4w<+x+u~h(_EKRbSXxA)&Q^f1{h%4)gslKlQs_f8)V-pKpQ2 zK(yw>p>_z16wJ(0(&G&A4pU=;GYb!5! z&z|$OD~J6jK62-c%f}~Qzj7hd4LGV0wo#}Hv+_4!nv?Z3lM9SqhtRHEg{hKIb)jo* z4LH^5EljikZb6&vjN`+DFVb#?GOUQ2qMx15dF}X6kIv73)lSu&4cfq=tH_P`_bfNP z1Cmg$G4TaQ7VfR)#&Y&qlkBCI6C|Yf1+WUpIU_DzYPfcM^zI-0u{R%HxpK_as`3Dr zWdvfLs9a{K*En)=`Hp}*u0Qq~a9C7u zAwyJZ>+KFWJcuS++jt1DCk+%UT&0GvAf%YO*pZm89<8o=VXvRRs`wbhhtHprtoLT* zg4?Sd;pV}(jD3(3teC*1UUC!NfYn4zc~qT~+da3Z)fcyjY@3`%7hn_fCvO>e&WIM+w(-#r>$HV>-rP_)BP z5RSMpxYnMY#vU;@bHu5NN2>T%@kkZlBrFRU7d3C1?Dwt%7qLV2*mKmD&1%RhN;_U$NAPLPiSR+Xz2u^bW~L}6`3<@n>c7w+d=Qx8#dsH&s-Ep75rmV-e}Wz zF~(sjk_2$y$@P}2(RE8~yKw*E>5shco!8&B?ds>-Ia**vV7`3$NUy!|@cyOa_IO+? zlQ@IIe1g#6sNgK9;<#I?)RFddHb1F2nqob7jv>7&*b`FJIEMEk#gHS3nsP^S{svdh4;MJpTSz!qFb(yV$5-M=YWspkb%t5rBDDz9%lJ z$qC3^CLTV#$oIbe`nzsFp8u!Qi&+z}&jqw4)?!grcX#aO8TE|Ze*<9h7fLD~BsqYZ97c#UyaNt)9Z3&v)@)j6H+N`iJk;D*qMLxd zNYTN8sB&!P*pywP<3%`*Hr+y*%4%whA$_ymLmoN9Q&gFbt7&cHT)Q-y7tCZ`Jt0#87Fh(`D z_iFTRdoRe7Ss==^8tZkt+0aXJf2tdz~IV^E$=BXOy&fc-qeSM}vzkBE z5%eyYlCBomF}-0KfpRcL#6%$G?{q+~?`wtDDis5g_0ah!jkNpI`aIrkN;a5uZCy@`9*JFXe zi#=0)m~w9{5~c!C=a|-Bnm(#ln=Q@<40Ji@T~RLMn8?=%~b;>*q~KGbw(h2YfQ~^!Kvxol7-@lH7>#6l& zGG}O7i4RT#+D!4^f6c?d=_-}tG(lhn1{h`3cutgtpOU$Jn7tpmNNY>Hji5(8g$77c zr0l&-!YjsFso?yS8_A(5bZi%;*|EZt{O}>wFc9;AKx{X}GcTXVd@B9XzwwSZdGSmW zq|KIr=xEc7S8hMcU;M%k=;uB2L;UpF+ttvyntBi|f|;iH0VR`e`!xa15VR{=3K2?5 z%w&>aqgT_WQ&be(bLjQXLvILht;%L|Av?3SlD9*)bg}v%2w1x1`HKJ}dk?AkN+Tln zom@Y_u1Z=2Ybkg@UIs|bP!TBXontp{8`E2Z-~&DLJrN8h70B+n`+#|W3G4+}B)1dP zl?gQv^qR2Np=?1?{+-A{zL_g)QF1^jg7)DJGNJwb351j_Wlz7XErzv0i}h*iV$Q?A zJJD?OQA!+pxgmQB2CZG9l3uhkE9vbL_Tji#Ta&Asi&(P!iFY0sk6E1aKAcyunD zU4+ihCY*1G^Rvd&$19wl1hq+SqrMCOm#6&SN!k((>JMX zxcw-3c-YmISa;;%iyeRdA6*Ap!}V*hwTs8koQXO^;v|+RDwRP{J)o`cxu^^| z0Q72}mr$Tcb%Kc5AU4MRZhNvDg)@d?!RjjlElS1Wyw*vKY0YXK)aR&FIR3v1bPnRa zSX;p4;~@Tx$+(b#w!PVttWJg2d&C0vFkq>1jsPmr2Dyk{quUq{>507G3nyVA@zb(l zPbKzVg~}-Eqi_d`ER|b6))Ar)Yl=}6Vn#J#5sXqQ`yxh8fI1Hj+r3Y}cKVwxHd^1h zyl&e~Ho`mNlpPXGX;^rWfY=ellnuc2=AAQ~TyFa8_uTsGM-R^)y>ajSKfeEX^Sr%$ zXEb`kgN4kq3a(b49r6NBzg{n;eRQ5z-@JGFO*gMjAOC{Sdgj*IHg^wC=bR2!$YkH` z=JwoE2l0tl?yW_<_wvzXr>{g6HATTtJ`COR&|cwh6rMQ<%TjNaYpnmBgt{#kbM^rl z0w*V^$|*2#-pz@FqxH`-S))V{nK|ud5i91^lcO)&Txjy4DkWGLXPN-?U+Y1-bj~XK zOVOXs;wv|L_PaMq+Z5IGDsS7Uu%~Kx2+Hh<%U2IB+O+!FKk`#=>80mRsO)LG%%W&o zQO^d-%_p^$dW9>=UMf)wo?YnqIceVGZHsgKTx*E{mI<0(=alvT=zH7^6TuPHINJrJ zj_uqpUpYE_ao+7R7>FsewG4E2GHGoBQ5$@EYuOXI+H5Hxxip|x0|4>UsI3c!&U$IXCA(O_1g;NP*vcQ9fY93}{y?Qrzq(b-RZ_WPdxyltQ7$7j0;L=!?mayx6< z&G=i#$1B&-^7&bE%!osMklCXiYmp`@B3KP7zu>4E`lxDWf2h?&gj3jch?QM26bkhZphQm!Eq2t+!79_HM5BR5h^oyl42?LxWLr9vy}6 zxXwAll90fhoVUA#FzxO?n!TYe5&=a7XSbG`cALJsbhy^x;dJo9 z55M*4o7a#3$P_C7d%0(cl00M2BQU)-ZZzWDY%5;Cl>@AL70}J+1S3dczQ|wNB5a*k zqKPCr$tHslXa;lHJj#e*Y&Wx>x^ak1exAB8XYoNb!RQ*O8iVR3ri_Y#^=nUbsnq4E zyy81J2ys+nj8RR-BH9PXf$?`5i}u0)m_ey=zP(OogIP# zr&E6?AiIhkB?q)_Wv~^qphj zbVIu3815}gwGR%}6hk3T)-D4Jb#kc|p04=%1&a>R6l%IyHQg+km```} zkf~w&RrufM)-^<{XVTrAsK1%ZNL6vNFm6v>Zk06Dy+(t)Pc;ZlF{v#YwPQNd%J*1|M>5G4M*gPhDoT_L26rTlSB%+;ujfr+#F z=#Bt$>3{~2GVBsGfO&Bt%SWlC*~yACPW+j4&=Nf6h3XvX-v@7Fw8jYWa{e6j zT&;TSgIgu~<#UbiT^Dj51*#Is$Tkr-j;4R`!H=BoE*;AgQ(&&vz2A9d&6mI6BCkEY ziL*D>0ND!^NCjsA&O=ZbqC%3`Iw|y2tfJ4ng!pscbyM?B{i)+wo18eU`c9g7|J8&3 z>%QtCR_!d_dVR_^fiq=IdSeE%d%9GKY_7d+I+PSes}@)^h`c>D+~a_hY>6zp+Kx^I zTX9}Vxh5&(Bm2I)M^t10NHGY;kf;WLTCc$9vxvik#L?RlfAE{1$=e?};CtTjK)Yp!&^DRi%l!ab@jH` zMJQBD>_c+%qTAgceQKOZT1-wT8WN41{lwY4Cd9iXgqYzZ{CKOm_E z=BV4Q2nD3s!w><+ETnIqQt}qBZq;OFMbaM3jNsfyH^S|J^2#PAgreD)Tu^3!J1W)K zLCCuf>7*4@N2Yx#W2dOAAVO0B$*hHq9n%;uaXQ!)C{4o7^R@J?Eg}k-RrX@x8WSvX zR6Q`!aCD+FB!wjOY-H4?EGfX8suMW5>k=VGL}nvXF=QNKDYv4*s`UWC7E($rws^Qb z%t!Oh_U#||<7nu5YjZ0O+9r_9-KOECmp0hkR{LN7;!AP(`~_kyXxG_Ag}0?C!{tH{ zIblY$i5K$(f!NM%+HMfLO)$F^M|Ptl8i0v0`@1n)1BixZ6aOR=6B=3rIZ2K7#P^wO zJ(>^`6ci#F%gQcbEnIJnO0<|(Xm{>4M(_Gfzv4c&udT7`kyDUoz2WM0`$7DL@4PBr zPD}@&LbX0ZP_3I5&|!jCW)Y+JWUki9yLVTbRz1Js=RefNy$L$CrUk9?2MtKt8(6aZaP#tcPM5V(5vxHw+*5e;XnXMKw;p`qYxmFo!P)8gTc7og>;L`BZ@b#xxc69(&cx$`nEI}ZWP9qV zgMR1kZhHN}_7^^V^YX)8p#)5Bsi-A(bq>a~XGRruon;JCjCYYhqcG_3yPb>ax9ZbM zCSVBE#(Pgl87%_moBng3zIJ%{=xpb@u@=^^8hQWj8Q=TT^&9uM+n0>ZdMU*`8g4k} z3+8i2^gfi5{fPoa=rtA7t0Hk>96)#B(CaG9wS*O=gBfZfMZ@zqRv&uv-u8FC{^rB= zv$qa+b8gtG2t&^(E-e#KuNA8ri>9EJ*9T9_og8z|WMO58{km^i3agsJrSekdJ zLTof3v&2dolL}QOuh)UD{>M)r?WUuHrcBkqW$9MMq|}G%SBZ9fH0ffqTc2+D2hhUm z*aRZ8KARi7sG85d$5n(%#r=)~o7FfQ^#t5Ju!|bOWHL&A^ar;>G$TS69ttRINCVE#&#QA3T zt1q3bu$xC3k&Q9@?%Zx17CK!4atAw>weH{`Tjt{K~rz z&VGSw%_1lh<;UNhKZj~FqX<(hc*MCi;L?TYT}QnqRxY-HG?XV2jpY5aEv_6N>a*W{ z>$ksl`}C(Cp6x28?o75%#Z4^0!(zNZHE{*ZyFME9dh6jPRtE<^^TIQi)_3l0=7ZJL zToQVBm!#H}-0tSMe0jCKdS%5Q|Iq83!}a>zM{Dj0zrxp}X9jYy1{plSh`UveS3@#= zmRS}pL8Ld1=f$=In16jl!`WsRY?ZcB4N^K8X|%YME_p?e56^bEadkakTx@^)b~n3W zEl)=-_nSqR76TUOB^1^ZFf7r>lmfB5ztN1RxL6|&X9gPWR%{q#?wA-xKN8^=6 zuUHd*6vUhN&%g5O(K;^9=P872Y=nBZGtvN#V0N4G78BA1@bF;8*7|RIeC9$LBQ!BZQ}1!||`~oqfuSn5>vHS<bd7A04pqv9Oj+R{+x3s4x4_#=#?NA?YJt2bqL8+FOgf9g!9dAcjNM5 zJ3F1@%7d(8%2r0Adbvg~m8OQ^VTFV%DXr zu$)V{&r|uV@X;WYWxJ|!W`NbwrDo5n6V#x3R-@oBcR5aVHEku6!-XlbgiyICiqk*e zro666vN%@lN#Q0pWo(hRkH5=)9us|FjC^fq(t#50nsip-7dHxu-%T3h7S6H6ua#DE zaDmQEh-ygH_YmnlN6~zq=RHmsKKB@udivl1^d66qPIH7}zh`ntqfA!&%$bT$j_+GP zbu>BaycSclyhoI)!s1F(ICV^)doL@nj8}}%R58o3)B*+M{=8r~QP96$AhdFi--nxQ z{_b2vBLbrPY}c=~;(mh_*XrW44!=e{K6*o}7wib-Gf;f@Ffa6P8)tf2#M_{j?>P2v zxM|4c49D^tF@A3?cR~Rbl>%K>mKki;hZ&ceK&wTah#ILaCC7d=#!r4p*i}%dJTr$X zC=1MHDTW-}_5q5c5K$H9X#hPAu8G%POEgSV1*#ZtPmGOJG2j<&P#PLz*!B6UsW3(X zu>fNYz8gXC#KrmN}-e@MKrhW4^J}exy~IsGqM&Ktp`TX^b)}ZrnV6 z^b?=l-aEbwpo5uRtEt7^2Z1>3{4aj~!`wY=(bd|T(}yzN9lqaA=HKVoHgK8RtX+$n^vAuKO88li3@<77w~iOy7J5W!Ha zfYu^C*X9|Sc@cI*#hPrbCj>Mq!H$kr{{JM^+%8el4`h@*r2Hm?q{QJOS(bo}VfQK4 z`)PEUtS)Hs3u?4IS_o=TBj(xtow-pN24$UAfFx+m4&`A-riiJaI3ijw8JICK)xw`~ zC7}rv#jv*_4`QMuO2OMYDZbBTH4yzH;Aw3QFm{IU@Yk z8j_LjEwzSfZ zw(csWM0M6x-3pVk9`B=#2QpWb`2%-{>ryc=4=OI3J6x@%X8W{~9=&>kFZ$wpdgfg_ zy#DH{P18hVM|AY(-nGTYe&j%}y?)p)Kik!NB6|ZvB+!Epn_W&ozx$#0$Y>H2=eG~^ zC0}?K*Kb|mtxvBxG04=EJ$2*Cnjd|0yS;Yh;NO5&7hAQ3!lqFpG%{q+Aowm1Jt-Q#~}m2ERUGIx`Cxk^oYNkr(<-shHhwr zk)XMoD3KT8W_yuqEO6(2Mk*}QmsTgoC}trqbSvP>93Zb!no;PS4&lE$s zOgW&uz5`bKdRNlEc#vvA++-j-luO-k2ANUXR2Rs-vi|^y8797k^mx9O2g~T?ok(Ju zgoDGQul&dV^5eIkdFCWej+%Dco?bBGfTzfW&{G*2;6hRaG!Z)A%>AwVo49l|<;!os zrVqU5+Sk18xl2EA`SR+O?EMGtKRWx1Z{0rqZMW|{_%-+MU;NVh4=%p^!Nap({+TyV zf8VFyeDr^u&f8aBdiu)$_4)6-^_8FV{%5-)&OZIt1<}@ReV{nKm=lz)9XITDTK&wc z5B|{2%g6ts&s9p5u*HQyonJ*^x~f<)h@uilz%AlHsjOijXp0jdF<}Nv9W@FhAv=*t zk_`ukt9|%0yNjKASnmpgbDLT|e7xxg>&OG>|Cke)VSb5w&iF;`JL z6r77tqb6HBvan4~OKTA>aAy`!zxc>2c4H~;8|?)}5YX?^AB zAZK+1N`PSIrF;t~CM0z!kdbq)RH`gn*bu{Vz#nhegSiaqC370EcT5yP4K)X{d`^$4 zc}IX|6Id}ZA3mNz^uKg)xSBT?Ga#~iVvQN_XrR!g$n=vJ1vW%SN{0s%E}g9Y)ZP0R znAT+-A(XgARhakUL@nx3$u`Fr{2;y6Ym{65E*`VjLQalJfUG8>iF|mvr|P89D8wK; zWVK$$C_1x#ek=q?!e^tQ;nK2 zD;Q#~{0ND|Hi6I&T%6&#^UaK{IxcoIHgjUTn;qi?*ISMa$}-+n3Yw)9a-M~Gf2K{u>Dd-XhwbZDEi^lTG_PWds*hPx)i8_P)Duul zjhngm^)%_mrK4Z+nY(At`n$XFJe+z|1c*rxf8g$dsp>*JL6`v10>@X5e%XgU`QYN@ zgwd?F8)S!(s_R1k;F3rc1r==-d3xUGXP&t4?sSj4z&_vzkk`z*aR z%p2{_!}*J^Us`WHBIeFe!eoChlF-c}m#Knknygf=8ZDwB*c;r3yjYsdRN(AlzI5xx z@qZvB<`kLC44R*0HS5bELM?(l3%rJUSIj%%`qjftMxiC+~+EO^Hb`DaN|BCw^I1u7u^)pwaWAJ>A*-==`f4`E5Mtt}JL11akJX=@Mo+hA=zO zi{FyUPCJq4V23T51f)QfMd5A+9zNRq=BIBQuhlc*<-9R??PjZDS9HOa$O!}@R(iDU zxOQa%TmPql@>gh`2sk^H}$z9-Q-MjV=nSznYfYqvO_7C{~Tw?GQpM zZfxubssLJNm1Tn$1a|eVF%R0BF5Ms+(?<5@0QQq>K3{DqW_!Id-?P93gg>(1UDaKKo1g_s6a3Fa_(6gTKa7I2 zEG`u!n5{(M4aywN+iI=^gvtDH2|N7v6^|RRk2Qc{TSWDm!o(8|6;%CQ@gEiVO3b10 z{ngMoW0^dy2R8a0fOpv}XHUSC0%9!aEv3;=twD(vfrVhv=ucLsrY^X5oC(+L()Hcdv)^?a(kBP?Si$^C};z4z|;bED`fwVT~`$`+^MX`^W@x&l%a zB>@)-rC1T18q!E79G7^HxA(ya=dk7Hz2vVBQgj?CsKXJ-+YX z-pGIX&tK%1e$hSt_y=$1s)4JRx!GLSr{9?PyFc$Q;cwsmlK6?o@6Mlf?L$0>)YjDy z=JZB@qBiG=U}uwrMup~Ch(H>Uw3wj`&xcQ`*5)c|nUf9kvLnDussVvMOF@tsm>G;n zu}8^E8n>YAvj)z&3-~6nne3<2!VkgVhXhc$i|+DsV2MBs?G&);Azp!s1bcmyO{u# zwl7M5+KLTW(c1qEsPzbM3pB+mJF`e#P#b_f9YSLcbCFZ#Y90);=XNn}PKb%No0zTV znEX;i51CGcrg`jKQAm-B{{QFdKf|rvlB+OujH>yrwRZT@$@!eltC0*FwbnbU z>i(#j@BVbp^K_r^?Y+V~=d4*Z#;8#do|8lfgda~^e&NPj;~~C?|NX1~1a9mn+}J+A zgY{jRyT*3E#{1uQ1FwDRT>SOF^GF=ObL-0B-XtUoW`?k+hO94x9xDM}_~KfA`8VCd zuljj6<2(Mu!}8$c(KoAL%mgP0dO)O1R2Twdw$r;Av+rIMQR-}X_M;G>Qw*>Wp*q4Q z7aG!w!Xgs}cQ_j*+`7hkZMc225hsB^@!Q`J+?wL_7F|{$?u?15`p9Yg;s519z_s0X z>BRS^q)N`O6BN#-#g9=!5s`&Ki%si1J)M9P!|(m}D}i|xw{KF~%D4~dt-*B7_UTvb zCm+6e6trxgZyetH15jqh^sWwD1;iLL(m9w^h!E!v9hYxy-tvS0>`Tx8x?l3P2VcK-8gE>k zLnpzC67+NcmsIQYNUl*3s-&5a6bMhY9k))qwTb(4N0VH-usIC(_mX(8&G-#_>vHR4 zZXjZ<^v!zJ4%f}6N&4M8`}yX{mN=!l$Fyl`0hsNaO&E_pIN{DM_fI{4>%V^B!oeQ_ z4Cb14F^E$B#8Lo-`BKnu*u*n1D8oES7jDB>b89x>_{=4(kczL>o%1 z%BMLjG;=>@nU~-|+Lh!5G(7jQ5T1bui83Wj(51+(s6A{Q*c=c?2kZanCq8}o>PO!H z(BbL!jv25D&lyJ`dmxQ$D<3WefVfre&J6v~5$8*-1Vkxx6OeOAS$Sb8BB7bPTjlrJ zvR-hY0BnKAhSRO#)}7Pu`QY2{d)uAUIqz->7s6niC?Sxr$i_Wqc=9NT#jC1BpMC$# zLl@3}=GiNM59F_!rWI5r$qG+AG7V%bmHU#4xU7Ftb*6b^!aX~hZ1^LjiCzggs*0$h zf2dt81U0@29yQZT&WJj58Br?jJwdqmqD&w5U97ly?r6IG%B#1Y=iB8O(7Q*A1k#wb zTxz>K5OQ#!bKhILdgJs{=gu9K6HM-(0VRNEwaP+7;*4C>!oN^^Xb8YiF(+fQFXAE& zu~)&nLy@>B{Kotj2!z9XDr(-t;F}AaiQFF(Cx7$$o%Ng7Zhh>%Z+nn;w{wur=f z1UGK)|MjB}Z>pn2tJZZuk?HghR2Aqo>btZWN|j%Rh=5Lt{SJ8L`klY^k#{|G(7Sa6 zgcOVX-0BfdDK(5I@fithg33SyZ*OOR&pRL7{Mb*u^y!P|4jvF;EcfH6|CSOZ_xQ-7 zm%*o{U}Ot~V|DImy?^bEyWjfS8@K=cqYs|jzj^aC!WBV>Gt5=Ppe& zp@rO^1Q`~jcsNygZQJ|tM(pixx$ofWmD?Y`etZ8T+S-41xR&cV+a~wA2oaISy$Q67 zpPueECtLeZ&!1m?@8b`gJGgfJ)OrXfrMtUOJe|P|GMnRp`!;c~(e;mi;^mX$&HB;D z9$a0^Dw~hu!PP!w8M}z~=k$VD#2SufBQeZJk99dX>%{7S*uqDh^ql8h%Ecc8# z?%dga^ef);z;W;Ha7+$#kv@4cf9@ib5QI4C5)mGe9UBsXxPEIJPd;>R{qp5EzI69= z{pk5a!43|e>v{{qByW`%#3-YHe_hA|AT4di%qlV#e|oL&>? z7wKq`u&Za4-t&d)AV%4E)|o6pj|gBxKv>h-7=x56toICqg$OVk(r+K-ZnAvV;acSj zSe>C-GUmAysN_rF*2=HIv8T9zzIp#tAS@;nNa7^_D&bdQl2SRGn`Le?DvT1ktE;9)s zu{gXV0zyS|Lk|Kpgsni@veyuaCwHmxvFF7>^Xdj?5$5&2;#j&%nX>~@v|ez10G;`) zhu3rFnz?>if=J!fS<4B}_Id?%jQLu*LV5prIMiC*)76!WtYl( z|95^%?VEaoDnLh|P$^|vZ9Wbhv@YKscGk*M0DZwSxfv^A$RxN9%g8dAABF)`PyAT{ zQ#oh1A_bNnRLv7#-CHtz0_q_sbvZBtKuGaGED3IMMxJc3aZ&3Hpu8eGfZQa7iwg}sc;Q%Px5ASfY^#cBx&_!h8 znoCtx6(oXATEpSNjF(@Wf^@m^cRuIa8;TcRJHmSH?lbkib31wDJ>4Go_Ak?GuPEO3 zp_4c{5myOe-N0VwAhI{a6@UcxD_{KhG0tC_@%lgfQQo~g#fxto<8Tu)_f3fH z@c5-S{LRxx`Tl?Rw{dRu8s2eu1s1^>=oh3*cF#M5gx0L(#-N8*_ct{d9-iZGlOljS z6v}yovQ*6ln8N}gh$;5Ng*N{@QZni}--4~8geFtd!3?0FOtAc{M zD#9cUkAvpnDp755WWus(M&+K)t8_O^k$%3a9^*2PmLG$OQCo?U)I(gWp@0E~XIGO$ z!?L5o2YvvFP;;%p%f81%49#-DMNBnP)eu7Op`mb1w=4H1MtYD`Oh7!lyBJ@*@_v5& z7yL?l-vd9(&%OB!z{W;HN5h5nj!%4Gi^qS-JNWwR_r)_Gz8$BxHLpZ!OwuJnNtpo` zqfl3BxN=+L=9doe>OX&(k3Q8y-g|#=v$Ch(YP23&T~0<#9g&X;EDPR{BmrUJ;!$3G zj3r(|12nZly`>r^+Zo$Mc^*z$z?m{_D@l_VpgmeW_t{FmZ42Cmz|! z`KR2EKJspfW5r`{J;m-+A;K{~Q3>`CCruUXT}YXc)&Ake?ZuZ5#V-eM{_~%v?%|*M z%mFSOx!u{5_aDO7E3W?fzuSJ~{ZF6!NdwV4ArqIdtwT|Qk)%{CtL`*97Emefkzy~z za=p$VzsEhAYSv6Xmf>lhNepqODAu7`sU(T4T)W7Dy7dyw)mZY5^rS4{yYA#9EVy*y z36V;hgtiNOt0Z$IsFj-xKq_A?9YRy=G7?!q#GD1G0AYX*P;gYWGyo04EKOTp8JT;O zDg&eJjU4(Yr2-a71WA}+HtJ4qkqIux9WMn6BkvYTJ#^mN2()?~P*UwRz!DH5hA+Kz zYoo9q|Fz%x)cc&ob1&aP7+q9U(=-H3ErSziwVPEyxOq^7A)MhJvt@7AGzlhUsGw+q z;GC`EI(u}VP3P_b!6c$Cf(X?X9wA}YCW-sb9mwsIyYe%iyZcS&j#mHI;ihG|D7v&= zXK|ANQ+Vb_QOdoj1eilk-~zyk?8-emx&=mJO$3AvgF?d>WujQet-Y=HyZs-%cs%{q zrye=CYOTf9J14Ge>j35mamm4Sl77G7dM(!Xef5dYUB7kl+~&&<58IctX59n`77rLNER#x~`?U17#cuibw5(TC5y{N$s@ z^R?^S2}C$35du|@=V+jB46+P-=9&i#i+=XO+qX4wq~3WOWLFqg9)k$Gq4 z{*@sBbwG;0ms(bo+4i4mo>C?ynbosnLEpS`^GCkseUE(eq|#rwd{@@16;XPVQ~-#x zIznq`kwp0Hxzq|IBl_U|N4R}=ub=+h8=pBocl3=12b-&^Y5f_-RM$ZO&%%GqGeOkf zxCBA;Dk2HVf-?U$f)Oee&U!A2*oy%Lk9@m|KOcozfdELATh=IfXN=ip4x)*`IpdYr z@BWGpyyMb8T20e@*7zjEgnJa+%_zcL4A&s;Qc zR+9{cScc(@XQD;aRvb?&4?~(aMisvbiH=?%!B}`A>#@;h4x9l6RWem}gL}x`OnjSW zjH3|V6R0^k-9LHf&gsX0;m>=|#p@?G{Pb?mh$$W6l%RNyKnX->xVx|ddjK{`-sevG z>FKGniCsLNc(7_*O_La7@8+`Gd)&Eo(zAw2m%4QBM0*vx_TYLd-bW3_I5-p}o1 z8`i^OJKIVrJ_)B7XlelNVajNmb+gYtd;R_Q-FNUgEI@jqXKn^az%douR+O*1@!gMOG+-qNTR=fj}{-+LebP}(>ap#Y|{i#d8 z``m%>=IKlZG!K0up^ET;(#ta{$e!EIEkd-RGfNuymI~YW4*^8A@Ol4ZopwGYz~qUO)N8tIw_1>yJEmL9d;3sqZn`+6IVLCsuNlj1-6yG3tLmJ5&Q4 zs^>8*ruN=(~7Ki&mVpE+5-<=c>BeJ>9&ZbeyspH2^qp!)GUsS5GBqmFIISDPUZF8(>A&S zhG!w|5oiP7(MqYtFG=pnrjqU-at1z05VuZtt6L{`|J+x-`{D2G9ey&;u+F?lG;%&& z&@n~I^_jvo(q)h??)2-oPx$mB7yHS6$4`Cn%BxfG*Iv5s+<%x9=te*qW+MWs`Y*A;<*YLn0XHx5G-Cu(_qO0QBc2xzGoIjbE?SYUB4tBR z-c=%nThRa)%yZ{{-v81^FKvF{f%^`RPiNz9A40Won<#Y4#vK4-NJJ(q@E)!cf<_?r z{=~!Qryu#)tJ@9anH^SdPHlvM%(r@Vu)+h|vgaFJY7q_#E?sqD)$Qt5_!%)fFoykx zjQa`;nBC3t_9=^{BwjM_cZ|-ONcOQn(M3Ru>@dM{-^bbg8QBpyh&eCLViYjhlAcLH zBzm=2P^tuM#!`2T_gbwKW+V3)^;dOa1+ec0qgTIs;_gWdVL(%(_Hry@Y_D^$(i|M0 zwF`l$4pbJt+G|K|?)S`Ztg@|$B&)05NL4#wmdw3?XypOyk!PG_&Y!3(VAo?2G|)Nv z1dEV3tFKrOlt^-Dq+pZk0`AkJ$bvKSYuA%3m3m$|5U=o*5>1V@1hTtJ4dClAnqZ$-J**aCe4aqvKa@}z)j%G&-jmcuXYoxvE3PFK5vYGorB=0^2I}Dvp^|ssqEL(_ zp+*cg6}7p5hP>dM0j=(aU=2`A;aq{0%q`0-6r9?hG(RfrT2Pga6h{$F5y-?IaSWy?nWUOt&N7K{nf z=u#YKz#y=63k+{7GKn7~N(c?l04~YSQbrPZ&&3rENXtTz0TIEqyB+=R8?XMS-}=y_ z&%e0a8JpTH7TC4-e|?YN`9~h)pZS}Q^QjNrq&G!$l-9f0Ye{dQY6JAT)54I%{aVTA ze)6FIwLkbAf8(#bEuZ@Fb*v{bhPPXHl<)bfJ%0F~Y~t7c!KeAm2T!9rX)|0@7)-4f zvxv@?fJ#SV@w-dI4?1&1o}m;|un<*75>VM~o6bQVF+?(mP#2nJ08Ex!ytExEbO$C0 zbSoAq(TFTaNlLis1nFJ*%Fi6)&-~6W;dlJjm*QuC;sJ;TsS)1Yj{UYg_Q+NIcc1)i z@rQo$yRbRmc@X>9bM~DbCi$2>Z33&YozlWX!Db%V2bEKFvlYla1da4i!nzA|A1D(` z8OFad1tkm=4ch@K!fsaVvq+OLuES!FaFfbdtj(cDg-Ukj7}tQ$qc_V}VPYgyCZF8{ zz9Y~jDCq<49jb(gM3}~YS~=3QQ|R<&!Wl}+ghcB*P;&!XLHOO_B1$78q6fW4l+<{N zXf6>V;(L=6h6jCnFlra=w$S=4<-0DAyF zfv}{!oGM~Qk*3B-)w(K2M?aOJ;i|rm7C={}iA3~fjxH(@EkN;(2FNZTY&3E0U`z>R zs8e@ch-r%kOV^fddIhPPS!<4Khw|O;|33d?-|+p@mCFzM<^B0MWN;rE;&Z(F7i`;~ z`fEq{J^#bI@$h@@;_zIL?MX|=DrONap7F-5`y@FO@Jk=x@V9;E<@mGT{ib8?{9pg^ zgZ$6`#N%c@$agdleNRBE*rV4w#?kpcjjGkYt0$bgnAo1iD5PZNZ~JzSKa zhdN+{<*iG)cc?@(g}(5yb^Na1@CN_X_q-mT`S}q7KYiMsdvmRiK6p^RznL)Q)mg(zT>MC6@$$Ns0lqWWMt59tqr%4-QQ}hL8}{%1`dWQwT{F zj#M#UsyHe2^&m^e9gX_FB37%{AZ}nASwN+LkxH^0Vn^i6^DNqDbIkJ=*Dl}w10Q

      X%U4Q!cc=N_))8IW-K&hsh!P41eF)*wXkp-WW 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%0DZKE~N$fUr^UNKe@BjA4$D<$IGk|#NV^@Z45B?{A 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π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

      r8W-zWLpv@Nn1xn4^Uj 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

      jYgg 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

      }XTR1P^O5xuf@hExq|X zTegOL?9qpQ?fD+<(Z%M|wD14E>-fvxe;NP#k6+FHZ~``S;=;x*Ja%GN9+`3Rfajto zaK5vQIkXEKcn~DHO9Ps;=f;L^&6*|DztF?eT5nOlF>|6Kh5*tdGFzIZPX)y1RK~ZnIhqIAx_dr{a zaGU021YsJEp2E`X>c@NFJ(hGejcmxsjro+w&6LsG;y8D^d#~ZagQGmZc@UV*+x7&{ zJvaCN;J4pyf9z}DvPYkt6GuHy-`M8uSC9PeeGgkAa%0mprS(KM31XJTF)!UNPT8+L zHQSXJW;Y;z`ClH}AN-ET@@N0~b--sFKJWdRXC7=Yd!Eg%eaT{9<=G7{`BcbZ`}0{K5@;LjZek_0}bejr5k)p1DqAuAqA!Z zs4O%qNa==N)seEhMIIDEUs?bp%iN3nOgZo2&meLiF?=Y&y@Em3zn~^bMR^$|2vR<& zQ83FuM=f`T;>!pk5NhEw06rvs5g`)nL0&!~A&y9b zNUc=b2o^JB(}fv{vuxPg47O9^j7TMequ2H$q8H!(+oYOM-HL%wr`QvBVn zy{tiF_2)~HWL`-|sAn@Nxhx+M^^En|D^PO>XY`l^0aofl28BiDrcve9mBpc1YoCxlVluaqLAq5^1o}B~=^O?wEgaEie zXewzoN^3LW6VGc#$bI{oymG2>U`onp|2>sFEB~I*XA4Awy)E4et3sTPp(-Scct$ed zZv|zbb+_tQT@@lZP68`iT!A5!REm*MgQ?@R&OiUyL;_UMC>#Q{9nd@18RYK^jcVV! zf=aiBC4*Q?W!=>xz{W+x8r8x8kq2XdGjyja7yH@CjwyWc!5uAXD6>@-^2p*$Aj0JC@o9v6vLQL|`#s zQ>6d^sufbPs-uEoggg~{$X;o-6p1AHC#P7-W3?qkB9;P}R)s{6>6tkMvsC)566s0; znG&d$&i?o2XiH)?DtvWl)^=Y83<|xR8x+@##7niqODST3F_5!W+Ya6p-kOf8HmRs$ zkZ)lkL@SnI-{jF6E@;mN^D?<7gPv+ANqy-DY?$R~z}vSlt(I#(N8TUGqRI7$jU zt9=KMN=oh7WfXYVOBDZ+sH`lIB4NDtIQMKoVIt#_>n@pWT9j(J?lYVNO`B6~Z$OFX zc(>U3peh3yQ1g+zC9;dXu+)44J#M2vH8=EGb`I6c2t(8+Mt+%p+V(sd|Gand4YhCU zux^PiQEhyNc|cXgRlDxut{9i_9GWqST>itejs2YOr*7 z%05M%n@D62M1vCGObG8MT?THChV&RQQzWoyPQFvsBLNZk1^^8`7ue!z)0OC1BCC|G zp5>6Z2cg6*km%vqPO?KNVMCpJX!m0c+4hp5DL;bf6Z&8lstOx zN`4o{s#u1x_++&2T|NVeb>@yc<2wc|^bv!RNF0;m7o?&of+YFvCK5uf8-WoU+j5P&2s0+!YOZAwgf`MSk zv-X*WuLyp(Qb6+TTQ!3bc>o0pF5}`>?SORtk+8{uo<30wJb&uO{pNo5Ltp)&D_?Z& zdW#od?(J-8?cz~pT4Ix#4^J9)xv}?t`h&RmRBu1<16%vufBtUy7WmN-?8$3O zTzcoZ`N4v-hllv*KYD0?>&LF($9~}`U;X$6%Vh!%0NY8Uz>6HxTD9EyL4Y> zt5%zd1*xH97KWH2TN+DiJT>!%bbl_0w3L_i^a+s**oMBLBR8#Mq3}MCHbtWIoSJ6_ zMGV;h?}WxkupqYq9#s6NnOV9@jM5S8y9()R#WA&-%g>99?}7 z=*R8k&9>Zoy|ue{H<%aXbdb5(gdxLvnze}KJiK9PaXz=adS!0UziWy1^lA2oTmRl4 zxR`(9uRUR}zj^>1Y;pPdvwZZ4Q*Yhl{IvNJ4L)^DmgJeckVbfe4=gGd73WupnQ4_0X5skMZ75e=C0KuYcUHJip-9&mY8VZydDkVZxV8Z)R@M z?>$I6+{XNlXAcf;-A(-9Pu>5sr*Y{oKYOi{sL2TvfW;D-9TAT734^wkqwBJ_2n|2# zw1y;0QziGwev?76uUiFefw@S^>Z_ND>MaZfL6JrN2oy`rn3kgqHH|8VHIqs}*pVtB zBtvMLD?oK9TaS%Ay@CZu#b*}ir9u&4POPna3@N}WOIE>c7TK%#wmwtg3V*XJ-c^X0 zDTNY!A*WX>yeVm!IXL*0>nOfZfk=_+T&qzQN+gVAIR+6BdUyILC0LTa%fN{MCf{Lt#%?xn7+VAB z-<7bTj)N@YYl|kAXeA*4l(mdE89+cTa&F#ON_f zv`5BYB z?ryb9jojl<6~qlr&4B9XYyi52cmfet3Y?A54Y_9vhF7+R%Jhzy0jbZ8K@1MEIJrJq z!y+L}5FO#HbaxJ+Ssg^h$f$d#VSS1p-E%KlPl6+?W=m9Jr-)U>l%wi=jWIg>yI z%l^u9>*sUzYXHeO$ZVsj*5p#ta!icQUaw`qCm!nXt5B>QY1`Yo#bwuUufNIraszj8{v(+bc=&l*4nnn|`ETUM4i-~PMTeT!Bk>n7Q=6g`1lt7TG#rT_4`Ssy5U8%pxBX-5NX>z+IJ}UG|!%4A_WV<((fx z&AqeAE>|;}R=cR@gM5b9`$3hBJUtd1>g}ya>Kv`FBcZwxVFpw64Cr^6B*;-Y3x)uU zKvnue!kDUf2YspyRR#U>s478KyYVh%o!=5Uz`z>&1yz~uX2{SWU`VBHmHeVjTr;t1 zd6f$?t33>PoKhcaPWwvy%70Y+QqAfTjR`JP{-lU<-6N}H6Hxxl(y$m?CzW#B#vSAK zGA@vyBUhV7`<|mEDNFFH;?EeTXsCOACB*lwGpK5;(Rw}^d-66}1{M+D2FKLYLMSFy zf2LuvRLd_1vMU)a^}U4(f@)=jtJ9D+^L}>vVIVQJ&Fa4^*^J^8jWcvg%u@DC>%YX$w_F-T*8KKCZ4hGdC(4^K1()n2zkIHkk*PXuk%^{ z$}qa54BrF7<5H(qk_W>1mBdf^GZYsdt1xdtb%7x#JKBVT;-sDC!g9pv8XMe zBVph0<)6DZkcAhu6b~G%#BYdt5cX=$bcZjA#Y*L53X)K0Ll7)kS)xF)1~Zg;s)C&A zeOsB9kONtU5Q!~c()2y4Y<*>D<@{VKit3ANuHkq(wB{1($crw6pil`E0GPlfSmI`T zdsH~aWJIm`2-4(Lg_`*`J)Gh+1@-&qhTN*RUa=ul5Rn7@|29^#BnF+jj0&}XA zP!5#pI36~afvxf}ok>2XSNjO8!+^mo-WtAOH5$eeUuJH(pBY=>V0GD@6|2v%7!}^q1B6KjL$T!*V~dw zMulK=W`PYra~sJI=CN!9Hce;8Ac8HJ0fZ$Yn>&`=PL?*QK1Dhv+f7cTJwxByz=oQ#LcP0 zcJ|p{a0h?+55Hx=7zIwxOx!w z*poY4dU_7K&<)ve?}phAedIF!{zoq2pZ?UvynX*DamuujUrsxI{0x__B#sUeTO?)! zB3dS$Q}%Az)0hLXk>iJvb;~RZN#zJfj-^LKZ^n$0B{DKvYnI`TzC=zi)=OA~iFY&x zq_p&@a+8#@j8`FhqB(LwBrM>}52T@6Fh3wsXk>bGj|}rj3%7tZ$K;94LC24wz2mTlTw#_wV(y*Ejx&Uzrd~#&qayV?ASW%uDvZz^`4&e(l<{`RQLc zyZ19MpMUYA7Y~2_czXa6^dgwy$VDK9Hw0^I76GNsAk&gPMAHpeRsb4U$r~V7GQT`L zNb<5bp()E>0fCn&kzhnUnyX~G`ZZR-nE^h_XiixzBU-rul(M3Vi=jXkN)~61upj&X zAV4T(zLFF*984;!a%a&KMHHDx`V;_31zC(^ZGgzp+8{brR;98Lu&Du$tR67&h9m*@ zIHLszQL5Z5Gi0H#YDdYN68ISeEL(w&W?2q+T5uKz0PCRrRq4va7YCrcbIugJd~C(zJpN9RrM( z03uZbibcJGc|Acz-x7F?4n+01)gu@=&btYKhwxR27Xq~}Kn?FqGguG!#9#{wluJO4p^n~WqXtyt%NLerZVeJIV*)Mks9RbO7hll^QP}iWOYqpg4m=kR@D@JPLc8? zlq#xt+dVIv(j4AN?lG6GuvfOfh#lXv`G)!oQ`9|HfMz_`0qr%*WO!-$pNcs~0@h6S z6&%=I*9DaHTHO`g^Axfs3B`97+WFVb!7 zNZB7#HN7!@lYi!(+aPiGSE>F!33>Ji>9P;?{Iv#*ZT52*VMfA8EnK_ew2YC|R54N| zt^y5gQPyu)gBQaHLXQzZFIAeDq(ji zQIqzkTB21C%4*eP>EqigSr+<^s#2(PP{^rgu2pDypo-N^_c3Iq3Qp*dD(1KG-)70y zH6g+etA7pQj?ofDxFQi~dr94@Ug9hkRl+#qSgWeTtaBDv0`f=XXNDkD?#gvWGP``s z+CBz3>V#?s*&7>r2S}`$taf7SARASo1yYCqG5uVUFS0cF{! zPkqA`I~av2CX&2tS%wlgn$=jSGZXrI!{{5HY9vR9q5no4+exz#WNRD^5ep~)P0Yfm z^~{F1`zyvvwIQZ4N5pStn!#a}6j>9ILS0y5wNWE;>{b1!?{JF1pm>l;s)VIua@tJZ z?*J4Fr)*wFNSIals#3CsYL_T02R`N>ew1T!$ z<7d*YO2FXo2C7nM;L5T765l8#pxaFYp*3$)8+V?6o+F-z8)BxYr&{Df z>&wJDm;it-ZIvpPf$|JAmqMm`N&ic z+(j%IjZW%d6j13Q;Gk9t(6dsIFOY2YbzYEy8-&V)LP44o4?gIHp&+TAS}uU++U-`K zDJ3HhB*q0MQ(N;3_-Cn1wp)&&h;=yu1)NU!<1*rI+?SflKJr*qSulukN4+rHV=$?~ zOnjnFKNA<)I|~v1{M05u$A8cXp_zJ+rdE<`P=L(KwsSLKo@GJvhp{+R)E z4|cDkr_Uh&VHJl(W;O)>XxMM0Wj9#MwB~kvG0@Mmzj0%-hp!zwcF2oY9@-!LUH9id z@s)QrpZ;m*uvqf`Ya4sx#wO2ZorwvUJQ8L;Z7egE+%3)KbGMv54i36qJ_@_?)Pf7w zdg4MFddKOlgZyVdeuTgIkt_CdzkCU=zI1?op2(K)!^CvSaCkZU@nN@zr_C=MM;;#p zU>!{;D+1XAJ;O?z=p6cquyj!#grB@PYDi^fUQIqNBElw6-7njoZrz9jkmi<|%CNPt zSS%&(ke)fxU@g?>pCCG%vx^M5-SU7=X66$K-_u>Qdv^`@ZyiNHduVxjY=|Y>w8K-+ zz`p3SAK>?W!8tzfx18rAkL>L5>O){@dH&X9cW+E_`%d!*CleMdd34Zny9qW0MJSip z+7cPdf@s;>;%&vV?!%kDva)s}KF_ ze)BWFTNYSiliiJj%OQ1udPqW>fJk&HwNaTKDbRbFZK!Neq%w!v(b=a6`6$&=#vq5> zfF(iITdZwV*rI{B6C#F6>6-h>f>hsn`4@PicYdcO;1i!=A8=RsClrJgV6DXaXepFb zV^ngQzMukzls_oYP|vDl=tL5ek`6iAP&sH8vZKN77IeSi`g}*)A{^l3nGFSafKv00 zFGtZyE4U^xMdb&oEt4|140xFIXGMS_R=wL8%oauJnU;%zfI+~uv9G(yXG9V|L@ub7 zd-*m}cJ=+`D>-D41wCsY;1W%+I>D42U|TRghjlL~O#c#QX}I z)Af!;tgz0**GJVlD|Q~QalQ@n=whn_fHOtj3OTEJ^6gu6E+$9d5gSot9zvY%p_*f z`JuW>`<{kigF6ONQJ)h)Ggt?f$uY$mC{{k9UcUwp8dh>d$Yo9LxdB}*AAGN+R+tpd zT>Vxh;kGU_pzbq2 zdnEyqch|}ksEi)<`w45B3pY#{J9EDb@Mq1rQ<{B0#w5+pE-CFC=^5`v1o zufA|`$Lw&yU&et$?li$za+`A%>ikwDO$d4!0 zeFRuVkoBg)J%Xz>ZISrS5pOj-mQjwigcek*tHJ^Hn%cHm{oq zs>BcprusO%5ha}g7|$5=n8B~B^XD_NT|0dH$t2;wc5 zEw9-PDRD}(1a;^7`$FA`!6TLMqAVWth}HVU)mjGX?olq$dPt2=l90&=>d@2Ht`8MA z)jjD8mHI>4SFr_5983(}XPo8E=k>b#HH10oubPsSMK_66!Kfn(xffAi2?*@*-&rLh zmn+Peo|udip<41Tvyd%xkBGlG=o=W-PMs}bTzC~~e}(`$KS)3CoFSFOVln(aLXjxhrbZ;FFe}0BOpVQ5)?xUfGDxY! zPY%Co37Fd77GJswo^!-dJpfaio|-#YLg=jfs_(1{HOL;9K@8#C)_CBe1Q#QT0+Q%Sx7`K$c1yY?Q`6^ zd;iaW^@py0`)~PlpI`p92fI(*ZHL=~O>RA6yR{ax+1zKpxOKeagVAx({XhP1uh@6| zuSa<6l}G!P7arQRr^Dx+BX=A_X%mc@QuN5ycziQ66V`mmOwT2oPaf#$Xbuk+Cw3sx z(%q~hvPmfsQwwY+AiLwWSGPEO;}Rks+M`dO*kAZVck#zQd^3)pnH}d-p1j#`>*gkJ z-m(PHjt+sTsg5WKtXV!DSQaRViaa<-JbKM=={XoKBY@fa9mhw1=>Y%B&tA?S``JzW z;!ECczvVbNwZwxhPuUcPLtt{t>0;X9g>KW<(GKRku<5ql8k+U&Fzel6Q|7XBi^#~J z&N31mo-MLP@rq{A0uk1I1kgRrH`_#XPix(x1IUKfIzyGFHiwDG2uCK`hS#FITkin6 z08U9tb` z-?@Un`#)XA?sNkj8!kMX`OFg!JJP3Rb}T`U#4NTKS8OO&hcaIvf-!7bD*}T(^9Tbi zJ>cDX8rq@d0eZM+d+n8jJbnET&pda}e(bM&GG6$M#EqXj%KHx%(lczf9SCb_mOYku z;qkCYw4eT!^ZrY(#vi!Y7ik>62KEq%&VWYWtM+BNZ0Y(+M_fr0_ZBZpHxJL9Zh`=I(sX$c9w^pl)0eHRsgMl}b5nMp!Q$(=RfAwW2W!1y;>z>KKByyXU|+7hwmA=Zx26prcA5+++*lGpNTpr`um(9ywVga_|p;C(%sgf>`zhrgB`aI4-8Uw(V zHWZPAAXA*Z5(V;qy=DSFHexb9u8W<}nO0JscL{1=vd|Zg09QnuHZ>uojaoG|FD0!oSiXJz zD`9{jLDm}s;I8}LTq1~8pRY4(x#BtPF@%mNTH+9Hw?uX&uX|&=7$%!#KYX;7Qd0V3^gt|B(E+qg1hG*_k(f)W zOa_Xk`@w1ibP*nCB0Ejblp>FG7Tr|7&%M2jd_nbLpqk`gnQp?c!?P;lwmN!d466@=o6dgLN2G46Rp zsfO!h7fr)`Y~`zTuAn5HMPjK6<}{HDx)1V&0Kc#L?AD+`s+>c?yzZp|R>@<d8is+OwWF={9^&m?NLK*cpF8^2~H_|A&8uo!X*)NGH{$uaONTVniVn^Lt! z<=^W*Nj2EqG0MC^qO`k6FJXhK%At~%@k8hh)b*CL(HaweBwx5btxOL9G)F8k+PMth z>%5V$CJe^CrWkd#>js+Nsv=KQ>r*AWxG4shA|Y`vTVfKCMb1g>NJL) zxp!(?yBWstT@+pciS%Ao>pqCIs2i?(SM4iU_1??KAjY18cLKnwV0KJxB~sa@L_e$Z z2Lp$DIxuy%|1qOITSWdFLakMZg@{GEd`9`F+~bEZNZ%&R!hK`~fg68+kpLn}fC9Bi zw1!Yy98xhNG`o1JB+iRQm92q^X>|EDIesRJfFe39R$p6UT9X~n5|8Yx0a##|ARlSv z{{rS3mYXTTj;ay@B>SDtKD0i}LvVLKU(eS+`w`Wy(1|Z#`q#CJ|Qmx>=E=W zP(ygv1g(qKQObcXnQA%R@QG%5c)2^Wu&T}X_rgj|m`UU74DbhJ>C)+;$Eo{>&diB`@Y z+qAmt4okJ6%1XdG<_J}mD1OfzL1*f`vnQ7g1$?Prt&!7a0t&E&=P+gCb1^_O(jWmx z4GcB_QSnOJ5Nt%@9f|lhriy=bm~BuE%nXSx0SVwR@9=CAi*d$L@ev%r&DmfP6m1&}z@|L`<&PN5!XW|-vs3hWQ#Q~|+0z+EFQ?K4RaHH;m=hMPk$%OMah6^bUa zH|=0HCNN+lXi`UDIuaKFz|}>eYnSm``}d2S-fI=ZtSi(5OWA*C@266$z$F|I$Yzi^ zwh3;otPtPI*EW?jn8s`-Rp<&fA@zln_pONd!P1XdQRF()+4U|2FqL(d!xc!Zex0KW zQI&HmP^p7o1bjKk1Q>{m)UrunTqF;x!bk?&$P^nBHPBhX+IpwT;vt|_$$@%BALmU< z35V9Fk~yYJtn95467}39q7rRV78q>91j|Y^16hHMtia9{*t4 z-PaEBNB`SP`H%k5^=L=1CqC`e4h}N<3}5CD9o0Dcl)XCA(#+gKy{;RI}XfJ5t+p1y?n;WoOtp-rinfOcoMq|M1bN3mEg3FLy-6IgcW z=jUj<2lQZZhU{|#dUxzv;J{%B&p;erTKY4OcmJGspTvhg@X)^KeP{N;56*t+aiQo8 zi-!#-x0>C)wZX}K%d==qVtXvxjoHDpARUorOg|;^d}*!CJ|&>7sic^oINwQ%hGFMjjQ{Ih@L&9*yfc=cBf^L!3> z*y8BOY`G--deYkO;|)PtlpnyV(q+)M20ye9 zA_4d8ev!{%LXraF)p8?6SQhbJKxuziSvlY;&mTkQVbFh(j_3%peP5PHqIRfl##SX*SSjKg-jo0 z4wsuwtd}CW_N{z|{-D}mRPcrrg-Tg915?9_3!*7OE?^F|zf+%awx$|~1Ql@WSIVi5 z%9t8pXKEQ$l>ih4kn~^gnC=CKgY$f%$R1*ux=!`|>$&24jztp&t9z#Gk`gR2FbrF2 zHH?9edX~Ba6;!0oxuF6%MqeQThiRB9?^z}48mg11yJHO7E0U*@SEe=+!hXEOr5RI_ zq#jQAwi199PML@iYcU7_GmL5NHSiEwG+G6A>M5>$$~r{DHeiSyi>$BT8FV+!^d3U%FIk-)Mm zses%xUxoW?BS7czDsnvQ%B~j&MRL@07rtAA%Ti=jvW0g;_C~F7n(giJz~?JbTK#HG zZydTWwO3`gO~IYm4E+hl^HocLYGqVCsSESh57z*|!mW~YkGP>o&K`~?yjw#_Q^a4w zx!z-Abv`P|m@B!+J)y6twmcQ6jzhlwW2`IVf*d53YYRq#YWPDfl@+mRB2=Z?9>nmv zh3P4uEP0ab#;{Y0?@CRZBITrg6wJ4wM0fZg0J7H_(RPh$coTVBWC|!I=(&t%9NVpP zTK}yyl*n%%_{8@X&axCMzUNDr^z&k+k>$o$g0SFR#Y7nckH8a?$VgNCj5vXf7ujecolFXM5_a@&@CmLzA7`T8+cbksxw|S-u0W)lValq+GH{S|Jr~b8 zg*avG>YicXj|$1y>pOHLn?xNv`}>`s`D=C3)ol z!DK58A{ow{vm&8Qc9U&SD*3xCQrDX8B^eg5wOl2mdDqiKR%MR(ly^stSnPGAc!{QJ zsZ69hTmGTiEzx03E-Y9!u1t;&iJPzOhfFTeR!~#@(btX9@b_vJv}cJURh?FuEdww$ z_`)v^H+bhAP4Pd27*}gE1XR5sY+iVF3?>)o&xTb%!Mi;6zc{OMy}8=`>eZb9T$P{Q zQmyT5bSxM>*&XBy(3QlbDwrz~5y0d?cVVhpAzq-|%W9cBGP~M!$sc-Q zUU{8L&PEPgmcjN)p#(^jkrkFV*`uh2mg_cd+5aXH9_i1f)7HdFoy(F9WYh(B%%CFDvgmC}PNl$Um9MZN`dkt8<~rP6RX%d>AmElZuH9VAZvf zpyZJqSo$E{*Z8i6eYw?laU)nFrUm3cQxrLjRD!__X3At?*drbwGrcfD6g5jZvZ2w-5X+s* zOIQUBDCaH$!3dkGgvrX*>cA6-u7)c*M$&{Et8%*0D5TVOYIOuDLO_H!>F?{iR}~Ib zm8fB3@l8{E3F!|mP1C-c^jk&`FFaB`Y(%=WH#cE9vn&hTqLafmPbGw;Y> z`}n2at}ph?drr;Wv7GVcgN{GFaX`)n4H2ED)V+C_r4nUfHJ~oQc5=-%q)lc8u*^F8 z{rGTcZDWYp^Yt5(-GB8caMpY}I?K=bjQjbQe*c^JqTl||x7QH33p{*%gEwE_*!}x% zyU08~nrzd0x>Hla()sQdiPMD5CkN;YfLyX!=J7$s;bBY{FZA4AgH4AK+Y4zn^~BZ; zb7Fa5xPRO5$u}JLZ*TC?7cb%$UvK!;H#YdSH#d3nb@P)4o=XplX^S}9aJs99yq|%6 z$pGxS!ww8K(;i!s6bO>aWJ7KjWIC$ZkmY2)pk1_x+5B*uxb}$Qeb1laGv0H)eCG4# z{^`%p_QE^6O?iL0bj2J;0c?=yi99**^V^Yk?zo>kIEaTk_w3%&U~Qs8Y4Q#@?C7v( zE^fQta-IVb&354yJ#l=v;QFI6Uwitz+2syw(r&$Y7=QgAKVskU1CQd3j~xQ%={Rn< z_U=<$y?hRvGS1K0Vh4+-nHyVZWe<2Wqg*=^#>j1IKp5*NhJ1!|JPq@bxk1p*1QLPF zgKgS&)ANlRNA~b#3xwNOfB0^G=bwEkE?qaf|0`R2{q@5L@7`MP30R+}eljm@;~DRK z`k-w$Xg~T>w@+WX>;K--;qgDXa45AdT&>Y_D7;4yBb&*gs6d8~b{`BzN=d9_fEj;w zkgoE=8KXyFR{3h0_`O&GlrTX=DI0PC?~u($eZMjcAuu2Mo)OFnANH)>l!M_niSJ_ud1 zAS?%0vBZ4f1*vyS6~%tMRBKcTzGARJEC!0L63(&2C`q;=lPlQi>R%qJGSpeLy*>4W zEex!wpdmd$>_Or&A(glV8nc4(&wTIRr6vZ~|84QNVc@`ZwggbE{%V+6f!+)Tp`-RW zp#J44#Y$m9=?&} zXN{&_gZFBcX%%oN5a$vk-KS*sCY!cKWU_-uohcV48|hiTuSm75zz0gcRRoBvcn4Mf zPLh(URZjyZAeT_J2vCd!v8Pc@(yK*7-H}vPzp;fxPmzzS-9ySRG$ur+rh_Q^QdL@P zFM(A-?Wwz~=eL5hT+M2U!ZRhCkf}`uQSl(9qDmx)}K+GYsjV_5v%@~9`Mny*X zT?w5=yvMu0lF6&4Z5WSn$LWWYz6BVqPfGmgFf5P))uCkDgka$?A3*O_6@U%CwsaY5 zLqPy>!(QquRy$Saspj(yp@^+SydyA6@ee6YIm*6K5Hw>JZyz7P}9L^d#tHV*7r&e*u zMDq#N4$Hd9ETR`1@U?V68vbS@fwcteX;GkgbQw{iu@uzvs(;>oBe<)q7Q`k5)9oa2#+IBdeWRq{&#()pIL@ zp&W(+8kPDvganJOFz#O=K@!f zV-KTeX>41gEv$aRW*TB_TyInGM8!J+MRSJVa3)t=-glIon<+cJIy4xoIoJY-fPcas z5CBGNo=lec)6hB07XFlD1UbCWm0r;LH6>D(u0e8KB(^!4V6Em0h!9Aih5=V{!n_Es zA`JxCyh`Kh_d!r-86 zFaw4e2h(J?9=hMT+j0BUVscpP6Q%>R=`wnrEbaIx@yL}K8%JC|hF`wmxO9EN(WQ*o zb#KQVHl>8y9yqm#bD!o1mh(wqw{yFDe~JeWn?(Xk_pnSyLtfm#u}RsLDa_NYM+BPp z*%P_LE?Oc2ZGv6Bm~r*W>=&Ntzy)M19j|_DYk&2-FWcYwCyy`p-#B(8q8)d?`0ROJ zePnLi$*|0c`HVKyGZ7ONTgb*1<(6sb5sb)mwbB=3$8;D}HXkrPWm=|@07}3un}=-= z7TmwP#hV|!1Z403_V2va{_g+fjd=RK5B>C)kNT^xZCg*rX6kUy9*g;db71L9Jbk6j z*RO96UU~Tx-}f_Tf2$pBzv-DP$BRufom~1L39J0Nt1TTlc&=mG1dqg=?A4q_vKApv z#EMKuE+Q5URJ*7g*A$!*uW0P0lx?v`4oE{>BZvqxyRGWlo*JqcKwq`G;3pz_*)S3M zrKq*lo(v-dlJqN)o~Zt=klpD85C?bxs>CsqfTK!nSvjZA5V@4{H=*Q&OZ78yVhXyL z!%kUzwX)GzJtF>&=r#r;@uAfFc(5h3!QE5nPK~=07%Jf$+osa{YW%_PuHLXU;50Jc z7LZj^0uZT_l_UXyoI8f<+DwWkfiRRd(^Q)3Z&&Wy8h#a(MSMe+gT#vh)lz&2+h%Cs zm&m@TtU@JWn~pFcE5pzw+%6D`&5rNdOqPLkhM2)NR1HV8%(Nnz`H zrDg}M@E$s28X{*>^Q-?WOtw(UNwdb5gDOjQ0mBMrQ_??qN0K!fZkE{r-*8`{0fYv& zRWk}$5Dj5{O&T~8IMsf`P~RZ}qLLv7Sf|2zoMn3EAvhq8Yzpc|{7{^_&UB^gh=E8* z5MPJ6$P#Jrl0g%C?Vs?2$RiTTvR6gWq~=Ayh6=iZVYVXM0J)6I%z(DsHefj+ZJ+8L zt3vynKF(GuE^zkNKmx2v_OhSC#L0U-k`Oko7SFSWDc9d;nU1Qej=CFI|LKM*i=QO? zsFsk`a%!&_l!RI`Mlr{@BWcEh$4X9`!+OU6XKJ67kV!=)ars_sds09y!HP$IaV2k4 z>d45z6prqJ7C>+G0i$!e*)Tbu#OY zr0j<$XSG=HNMux!L+Wo-vY@J*b*IZ*%VwFL*`LitU4dTwAT0 z&SMHKWsz%2L}~p(@guC8*+c_T_gMDJZFrF(Iveq*L=x5(;ela3ELp-J10UG8Erm%E zK(&HvW}|wa32jvZni8L5KRTK!wNAUOOg;vnL z66S$Os*3|oO_ADn6h00mG)fFPk`NL;1sv6)jqOj?8G#`MyQl+kEH()9y0c6Kl;5Wk zHW$cWC#s@z$r2YTevUxe#KYp?SrtAt2|6eauz|0Jzb(-WeE7Fmc#^$|j1N}yS^4mR z!vnAl7F*CbAyyqBZ0r}RKSVZ|&lL9P#G4YqT}cm90^h;el*Gzl{2)5ig&9aL>s<6C zZql5CMah3A^>i1z!CD^z+ai-8{F>nR)2Ap#sA{UrwerxRAz+E#lC2#%AVU0;Hab&# z+mNx))=8|&B+GD^#P88y)0&J9i3h612_zt}qzx-9UoBP&uLlg?4e3?6qPS#4Rq{bf zq_4QH&Y}|S!zxufmek*ZEtsG)rq@LjAc|Go)WG#glI#VdQu|X$a^in07loQ9$s!cB zX0aSIg(ho?d3cs10@)^bEX0P2gHk*l3odfZe;_YKlGouJwytxM32ZhKG9+Lv`&8|< zU?S){Y$7KDK!kr)_tLiutx1qAJLn0wNn)iOJ{yHiGoeNlMd5S(L)bBGkkKK#Q6j1| zVmVh=6rKnA8>CV2oQ~)-DzS&u=R^Fh_~y#Z*K8dV_RBQQNRX~Ggc~`wo_01sAEXv^ zg{G~NQ@R_(s!jNaZ3tl$keO_C#g)ak8?>Jp!ZHmtug?l61(Rvq2;$%2(_pJWUv{tN zVY!5YQFz(_M;k+vO(d#){g-|2>e#HVPG!-7bqJ1){8NFo0x)%@n8nj(l!4A1U<`5! zEA)j7u)G`$B_gHQOGK~C5t9}n;uR=0Mq*`QbrDNh1!Ip}(=ZePYa~mzJ1F8E*hTjm zfSg)YB$Sh1|E_`<&!O?)#Wo*c9|q)7C2hbMHdJY6XE!LQ49C=SiHDhASUt$l6maJ{ z{0}mR6_qq)E8Qw<$1D(>L0u_Ed>BdXwtz;0381kaV|{D@AS0gV;IwhGi$ph+($LDF zWhFXv8D$8X5*kZ{RPzorfvz-6jj?|7QcRforD>^^aLMY`;i-~7elLgbYMG6fj8bBT5MN$A~cSTso)8HD6I@!Y8jz^G7WLX9ndfiqE<5`=5W}pglP4{r)NYsWmq<&wd_ele;a8+hbQdo_yaa<|+N#|GVq) z?f?DLw%p4&es1w6pF4+7fwR*o<^{engqvBnG|ws17DsZ_QNS^oMP@ibE%Son93$Lp zii}iqY=$J=Gcp%UfWtN|@^Hhj^z@x*d-{ z-+^QEekZfvn(W4{1Kc~wIFGHzjsf(hS+$R62zh9PDka^uUgEFDwZOy}{~g^o*)&VJz$SUc{41Ngn$hx1SU)bZy3{!cFC z5B<>9IDN1+v<0}7arMbvyY}dkJ~?8}h&k;%(QJ00nKTPgVg~@eWF$wyz&H(i@pO-t z>Cr92fz}i0X5uq54Awd?XL>W=Y{DKqu)O*4i-r@&=l)x_@cn=8MO=Ho#qO1De*9Or zh{b(-WZAqUGd&{n^fc!S8^rU^AGMSF%k-l^fA8gwy^ha%*E5H=FCA_0;EcYBzLk^$ z{ZJPXFIz1&XLz#er?XsgQXr6NfYj(kNYk|ix+&f3p}ETcSz|gKUjc3V7^Us`W0k%smSE*fQWkBK|B@BItBt|!obf+ zsoO9}0s2b@AoR7CO)X4R&MOe zJgKZ&Z9KU>F8q|FvAYBt=1gE&{Y;&;Si?e+@s5_95!JjCIot@ZRM~w zihUq~DRQ(pNRTY*U04sMzQeLsS*ODQZ)1SrB&8+FTvl8ZC>^`b2A@2IL%ma2RTW>f z!@T!q2J49~wK2~f?FH3ejCS~Yy5Hpw29aJtJb+F@xCJqIhgSgv6G+0V!v`5g`zU?1 zaIy_Cm;;)@LHk{8T4f06OCrWRt~I>U|6j*e=eB$fV=EE?w2z8!mh zV~@10@2jL~`QGvuWn<)rO+On&=0S1A@L9R~52JFq4PjZ4$9%3*R1ZQbph2&)^*Rwv zu_3okEhmhL`KZCj^%=}QjQb56f(#CnO{ikShOL$N9%nMe>{^DflFL^VQCAg~y5@DK zY6U7Okw7*>>m8Pysggxlj#$!%ioaTit%DAIw6Q4vzSDy=iue4_nmA zE)Uzko~^ZIMcGPl_K^q@+jAERomCiY1;4}(FnQy`Bf}<}2<#El%iFF;4K;s8v;@zv za6u`X$J~La=XWJSj5CGCAYa~Xwq-LV5LwAgqTSaoufWc9u64I+aVU~AEOWqQQ|dcX zxCXX%0D!PpfK~Oh={#Siy97X_HH}9UscCh-L5?FzQd8?|19$Lgxgn92K+3U}MPib8 zPbNgLm$+4epU(@B=vVU8fH2OzWRLiUCL)gnbKPZMlYOe-S_iC}xB^u}NWse)fV}@E zel61BM*X&@tLJ-(h4>k3izL^cQAo>R+~CX*j~@7@H6|V@USo}05(ZZVUI~))R{}Zw zdA37xnCt#3*~|G9N@muD$aq@-O+d20%Q+iv!Qs}~#)erQAUdomX&Z*D1g8=ebyrsZ zxS&K9%)zhtgdIJo+AnUcs=SCbYXG{bKQ#8@pAuE*&&ys`M+&3OXP=oj2rOd(J=D>Lz{v9xE5w=6K z#_B}_Hd9;UDhZ1)FrK4l*Gw;Alvr(DgrnIqs{AM};O{!vCU)z-+HUYH65jFLW-eg- zC_ARPSRotk=(M?7#;Qn8`O*!67!ya;B?h*xVkDD#R{w1}?;&hT9})p_s7h9~vPHrO zeEKzZUh%c?C#N&(Z`TAo9}a8fll+d$XHCA|#}aVVJlv76Qy5kwwTMypoe9QP<}rM& z>3()_##G3@RuX*7?s5*qMm@9a6MduZ>eqeQ=L!IokuD`e!C@P}?7A2|)n7CW%U-!U z$#v*}3aAdJovYFYa){kD+{@HYEmxqgp}&1uvsX5CW#3BUr>t=~p;{OLG?Vh*8r4-* zMgaj;2Qc>{sBHyl3LKD)J%HtGOBL7QEC5Ok!AO4h$jnHcmXJa{sdU6%=}(n`dI54@ zA#j0SND1wx?7!4RrqV$J(0h(ci2yw*{f8+niL9^ zjhsZ#rvS+4@9)fFvbR{Zj}YkEyBtktRJN1l^o|v97%=JFLuI`D4A=9^NEz=^tr0{7 zRUq${FiG#2$1o&ECFSW^BI4}%v`B{F{&4|M1<9TkH;TeEq@l?DM;+!{YP=mgeaeVP-AS(k-kK z=0S!ldB<9_%1>o>lV?PxQCgd@i0qu<9OxPD$n+(wH-pWQn9X|5*^n(}Lz^Ok{m?-<#MGK) z&jw_-^o=E!p#C(Xg|~3)G_5lXo7R!A-WZLWZNePD#xvmXLr>U7>?a&c_5`aemh77; z0h<>9(QIBKcW4%H9N8R)ZO+S=(XL#Z`{DI&b{L5*?BSbR|L8{#;_rRrBEIKGFWM_F z9VSi=64Pv($1@+fw!_7X8JkVo>Egbe!#bw$Otfk7=%$(J(%vRLg0p&PNsJtoHAgPV zk=Qw6zi7e17t~mUMKt)PCANnd%<+?0KdXolVFHrMF_I>hy{>>%4oV_t1$*4I)khX- zpJPr#C0tDE2WCJP5tB7!*`x;15+bk!eF}pn&2T8Z&^f%&1V^gJXraGENTsblyn9{? zNmWt}AOpi@g2EtqhYT#S2MonT1sXh;f}f~tOJw!7mW+N);0|Zm?|rEkks~2 z?`b^y0kEBy(6p`BNR^?L!m6OLl)?11Bvh#+W%56Vf-2>+-56K`I?`BQK_+YBpf{8VJjKJ#2KqLsD;q?KqNw`_mhfBE26DF)GC>| zCe+@BscUervLU0#cNVV95noU*+jQ*|bc6Pj-S!l;4d|*fo+}~XdbU&$SXH|zfe?c! z9~c!@af*&}3U2Nvjj|G>wg$N>l@Cxm*7stC$?9h?Fgi&vDM5Q^Gx)y>l1Ei@iHQOt zp+&6ow4vHCz)Ue&VOH6O{q_kftIl^aLoB?L7{Vp2Ggnj&UcRfUCrF5{B$?}66e(H> z!gO$`uF=AkI4ZM}G#Kw#0-p?$#VkP32ePCV2`L}-JnQgbgTtw6?;WgIL{h=1ubgOMW0~uOu=P_eIrVSKOxK(shp*LnPa;D9&X9cwKYm1(n#=dUcv)G{t9C zVaT)4fSmbmSjBT|%GyTm%W9LM^QLxrGRm|Gx`Pa}X`j6+KmhsKO89Vpy*0IrS_J`B zv4GV5)hp6QQxw&j>ntckA(2+y6RQ?{W9@;_;kyX8ET7B8vkcjLt^#rrc+f)>4iV0A zRn$~PPLYUZPv{y`-=TNfOZJ#-MFUi^#Q&9;qJFQ=ax^bLQ-8kgy2$0cx$(+g-?ce!z|0*GxN|x3<$OVZh6TPYr5v;yc zl|@g8BeLN;R(XK9XiM3p&dM*ND&GLjE#Pbu`sze@s=VlEAdkJA3#>Sp{zdvEQHzk#hd|9pn%|k&q@q7N3szJV1#b(YO0`dD$7g~Q4ZrEHXmxF7hka5F7BELU66lfv*! zjM=1s3s;2_GW3^SBBhXha%0t%$yVFfec6X#&S4)eYn>{;%1msGm%Bi8mG=^C^H8S@ z5PPFmeuf(>e5K56hr84pMy3f)l@o^t1+1z3PpbW0UsWiz0fly0darUCZHK$B&y|L@ zA$|-qv>ps_z-*E&j&7w81Y;d; z9Pnb@*!rekC+S+!+0!Wnj+-;tLZ{m4sI{mLV9qMl5dppLz(CTSC5h^@)dUKmD(PaXr!_1vRd&rP%U_8i44_-(@uu?mgsG&F<4Ibh0rd1i%$Swi*8fpJl+cvx z%A6W=@&xjwGAgo-rB6^Pp?hh>>d2DZFxP|z1Df8~3$#HcM}Puv_SN>r3}(}NRlww6 zkPE5&8}FTxC@Io}8DZUsQ4&_D*%jca2cUuEmBrlQZgDa%SddsAoc)1!KjDAlgP(SI zn5VG&52HUgg>R20n5T1#0?S!LZ=TOScaAI1p8Cnd3;56f_T~Jq|Mnw3@3wj2nI)fm zb{E;Vc%IGMJfC4^k%nxWhIzY9gQp$1Sz07KbY(5wS(Hxh(}<01klxMG z7R$7r>E;QIk3g8k65b9HnYkca6Y3;*^W^3gO_G*o3C_mU=`{e^EutIFC2{II&s`F= zWCJ#qINSj3FmU-GBlG*j(E zSfT}zL#2)3ZuWF{-9(T9?iH}Zsa(A29 zBo4P}ur#TNBRcYtN7Ju81$*(M*?;6;-TmIv*#6%4Jbhtd0*}_jI>~}kbeNP>RlFS) zq{111Xh;;n9N2xaaTLBlk(_IJvleNP zQXyGtJ!h@^AS1aPgK!+BtHwZDOEXG}ZK5w=O9QOWpk#3cl^I1YVC|Ed6|_NW*+2~h zD{`TLeJM#RxTv6;EuWOgc2Ko$3fR1yyKxX!o}d~=nlS|vb~Cei!9?L2uRax~8xK}ae>GqMI-lBmu|d-UL&P2<$|-SW{EK@&`^mo`u$S^WY-etIu*~Lo>}c0c`=*b&4Ml8t^&E&dNfDNHxV2)v7M#|A-_>{!|43>dsqX zaRv0cvvqxQe5S8Sok|p12aMGhecY+C5DNO6k2WURvTz&K%9$ietNdT~!RursDws-}BU&wYq}5;23jf^hq{;gFd5@OWIWUP2n#AuzL zAqc=;br}J!{1>Arj7kHpBdd~Pka`h-Pi52BYC8%i=}SxO*8!3RRyIa0$P~W~5r}+6 zXieVMqOvfFHa1~;M*6QIda2(T_FGjpAuMT?Fe;yHI*arxtFV#h0!|{Bn2xasXKt3N z9D{5w{7Njqd&0yDGsuNWU1FS7m?ZH?HcUo!I)x3UN@$3es%WdMV%Zt(p|ue&l;3bG zn@hfhNz=Vf7{U%E3`J_ck~WX_(_kS2-T9owgF$>>wIxSF$>0_5Rg#~giBX%Pn1EJ= z_`ND!C6e{RIVVn_Uy!#p zRE%K>gkv${Kerr-5Nn)UQAyrqG58dsdiVk%ZXlJkL#&)b*|Nev4W@Zfkbt_Xz2$$p z4NkpM3#f$RxM6h<*5m`%DPV0QVOBDZtOSK(uqD*RrYgz(Rg-;`mj$V`WClt2Teuro-m@v5>%^-59qnlnRKb=)HzRqqzdLuR%*1ba+3R0DAD1Ydg&_Ol0CAa z`0`c(6Hxs?eMAU0z*O_}$YTF>*+(D|q#FCY=~J8U-(L=Wp1=L`-nacfJ$Y?w=V8l( zQ%nVb=oi9USf1}D*c9>XJG)!=!ekKkVu3vIS(iJ3I6Shv&coyMP>NWRgiwxY@=%eUo;07}gB9 z|IqWT`^`>1wE<2V@;rg*EH6E_vk$%hEWhS+PVo8fJJ0vO^DHi0x5*}ldGEdzk$!5~ z@0*|9&;H=FwX>b!e73$sqvg=xVn_6}=8mv1TO!R2)|z3-O!j|B72#%*3bx4`B?+N? zfzuW`doranmk?=b5s1lPVUgB@^;>2ZL6s+6+woyyyUFecOFNtlhZp*Ccx86GvIxD9 z%f9{V7uv^u`2hd)XE*u1KXZg%eCZeuZcac>0Y7(pbn@flj*E{j%cWyjq}$TXm&LKn zfLZHPE{6XfTmK$&?Y>=yL1WI}v)23F_I;n@bM>WmY{#t)jW12&G^rfhsQ_aq1w@;c zh>I#fq2<;hq<|{5l}elj*-6ZGO$38x1pR@Nq z`|{o1_g&9#PW~8U{GPQfcI51RzW00AdY<29&N0WBm+Xq{k&V4GPwb!6U4bn+fvS!T zK&M&=3(Ro zzlpE?%BkLeKgQz+4V-3Q_8TXGbVm21Q_nZwj)4>6-}?9F2fy~)AOG0*f9IQD`pm0^ zyZgkxgKe^Qinw!S;j_xCK{9npfSd>s>cNbgQ06%q5@ZhSdH|NBf~{G0zV2SZzIg}^ zu>^f!`JxKAxzfO3^RUYfZVO%P!HseWx1d-xMbhhPPXQj1_q|9UWTE!s=Q$kEsg(-W zM-s@OS6L@PxqzjJMh-)^9~G$uk$Nim*5dHFm4#!%c^Sa~x>8A7F3RTr&tb&?d+xFa zP4v#26zZ#~?`M#R^&ACdSY)isvjVW*G&FtCz>{he6ml&hz`n|0n~U9WHlu;D@e1u} zLDTMGf|ewAVq%xjE6k7$>_>IjLPHKdQnMwR*n(#>g(XCsmiOAk4|{sHuHpa(`tpMd z24)ngnPgxh#F(v>9g}eOQmdknZ8Jj24VKHb(|QF3>Sd=?NAT<{anMf+PVf^_!6)1z zFP48?=g$7)xUB#~-8p5qULEzNoGT#Rr~Bk}||1P3Rhtd?R>$@B;j zh_UV{p{nDMqpHID(b`uCUvgfCZjRU&&yopOrQ|`y(RU~S4GFs}Q&Nx@>--#SCAT>f zY)9lV7A!@P{p+Sc#IbqE%^1iQJPx~ihf4xS>B&iFKh^r$`<9A9P)ERBz0nQqk>z&selXYF? z<65!M)%y4VcrfA&!1DoEF=5h6MnLTik%gEXSQ=_q!mrX@cJ$~+Ngl2iCgD0KR*Q@- zc-}%-Ob^i31?@}&%4F`vFNE$VcUPDsrq-GMh9TVKyO8N!ektYi3XLtX$SHn*N|r>b2$U{k`-2W=jZDd!SH)USGAKu5VplB6XCLm3TaMDsOz5r1$3LwivVXbk0@^DK#o>Y5HO-JcVVnJ_P(w}5I{CMua?#8FYGWoaLS`P#Ws|y-4Yat|AhXDk1W6} zsPDuEpL+ud+4{l~9No=e+38NbtLj^XqYmrK&uiF60#G6>i-?53l$bz&KMb-C5;fds zUkRvMV<%M9Sj5pUrd&yU*2*3c$9F)qZHrZmmWQ-K$z z8C%E6#}wy?B*u!Tkl=i-?byRuK3~3G@wvlXR%Q39+_T`&rD5p0C(C9;Vhpvq()&^T zrAnk7KQATzt|~3z(mYQ4GDARX-k0p3hKQShr!b(kY;szw;w_9XDa=g(ZvCkP z2cVGSgjVHz2p}|@}HnMM%Jpg0#fBR#32;$ z))-tJ7mh37hr|lT_TX3+X=YeuuK?ViVtCP810Tg)hE(3!g-u2$QY2460gIkLSW0Me zU^zD^Lth5BGt?G`!DMD&&Z+N{%5Ja+8gX7^6Wg(rA_oqxm zgq7%qOT!o#P-MzT^w#JaNKEFsh0bQjT3<9ILWD(FWGi5F`30^WC00g@Y$LiUbVc%a zZeLD(@bq$iyuJAOpZL2T{ef3rKfU<+H+MX{9pn6PoKDdfbRkY7=Dx={0_W`f)Ms`) z{Nfhh`ueE<{-1p%|NQ^^jE`P!z~xcC@u`=1{cQl%xa^6`jNY=5i05+M68-q0j2J6Yf(Befy(S8IO@I8BP*DfPy@;-+kg{**aBOODs(=5zV*we70=&K z^oxPM*GJz}J$eKAUEef{{^x$|g75gurC0E-$yZzhv$gvORZ&LZNGp$ZgL?bZhYKs3_zfm;*7gPY+(EOTB}R zs`FHF-U8=`U3mkHn~3dkMczc?Mh(p`9sA1@wte*TXA@uf^>h5fuioG<{OYNH?W;HV z?O)&U!TS%G*trJ~JK{;;$)_h?eXHxi4fFhFH82YkL&K4giQWU)l*2HiVjwCySc}%c zOcJTlMaCash082)aM=+Z-5s;go5e6?HI$YFaWfG!qY?eyyIb786Ops~$A0vK`j`JZ z?~UL6d-lCv_IUSio#X4zMsIt^X^S~V=d7F^z1Q8u>#ybM)1QAZKlrlVABJ4>HC9zM1vjBBE;&Nd}w}G6eSPGZ3zu40+i_@HzPktAWSkq^)IXZnVCGT z03i{|J`R-1KCc4sf--Li!o6!GCgtC+$ZC3UlDa+_iywEef`YsGVa6g8rX9H@{@z7q z_F8Xrupg)PY0aDwA=Ac2IwGTJuQ?lz!cVef3f=1M>g+ehL@Q8i6Gwyn>0v?wr2&Wa>*sl7~xcmrjYOu1#`m5>n4;2Wv(XA#*mQ6?fKEG)uX z#5;$<(SZm1$6aYffd+-R6!F-LaMY29{WtfGS$7G<1)dkgp}{(XBDh1*w_9DT9`zBd zzAR2T;Mv(QV~6{=ANdL)GLBL}Xdi1PGKmX`Q5|=(n$b4LxyO7LX~e>BGbToC=-NdT z1Y0e}M7p#Ji9MK+7FUryx!DH$o=>%lzrVrIROnxTFCdKROwSN|K(YA{ z4_j5mJde(nJP46!8qU=%0IXafp&25;h*>SNK*F(uLmT=4hj~KeLYcrsGM>>pZc2qH%~i;yK7g1j0SmNDdPr1H^a#XsR==`H z1K3*qx`RQfV?<`jw!WV>f##5n5;_Ll76KA4LW9JsOC-xw3A_UECUH_Dmbl@65)wtW zR$BlYXH})A+W>eiwHIYFQvPS%q2QqM(zsO%AGZGys;o<%vyn%oT0r6zWh=2rh?#3| z9V@#HnTMDU5gl0micT>V^MwdJ=^cy90?idkMiH`!W`%p3NH8OKrNuUm9^hr0V-m42 z7O|WXj(Z7JwBT3bbE_+3tJ-BY77=0Kq3_|J6|3u)-3G-BwR}lsbbdl#@~ip_9sikt z6Mm^wz4@|P+^0}`yVXxx_ZJWWDxp?8CqaXsOaC{Jsy?89R;IBxQJjPcWa1c&v{>RwJ?s2_rNoTP_#K4Y-$4} zw@RcSt3HnwL{Q5kwNweVvUEIb`>6KxSR|LukP~hkE0+jH$L5{~aCG1j;TGgOxI!vds+*;BMK}K6ovV%nen7 zEKXb!bA8R5n3LqIPuU6EGq^Zl`KM#`-PSHq8a~=0W4qbQe{b1J zaWevH#Lv24iCp-zL4Srp+&GtsZH(zFz`I0|i+_J;^X9dH*-#>a{8t|$w<}^iuZ8^J zAl`^z9M*0>W;~>%i=@AT?lRgM9mS{&g7Z>k5koxgkAXCku~K-w4}!St`{+kw#KPmc zy0Ds+-l1AtPQZMRCrr^8M=v@gq zG*_DcN&LGh;aVe`AtcYA2be${A-kdYumeyx6Nah1s=C5~Q53ox+ZJra6G!{)RHaiv zGjSGwjpbj>Acs|%as9b|pTP%6FYKRpv8)r z%l`b2{q&E>yA^<5pop1qSiLOWXI}o*NvfE$;T~v8?3OYLWntwCx0nlo!-xeix}~-r zDkhb{Q0Z!uSc_gkCV(TmK)8Ux;zUiAfatpyAuO-oswHz}!`^@^>G>%%@KpqF0Xi;b zB>Bq~xM>3bfy*_hfkq`0*mswPDwDD}HaW7VSi_8?xxQ-Cw4oO%hlUgCq>z@wYYZHuPcJrB%|S&eP${=#QxKmP9OkG^q(f8k%* zwtwm0d%NEM@~gmhiPygKwqAd$YC~=NJ+L?GerB+Yc45$t2-IaFB1U9%vn@Z+jhSFu z81HDzZbq8eBD{f|=3!G-K$3O$M$x12Z@ct#II@ZR^vu~IaQ8RkKjkvqN!$JZh$!p8ycfxJelLs>y5_`frpRpak>fY zMQ6C*p?lAm6bcK$8Vi_Tk!@$kv)NsolpZ6xCPS|feZm$dNtz%g8Y2GD!BV&=anqTJ z-Yak(qt7=pFV*$@<%W;Hb~EPFt;T-eKlzg%^`H5ZzdgSAgSS!NI`y}{a>j3e?TkFl zzBvbSM0IuE&lpjAz3~WlZ@l&3)N}U#_m@8&fAgLCv*YyOzxm|J4W67PCQh=Bvb#;P z-JqYr&!IgrTjY?!%aLXmDigia9xUZu=Fy)$<==My@pMj%v+3-ZX(#5?vk0IXXuFRx z#dKwc;{cxW{R|YG#1ORQ1ndkpJ?PH`=qUFSy>0~|GNBvpA!vfWjr3&GDLBwSb!vEU zUA5fN&z&g;q&{DQOSJ+z13P|lD>b&o@*Y(S@+&KFX>g!O2`H*n0OANt;Q;i=jFI65 zdoi(ZKL@L&M3+!7rG4z+?4KUOD}HVTOHhzJuCkD#p*Fb+FqEkkEANW|K(Zv)lb6%$ ztpinyB-~N8AyWh28Wbk7FpC4y+QE10DMa$^&8&WL>{wz%O|DHr(`4mK3~Da z*3febFt@TShkj4j#ZgGDi=nKPN)2mP**u^uUiPl1`_DjETlAXV_z*$aLD7B6?+f(U zQ>-4j%Oz+(0RBOnF4A`@;4V-MK((qVl+9IO0I&DogW2D}aX+ApP!sF9o{L#um7Mcq z0SzWA;6SsM*tjZB1yGrs9V8pI$Da^P2E{M~g;Jsm1q}BLZRD1km7t0T3o@e_JQzK$ z)MjX(XtiSKd^t-LeEI8E15UbkwI%I?u(OS0VP%#Q3Z-HKJx?^Y;JKwKREfVu+aT^M z_nf_IopF$+M=PY+YM)T}M6!e;M*WiB*%{ah%9y!Iz@JJMV)q~3>D51&f8nafFGS}0 z9_h5mK0(POpm*ebU0Jbe!DJg-ff!H*xXbG$R9AaDbe4$L-Aml@mvO3x#wBny7o%U$;DbuK*K6xOgg)%zbkgS#4sPi(WM_Om^wLZQHN=+N)S##SWpnr|Tubn0GZS zu%K;ZX&;m|MqY*IfLH2hb#}CS!?GP%q$QtiIIglkiL1YS#Q;V$irHhV5=V-x=Gq-M z@!D1>z7fFUa~)*rYU$$uTmF9g#OHDU*uISRV)k4y1PN?aiWL%?%r|W1GET|H0EG}Saz(6q1oX2R4Eo$ zYXtx?MVJiRFaG1Wi@AQvz-;LIO)hXfN&~BN#@btpkI+7~GPoB`S;2F_73t;b2#JMm z%|SwyWQYZWb?%fX5cs5+7ponF_vDkj$Z`*{ehE&za7HE+)6P}4>-{{tGRRuJ~ z@v^XD%m9B(EE1G0!9?Cdt(wGvwCuYp-KcNSX9N;)V)bqq+Zu;;po6WcYu9;ePb%Rv zI61|$8I1NRlv1K}ZZC^Fl$IepsiOnW)$rW0kiD_Eh>`0|uR-)H2s;Q_+u-H6v^B=4 zt2#?<&^ns9YlxqK1lIdjf~%4f>L9!+K-3ZgL%jeK9!MR!^RlNj%s4eP2wS+VEWh-D zqi3x5t3jN?;kM$d0t+_)2amgLJl7M+q}VC@1!9Nk!hYz?RFRn1T>|7M3Yyt4DXi;W z49^(wcPc^IZL%&+{O=f*zKid=aN!k3?Cu3)5z25^MZe}aF9P2Q=yuv{87lFukGnO3 z?S9y@&-RJ?mLt_}tue+i)6aLZ^z4WQjX*fvtGYiSVJhVBjAAp`l77<8x#|*Ng7T^~ zH>5RojKlYr{lCv|o1s-}rMNoP#vxs%8C4}MK-O{i=8zluV?X^PfRs@8&`m2Pr4~KQ zN%Pwdg9;f_e1a6wF_*!mfn;Wa4DI#LMSQlb7az<4QK0u)&d?XvZAdWNDeMq4EONV- zLtI1rLQi85;4H*lMnE99nkC@8!z~hiVdNFC_IiHxBJ)Q_0~*fd=Z6l6lA@{Ln2i{A z22!C6=Jb6-CGu2`NLZ&2XQYOR9m?PW8}#o~Defs2w=3=9*E#M8;TeL3pL9~CD#@?;VyLe9pE?>gpFjNG%N6pk8Zd9+5Nxtdw<};Km2!p-@~ou%-?+HvOl}j z*z%O;(-@<>JF9DMxLju6jKXKXt@81=cf^yA@Yny+>+vW4>}UEHf8ni0Z+Q6m7xC%O z-S!DH@9t07XEtpx+vaCtpl4SPb^vNx`2@BKtYH?!YPnKo$b znAkvJ76RF7>8cFlI!B{3dpq|)R9B67c;34z`uXjKyF0}5+YPrLZkW$UVBdGl8rW|H z+&P{TQ4u$@w^Qdn_CDp-=ktt*k7hl5l=1qxQJ6Sq#N#LTvEPlp!@xzV{5}!)d*b#o z<|}86r!Pjoc(K*(OBOcI3o!2@sz+hJ56lN_DnH~(8;!^N7_T;N#_Y$h7alykuk(gD zpR19PbDv$c)%~7ZO*ASes<%sz9>a(kruNazUPGK`!$>SLqZ>QW!=&g6L1&t=+&A3)t~(q{;B`^JM*nCOzhu0 z=X-zq6d%3Fy07l-l#v^1Oyu4j`@Zjwwyrl{Kc5~x+3?H1`f>i1FJ1l$wnu;XwI}20 z8xQ#idqqSfV*)#2nk{CyqtO@&qEa^5B;X-v)6t5kk5ERD?5>DDbSul9cEjIUMb+Fx zo}%gV+{U2yKy3oWB~b0mfaNJD0yqLJnsWlT$?TeHR$!F;;7qapR_lo})XKzwlfK4n z8xj=x4Yg;&02)LK&YnlzR6F^(ac{7w_uW3n|$5qyj(Nyq%MQ_ZW=_BjMfx4g7*vNjiimfFkdbOBf z8zCIQkNtR9WYPYk0ac-7v@%L@R0FookqL+b)skKm)iHeI81nk6F@}R3QrpN6R;~_(&t1Bn`78IHTr6= z2*^1YnL`RmwiaTN{6b2^N$!v9@8b9-@$dR~te4hz4h4S7nyv;;3CtZi6bx4Dstje} zYsa);#`x~tj&P!i);sp6LTCk!QEPF;z8$wN-W060~-; z;8+2b?^+5kD}iTNC~CN_xieVBv8+4*C(LxBb0Q`%hT77t)vP6&hHgp#YBiIKsPb77 z>PAieKO8OM{fY$AULtHl%~ zJTkafMt6&7&XsxuR+bEsC%ew^mGHAnqimV)fFDN3P(Qb5bhTRDuuxbM73^DlKG3}? zf*nV|C$@e5^*>hIEX8M~c*~-R_Q#*HhS|&KN9uFXU<)EuY|BQFKnHDbQKWRG!qJk! zz9-kd+p`Dqz%pU~6>z`l74t%q4Z0n`Gu8|yyIHtwu*$&;mhv<1c!sh5D&Vu%^8E+@ z$7c*6XR8%NBa#(5wMru)|8(Vh(rZtRmTfAbCIib61@-V{R^Y zEa(I%gI{N%QLA?~A|yIC3BOeQZ$Y$@X0Usa(Aohw1+WNoj`fQmzhJRbBBr=Q1b_`5 zdf9O1Y<8fxh8oGk1CEVf2!&l~G1m9CN@~_nU6H2b*o`p*u@}^M6eDF5*E;}k;OO=( zB2-HvN}5~pVPK}I-cxr81y{{NNe~IpmtKix(QGr?>vt&ZkrOCz)`Heu?;jOP?71K? zq>1+05B_iZE)GqW9q$50Fb8H!jLBq((wSjOohwabpOig*1ymF-1aY9N<-DP*IsvTF z-#Mt7osCr0R;`%Hv4!?;f;`Cus8r>g?p>(OR4`4N>(4{BZjOc9!v)ofn-)PIZl4Mz zak{M)g^V4A5qjq$L2eNxRV68%4ah>)Mp51N9#}yTg?ZOgSsm8>T(2L_10w#_h#!k8 z{?w=zwhUydHhJV47Tw_e$9537m4TX*@t^GY8rrR-2PXB{@A)5AI7S3UZU8*^of~o` zZKL||ybd#Y?vuEF9&K*|vKx*C(HP^j?mjCnv=;i%y(ze*#6-8~UaE|QNLEf^`2t-D zj5OP(^P%DD9_H;C1FcMiNMc}P6%WsKi=EZaL*GB-n>Ou@1@+ciS7R0QF$qF;-3c8Y zR6YY3z5cG_=u8etP8>0ot2Hg085=QIosJ+B!(VJRyE$)5dldoXEOegW;pD7@)spH# zrV!Q7|gRIakW8|k?dee zw{$)!TK+x;?JgS_QiTyblq;(_mHkq+3>~h2j^bx$u2vDP6sb)2vW7DITR|&J60D^s z)X&%sT2TfEzwC(Gz}{ud&|r%a0nD_3flsWfb3bC6Ky8@4Q^hKS0_|G{*1#^4?rDQg z3+pT@zPC<@CAf_x>Q*2Psv??-eu^|#;5&lKWGH}e4}KF0u1esbGww&W$a>E-(6dEe z2~|3~BS>bXOK#orAa+Et?)%lx@3w6_Ax_!o zu8JH{GxM@XkJ$0)Z@c81pW8d$-tqNcew_dKpL+xU#=rG#EaiSZ`cvQWEM9+Y@B2%1 z-2?Y~u##(LWK`ug25K4GCb2Ns2xHX7*l7a0tMCicbWoBt5wGkCB8f* zI^cAg%?gdEh|0{Ir&H%ZHzMt@O<9yRN-^ARuPGYP^ z?OWHl#N{&3)m1fu!$fl;dR)5uj7$^M88J~c0CYt}(CM`LA@^X9AB@Z>f(UZAyjHoZHokTsi?(*Fjy^-gC-aB_t7Y20n%KEI1G*j z9i?gj58%?df&7O{&#OyfkOC-YQ7y2B1q@f%qpa%?fMp4jh8;>I8p=Xp2`|B5tM6|k z2#isfb0R}xfQXfx93~y`ejW1=a_qH+VCjOnU zT_O5SeIadd0z2<#RbiZhXGM3w_LJFh4CUsOji`f6Wc&JJ6+{u^RuONqnO&%jCikP0 z>l>5y49c!wfptn(G%i}Pdb7x7h~(R`Y$r z@<*)t>2*iZ>XF?hvGR(5Q!uWKJGUT!)_Dc%ZR>ZGhA+BYxETs;W9{Q%r;WqAgllc@ zQ~R%s$7*H^vjr6})jnp3Z9nXu#gc>Yj8=t>1n5=W3ni_j0{zhxc)Yk(kB#fyg9*Bmq0B>5SnPoOg}TK)^M2xEQ@ad1J6c8qz0;5+@4!1Ihg1QRPuX&Emb+2~V4m)lY zF45!}+GMx$2*4FMwvR1gf<&~NJH(3bi8Iv7#w7g`5oiY*10(j8rP_#frU*5eNDz)s z`A|R%I2*qtPC15ek;)haTGCp>6+=QsA!ILb2s~F;llybb4f3p)T0-Y=JcA7Skw{fu zSYT3%l}0bU*_bR4n2Hnmur1r_Z0iKt^C9>ga{y6;)r@PNp<@5QRov%`PkV83MVNln zvw;|hp~@08h2IHebN`uW=#L_w5%R{~w-|-q8P`#)mG3Jijd)1>NMUoNvf;J9z7z|a z9AYPbWPwDsTH-Q^H$8_)tL_62_+GGD3KW%;u)wOO#oiLLYE~F}qLcVpri4BW#7Gs5 zQ3IEnvUzOfxVciwAYOyqgA=eRepZ0_Fv9Ez#9()Zp>{j0vRiBz&t%j}M1b0e%PCs3(;|i?3IBW9 z=kCzxt3VfH8y3XsK8mMR2_jq}k(ElcpitVHK!d}o=zec}&la1GLJx|Sv6u#P5`FdG z^0ye88^{((o+k?>Tv#yi*$MHxjSZpRZ5B0HEnI3>eBd2p_{@Y6iN%gGf8BxNz(B?V zNbQ?!NCe`K{nQV`h0UH!P8FR8YzV0MU9DoKND2{6pEMR;B7NTKLzq5T;9!OT*6`l2 zupqxg8J#`ozyrYkBEqgFHS7;{SdD0m#WJ*RdSOV3<8uUd_vp7nft+1X7;sCNLx$() zc;G@RCBlAhG>sp0$!nHhh*#e-kT!YXSi3b<{K}7RfpyW{b}5$Qj04<$!Was8hI>RS z?=XPSW%T;EO_GV2T&3TG!+Xgbm9MNOQ0Nm~o+0plf@%UW* zh3~%Whu?7@FW!IB|MP$SmG~F_wO8}K-+sK~JjdhDy~JB@qi@cUHM?%_H|#s|G{iH@ zK`7-%49ER{N2Tcdt$cV1S2-J+?qz#F7qpB-1D$rZACrG2a zI~Bz1SZ7Vm^hki6ZANr#iOvm?5!Hxlw!F!XKqi}V3j=_GXReQ(C=F6hH&!aletmC;{Mt$&&!pnEh ziGEOTzW!1EWB<@M@!$U0kNZ>KH3Lt(KKSw}zVh2QJx1W>l(~()cUqvXJ$j!rAD?4> z>HteXw7<=!2`-fJjvnyP_|;xzkVFfCjF<#V%o<4yWp$aG^3d1y&uUpj`_nEb zpUhTw08s5H*6k4VHlct-D8e%lLhXYH>=h(KB%^<)4`1aWrPba~l}iu6Er7Ze_!!bO z+u*cFwuYXI+MBY|xxWjxmi%2vP+sMbGEwfjf}>52D>wN08YB;9A)dsU5!=QZhR_0< z8OQnx9TCrHe?$Av%xMM!sSM1PFP)GG-T}s|S_rj!Yhf-|0|!8YVX7Zz6+Fa`=MD>K zHToL1V4u!RIkLjh%3{i5>lOJ=iek!y%vjYa9&p&++;;AH3J*8i83qA5yl2hu%I!Fr zr{Vj86}-`v^0_#Oive#01wQr+pYpfz!6xAv@C++7_#Ca)8%r1r<7bK{V%!A(AU1?oNeqp_c9k`tf!td2Rw4%|Tn!n0{^1nq zraMchg@UlTNo4>qafPu6E}pj*A)>=nCU;w1gcQ*EM#*Nm{<;B-D*8rLLi0*f$k zc6tLi+GFyJ&rsD9XiL*Axtf2eR4s5+1LZnznXRNv-K8bu0&X|KjOv}OEF|iNQ|5`+2kzau6@y*O@vuvVuOK(BD@=z}|sVPF0sEP7$Hc zL@)*Xg-;9w7ld7jP36qG?jx&O_Iqr{`T@WZYQ@6nZa<{(jWJU}M5g?YZ4AI2qWD5=*FA0e2TXbh33`iT6YHKz3j8LHKIvEJ!)!Ur;+S$IrYMtt|C~ z=N$zcKkw^&yM@jO@Atax^xqK@zYfAZc=ee@Jb9j+QLO8$m6u)Y13wfBo08eq4oPf4 z_d2J1R{vaQK!G~5pi5YTUzYGaz?ENV+0eCkD6Cv&VKVJcw_+p-jurqS;BvOut`i$5 zEc?u)+L#~%o{3blFErt;RLukbgh+E%MFKEE>4yb?NF~t-@X1asQOX$8F>wII-B`&8 zD}hbt4HfP8_fxBkd+dKb|vJ=3&i) z;Gbnp%)oK?i&bAF-auxEl!?&RMc4W9#y5mb6RHYq_}~!# zGF!bg2(?mpCK7IY!vV3A;#&sX)ZYx;YI&N9x0)S2=r`0U!#Ey?D;fYUumI}#z!e_y zE3Hl-kbfw~7feb@)O0dNqQTiuD+$DYs%anKM5LyD?P$zyCh+Kdv#y`4b(;4slvuaL6Wm6HhiapDY z_3se!=~okb(%9dadcSq#bu4Owou3qXowzOGCPI5utCwiTZ> z+%9jirrn31c21@RAlZ>@n#$9LrO7phe6aQtOtNtMT35%~7tj@Hy|UR(i@U?~2nj$f zezU}GxMgBA`o1xT+iB$0{g5B|xu5#c!|BQZ8bDa7XgQCg7m=_`(-0FtadCJM2u$Ou zq=LW1g>$yX`X@q}pL}rjw&s7&S_Hl~hQFeWCz>W8g37FWzRMVPKqWW%2|#HldU5b6 zMa#}nx)ov>Gc3pAAgn>6IIiBtATZPABPFM;!z0kfGal^A)mVxUopB2oF@uohF2L~- z+OJM!km}hC`k+dKP%z{)wsqjKfLXKrRy=E9RItTYZTA$5#b70NZJF>TOPB9pih7fp?88})US$zs;Uj)P+ zu$s^%sRAF7G(;}1ve1?a4%k|X*}@5fTAv!M{cedoL*fmKU>g$Ik$}qJCtYHDrk*nmQ|&v@h*mSbU^CZ=9T}PIc4cmI zR0T#Bqq`m%rINA%L`Tewj_Qb*6}?5p-stGg=JJRFs_NcoX)aY^xENA{=* zb~I4KxvofhDh>Z(sfmM=1TSNB6iaYFU#3HiP)i~C z!l_`Vbzy0$TY;Df8+v&b1ZXgD(cv>wg1)M74e}x2WuF?HuUPyp9v!w5GKgRcUWwby zpnkb~18M>AlC4qf!_RR5Zt^oeDU|SYNY>GRx4xf#W@@1$7>tzeGYLu&9+2G!4)Q?% z+dgZ>NTm!vTho9DcixPyou3tA7*NqGK_Hf}#E{ADtK3i4uo5xQwQH?IpT!D|5GLzTE2B6-z4wtx-y9t4^W#Xt z)*$1uNXkXd8LcbehbmrtkFIAwg&BM+3g(PTm_d7HBBPCm{5#5OG*QSMO{}cfE|4U! zztp{(A%1{ajT4$@6y}kPzpge^0*%E&TRw@S6yRqvsF-d^wJWi1R&Kl~5Dq9PIZQY5&u9g(etj;6hCIZ!Sk*67SPTj2JV!3)9 zXKJ0XSl=JPdQP8Ri@6~?z;`va(mSp6YvEu2I+%4lz^l^O9gJi1}gvN{~Jxqk`dS?q9`k3C8f9)k@mR( zXJEsk5mw|FT4y;gWzb8Cn1Gg z#*sjy0|4Mi(veJw4&Lh-ieID>mdpM*QFRg2*;hUQhe+lKknO+rgPc;;mt+-~zIF0Z z`6qE@pO$}@Fj=eC1Bg@wos!Bz?QLS{e1-0!1p-%UV8zCJIm_Gorl(Ns)=orgp9hJ^ zafs>8&bNTbb(YhCpVlZ@`%Gse>GYZR775&Z*US19E)tx(lQ*fZ4&yNVf*q9-{2o+%MUxVU% zmexln$H@#9w1;g$w&Y%kZ+xz)p&tD_dcyvs8@lA+=3XM;Recli7VJY&Y< zB$Uv=st5XxC3SQtkuT7rkkiSC_yl>_Xiwr@navc#VDhBDS^hqIyK)3xk)D7dIpwb2qOud%tS&(w87w-8{A z-yE0-66vc?%UYk2tON+8s`ZxP=J)ITu}zNWObuc)ue8rec)PHAZlR5O0t0P8sh;~7HiM!zkoX0!hpDlRok*vtwFu=|Jw!$ zIjlM-am@84HW%hpl||%S>z@|j8$cy`ObYMv7qbJW6UB-cszeD@oi@+#Ed7Eyyc}_u zFrCiPfgyWUS~Y+%$Z)rX;wk@Av_+ThH8YlcqlII}P%R;J$}VL!dgHTX5uZVJ#%+1# zGPkT8wa@l261r}SykHOh+z^<&Uo-%`qeGnHwjoL>5o)K^x(Dp~M=VSHyuyjaMbK_B za9(xI4bIS6{J5}!&`9nyo>*HJPrV(i-{o;o?G{?Q?1Wr zFH;Il{M=9d@U;zrYXG1H-!cTgnF)c|fSM$1Cx<-fYOagCddw-%M%w5pBvDJB5@=y^ zj$BW&&5L+2>^^|HkUdm(*U5{OaP=-y|pr;A6}ZvSVg~Gk;hepzl-mO$Y?9s)0E6 zx1umQWiNPv2969J%{N93o-Ge5hEy}Q=^;qI%tP@U!S#a!P`P^c31k5*wp`+nZj69E z*JtFwn&=)R+eTUirXzy`E(2`^o&yjVR=WTlN2pA44Lj5MGI7kr41Q*EGvFBpa4-t> zOZ|j%F62<#1UV)SMBejqANB0E@vW!(XWw{q|L6X|_iaD*h0i|0?WOPE`_`qOy~MU< z*7;l`M@I&wzBz&W+ng`<9G`mQQlI<&%Q(Gp-*+FL>wo=!d_Dj9|K02L8((>Xn4|Fe zWxV~}cX;LDo@iiR1}+tdiMn}u**br*%=!zbj6p6Odm{1dXjyDJ=Be*9; zmM-V04vxu@P8AwjM3>{TplpmHyf1W&5#1e_6TPJlR#ZB0IVT!Mm|-9XF>L<23vBMaFM`ZNuf=2ZdYU3*U2_|C2xd zKK}SmeKa3`uJZ2b*6;l~_V?b;XvB6i=00L<$-akkA_l5wSLcJ9iZ@L^h)wP zJSG*5(T!QOu_fQ;Oo=t%r);|v)H-M`lGEsB2598UHZ_?^`UoO_YXRB_W}cRSnS=7f zzXtXdc(+RXM9PZ}$~mYf!EODwB)!Z)!6&LN38XRtXEr zsT{Um=e`fp1iasojoR&J6$l3JM^gi4IeSp>9~*!R4ZVrZ(lZ5snXOD6;Wdeex?or5 zw-tx*?2MhsEpQ+zj0a_cFWNqpO8_uHT4l$?napD6`E{YAv-EVL8~CNcL|9 zFD7?CX&`<^PSaVrzuc8Tf$60-`Y zWIy6XtoTla-zi~M-kmkJVM07THx{$el--1p3+xf>B4RmMs#@#jk1Xt-L{9y=5%ngeShugp++O zTH)X}gclq$!2erDDd9UwzkUoT7RFQEcIob|d0lD;G)Bl*(r31890$_+UY6`D??qqX zZO+S)_=ofr;(J|n!+`ETD_tf9iN;!Y&NXScER*dJYuz!6_D!OaF%kw&$^X4~BClsM z=(bc%RXg&GWtlfhVK+aYFuKe`7qRA9BCFl^NZmQzseKy7tA$JiJX4MdZn7WxeTt%7 zq;BA}3DvEtXFfM)odWxAe|!AYSlZ&nN{$x3a#xM+MrJNM9LEI_;UBp4Bv&{JB4ic7W^P zs)=56Y!xTRKx83ipft0BSi3-tO)<5y`8Opt*sb~g7yh1w8!oW~wJO9P{mCEU z*61NyK~zeGjTkyq4iY~J7^cqOq1YP2&@qf)nFC3htNw~6kEJ(wxQVCT`!da`Uat<8 zv~f$(pvQyzlBN_9pD7aHiAjH#;SgNFiB!NhC8QU>(Io_3T z6*52~Sq>s2*Tt|;^Wd-5mPbTbB32f9!_M25F<`Zl2gqQSq&gFp2?tXFQ;)Gg%OQ@W zMJMDIS0yBJhQSJq1lTSYQVu)N8-v@S;2;F}S+3%&76L6PFM>R3dX&H@0@p;c@_v>C z5E`@yU`shQ0agS_a`wf9?Cf_sMp9k9zjetoy2MXDvD9o#@^$Git;0 zyX|tR9#77Df9A8uSHA16adVH4e&cccnScAW{OA6+pWeUq-q_;dz|9+X_2y@0K7KfX zU^44oK<&vn;Yk7>4YK3Rg|E&S&N61T2-M$N28R9YX}@c(@~!HD5zUm^Jt88bV+RJC zJ$3_Gy;qFEp~F13gr9QjtW3rXWIAP-)_F8jKoD#{6a*ewjTuoHO|zz`+Tmh@z1%61 zb#;#r4N*%{2-~HiCDwW8%XQ^o=`?DxBw%AET&XtUAdOHxGb4(uTq*ugbTAmXGBY$o zb;l7=xkYYK6$Ab9CC0no9JstU8g~)r2NVCmPdvq+`V$}E2Y&dYp3ffPYN?}21k-!FUPnA_#I(^*Qu1-$}Bw=1E-C89Nt^@GJ1eU9_5&^9m;ul%1t7A!T%-#cLu4!sXDZXN zx@=>XC}ZGX$#dni7^%La!a4jGGfSbPj0w&(Qrii)?TH>LtL~LK;w-vS@YCUn7c77l z(Go0}KmaHRoNhhC?@us5DYeMqjndgRDXsNfL-a)I028H3I%hitu!7>c5|@rXuijVQ zu>gC8$6DY1L~l-tAUY(;=VL1f)r3_pyto2{6)YY9aBrrvwL@n@2hKrTaF2M)nZctg z4y^khs~w56{$@1B40IN9LRoYS^pu50~nk_4)~p_z4L7agiJKnux6iUAq}eZp;i|TQEl)fD58$Ure?M^sX7 z)4urBltBRCUhkpR2<>?ro-j7X(p?>Dv@)-j3?dO3vPZcE+)}JW?6S&NzoGp$ zmS@FnD;{iC3ri61?v=&6f_^BjRg#V4M>yyou`=EDBJ$NH&S{fEB8+FD1R5O^fekSy zFhl~jRYrQT9LMKkHfL8{5#E(N=bdBujl{sL24Z5f;1fO!fuqj?6tC#qR*9gu4K#0A zSHhID3zdDi)`wZcs}j*w^Lb^98_Sk+evc}KTmePPa~MV2b!Pvuts@$lOd0GBw#f2% z5jyfAawatiH<5R(gt#jL8Zh1OYrNzgcvz&9JNQr*`RU7}J)BqT2xwN6;Jy7<^P9?K zl(1+B7_d^0@qD*iIyK3_xEw|h<`}NdViTV*DMBP`0$UEuy;mzcnHp74v$DW`XIAMh z$EpTnA{o~^X2K4C2K(Q~HrAlu1td|+R&e_?v#yN2Z9i2>rZ|^8#~Oc3e9$~!v4P}$ z_WBIlpICMW>kL_xwg~D!Z~1q(BZ?f$oTnr$l;{cJZ6$@)}nN*?C z5~Z8`4iwXkwVcLQ5?|W4nfJ(|FRKJ8pfv(pWBvWkgLLll2@=_l*7=Gn_bwYlxElrJz^sYvfzASyVY9e25y3963Pth_17No=Il{d_$T_LRk&S+N03&s{Svf#; zrVyMc3Jw&y@{%rf7O=<={TIy2-OcKPsq7yJG= z=pTXFRZu7cpn66GIBduVt6P^=N>nQ0z4~xY zYgn&Dgwzu%BGGx#+Q;=N;-9l^551KuNC6-=0T681*3hpsc0}5d$cdV8H36Ru2_Poz zAwu5Ph88>`u%#VsD7YZdV@bAzp3;A<;T%4~ajZ`lVzWqLB8Yf3UG|*-T!t?vV=<+> zaCcYu@agTtyE*>{-}N^BM?d;~rzfw!_3(1{qUP7%tN8F)ogY5f=II2ekNF%CeYfKj z7bM2KJbn;(`?H;|eCk0VF#h(hUht>>)mQT0{10A_%d-anqVtsV+F1pB>Lt+_4?z;Kl1zU@Zb39d;Gp1y}#fz#>;m)Klm!}^m4w; z9oraPBOepUuzx1X1=kMOmKQ-&-fAQ9n2m6CF ziQ1L%$!#GZ9}<0NapA0zhBL&m5KNnV@>vKCF)C5U0s}395YbE`YJN7)kR7N72dk9H zIoYe7i@?!7wSCGEVRC+pYyjL-bF~1X35Vm@5a@OrB9a@lL(@QJGQ*fzZWa?DpvyZy zLBSTY^))2N*ousPaSgU_H%yiI&<0+Oo_bb&w)NvSXrEHHuKj~Wj8eaP1bb5^L6eDB z03>H+x8_K#2}$48TTkGwgb`vkW;pAX`^WI(wA*me9GC347RztQWI z3K-It9{pK=M}QP=5y78_h-@j-B54`;mk9W4;l?CFh)^9qy9!RQh+~!9=haf{zK-^G z#t~R{pu_@)+Gdsi4r*bcidZ~;0Ef^Q3$fA8O%uKYJ$JUrb235Lse|ut{~xu==G|s0 zp#UyR!FP&q;yK{DI6;M_xXCDhg|EgoLWGT0b%x&gXWoV0LAs+gTq{rJN8a& z;F&KNNAnF@Nee^IW(&`^O`vz;fTkTi2r^-3;X^m5aK_ZCEChY-?4y=u4arkR5<0O3 ztA8p|9ngdgV@-NfLW>Ae_^zr&NAJ4-p&_rlz~*BsnpI0mvdNCMCy~mMa-ir)LBZY{ z4%vDhs9fCs0wB&`!#EWLHP3)X5~(eM;*-{eZ0|0IvXukC(&0~I=%bwoud6TEM5THF z_gG}qVzdC>-?>x#cCyICs$!)rYpN+jjYoE%H!ucC4gGH4MW1u7YdLszNTfwEIo2NL zEE~#m?--4rlyMNnv~^hV8*BrY0?qh|F{-2kuTQAW-5g7R)HlGS*(VXapI>&_qKlJ^ zP$b=_$$MhpoC)NlpO&HV`k+Ix;#Eed;zy2h5@9<4_O@2M;~ICjeOfW4D8Ql}3AYJw zMtUp6t0QxDodZC59jb7sLT`zjv@z14`T2_bn$8$;MK&T+Nm*0DVl4l3C;;AbC*U;u zOFGtb?Am&sa6Ctw;PwQKJiv`(-sOMwy^1fI-%1)iUzV_YpPn!rs@0-b)kWIAh zJZ2C`5IK&q;$Vxzd}f(_{`dMyJ)Z=G9wON)DNwh_B>AWrSo}qGaQ4McpIzc1GFx-z zRtTe)&t+3c)?*QF^bynL^%7351Sk;mw*7S54+P9XVb;-B>Ik^u84}%-?u195cY1Qo z*l|LHu!9A~;oZMObW@xT`Gzhqaj|LVIn>lc1X`Sj3ScZ^PWSP)uhh>{&+Or;c6z{J zFZDV52qrq{)J1a0w!PeSl|w_MKXg|`GNS{YL*vT3Mgy9MMy)LtK{`7zVq&UI2k)Q2 zXHsohT)&rJHVL8=S?NYTi*XR(w&Y!j*wpGT=88k4wZg-0vl+LHNbE}Z#Z>nYtyziZ zq@Nq;z7T&&@Z}?>5_jzTlynSLV1l9ye1BsgHRGWMlsqALBzqD5bFYIA9PLD4FSSjR zA9LGt^Qh`F01B`ZU7PIGj>r?X!AhA1yKd0L#IjklkN3`^_+kCFWnVd@*jS%2`HN8$`aLjkUQS&>6A;WSlLcdo0F}Qo3TF!gXH$eh-vKhMY#Ehnf2c8xz*bn0;pQLU2!^kSdKu&Euj&wf zj+{y{lK_M78Uc7H5n2@+&7g6g8pxIE3*7uhR&|J+N$%4cRIIZCISV1e)$0@@DB=nq zMEFfK7^Z<7V+FG8(Bcd^osR^zjov(m&d>q_0uA8|##W_?jB68!yKO=!X!cwPT&+tQ zeo1&bvYDDa_vO4v2{&Hc72bQgpHO#y;`0yh|MZXkov*z9ZQt>z_q)3P$~*V{^4UCf zp0J&A+$1WZ64CQ=8Q5!JUMBYHdh_*(Z~xxQ>GW2`{2291f9+BK&;Bp3#lQW3eI;Hz zzoGd!bwB?6j&FN?0_TYiV827p`y7>pIX6^CpMvV_flWG;S=r8v5K+qzC|arS$(cM% znY;iP1oz$17@erBPUL7zR7GVVCBRpV>h2uX-Na)N9UMF!%*aQu1x*w)o>DFGn7b@T z-kPbZ6C=qS$ihT~27Syfj?YMqLaEd-=#H!{D<=ETLV0(d9V@aR^Q>$ z@c0A|(knAF>B0a=)Ir1jgcBM*qxV>S?G>A?VT!ZX$@E;TwJJ0g02EIM+y`QvvjMJ8 zJ9%UYsHTpUz~SI9EFbe+Gnt0OLyH-(4yh0Z7Ox_j0;^CuOYh4?emD;QLgYM;;kKrI zB}xRGK(tc-!X%jjung?BGdfQuAgcposCt^<7>Y;vP6ec^lVIVF|EKV8*#oI4$C-g* z78}=a+Y+6zw%w_PePMqg%)Eq;00UH!!cn>WK}IURiWSs*&AA-0_FG!82x!URTJjEH z!y$-sZ3Ef!u#XX+cyDGvdmkh&H?t;yK+RAhl+M0djkVs@?O7bPO16WmLrQlat=1w# zmSrk}?UX*&5-j;S?GQi-Ub98)f_UT@sK|JiSJs}1Z@1bdHU$O?j7u!DT>yE`1dcXM zI=55Rw4uJ_UQj%O-j$c$M z=5rm_PDjtO#0wk`rxX*dKXKVOoPZ3RaMx-sX( z?>CJw+m!Zk&im>GWTV!M2MNfrV-aY3B;!1ZFtqbn7?a{0SRvR>u#x}q0D1}P=1Dwg zdS$&xH2!Xw@z1s6<0wH*UI2k7`5*|{N1E>+fU6mflnkxZ#?pR`FE_-vuAC_m5SdgI&CH`#; zaa617bM~s1h)(S0^A>)feWGS#e-%I~mfVSlL)BknJCcx&17JZ4xKtyHvr;~hK$TeU zA8IdF%WlNN9H|^1=9arE^zhBI7>rVkrS0RZ7$Z-NVB(&%c(@%_!hSNaD!Bq`4S$7~ z#HI4`2(LE4p~DlE7M_%R0!L#LIfgo&P=Ie&H`?T)8Iz}dQ$yu7+*MVcm4)TfyCr#z z91dED9||iJ0W#F042$sZj-%2kf%v(f{1F)1A?WyyUXc=Wl~d$WIA?TMwE#vR092iB1tn^^F4N?yyY;Q~@f_x7*anNh$(eC9D}Zg$|d1 zddO%p%NwW*+ff`Kn}#ZsWi*`Gp1oS!@E?MK4Cn$#p_Mzz;M(nzV0vU81b#R(%k7L} z0iuv$T_rG0V+%O|Ufc~VsT3eUII>xPFBDx2XK8|K-JoL4_jA83qFgG(jZNerjqu@+ z2e_sw=Lfyx3XqaUz~`R>T)>P(+Y=G-YkoolOWh8a31XeEP3@~J)`vjJaNw_iU`^)s zdc+|(rS6>p4@bcAe{2KGiF+Btl{W_Otu3DY!B_5yAeA-RS7b(zuk!NTrvRb7g5*M$ftTw#DeqWGYj4S6DsDEu#xN_;DqV zoVs)7YC5W;vJ%K~PMps>BD?Qv%lq5v559Sh`wvn5;z40z8?W8fkN@4z>%aS-eQ*5a zA9&HPd|T!I-iCL-lKuWuQW&QZJv?6-8HI5__deg<$3CO-$+<6|eQV&n#rDk)_wBF! zt(Ui7dH3@3@|avHK0}(LpfWhRaP&8 z@+ydGW&JvgV@nL>=juMxJOYSb-$lDLJR~>*J)I@qi+tQKByVR+j3{RLwb_XRX4rWP zNZNkb()Q9;C3c&TA`v-dGuYeSVnSO(T7#?{$gtv`V8>*M$%U5hbk&0s6pq#eQvppf z3r51=QMSo5X3_&!=EFX$-B;DK3XDdZEi*=m5Z7lh7>e~77A^$k;6ZbAse#pR+NF&8 z9LWE2XsS$_sw*1$c^4@jkv=``^P1p2j4eza@HrgtGnnO?g(5AB0cF=|T#yWed@cbK zp|-aYs@r?Q()(~dFaqe*`;y>U7zTz@1oLaCtca9!7QD$I^%g}5r^x>=@ZT=St|Q0^ z`sxXiSmH;yrAhU)y{Bt`umC&{hvg0KTkG8ktFP}$AbPTYehsh>Dsc>nXzx zt>$esgGzYK^!=(<<6yhN?{?J=AVNu`Jn@X}yk#i?ye59Ozdr&F3wqrD*b~?k%#`C( z( zfq59fEwTu`@G`|-9M3QnTd2Kd!~|-S;K;Rz3biDWy-zQsKQj<&aajtOefGkHT0oIv z5LelDf+RR?16!Pw>2_8qR)iO`wJSbN4e!#+;&kI%p2t#z`c z{4yxkP*nLLwsSh}lu!?Y$yU{dynsbFNZbhxS3k&DQG6nZO`ugA?Ez-1^+-}Ak0@kp zSZ$4bo7@7g3lW=aR-2y?LD1-6)%Qv=fGVZ)_`6FS^zH3p^*}2dSuqL)ia4yV@%h#F zwkj`VMc_m$h&-Gk{d}JTx!M+#{Sr*J_fb(IY#*)UG&??#Ne%g@DtJ~9W30sLr=8aX z3h&PvvKK6ARRtF6xW2+20k$gAUvBXh zGWRRa4f{E3ElP^xJp@+u>ugpLDAI}G9E)02xljeQL^a)?)lWM}B##c-mugm&rs8ek zjzv_0ZRhNNaAn`GF?4Ab2_%F?QN*193#sKVDO9yYH&g3ihJ1rnA|2oq)I82H4;-=S z7|2PfF-O1&LS=$If-Sqe=2w`=oh~fk2PU=}xFn9YW+Fj7vm~LwayB|y^=jW6Xq4I- zk1Jb`ny7I?)-Kx>hMQ_r$GgS33S(jLA?wOElthLl{0g@>qtRe%G-01>eA`HDT^iIL zs^cP@2sHNKOc3&qA|TaK1U-;R!G-iaXp^;2^YV;)V_|!Cn+qR+muGcr$?BePQ6=*Fg~>ZZOL4 zGf)><020}u!{cEbfdn>Q{*v=ZAMDn5jj*W`VDc3ZfHmV4de&h7HvYXlS`G;4(oQ;) zDs{${Ws(kf>5NksfQoW2!w|}fupu0>9H}AA=v?3m$+Nfqy4HtTZyOahSGwpq8iAqx z50wnVKwE3T@70D?8C)q~;U_I@mqXk$qQo zqkD_UDxgOc=FHgO)+z@9GDBu*V<$y&v^|<;UOaZ~wu2oF31>vkfnP^9Jv{ zf5wZs$Jo|!!pOqtn1wNJcl6zT&zp14Prcgt zU;PNtP}>d$f9&gjfZ5s1vJ4Z`G|3ETf~C2wzW5W(o|{!mXkEmugh%_$YTDN-w$PYr zYVHhF24e)9Wl|aqXi!_X+n``&7_sGBVr8HN|7Kd0AYIBQoeXd%(LP^GW%DwFYh9iF zOftn88hVaZ)hCb>CR%-J5BufJg;r~hWgx7=h)^;y*!q7dpEgCH;L3lp+}7pE1t{}Q zwITdFMW4-zDdP-*Ars7M+?ilTs>}xi2Kz8qUP#C$p&&#I0aERs2_3go;1KCT^i>~B zp)m^3W%_O5BrJdFeVBSyh}1s5n@^^0vE4Yz>G3CeUZrt)h_}NdQppTWE zE(LamjnAUNH@`Qg?&<={IzDOzSz+Q&Sz=YFU`C?*p2E1wYvH?;sn!Ap$0id16A&fb zhpLsGx$a^l&xxK52o3g>FmcsioI!)|R&v%<^pNQ0-v_o}mM&*?UA0gEjlc+!9md5z z)2$uYDp0wac_}dF9*{^N?y?w0IY52-qp(S!A%Elq6xm5Oi9DS}d%BcSqUe*cJ20=38; z*`d%HXVHE{m_TwCu!YAX^UQ(n3hsrYVIo|k4pYFfaNZ=-&2;6cwT*kn^hU6BA+D-aJfZ^SwW#&7mVqky^kY^jRYxD_%U!Lm2SPDbD*F*q5a`ewa3%*^8C2{mhIArJbo_o++m{8PMsA1LxNu*l%V3g)`q(@ zts#7U49SaScMqb`=Pe~_aioz3kqIxD#BRlnPRen3bqs>EtbW)9|7#7=Y-K1qS9M6p zfigCAf7;)#L?Wy0t_(^MzD`(6V~=LyoBCD?e-od0CPL^lEJ~-^I(RMJ!mSHzm#Qi~ z?v~A8^RGD&dKBeiM35X#koYDo2-j! zzn`{5ExRCG8?maZCPy~)svkstH&C*^Y+jGdzbuXT$buR;C{hh5lqp{g%+mG^? z^HVypYwgiMkAdDV6k1P8K<%qLJ`%X7HFJ<`r5Fx0gGzMm@Cau_t38seR#{{VaZ-hW zfhnKh4DMd1P4U3h^OoZOD7L6^0uM9({j7_MSvFyjZ1DXT{+{Ar67Vdn1NT7HqFDE( zRRt2N$|O|K`ZsL~e@?r>_BF1Kw#||KR439JO}pc&&kj`w3loVwW_6HaDq)IrMG+e4 zRPs^y!16APP_KNq?DILcLAsLYEU1B^PU>0Q@})IsmS&hFcPZf^D-V(zS230RqsMj2 zn!#KR z^sIf@mW~x8##JJU?P<0XM2HEaAbz!v7Ui;)Y{}%fM9#Siv#{b_XpN%*S10=q+N~P9 z7K<6cN_1k(cT&=UE8u~inmDf(v)xymS3qK6Xk9kcJ`u4YHYUR5m3?AzInQ5+NoWi7 zN&K;XZjxOU)wRT!hUdTmz+ewRxewjn0=sg^rZRKiHoaH%R&;a!vxTcR#EMCYk%!`{ zYR)4vmmWbgU2{T#6tXwAj8Aha;0%E4mb`>6JMR zU@e%w01p4$Z{N-}F_fLc-(xx35t8{J``4g;gXUEkAG!>cpw@lWR^Z;I_y?+X1qGa( z%*GM12LA^7Q0;Xz$P+mtF8~1m07*naRG-u7Zx%>G>i}gyn!lry8CuRc8(v@=+*p@H zJ)av3h^4``4D&V&-uMAlh7ZHzl4xdbxep0+)rSda84mA9cC#!e0})e~&if(2(F3z~ zf^An^XeT6qNjy3#0a#@qAQlIZWK{sYS?Kc+DogZb(j|%DT5%t^XEcfgNBn&e8P(nx z9Ic;Rp3Ajz=KLDq93stwW%73BHXx}i5C@kQ7aAZi486~l$>gsL2?s|u$L4Y?B*9n_ zoO=ew>TjogX(%uny&NvA$op;ujYh-OIylybR(SzSw@nHkNLkhZ%Y(NBGTi#2@#22q zy{DJcJMVq?Pk#DQ{K-G?L$7}7yFPb{hmUiG*2DN$fBpgfjsNGX_~kD>!Mr;+q9Yyz#^XCY zc{1_%@x;xU#;iwisPLZ6KIyX&nX?83K;$;#0f#?lA|(VuVh}^t#E#JXGdjGffRf3dB#&J|Ltn#Z z^k<=2(%!}F|A{;zAY~SmTOPC_i|w@lsrtb>gAR6qGFpYHL{eo2*vFwUC&6izS~LVR zVHU67iQE{VwOad>`^3urBuYbrLnIm>fdhm6k5;#6Q#+XTP!!%s?kOPV=hPA0UVVmx zfHkOdkt-Hyf!>K57;B3RP|((GAIS4m3iNBnDjzM0o`H#~WQLD|wTM9NPEHVE?W~!& z244yE&NfKK)dRYe!3HLl+kv81NocuZOgc4jyN%zF{^z!xm z>)9n>mD3OO?7|Bu0d{cR$j_5xJ-b>zV?_{Gw*$Mrt)A1uJ9?FcX9I~`e$wVQyOl9|MZm2KQ%6v)`$Hl> zunT^yNJ+xmx&!TuVf|lPl?i25g9DE3Pyo2K*^(l4-jDa=dt|o~+C=p_A%Z_7S>^pi zd3)h3UHWg@I{Ga?hwqrPiLEZ#|K}1vdhq#s0yR|m*1ck<3TALmk=k}D78d#nukiKS z|Dp|uMD)%q%U!McM6Bi#1de~`ZyN~3-4Up%&vok>d(CjHrTdq9J_(pWuc|&kYb8z~ zwYQ5PLO7h)8XfkCi4rYdK;lNkQAOz^p%+i#Dp&o?S&VCD372T1hkQmhXN0xyD80QNLXptiWIp;e6#maMWf^GoQvOP!ZBJYuM6Lsf> z^$W}jw@<6WRMIFGE-^Vr??}uv#W98k&(qFkyTaHtN4zhsDu^%EmFi(jg^gEOJ+O-Q;fq5&#+v+aCFPn(u`_ ziR&8Z4UHX6!0mR=T`47@_^eyvs?il~QtMuF{%e^lg^(@dzBxqB_7XNRgB4DQWhXed zEQFbL2KDDHVQ&T#z%KKuQ-+=>6yJ=bzoL2N&2UFX&V`#2iN-qTtL8|RVqGAH&J*oT z0HG?4b25nyBPhmA?kTZ+Y8~Pb=F9PyG1*QV&ke^+a<>uerN>llS9UWZPU0SP3|x zESh>*S}@I|3M0Hz&Ym+?l-+Q<-$Y`U&xr(jHnvlu_r_9N)iPg~^6;y|vRHQv>#U$S z7Z-hH|8(ESP~0gT5m3dIu6^xlk;y~BJ8RnuApY||`6F=e)O9@RM+D?#fDtS6T&oXs zVzLC_=p(AlUdA|l;H|Vc0}BZCnLIMid>Rbg0(15XQe)WC1)^1kvA{e3?S5JZpg8gt zQY~KWZbkun10K+{vKF<+RCZGN_yAkx)LKMdV85|ePb7b8l6ckXz9rs(f6nZIScYK% z6~C+c+HC_AJe}~X+WQES!lW1jCA6~EWUy(E_4X25UG8fm8CQmCbmKBZ>K6s_ zi8w?KeV@x)EVK|XH6UWau2s|nA#uy0tqQ+9!H0= z>Ewz6DnaF+xxbsmp96$6djyxuj`_^p>{~na-lJ;`L9yYY(`^bAGJ4D&E1XV&%O&vM zhZo%5-oNqu+5JEMJ)b%KV?XqLk6!!27akydd{G;B@M^In93UwZN;NyT{F^I?%J`(^G!qog4f+fAJCi%wKpFzw#T8@chM? zxJ_P|hZEy*=i@i-@$doq!Ncg0m+p)njl9&>F)KR*RoUo@=a{XbMGj&1|kLD z!QAtRtXZ`MOH4Qxk8DPS$gQXvLUq2KGMCYXN@hs$yQvvRHB(2TnBLC*qUgwMU~Cmp zEW*r~V^nOTdq{ek4a`0I`TdA^Iq~$P4YyBE=t~#wHdddUCO-3>&+|vV`?mjqA9@+T z{|EN|_P^t{PH*ptGkSh-if12e^TTg+JbSSPiu}NXbB!^oQ-c2G5_?_xgkn3o4YzV#gc#G?l{|L3>f824{HB7(aV?;V`Q7=ca19<#-R zm5;J{4wxK6kcV?t$N~5Zv`wwE9tibV=K-D){Q@{j7z0=R?gT_DRGw@Q4)u8UX9qIJ zVxZk-zyry;fXm*FIN>aqi|>112>>g&pCoZ%*K~;C%ouVGG4DOeClZh(;hn8YM?RZv z(AuUSSnYa%h{$XRjA<9Jqmf1XFa`1jX_P1=u+X`L3ufT!^J^IhAS5=YzZlB)<(e$a z5VR-Jt)i6{ZgA`xFfC0V#Y`nEd~tlIK6+Je41IN|s%-lCL}G;AkVH%!VuwC71#B4% zsXuO;_!*0Ajev+V*--_)3@_wEyD*{FJ1Ih`9YAsL63dQBdYVY&%nCMNoKTCI>6Q)2 z($Jp52ZFC13scdjDWyt&=}^tD2-a2AV8RN*T_U3!t7YOM$&|H?V5W>okkG~wGo-{c zXQXfqi%xhE>davBq2T#7vAYPTl`#(^p!NJm1<7%LP!s~ICW9pbbhgq+Lek(pindK+ zMa2T^;r^k3=Z|1zbhQBNg*Zs~wVGnX5?I24VVDC_D-_ssBmAxbCd1T(xbFCWo}{Lxo-4orPIz151%RBvGDKuj);O1DV~bq?K2&p znx(VnsnEbJ5o@bR-aaR=)`&^dQW!Fiwa_!PUd>|jBJu<9Obq&Zt!#T0XdkDtOFf6g znb#08G|g)um?7TuCJ76xjbrAV2whuA{dX?BBb=asdbNRp30JL8^4+43znf5dlk~eX z8LossU}Elya01K^0GOJ9;(HLGJtnC>7DllzQ8J~7ez(C55fU6IEc=TlVc2Sml7Z-* zqGH)UxW=#!o9O-0`W(0fhcK-hK;gM zRAD=*G!O;oa`3X5=(mk&5$h(~1@f#|1F9aV1$+>p(%{nCiChQ(HIPHjTA$~ZJ)#-Z zGgS968e1MI$p-SCClL};It`#27y~0*;w+VOIX*u_^G<6`;b(*@01z6DCW8+u%p*5c z-lID4;^RAf<=vOR3-|j!_5I&<{+S>D!6&c0`E3t+&aS8LU&c4y@4B08Avu_)*4v12 zKF#h(%$aeSh~5+XrRvfduRX4M<5PP+d3(mqYXv+k;1=`6JLmeFzn0sd|ErJUFa64^ z_=UeQ`q|T)z)Ys&-30Q{-shW{+mkIGJ*=4nV;har30>WLW{gC~zGsiTL=0_oBMQlO z)723fojIc_Sma!otPGm$prt$8g_*!;rsg-A1Auc_t^qm`8=^be7p;+zqhia6O6C=# zqHB+Nzjxl=XP&pf<*w?*bHwE~>+U`ix4GkaY}jgIdyqGeF8GcwzK9?DzPtE+-~Xb2 z;s;;i`@d%|ymlF=b73!Bo<=|aF!AAs=oe2%zr4g48GSlMoVRjTZv?vc9dSW-R`k5& z<+aCgdiC|flP3{-b^gYe3xDyKpMB%wkLsU!`1s+Ud;5*^(Nb11xuh=$t0tl;xt0Oq8_3<0!8OP}Tw&|MP@&Zf=o zDOW7;mK&YvG`2r}h2%yTrr);>8b$0`q^qmo8$1Yg)piA~-oOSRa^Qtt8RZV-0>EDK z*o*K{a03FtRi>*F|J9G*?#OQ9r{ejY%oWlR%WOPAP*9*HXww4GZyCspIW z)X?lDKUV{lB12mh9Cl=0Cm4q<)|tVqFaiZ9fomrwz@M>R6pgDKJ>4VEE+}Vwde=js zSnV_RF7;6^Rr7_iY(%PbtjF>YEy6cGpK%FAid1Pm$<);wTOkxlXZQGQ^i1T&Kc}c- z8Amv75fo}+5RINe&|VWem{FY9tu#dLdGK4T^pIW{sKlyuF~dE;>c>_~g_*#ZiB7g_ zASBQ^mh&EvxHx=&u>`gjjw&Z-C?Ju(#k16^V8|iNt7lZ84G~o&cl_BptFYKAvN>fS z7E#G_S6#?ck~9d=9<3xHuEA7L)e7{pS)t<7K3JnighKSXY4Os~;VLyFfa;Voh6JL(K6rHGVwzU&cWAaq{Bko*pE`gMj z)33w;5gY>Gx|!=P2Y@xiT9(J{QC7mAd`*ITJ#{B64YLIw*V1Gha77&8AZSuPR8^*j z0IauNl_znW6aMcbxObKy6#JT#j-^KFOw?i5fg=H_WdH0Waybkxs6{Va#VU+{ul#Sc z?pQ4Ul=^DVk_}~dljxpHs6ng{2P$n{du_K5q{to-!?p(qw%$N8{>~kxiWZ-B-_bUB z5xI}1z&3S0Mguz>t7`DO?)oCY^!}`58dw84(F^B=`si5vTRe!wbHADs8yZ;gr$C7^ zv)A>N00LHXm)^PkY_WV-$)44+cWMPEr^;ew<5%6w(ETVU;FK>0y?j`FX9olGAF?Kp zL0>{brrIp_aezacY%<#|4%fbbzgwX?N>v&dpAIO|!-;F%6c3#hR}x~(?{vdi;h}Rd zOEzz`TG0tdEBTT?;$55&PSP5SyM{YHGy@+jVnB~n`a4sk;emnRHtcYx#b}dnl z_|g8$x3Lk5jYx1FZAu!n+e}{*L8`m>3IB9Od~#h|$C)w9z{JF+SMls1A25B7#Y@Fq ztNongK%Y||)(+weC)B{CD-*bIbXUTpf=2%%`wjWm2X;Kh7oA_qkVLfY(Rf8k*9ap})FlVFVupRcbz9+=?0SwO?5mHqwFs@pSP{bEu zE*~;`H567ntn(>;I%LCL?K0r^W0RjPUB%6B&J1|Q34-S?SB1vmyQq5{_g18k_z%Y| zsz{WvNZDQ8QUp}E<(BsP-~eBcZ9o;vR2`ZBh~*!+KEgA0s#q5j`z*HfgIb*G$F8W4 zpZmioI|&gvK_I3pr)vJuATfUD3!H2kEFgsy3r^s;Ob9Wk5%#nknPn zEdzKsKAWi?5(Gph`1ey;=61O37q0~Y2-;=jqH6_Q{G(nkZW3xV`wUujaakC_W2^wh z1TR0k05%BkDYO{j(aT1yjTA`^8HHHj7GN2)@)A@gg|< z!h$Sds9F1i~ zLjCA`A0^UQJUB#%1aQ$kNo*U>SAqjqZtn|UfA?;C_u1w5yn2KG>5u-vgP;0Of8Y7^ zB56o z?h#K4qaR_`><`|J_#3}^?!Wjq&ha09`3C>-Z=U=8Z{Fa7o49`wP33g5*-ulo%ZOQX zOR7bC!~o6@y0&xVI8EG~x}HBBh={y77tZI|+qrrhl^HoJfV(?n%kqxs?$I$6*agth z8MAl~aVgwa0z1^3GkU+E?{72r+iu)#oNC4h3$dYk-bd!vIT|;w?)jNdH-6xYxA^HF ztp2edxb5%w{4HL8{gOAQ*?5pZCH4m! z9f{hRFj6tMEw)EDU60SzPafXH?7RNTH}3J5f9d5%zxvhu`Nyx0KmD0ckN@~J?Dwy| z^%lDBW1r|XjFu~{fM<)QN`gQO+`D`-F!v*)&o1ETEy>GW0-VMl(|x=ZEjg${A3n&z zOqB=O)*%kG%TIZq=M`Etfz%4%#$e?O%WDOmfJL0oNznjm#kLf6*Qxdq+V>?B%fe+zLiJB|gy>m$HC*#|kV*KXckoJEV*l=pr2+t! zX|S!G^GQAd_6c-Gk-Q*r*o*9A`$dA1U4c%^=5%?#E^&K3lJ7@xCuD^ zkx4wDyn;(b`wp<99yS7*U(M@>7g}sK+ew` z96eOdA5?Injc@rYlg}xkY9!Z#lU65I591DI=O`PTS#WZT%E)frC(ka5$-iq@LQ#T% z5UaG;i@RQsNAl={f}<)x7(#vtP4Ow*w$ayCgnc={2xYB1HCq0T#Fa$y20SpBCEePU zHlE<$t!}7|HXK@T@Jk-mF=5 LeZ>>kXpO$|}pNY_Zum2JZQ@g*DK5tdNEnx4eGn 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

      ^tsCM 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�z^r` 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 xM@j;bHa)HY^}X5XVhJoWKH_b)Dq!W<)P@mf$<* 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�bomlVQux{VH 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�sxlUE%Ty+W9!I!jPWCfc^gG}!LQJ&+YQ>$Glr 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

    From 5c2431ec42e516ce81ecf85f05b76a073bc06410 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Tue, 19 Aug 2025 09:59:08 +0500 Subject: [PATCH 139/443] Update navbar-authenticated.html --- .../header/navbar-authenticated.html | 69 ++++++++++++++----- 1 file changed, 52 insertions(+), 17 deletions(-) diff --git a/lms/templates/header/navbar-authenticated.html b/lms/templates/header/navbar-authenticated.html index c9ea97a423b5..1e64b81b6d8d 100644 --- a/lms/templates/header/navbar-authenticated.html +++ b/lms/templates/header/navbar-authenticated.html @@ -26,39 +26,74 @@ help_link = doc_link %> + +
    -

    ${_("The Office of Academic and Digital Innovations is accepting applications for participation in the competition of pedagogical scenarios for the creation and publication of online courses (MOOC/SPOC).")}

    +

    ${_("The Office of Academic and Digital Innovations is accepting applications for participation in the competition of pedagogical scenarios for the creation and publication of online courses (MOOC/SPOC)")}.

    ${_("MOOC Competition Regulations")}

    -

    ${_("Both creative teams of university departments and individual teaching or research staff of the university can participate in the competition.")}

    -

    ${_("Based on the results of the competition, the commission will approve and release 5 MOOCs and 5 SPOCs.")}

    +

    ${_("Both creative teams of university departments and individual teaching or research staff of the university can participate in the competition")}.

    +

    ${_("Based on the results of the competition, the commission will approve and release")} 5 $_("MOOC")} ${_("and")} 5 ${_("SPOC")}.

    @@ -467,33 +468,33 @@

    ${_("Competition Stages")}

    - ${_("Stage 1")} + ${_("Stage")} 1

    ${_("Registration and Submission of Applications")}

    -

    ${_("Until February 10, 2025")}

    +

    ${_("Until")} ${_("February")} 10, 2025

    - ${_("Stage 2")} + ${_("Stage")} 2

    ${_("Public Defense of Pedagogical Scenarios")}

    -

    ${_("Until February 17, 2025")}

    +

    ${_("Until")} ${_("February")} 17, 2025

    - ${_("Stage 3")} + ${_("Stage")} 3

    ${_("Evaluation of Applications and Selection of Winners")}

    -

    ${_("Until February 24, 2025")}

    +

    ${_("Until")} ${_("February")} 24, 2025

    - ${_("Stage 4")} + ${_("Stage")} 4

    ${_("Approval of Competition Results")}

    -

    ${_("Until March 3, 2025")}

    +

    ${_("Until")} ${_("March")} 3, 2025

    @@ -506,7 +507,6 @@

    ${_("Application Requirements")}

    -
    @@ -514,8 +514,8 @@

    ${_("Application Requirements")}

    ${_("Cover Letter")}

    @@ -525,8 +525,8 @@

    ${_("Cover Letter")}

    ${_("Pedagogical Scenario of an Online Course")}

    @@ -536,12 +536,11 @@

    ${_("Pedagogical Scenario of an Online Course")}

    ${_("Lecture Video Recording")}

    -
    @@ -549,8 +548,8 @@

    ${_("Lecture Video Recording")}

    ${_("Online Course Certificate")}

    @@ -560,8 +559,8 @@

    ${_("Online Course Certificate")}

    ${_("Author Information")}

    @@ -577,19 +576,19 @@

    ${_("Competition Announcement")}

    ${_("The Office of Academic and Digital Innovations")} ${_("is pleased to announce the launch of the competition for the selection of pedagogical scenarios for online courses.")}
  • - ${_("Stage 1:")} ${_("Application submission:")} ${_("February 10–17, 2025")} + ${_("Stage")} 1: ${_("Application submission")} — ${_("February")} 10–17, 2025
  • - ${_("Stage 2:")} ${_("Selection of applications for participation:")} ${_("February 18–24, 2025")} + ${_("Stage")} 2: ${_("Selection of applications for participation")} — ${_("February")} 18–24, 2025
  • - ${_("Stage 3:")} ${_("Public defense of projects:")} ${_("February 25–28, 2025")} + ${_("Stage")} 3: ${_("Public defense of projects")} — ${_("February")} 25–28, 2025
  • - ${_("Stage 4:")} ${_("Announcement of winners:")} ${_("March 3–10, 2025")} + ${_("Stage")} 4: ${_("Announcement of winners")} — ${_("March")} 3–10, 2025
  • - ${_("Applications are accepted online via the form on the Open Kaznu website. Details and application templates can be found on the competition page.")} + ${_("Applications are accepted online via the form on the Open Kaznu website. Details and application templates can be found on the competition page")}.
  • @@ -597,7 +596,7 @@

    ${_("Competition Announcement")}

    @@ -605,11 +604,10 @@

    ${_("Competition Announcement")}

    ${_("Contacts")}

    -

    ${_("For all inquiries, please contact the Office of Academic and Digital Innovations: Building - Rectorate, Office 207, phone +7 727 377 33 33 (ext. 11-33, 32-16, 16-47, 33-81, 14-70)")}

    +

    ${_("For all inquiries, please contact the Office of Academic and Digital Innovations: Building - Rectorate, Office 207, phone")} +7 727 377 33 33 ${_("(ext.")} 11-33, 32-16, 16-47, 33-81, 14-70)

    - - + + + + From 7f610527ddcce78e488e4cfd9ce0dad93c056118 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Tue, 19 Aug 2025 15:27:26 +0500 Subject: [PATCH 161/443] Update author.html --- lms/templates/static_templates/author.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lms/templates/static_templates/author.html b/lms/templates/static_templates/author.html index bd653aa63e17..23b25a67ee02 100644 --- a/lms/templates/static_templates/author.html +++ b/lms/templates/static_templates/author.html @@ -323,7 +323,7 @@
    -

    ${_("Creating an Online Course for Authors")}

    +

    ${_("Creating an Online Course for Authors")}

    ${_("Al-Farabi Kazakh National University")}

    @@ -560,7 +560,7 @@

    ${_("Testing and Expertise")}

    -

    ${_("Contacts")}

    +

    ${_("Contacts")}

    ${_("For all inquiries, please contact the Center for Massive Open Online Courses: Building – Rectorate, Office 203, Phone 11-33.")}

    From af51d46f4ed9ae0b354ed15f8eeac5e2dd0cacd0 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Wed, 20 Aug 2025 14:34:01 +0500 Subject: [PATCH 162/443] Update views.py --- lms/djangoapps/courseware/views/views.py | 27 ++++++------------------ 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/lms/djangoapps/courseware/views/views.py b/lms/djangoapps/courseware/views/views.py index 3e7a3fae8ae4..ec9a3a27275e 100644 --- a/lms/djangoapps/courseware/views/views.py +++ b/lms/djangoapps/courseware/views/views.py @@ -285,37 +285,22 @@ def user_groups(user): return group_names + @ensure_csrf_cookie @cache_if_anonymous() def courses(request): """ - Render "find courses" page. The course selection work is done in courseware.courses. + Render "find courses" page. Only show courses with catalog_visibility = both. """ - courses_list = [] - course_discovery_meanings = getattr(settings, 'COURSE_DISCOVERY_MEANINGS', {}) - set_default_filter = ENABLE_COURSE_DISCOVERY_DEFAULT_LANGUAGE_FILTER.is_enabled() - if not settings.FEATURES.get('ENABLE_COURSE_DISCOVERY'): - courses_list = get_courses( - request.user, - filter_={"catalog_visibility": CATALOG_VISIBILITY_CATALOG_AND_ABOUT}, - ) - - if configuration_helpers.get_value("ENABLE_COURSE_SORTING_BY_START_DATE", - settings.FEATURES["ENABLE_COURSE_SORTING_BY_START_DATE"]): - courses_list = sort_by_start_date(courses_list) - else: - courses_list = sort_by_announcement(courses_list) - - # Add marketable programs to the context. - programs_list = get_programs_with_type(request.site, include_hidden=False) + courses_list = get_courses( + request.user, + filter_={"catalog_visibility": CATALOG_VISIBILITY_CATALOG_AND_ABOUT}, + ) return render_to_response( "courseware/courses.html", { 'courses': courses_list, - 'course_discovery_meanings': course_discovery_meanings, - 'set_default_filter': set_default_filter, - 'programs_list': programs_list, } ) From 8bea53c16cb30fc89a57adf7f02c8b787221cd57 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Thu, 21 Aug 2025 11:25:11 +0500 Subject: [PATCH 163/443] Update courses.html --- lms/templates/courseware/courses.html | 923 ++++++++++++++++++++++++-- 1 file changed, 851 insertions(+), 72 deletions(-) diff --git a/lms/templates/courseware/courses.html b/lms/templates/courseware/courses.html index 11ad5079ea65..e26f9d20246b 100644 --- a/lms/templates/courseware/courses.html +++ b/lms/templates/courseware/courses.html @@ -2,80 +2,859 @@ <%! import json from django.utils.translation import gettext as _ - from openedx.core.djangolib.js_utils import js_escaped_string, dump_js_escaped_json + from datetime import datetime %> <%inherit file="../main.html" /> -<% - course_discovery_enabled = settings.FEATURES.get('ENABLE_COURSE_DISCOVERY') -%> -<%namespace name='static' file='../static_content.html'/> - -% if course_discovery_enabled: -<%block name="header_extras"> - % for template_name in ["course_card", "filter_bar", "filter", "facet", "facet_option"]: - - % endfor - <%static:require_module module_name="js/discovery/discovery_factory" class_name="DiscoveryFactory"> - DiscoveryFactory( - ${course_discovery_meanings | n, dump_js_escaped_json}, - getParameterByName('search_query'), - "${user_language | n, js_escaped_string}", - "${user_timezone | n, js_escaped_string}", - ${set_default_filter | n, dump_js_escaped_json} - ); - +<%block name="headextra"> + -% endif - -<%block name="pagetitle">${_("Courses")} - -
    -
    -
    - % if course_discovery_enabled: - + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + + + + + +
    + + + + + + + + + + + + + + ${_("Filters")} + + +
    +
    + ${("Showing")} ${len(courses)} ${("of")} ${len(courses)} ${_("courses")} +
    + + + + + + + + + + + + + ${_("Filters")} + +
    + + % if courses: +
    + % for course in courses: + <% + now = datetime.now().date() + status = "unknown" + status_text = _("Unknown") + + if course.start and course.end: + start_date = course.start.date() if hasattr(course.start, 'date') else course.start + end_date = course.end.date() if hasattr(course.end, 'date') else course.end + + if now < start_date: + status = "upcoming" + status_text = _("Upcoming") + elif start_date <= now <= end_date: + status = "ongoing" + status_text = _("Ongoing") + elif now > end_date: + status = "completed" + status_text = _("Completed") + elif course.start: + start_date = course.start.date() if hasattr(course.start, 'date') else course.start + + if now < start_date: + status = "upcoming" + status_text = _("Upcoming") + else: + status = "ongoing" + status_text = _("Ongoing") + %> + +
    +
    + ${course.display_name_with_default} +
    ${status_text}
    +
    +
    +
    +
    ${course.display_org_with_default}
    + % if hasattr(course, 'language') and course.language: + ${course.language} + % endif +
    +

    ${course.display_name_with_default}

    + +
    + % if course.start: +
    + + + + + + + ${_("Start")}: ${course.start.strftime('%Y-%m-%d')} +
    + % endif
    - - -
    - - - % endif - -
    -
      - %for course in courses: -
    • - <%include file="../course.html" args="course=course" /> -
    • - %endfor -
    -
    - - - % if course_discovery_enabled: - - % endif - -
    -
    -
    + + + % endfor + + % else: +
    +
    📚
    +

    ${_("No courses available at the moment.")}

    +
    + % endif + + + + From 4dacda84fe842e0358dd1bcd737c84dbc31f26c4 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Thu, 21 Aug 2025 11:39:41 +0500 Subject: [PATCH 164/443] Update registration_form.py --- openedx/core/djangoapps/user_authn/views/registration_form.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openedx/core/djangoapps/user_authn/views/registration_form.py b/openedx/core/djangoapps/user_authn/views/registration_form.py index bf3900cb5c29..1098465f23aa 100644 --- a/openedx/core/djangoapps/user_authn/views/registration_form.py +++ b/openedx/core/djangoapps/user_authn/views/registration_form.py @@ -557,7 +557,7 @@ def _add_name_field(self, form_desc, required=True): # Translators: These instructions appear on the registration form, immediately # below a field meant to hold the user's full name. - name_instructions = _("This name will be used on any certificates that you earn.") + name_instructions = _("Full name (Surname and Name)") form_desc.add_field( "name", From 79e9bdef9e189a45fecb93eb329d2fd7afbd1cff Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Thu, 21 Aug 2025 11:42:30 +0500 Subject: [PATCH 165/443] Update __init__.py --- openedx/core/djangoapps/user_api/accounts/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openedx/core/djangoapps/user_api/accounts/__init__.py b/openedx/core/djangoapps/user_api/accounts/__init__.py index 2efc604ff39f..56a8614be638 100644 --- a/openedx/core/djangoapps/user_api/accounts/__init__.py +++ b/openedx/core/djangoapps/user_api/accounts/__init__.py @@ -93,7 +93,7 @@ # Translators: These messages are shown to users who do not enter information # into the required field or enter it incorrectly. -REQUIRED_FIELD_NAME_MSG = _("Enter your full name") +REQUIRED_FIELD_NAME_MSG = _("Enter your surname and name") REQUIRED_FIELD_FIRST_NAME_MSG = _("Enter your first name") REQUIRED_FIELD_LAST_NAME_MSG = _("Enter your last name") REQUIRED_FIELD_CONFIRM_EMAIL_MSG = _("The email addresses do not match") From fc7ea428ef51839a77b06c6d60f3c9a58b644fef Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Thu, 21 Aug 2025 12:54:06 +0500 Subject: [PATCH 166/443] Update registration_form.py --- openedx/core/djangoapps/user_authn/views/registration_form.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openedx/core/djangoapps/user_authn/views/registration_form.py b/openedx/core/djangoapps/user_authn/views/registration_form.py index 1098465f23aa..f92ddb5a6f8f 100644 --- a/openedx/core/djangoapps/user_authn/views/registration_form.py +++ b/openedx/core/djangoapps/user_authn/views/registration_form.py @@ -557,7 +557,7 @@ def _add_name_field(self, form_desc, required=True): # Translators: These instructions appear on the registration form, immediately # below a field meant to hold the user's full name. - name_instructions = _("Full name (Surname and Name)") + name_instructions = _("Surname and Name") form_desc.add_field( "name", From f67062ef295e3988d26400a383f4438a9b85e077 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Thu, 21 Aug 2025 15:58:48 +0500 Subject: [PATCH 167/443] Update course_about_sidebar_header.html --- .../courseware/course_about_sidebar_header.html | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/lms/templates/courseware/course_about_sidebar_header.html b/lms/templates/courseware/course_about_sidebar_header.html index 7f59ed1f2ffb..d50075dfa89c 100644 --- a/lms/templates/courseware/course_about_sidebar_header.html +++ b/lms/templates/courseware/course_about_sidebar_header.html @@ -48,14 +48,24 @@ body=six.moves.urllib.parse.quote(email_body.encode('UTF-8')) ) %> + % endif From 54475526eb6d535c9ba9479ba8146b63b8bee65d Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Thu, 21 Aug 2025 16:07:54 +0500 Subject: [PATCH 168/443] Update views.py --- lms/djangoapps/courseware/views/views.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/courseware/views/views.py b/lms/djangoapps/courseware/views/views.py index ec9a3a27275e..116a56044ce9 100644 --- a/lms/djangoapps/courseware/views/views.py +++ b/lms/djangoapps/courseware/views/views.py @@ -851,7 +851,9 @@ def course_about(request, course_id): # pylint: disable=too-many-statements # Overview overview = CourseOverview.get_from_id(course.id) - + same_name_courses = CourseOverview.objects.filter( + display_name=overview.display_name + ).exclude(id=course.id) sidebar_html_enabled = ENABLE_COURSE_ABOUT_SIDEBAR_HTML.is_enabled() allow_anonymous = check_public_access(course, [COURSE_VISIBILITY_PUBLIC, COURSE_VISIBILITY_PUBLIC_OUTLINE]) @@ -882,6 +884,7 @@ def course_about(request, course_id): # pylint: disable=too-many-statements 'course_image_urls': overview.image_urls, 'sidebar_html_enabled': sidebar_html_enabled, 'allow_anonymous': allow_anonymous, + 'same_name_courses': same_name_courses, } course_about_template = 'courseware/course_about.html' From 70f43484599414c4edd6c486c456a705cb80a3b9 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Thu, 21 Aug 2025 17:22:16 +0500 Subject: [PATCH 169/443] Update views.py --- lms/djangoapps/courseware/views/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/courseware/views/views.py b/lms/djangoapps/courseware/views/views.py index 116a56044ce9..2b931f3bd801 100644 --- a/lms/djangoapps/courseware/views/views.py +++ b/lms/djangoapps/courseware/views/views.py @@ -853,7 +853,7 @@ def course_about(request, course_id): # pylint: disable=too-many-statements overview = CourseOverview.get_from_id(course.id) same_name_courses = CourseOverview.objects.filter( display_name=overview.display_name - ).exclude(id=course.id) + ).exclude(id=course.id).order_by('start') sidebar_html_enabled = ENABLE_COURSE_ABOUT_SIDEBAR_HTML.is_enabled() allow_anonymous = check_public_access(course, [COURSE_VISIBILITY_PUBLIC, COURSE_VISIBILITY_PUBLIC_OUTLINE]) From 5702568e17c90e4f834bcc00d314878c0fb38578 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Thu, 21 Aug 2025 17:49:01 +0500 Subject: [PATCH 170/443] Update views.py --- lms/djangoapps/courseware/views/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/courseware/views/views.py b/lms/djangoapps/courseware/views/views.py index 2b931f3bd801..6fe5b22f268d 100644 --- a/lms/djangoapps/courseware/views/views.py +++ b/lms/djangoapps/courseware/views/views.py @@ -853,7 +853,7 @@ def course_about(request, course_id): # pylint: disable=too-many-statements overview = CourseOverview.get_from_id(course.id) same_name_courses = CourseOverview.objects.filter( display_name=overview.display_name - ).exclude(id=course.id).order_by('start') + ).order_by('start') sidebar_html_enabled = ENABLE_COURSE_ABOUT_SIDEBAR_HTML.is_enabled() allow_anonymous = check_public_access(course, [COURSE_VISIBILITY_PUBLIC, COURSE_VISIBILITY_PUBLIC_OUTLINE]) From 560ede70a4aff91acb1f7ddbcc0b9590679cb406 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Thu, 21 Aug 2025 17:59:39 +0500 Subject: [PATCH 171/443] Update course_about.html --- lms/templates/courseware/course_about.html | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/lms/templates/courseware/course_about.html b/lms/templates/courseware/course_about.html index eec9caeadbec..502665bd842b 100644 --- a/lms/templates/courseware/course_about.html +++ b/lms/templates/courseware/course_about.html @@ -65,7 +65,26 @@

    ${course.display_org_with_default}

    ${course.display_name_with_default}


    -

    ${get_course_about_section(request, course, 'short_description')}

    + % if same_name_courses: +
    + + +
    +% endif + +
    From f45a80bb1c7837a84c2e0c4306ce86248d947e80 Mon Sep 17 00:00:00 2001 From: boomboom0202 Date: Fri, 22 Aug 2025 12:35:35 +0500 Subject: [PATCH 172/443] =?UTF-8?q?=D0=A2=D0=B2=D0=BE=D0=B9=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=80=D0=B8=D0=B9=20=D0=BA?= =?UTF-8?q?=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lms/djangoapps/retake_catalog/forms.py | 8 ++ .../retake_catalog/migrations/0001_initial.py | 41 ++++++++++ .../migrations/0002_delete_catalog.py | 18 +++++ .../migrations/0003_retakecatalog.py | 42 +++++++++++ .../migrations/0004_auto_20241127_2350.py | 20 +++++ .../0005_remove_retakecatalog_created.py | 19 +++++ .../migrations/0006_auto_20241128_0057.py | 20 +++++ .../migrations/0007_auto_20241128_0111.py | 20 +++++ .../retake_catalog/migrations/__init__.py | 0 lms/djangoapps/retake_catalog/models.py | 54 ++++++++++++++ lms/djangoapps/retake_catalog/views.py | 74 +++++++++++++++++++ 11 files changed, 316 insertions(+) create mode 100644 lms/djangoapps/retake_catalog/forms.py create mode 100644 lms/djangoapps/retake_catalog/migrations/0001_initial.py create mode 100644 lms/djangoapps/retake_catalog/migrations/0002_delete_catalog.py create mode 100644 lms/djangoapps/retake_catalog/migrations/0003_retakecatalog.py create mode 100644 lms/djangoapps/retake_catalog/migrations/0004_auto_20241127_2350.py create mode 100644 lms/djangoapps/retake_catalog/migrations/0005_remove_retakecatalog_created.py create mode 100644 lms/djangoapps/retake_catalog/migrations/0006_auto_20241128_0057.py create mode 100644 lms/djangoapps/retake_catalog/migrations/0007_auto_20241128_0111.py create mode 100644 lms/djangoapps/retake_catalog/migrations/__init__.py create mode 100644 lms/djangoapps/retake_catalog/models.py create mode 100644 lms/djangoapps/retake_catalog/views.py diff --git a/lms/djangoapps/retake_catalog/forms.py b/lms/djangoapps/retake_catalog/forms.py new file mode 100644 index 000000000000..9515ba30857a --- /dev/null +++ b/lms/djangoapps/retake_catalog/forms.py @@ -0,0 +1,8 @@ +from django import forms +from .models import retakecatalog + +class RetakeCatalogForm(forms.ModelForm): + class Meta: + model = retakecatalog + fields = '__all__' + diff --git a/lms/djangoapps/retake_catalog/migrations/0001_initial.py b/lms/djangoapps/retake_catalog/migrations/0001_initial.py new file mode 100644 index 000000000000..05c0f69e322a --- /dev/null +++ b/lms/djangoapps/retake_catalog/migrations/0001_initial.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.29 on 2024-11-27 10:59 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Catalog', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('course_name', models.CharField(default='Not Specified', max_length=255, verbose_name='Course Name')), + ('university', models.CharField(blank=True, max_length=255, null=True, verbose_name='University')), + ('content_type', models.CharField(blank=True, max_length=255, null=True, verbose_name='Content Type')), + ('course_type', models.CharField(choices=[('MOOC', 'MOOC'), ('SPOC', 'SPOC'), ('none', 'None')], default='MOOC', max_length=50, verbose_name='Course Type (MOOC/SPOC)')), + ('difficulty_level', models.CharField(choices=[('basic', 'Basic'), ('intermediate', 'Intermediate'), ('advanced', 'Advanced'), ('none', 'None')], default='basic', max_length=50, verbose_name='Difficulty Level')), + ('platform', models.CharField(default='Not Specified', max_length=255, verbose_name='Platform')), + ('course_link', models.URLField(verbose_name='Course Link')), + ('organization', models.CharField(default='Not Specified', max_length=255, verbose_name='Organization / University Offering the Course')), + ('workload_hours', models.FloatField(default=0.0, verbose_name='Course Workload in Hours')), + ('workload_credits', models.FloatField(default=0.0, verbose_name='Course Workload in Credits')), + ('education_field', models.CharField(default='Not Specified', max_length=255, verbose_name='Field of Education')), + ('training_direction', models.CharField(default='Not Specified', max_length=255, verbose_name='Training Direction')), + ('op_code_name', models.TextField(default='Not Specified', verbose_name='Code and Name of the Program')), + ('course_description', models.TextField(default='Description not provided', verbose_name='Course Description')), + ('skills_covered', models.TextField(default='Skills not specified', verbose_name='Skills Covered')), + ('course_language', models.CharField(default='Russian', max_length=100, verbose_name='Course Language')), + ('related_disciplines', models.CharField(default='Not Specified', max_length=255, verbose_name='Discipline(s) for Credit Transfer')), + ('credit_workload', models.FloatField(default=0.0, verbose_name='Credit Workload')), + ('created', models.DateTimeField(auto_now_add=True)), + ], + ), + ] diff --git a/lms/djangoapps/retake_catalog/migrations/0002_delete_catalog.py b/lms/djangoapps/retake_catalog/migrations/0002_delete_catalog.py new file mode 100644 index 000000000000..d52c9f42aa98 --- /dev/null +++ b/lms/djangoapps/retake_catalog/migrations/0002_delete_catalog.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.29 on 2024-11-27 11:07 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('retake_catalog', '0001_initial'), + ] + + operations = [ + migrations.DeleteModel( + name='Catalog', + ), + ] diff --git a/lms/djangoapps/retake_catalog/migrations/0003_retakecatalog.py b/lms/djangoapps/retake_catalog/migrations/0003_retakecatalog.py new file mode 100644 index 000000000000..573efd4f40ce --- /dev/null +++ b/lms/djangoapps/retake_catalog/migrations/0003_retakecatalog.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.29 on 2024-11-27 11:18 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('retake_catalog', '0002_delete_catalog'), + ] + + operations = [ + migrations.CreateModel( + name='retakecatalog', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('course_name', models.CharField(default='Not Specified', max_length=255, verbose_name='Course Name')), + ('university', models.CharField(blank=True, max_length=255, null=True, verbose_name='University')), + ('content_type', models.CharField(blank=True, max_length=255, null=True, verbose_name='Content Type')), + ('course_type', models.CharField(choices=[('MOOC', 'MOOC'), ('SPOC', 'SPOC'), ('none', 'None')], default='MOOC', max_length=50, verbose_name='Course Type (MOOC/SPOC)')), + ('difficulty_level', models.CharField(choices=[('basic', 'Basic'), ('intermediate', 'Intermediate'), ('advanced', 'Advanced'), ('none', 'None')], default='basic', max_length=50, verbose_name='Difficulty Level')), + ('platform', models.CharField(default='Not Specified', max_length=255, verbose_name='Platform')), + ('course_link', models.URLField(verbose_name='Course Link')), + ('organization', models.CharField(default='Not Specified', max_length=255, verbose_name='Organization / University Offering the Course')), + ('workload_hours', models.FloatField(default=0.0, verbose_name='Course Workload in Hours')), + ('workload_credits', models.FloatField(default=0.0, verbose_name='Course Workload in Credits')), + ('education_field', models.CharField(default='Not Specified', max_length=255, verbose_name='Field of Education')), + ('training_direction', models.CharField(default='Not Specified', max_length=255, verbose_name='Training Direction')), + ('op_code_name', models.TextField(default='Not Specified', verbose_name='Code and Name of the Program')), + ('course_description', models.TextField(default='Description not provided', verbose_name='Course Description')), + ('skills_covered', models.TextField(default='Skills not specified', verbose_name='Skills Covered')), + ('course_language', models.CharField(default='Russian', max_length=100, verbose_name='Course Language')), + ('related_disciplines', models.CharField(default='Not Specified', max_length=255, verbose_name='Discipline(s) for Credit Transfer')), + ('credit_workload', models.FloatField(default=0.0, verbose_name='Credit Workload')), + ('created', models.DateTimeField(auto_now_add=True)), + ], + ), + ] diff --git a/lms/djangoapps/retake_catalog/migrations/0004_auto_20241127_2350.py b/lms/djangoapps/retake_catalog/migrations/0004_auto_20241127_2350.py new file mode 100644 index 000000000000..3be652680d89 --- /dev/null +++ b/lms/djangoapps/retake_catalog/migrations/0004_auto_20241127_2350.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.29 on 2024-11-28 04:50 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('retake_catalog', '0003_retakecatalog'), + ] + + operations = [ + migrations.AlterField( + model_name='retakecatalog', + name='difficulty_level', + field=models.CharField(choices=[('\u0431\u0430\u0437\u043e\u0432\u044b\u0439', '\u0431\u0430\u0437\u043e\u0432\u044b\u0439'), ('\u0441\u0440\u0435\u0434\u043d\u0438\u0439', '\u0441\u0440\u0435\u0434\u043d\u0438\u0439'), ('\u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0439', '\u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0439'), ('none', 'None')], default='basic', max_length=50, verbose_name='Difficulty Level'), + ), + ] diff --git a/lms/djangoapps/retake_catalog/migrations/0005_remove_retakecatalog_created.py b/lms/djangoapps/retake_catalog/migrations/0005_remove_retakecatalog_created.py new file mode 100644 index 000000000000..72e34b8dd251 --- /dev/null +++ b/lms/djangoapps/retake_catalog/migrations/0005_remove_retakecatalog_created.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.29 on 2024-11-28 05:49 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('retake_catalog', '0004_auto_20241127_2350'), + ] + + operations = [ + migrations.RemoveField( + model_name='retakecatalog', + name='created', + ), + ] diff --git a/lms/djangoapps/retake_catalog/migrations/0006_auto_20241128_0057.py b/lms/djangoapps/retake_catalog/migrations/0006_auto_20241128_0057.py new file mode 100644 index 000000000000..6a0e15055a4f --- /dev/null +++ b/lms/djangoapps/retake_catalog/migrations/0006_auto_20241128_0057.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.29 on 2024-11-28 05:57 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('retake_catalog', '0005_remove_retakecatalog_created'), + ] + + operations = [ + migrations.AlterField( + model_name='retakecatalog', + name='course_type', + field=models.CharField(choices=[('MOOC', 'MOOC'), ('SPOC', 'SPOC'), ('Coursera', 'Coursera'), ('none', 'None')], default='MOOC', max_length=50, verbose_name='Course Type (MOOC/SPOC)'), + ), + ] diff --git a/lms/djangoapps/retake_catalog/migrations/0007_auto_20241128_0111.py b/lms/djangoapps/retake_catalog/migrations/0007_auto_20241128_0111.py new file mode 100644 index 000000000000..ba180c6234b1 --- /dev/null +++ b/lms/djangoapps/retake_catalog/migrations/0007_auto_20241128_0111.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.29 on 2024-11-28 06:11 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('retake_catalog', '0006_auto_20241128_0057'), + ] + + operations = [ + migrations.AlterField( + model_name='retakecatalog', + name='course_type', + field=models.CharField(choices=[('MOOC', 'MOOC'), ('SPOC', 'SPOC'), ('none', 'None')], default='MOOC', max_length=50, verbose_name='Course Type (MOOC/SPOC)'), + ), + ] diff --git a/lms/djangoapps/retake_catalog/migrations/__init__.py b/lms/djangoapps/retake_catalog/migrations/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/lms/djangoapps/retake_catalog/models.py b/lms/djangoapps/retake_catalog/models.py new file mode 100644 index 000000000000..50eefb6b4ca2 --- /dev/null +++ b/lms/djangoapps/retake_catalog/models.py @@ -0,0 +1,54 @@ +# coding=UTF-8 +from django.db import models + +COURSE_TYPE_CHOICES = [ + (u'MOOC', u'MOOC'), + (u'SPOC', u'SPOC'), + (u'none', u'None') +] + +DIFFICULTY_LEVEL_CHOICES = [ + (u'базовый', u'базовый'), + (u'средний', u'средний'), + (u'продвинутый', u'продвинутый'), + (u'none', u'None') +] +class retakecatalog(models.Model): + course_name = models.CharField(max_length=255, verbose_name=u"Course Name", default=u"Not Specified") + university = models.CharField(max_length=255, null=True, blank=True, verbose_name=u"University") + content_type = models.CharField(max_length=255, null=True, blank=True, verbose_name=u"Content Type") + course_type = models.CharField( + max_length=50, + choices=COURSE_TYPE_CHOICES, + verbose_name=u"Course Type (MOOC/SPOC)", default=u"MOOC" + ) + difficulty_level = models.CharField( + max_length=50, + choices=DIFFICULTY_LEVEL_CHOICES, + verbose_name=u"Difficulty Level", default=u"basic" + ) + platform = models.CharField(max_length=255, verbose_name=u"Platform", default=u"Not Specified") + course_link = models.URLField(verbose_name=u"Course Link") + organization = models.CharField(max_length=255, verbose_name=u"Organization / University Offering the Course", default=u"Not Specified") + + # Workload + workload_hours = models.FloatField(verbose_name=u"Course Workload in Hours", default=0.0) + workload_credits = models.FloatField(verbose_name=u"Course Workload in Credits", default=0.0) + + # Education and Field + education_field = models.CharField(max_length=255, verbose_name=u"Field of Education", default=u"Not Specified") + training_direction = models.CharField(max_length=255, verbose_name=u"Training Direction", default=u"Not Specified") + op_code_name = models.TextField(verbose_name=u"Code and Name of the Program", default=u"Not Specified") + + # Additional Course Information + course_description = models.TextField(verbose_name=u"Course Description", default=u"Description not provided") + skills_covered = models.TextField(verbose_name=u"Skills Covered", default=u"Skills not specified") + course_language = models.CharField(max_length=100, verbose_name=u"Course Language", default=u"Russian") + related_disciplines = models.CharField(max_length=255, verbose_name=u"Discipline(s) for Credit Transfer", default=u"Not Specified") + credit_workload = models.FloatField(verbose_name=u"Credit Workload", default=0.0) + + def __str__(self): + return self.course_name + + class Meta: + app_label = 'retake_catalog' diff --git a/lms/djangoapps/retake_catalog/views.py b/lms/djangoapps/retake_catalog/views.py new file mode 100644 index 000000000000..057dda0988d1 --- /dev/null +++ b/lms/djangoapps/retake_catalog/views.py @@ -0,0 +1,74 @@ +from edxmako.shortcuts import marketing_link, render_to_response, render_to_string +from .models import retakecatalog +from .forms import RetakeCatalogForm +from django.db.models import Q +from django.middleware.csrf import get_token + +def retake_catalog(request): + courses = retakecatalog.objects.all() + + course_name = request.GET.get('course_name') + course_language = request.GET.get('course_language') + difficulty_level = request.GET.get('difficulty_level') + course_type = request.GET.get('course_type') + platform = request.GET.get('platform') + education_field = request.GET.get('education_field') + training_direction = request.GET.get('training_direction') + credit_workload = request.GET.get('credit_workload') + workload_hours = request.GET.get('workload_hours') + workload_credits = request.GET.get('workload_credits') + related_disciplines = request.GET.get('related_disciplines') + if course_name: + courses = courses.filter(course_name__icontains=course_name) + + if course_language: + courses = courses.filter(course_language=course_language) + if difficulty_level: + courses = courses.filter(difficulty_level=difficulty_level) + if course_type: + courses = courses.filter(course_type=course_type) + if platform: + courses = courses.filter(platform=platform) + if education_field: + courses = courses.filter(education_field__icontains=education_field) + if training_direction: + courses = courses.filter(training_direction__icontains=training_direction) + if credit_workload: + if credit_workload.startswith(">="): + courses = courses.filter(credit_workload__gte=float(credit_workload[2:])) + else: + courses = courses.filter(credit_workload__lt=float(credit_workload[1:])) + if workload_hours: + if workload_hours.startswith(">="): + courses = courses.filter(workload_hours__gte=float(workload_hours[2:])) + else: + courses = courses.filter(workload_hours__lt=float(workload_hours[1:])) + if workload_credits: + if workload_credits.startswith(">="): + courses = courses.filter(workload_credits__gte=float(workload_credits[2:])) + else: + courses = courses.filter(workload_credits__lt=float(workload_credits[1:])) + if related_disciplines: + courses = courses.filter(related_disciplines__icontains=related_disciplines) + + return render_to_response("retake_catalog/retake_catalog.html", {'courses': courses}) + + + + +def retake_catalog_form_view(request): + if request.method == 'POST': + form = RetakeCatalogForm(request.POST) + if form.is_valid(): + form.save() + return render_to_response('retake_catalog/success.html', {}) + else: + form = RetakeCatalogForm() + csrf_input = ''.format(get_token(request)) + context = { + 'form': form, + 'csrf_input': csrf_input, + } + return render_to_response('retake_catalog/retake_catalog_form.html', context) + + From 60305db2b7c063aa3df076c49cf77e32489469e5 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Fri, 22 Aug 2025 12:37:24 +0500 Subject: [PATCH 173/443] Update common.py --- lms/envs/common.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lms/envs/common.py b/lms/envs/common.py index c520f9ab3d41..452fb59f777d 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -3034,6 +3034,7 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring # (See https://github.com/openedx/edx-django-utils/tree/master/edx_django_utils/plugins) INSTALLED_APPS = [ 'lms.djangoapps.univerapi', + 'lms.djangoapps.retake_catalog', # Standard ones that are always installed... 'django.contrib.auth', 'django.contrib.contenttypes', From f2c75fe1b324c2552eebf5754b469e158e2a7ba8 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Fri, 22 Aug 2025 12:41:59 +0500 Subject: [PATCH 174/443] Update common.py --- cms/envs/common.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cms/envs/common.py b/cms/envs/common.py index a2475a7de9c2..bf97b16503d5 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -1608,6 +1608,7 @@ # remember to check that you are not creating new # RemovedInDjango19Warnings in the test logs. INSTALLED_APPS = [ + 'lms.djangoapps.retake_catalog', 'lms.djangoapps.univerapi', # Standard apps 'django.contrib.auth', From 8237caafcc9a2aa1fe90670055d1615d336210cf Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Thu, 18 Sep 2025 12:10:58 +0500 Subject: [PATCH 175/443] Update author.html --- lms/templates/static_templates/author.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/templates/static_templates/author.html b/lms/templates/static_templates/author.html index 23b25a67ee02..11c6f22e108f 100644 --- a/lms/templates/static_templates/author.html +++ b/lms/templates/static_templates/author.html @@ -324,7 +324,7 @@

    ${_("Creating an Online Course for Authors")}

    -

    ${_("Al-Farabi Kazakh National University")}

    +

    ${_("Al-Farabi Kazakh National University")}

    From fa7e3392a8489df4205d3450ca2eb1a24c4da3d8 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Fri, 19 Sep 2025 09:05:32 +0500 Subject: [PATCH 176/443] Update detect.html --- lms/templates/static_templates/detect.html | 250 ++++++++++++++++++++- 1 file changed, 239 insertions(+), 11 deletions(-) diff --git a/lms/templates/static_templates/detect.html b/lms/templates/static_templates/detect.html index 22f7a80df7c4..b39dbd1978a6 100644 --- a/lms/templates/static_templates/detect.html +++ b/lms/templates/static_templates/detect.html @@ -2,15 +2,243 @@ <%! from django.utils.translation import gettext as _ %> <%inherit file="../main.html" /> -<%block name="pagetitle">${_("Donate")} - -
    -
    -

    - <%block name="pageheader">${page_header or _("Donate")} -

    -

    - <%block name="pagecontent">${page_content or _("This page left intentionally blank. Feel free to add your own content.")} -

    +<%block name="pagetitle">${_("Detect")} + + + + + + + + + + + +
    +
    +

    ${_("Chatbot Usage Verification System")}

    +

    ${_("Al-Farabi Kazakh National University")}

    +
    -
    + +
    + +
    +
    +

    ${_("Content Verification")}

    +
    + +
    +

    ${_("Content Analysis Tool")}

    +

    ${_("Use the built-in verification system to analyze text content and determine the likelihood of it being created with chatbots or artificial intelligence.")}

    + +
    + +
    +
    ${_("Open in full size")}
    +
    +
    + +

    ${_("This tool allows you to check texts for AI-generated content, which is especially important for ensuring academic integrity in the educational process.")}

    +
    +
    + + +
    +

    ${_("Contacts")}

    +

    ${_("For any questions, please contact the Center for Massive Open Online Courses: building - rectorate, office 203, phone 11-33.")}

    +
    +
    + + + + + From 60f27c2dbba34eb8c5fc46ca57e8991ddbfb3d31 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Fri, 19 Sep 2025 09:29:51 +0500 Subject: [PATCH 177/443] Update author.html --- lms/templates/static_templates/author.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/templates/static_templates/author.html b/lms/templates/static_templates/author.html index 11c6f22e108f..7bc83f9c4520 100644 --- a/lms/templates/static_templates/author.html +++ b/lms/templates/static_templates/author.html @@ -2,7 +2,7 @@ <%! from django.utils.translation import gettext as _ %> <%inherit file="../main.html" /> -<%block name="pagetitle">${_("Donate")} +<%block name="pagetitle">${_("For authors")} From 6bb3faf7cf0fab671a2a11c75c8a57e99e3752c2 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Fri, 19 Sep 2025 09:30:12 +0500 Subject: [PATCH 178/443] Update competition.html --- lms/templates/static_templates/competition.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/templates/static_templates/competition.html b/lms/templates/static_templates/competition.html index 9f062ab73e7c..67a685f918e8 100644 --- a/lms/templates/static_templates/competition.html +++ b/lms/templates/static_templates/competition.html @@ -2,7 +2,7 @@ <%! from django.utils.translation import gettext as _ %> <%inherit file="../main.html" /> - +<%block name="pagetitle">${_("Competition")} From 808c679ed44831bc0aebebc7553df03cdee5c546 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Fri, 19 Sep 2025 14:27:59 +0500 Subject: [PATCH 179/443] Update courses.html --- lms/templates/courseware/courses.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/templates/courseware/courses.html b/lms/templates/courseware/courses.html index e26f9d20246b..445f9ecc8d96 100644 --- a/lms/templates/courseware/courses.html +++ b/lms/templates/courseware/courses.html @@ -5,7 +5,7 @@ from datetime import datetime %> <%inherit file="../main.html" /> - +<%block name="pagetitle">${_("Competition")} <%block name="headextra"> + + + +
    +
    +

    О нас - Open Kaznu

    +

    Казахский национальный университет им. аль-Фараби

    +
    - + +
    + +
    +
    +

    О платформе

    +
    + +
    +

    Казахский национальный университет им. аль-Фараби является лидером среди казахстанских университетов по внедрению MOOC на открытой платформе OpenEdx.

    + +

    С 2014-2015 учебного года Центр дистанционного образования КазНУ им. аль-Фараби совместно с преподавательским составом начал работу по созданию MOOC, и в настоящее время на http://open.kaznu.kz существует собственная платформа MOOC на основе системы Open edX.

    +
    + +
    +

    История развития

    +

    1 октября 2015 года были запущены первые открытые курсы от ведущих преподавателей КазНУ им. аль-Фараби - "Теория вероятностей" и "Физические задачи" с доцентом В. Кашкаровым, на которые записались около 250 и 500 студентов из разных регионов Казахстана соответственно.

    +
    + +
    +

    Эти курсы в основном посещали студенты 1-2 курсов КазНУ им. аль-Фараби, старшие классы Назарбаев интеллектуальных школ, профильные физико-математические и средние школы. Анализ данных показал большой интерес к этим курсам, что дает стимул преподавательскому составу и сотрудникам университета продолжать работу в этом направлении. К концу июня 2016 года в системе было зарегистрировано более двух тысяч слушателей.

    + +

    При активном содействии КазНУ им. аль-Фараби была запущена Национальная платформа открытого образования Казахстана (далее - НПОК).

    +
    +
    + + +
    +
    +

    Этапы развития

    +
    + +
    +
    +
    + 2014-2015 +

    Начало работы

    +

    Центр дистанционного образования КазНУ начинает работу по созданию MOOC

    +
    +
    + +
    +
    + Октябрь 2015 +

    Первый запуск

    +

    Запущены первые открытые курсы от ведущих преподавателей университета

    +
    +
    + +
    +
    + Январь 2016 +

    Реорганизация

    +

    Центр дистанционного образования преобразован в Институт дистанционного образования

    +
    +
    + +
    +
    + Февраль 2016 +

    Новый этап

    +

    Институт дистанционного образования преобразован в Институт новых образовательных технологий

    +
    +
    + +
    +
    + Июнь 2016 +

    Достижение

    +

    В системе зарегистрировано более двух тысяч слушателей

    +
    +
    +
    +
    + + +
    +
    +

    Институциональное развитие

    +

    В рамках реализации комплекса мер по развитию электронного обучения и организации работы НПОК для подготовки кадров на основе технологий дистанционного обучения (ДОТ) и усиления работы Центра дистанционного образования (ЦДО), с целью повышения мобильности предоставления образовательных услуг университета по новым образовательным программам, руководство университета приняло решение (приказ ректора №45 от 29.01.2016) о преобразовании структурного подразделения Центра дистанционного образования в Институт дистанционного образования (ИДО), в который вошел Центр массовых открытых онлайн-курсов (ЦМООК) в статусе проектного офиса национальной платформы.

    + +

    Были разработаны и утверждены вице-ректором по учебной работе Ахмет-Заки Д.Ж. Положение о ЦМООК, а также должностные инструкции руководителя, ведущего специалиста и специалиста Центра ЦМООК (от 14 марта 2016 г.).

    + +

    В феврале 2016 года Институт дистанционного образования был преобразован в Институт новых образовательных технологий, который продолжает работу ЦМООК.

    +
    +
    + + +
    +
    +

    Наша команда

    +
    + +
    +

    Руководство офиса

    +
    +
    +
    + +
    +

    Мусинова Асель

    +

    Заместитель директора Департамента по академическим вопросам

    +
    + +
    +
    + +
    +

    Круговых Илья

    +

    Руководитель Офиса академических и цифровых инноваций

    +
    +
    +
    + +
    +

    Специалисты open.kaznu.kz

    +
    +
    +
    + +
    +

    Арыстанова Айнур

    +

    Главный специалист

    +
    + +
    +
    + +
    +

    Канафина Диана

    +

    Ведущий специалист

    +
    + +
    +
    + +
    +

    Суев Абылайхан

    +

    Инженер-программист

    +
    +
    +
    + +
    +

    Специалисты dl.kaznu.kz

    +
    +
    +
    + +
    +

    Смагулова Шынар

    +

    Главный специалист

    +
    + +
    +
    + +
    +

    Малик Нурлы

    +

    Главный специалист

    +
    + +
    +
    + +
    +

    Жабаев Талгат

    +

    Инженер-программист

    +
    +
    +
    + +
    +

    Видеоинженер офиса

    +
    +
    +
    + +
    +

    Асылхан Аниятолла

    +

    Главный специалист

    +
    +
    +
    +
    +
    + + + + From 97ea6d6e9e671a08bacbc1fb3b3f4576c05c6697 Mon Sep 17 00:00:00 2001 From: boomboom0202 <117350278+boomboom0202@users.noreply.github.com> Date: Fri, 26 Sep 2025 09:59:52 +0500 Subject: [PATCH 210/443] Update footer.html --- lms/templates/footer.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/templates/footer.html b/lms/templates/footer.html index 2841f2625655..bc7d6a16125c 100644 --- a/lms/templates/footer.html +++ b/lms/templates/footer.html @@ -30,7 +30,7 @@ diff --git a/lms/templates/static_templates/catalog_transfer.html b/lms/templates/static_templates/catalog_transfer.html index d6a1f0236faa..99c6fcc52e20 100644 --- a/lms/templates/static_templates/catalog_transfer.html +++ b/lms/templates/static_templates/catalog_transfer.html @@ -7,43 +7,115 @@ - МООК КазНУ им.Аль-Фараби + Каталог МООК КазНУ -

    Фильтры

    - - - - - - -
    +

    Каталог МООК КазНУ им. Аль-Фараби

    + +
    + + + + + + +
    + +
    @@ -242,16 +314,272 @@

    Структурирование ценностей в современно

    Организация: The Chinese University of Hong Kong

    +
    +

    Подходы социальных наук к изучению китайского общества Часть 1

    +

    Тип курса: MOOC

    +

    Уровень сложности: базовый

    +

    Платформа: Coursera

    +

    Учебная нагрузка (часы): 15.66

    +

    Учебная нагрузка (кредиты): 0.522

    +

    Область образования: 8D02 Искусство и гуманитарные науки

    +

    Область профессиональной подготовки: 6B022 Гуманитарные науки

    +

    Код и название образовательной программы: 6В02207-Востоковедение

    +

    Описание курса: Цель этого курса — превратить обучающихся в информированных потребителей исследований в + области социальных наук. Курс знакомит заинтересованных неспециалистов с концепциями, стандартами и + принципами проведения исследований в области социальных наук.

    +

    Осваиваемые навыки: могут оценивать доказательства и критически оценивать утверждения о важных социальных + явлениях

    +

    Язык курса: русский

    +

    Дисциплины для перезачета: Государственно-политический строй Китая

    +

    Учебная нагрузка в кредитах: 5.0

    +

    Ссылка на курс: Открыть курс

    +

    Организация: The Hong Kong University of Science and Technology

    +
    +
    +

    Successful Negotiation: Essential Strategies and Skills

    +

    Тип курса: MOOC

    +

    Уровень сложности: средний

    +

    Платформа: Coursera

    +

    Учебная нагрузка (часы): 17.0

    +

    Учебная нагрузка (кредиты): 5.0

    +

    Область образования: 6B02 Искусство и гуманитарные науки

    +

    Область профессиональной подготовки: 6B022 Гуманитарные науки

    +

    Код и название образовательной программы: 6B02207-Востоковедение

    +

    Описание курса: Successful Negotiation: Essential Strategies and Skills

    +

    Осваиваемые навыки: Этот модуль фокусируется на анализ переговоров, понимания стратегии и навыков ведения + переговоров

    +

    Язык курса: английский/русский

    +

    Дисциплины для перезачета: YaDEISV 4307 Язык дипломатии и этикета изучаемой стран Востока

    +

    Учебная нагрузка в кредитах: 5.0

    +

    Ссылка на курс: Открыть курс

    +

    Организация: University of Michigan

    +
    + +
    +

    Management Foundations in the Hospitality Industry

    +

    Тип курса: MOOC

    +

    Уровень сложности: средний

    +

    Платформа: Coursera

    +

    Учебная нагрузка (часы): 30.0

    +

    Учебная нагрузка (кредиты): 2.0

    +

    Область образования: 8D11 Услуги

    +

    Область профессиональной подготовки: 8D111 Сфера обслуживания

    +

    Код и название образовательной программы: 8D11102 Туризм и гостеприимство

    +

    Описание курса: Этот курс представляет собой введение в мотивацию, лидерство, коммуникации, принятие + решений и руководство людьми посредством эффективного управления человеческими ресурсами (HR), этику, + социальную ответственность и управление потребительским опытом в индустрии гостеприимства путем изучения + основ менеджмента, ориентированного на обслуживание. Все необходимые материалы для чтения представлены в + модулях курса. Они включают внешние ссылки, статьи, графику и видео. Курс состоит из следующих + элементов: тематические видеоматериалы, обсуждения и тесты для проверки понимания.

    +

    Осваиваемые навыки: Понимать, как HR-отделы анализируют распределение ресурсов по рабочим местам и + факторы, влияющие на разработку рабочих мест; определять наиболее эффективные методы найма талантливых + сотрудников; применять лучшие практики при проведении собеседований; оценивать программу обучения и + социализации сотрудников; понимать оценку результатов работы; избегать юридической ответственности за + "небрежный прием на работу".

    +

    Язык курса: английский

    +

    Дисциплины для перезачета: Разработка инновационных решений для менеджмента в сфере туризма и + гостеприимства

    +

    Учебная нагрузка в кредитах: 5.0

    +

    Ссылка на курс: Открыть курс +

    +

    Организация: University of North Texas

    +
    + +
    +

    Foundations of Hotel Budgeting and Forecasting

    +

    Тип курса: MOOC

    +

    Уровень сложности: средний

    +

    Платформа: Coursera

    +

    Учебная нагрузка (часы): 45.0

    +

    Учебная нагрузка (кредиты): 3.0

    +

    Область образования: 7M11 Услуги

    +

    Область профессиональной подготовки: 8D111 Сфера обслуживания

    +

    Код и название образовательной программы: 7M11104 - Ресторанное дело и гостиничный бизнес

    +

    Описание курса: Курс предназначен для обучения основным навыкам и знаниям бюджетирования и + прогнозирования в гостиничном бизнесе. Он предоставляет всестороннее понимание фундаментальных + концепций, практик и инструментов составления бюджета и прогнозирования, включая практические упражнения + и примеры из реальной жизни для применения знаний в индустрии гостеприимства.

    +

    Осваиваемые навыки: Составление бюджета отелей, оценка финансовых показателей, понимание тенденций в + отрасли, разработка стратегий на основе финансовых данных, практическое применение знаний в гостиничном + бизнесе.

    +

    Язык курса: английский

    +

    Дисциплины для перезачета: Прогнозирование и планирование в сфере гостеприимства

    +

    Учебная нагрузка в кредитах: 5.0

    +

    Ссылка на курс: Открыть курс

    +

    Организация: Starweaver

    +
    +
    +

    Introduction to Process Safety and Risk Analysis

    +

    Тип курса: MOOC

    +

    Уровень сложности: средний

    +

    Платформа: Coursera

    +

    Учебная нагрузка (часы): 13.01

    +

    Учебная нагрузка (кредиты): 0.434

    +

    Область образования: 6B05 Естественные науки, математика и статистика

    +

    Область профессиональной подготовки: 6B052 Окружающая среда

    +

    Код и название образовательной программы: 6В05202 Экология

    +

    Описание курса: Каждый курс включает задание на рецензирование, в котором будут использованы знания, + полученные при изучении основополагающих концепций, аутентичных примеров из мировой и американской + практики, а также методов применения. Обратная связь в процессе экспертной оценки очень важна; учащимся, + а также нынешним и будущим специалистам в области общественного здравоохранения придется давать + критические отзывы.

    +

    Осваиваемые навыки: Environmental justice, Public Health

    +

    Язык курса: английский

    +

    Дисциплины для перезачета: Қоршаған ортаға әсерін бағалау және экологиялық сараптама

    +

    Учебная нагрузка в кредитах: 5.0

    +

    Ссылка на курс: Открыть курс

    +

    Организация: University of California, Davis

    +
    +
    +

    Impacts of the Environment on Global Public Health Specialization

    +

    Тип курса: MOOC

    +

    Уровень сложности: базовый

    +

    Платформа: Coursera

    +

    Учебная нагрузка (часы): 115.0

    +

    Учебная нагрузка (кредиты): 3.85

    +

    Область образования: 6B05 Естественные науки, математика и статистика

    +

    Область профессиональной подготовки: 6B052 Окружающая среда

    +

    Код и название образовательной программы: 6B11202- Экологическая инженерия

    +

    Описание курса: Каждый курс включает задание на рецензирование, в котором будут использованы знания, + полученные при изучении основополагающих концепций, аутентичных примеров из мировой и американской + практики, а также методов применения. Обратная связь в процессе экспертной оценки очень важна; учащимся, + а также нынешним и будущим специалистам в области общественного здравоохранения придется давать + критические отзывы.

    +

    Осваиваемые навыки: Environmental justice, Public Health

    +

    Язык курса: английский

    +

    Дисциплины для перезачета: Қоршаған ортаға әсерін бағалау және экологиялық сараптама

    +

    Учебная нагрузка в кредитах: 5.0

    +

    Ссылка на курс: Открыть курс

    +

    Организация: University of California, Davis

    +
    +
    +

    Экология: Динамика экосистем и их сохранение

    +

    Тип курса: MOOC

    +

    Уровень сложности: средний

    +

    Платформа: Coursera

    +

    Учебная нагрузка (часы): 13.01

    +

    Учебная нагрузка (кредиты): 0.434

    +

    Область образования: 6B05 Естественные науки, математика и статистика

    +

    Область профессиональной подготовки: 6B052 Окружающая среда

    +

    Код и название образовательной программы: 6В05202 Экология

    +

    Описание курса: Этот курс представляет собой введение в экологию и динамику экосистем с использованием + системного мышления. На примере национального парка Горонгоза в Мозамбике слушатели изучат, как ученые + изучают экосистемы, и исследуют сложный комплекс факторов, которые лежат в основе управленческих усилий. + По окончании курса слушатели смогут решать реальные вопросы, связанные с охраной природы, например, + смогут ли экосистемы восстановиться после антропогенного воздействия и какую роль в этом восстановлении + могут и должны играть люди.

    +

    Осваиваемые навыки: В конце курса учащиеся смогут решать реальные вопросы охраны природы, например, может + ли экосистема восстановиться после антропогенного нарушения и какую роль люди могут и должны играть в + этом восстановлении.

    +

    Язык курса: английский

    +

    Дисциплины для перезачета: Экологический риск

    +

    Учебная нагрузка в кредитах: 5.0

    +

    Ссылка на курс: Открыть + курс

    +

    Организация: American Museum of Natural History

    +
    +
    +

    Глобальный экологический менеджмент

    +

    Тип курса: MOOC

    +

    Уровень сложности: средний

    +

    Платформа: Coursera

    +

    Учебная нагрузка (часы): 18.79

    +

    Учебная нагрузка (кредиты): 0.626

    +

    Область образования: 6B05 Естественные науки, математика и статистика

    +

    Область профессиональной подготовки: 6B052 Окружающая среда

    +

    Код и название образовательной программы: 6В05202 Экология

    +

    Описание курса: Узнайте о лучших экологических технологиях для устойчивого развития и о том, как ими управляют в различных условиях по всему миру. Этот курс дает Вам возможность узнать о глобальных тенденциях, влияющих на нашу окружающую среду и условия жизни, а также о том, как различные системы и подходы к управлению окружающей средой, применяемые во всем мире, позволяют управлять ею. Сюда входят современные технологии, созданные для охраны окружающей среды, и технологии устойчивого управления почвой, методы защиты грунтовых вод и интегрированное управление водными ресурсами.

    +

    Осваиваемые навыки: Городское планирование, Развитие водных ресурсов, Природные ресурсы, Зеленые технологии

    +

    Язык курса: английский

    +

    Дисциплины для перезачета: Стандарты менеджмента окружающей среды

    +

    Учебная нагрузка в кредитах: 5.0

    +

    Ссылка на курс: Открыть курс

    +

    Организация: Technical University of Denmark (DTU)

    +
    +
    + - From 5533ec14a18b5d9c86cfd767c61b66278711451f Mon Sep 17 00:00:00 2001 From: erarys Date: Thu, 4 Dec 2025 15:37:55 +0500 Subject: [PATCH 238/443] Edited bugs --- lms/templates/footer.html | 5 ++++- lms/templates/static_templates/catalog_transfer.html | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lms/templates/footer.html b/lms/templates/footer.html index 35e657ae33e4..63a73ada57a2 100644 --- a/lms/templates/footer.html +++ b/lms/templates/footer.html @@ -21,7 +21,10 @@

    - Илья Игорович (Руководитель отдела) +7 (705) 544 59 30
    (вн. 31-24, 11-33, 16-47) + Илья Игорович (Руководитель отдела)
    +7 (705) 544 59 30
    (вн. 31-24, 11-33, 16-47) + +

    +

    diff --git a/lms/templates/static_templates/catalog_transfer.html b/lms/templates/static_templates/catalog_transfer.html index 99c6fcc52e20..9077a4372a0e 100644 --- a/lms/templates/static_templates/catalog_transfer.html +++ b/lms/templates/static_templates/catalog_transfer.html @@ -11,7 +11,6 @@ + + /* BETA */ + .snowflake { + position: absolute; + color: #f1f3f6; + line-height: 1; + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + + .snowflake-solid { + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + border-radius: 50%; + background: #fff; + } + + /* Убираем отступы контейнера Open edX */ + .content-wrapper.main-container { + padding: 0 !important; + margin: 0 !important; + } + + /* Иногда отступ идёт сверху от body или header */ + body .content-wrapper { + padding-top: 0 !important; + } + <%block name="content"> -
    +

    ${_("Courses")}

    -

    ${_("Explore our collection of educational programs and start learning today")}

    -
    + +

    ${_("С наступающим Новым годом!")}

    +
    -
    +
    -

    ${_("Filter Courses")}

    -
    - - - - - - - -
    +

    ${_("Filter Courses")}

    +
    + + + + + + + +
    - % if courses: + % if courses: % for course in courses: - <% - from django.utils import timezone - now = timezone.now() - status = "completed" if course.end and course.end < now else "ongoing" - status_text = _('Completed') if status == "completed" else _('Ongoing') - %> -
    + <% + from django.utils import timezone + now = timezone.now() + status = "completed" if course.end and course.end < now else "ongoing" + status_text = _('Completed') if status == "completed" else _('Ongoing') + %> +
    - ${course.display_name} -
    ${status_text}
    + ${course.display_name} +
    ${status_text}
    -

    ${course.display_name}

    -
    - ${course.display_org_with_default} - % if course.language: - ${course.language} - % endif -
    -
    - ${_('Start')}: ${course.start.strftime('%Y-%m-%d') if course.start else _('Not specified')} - ${_('End')}: ${course.end.strftime('%Y-%m-%d') if course.end else _('Not specified')} -
    - ${_('Go to course')} +

    ${course.display_name}

    +
    + ${course.display_org_with_default} + % if course.language: + ${course.language} + % endif +
    +
    + ${_('Start')} + : ${course.start.strftime('%Y-%m-%d') if course.start else _('Not specified')} + ${_('End')}: ${course.end.strftime('%Y-%m-%d') if course.end else _('Not specified')} +
    + ${_('Go to course')}
    -
    +
    % endfor - % else: + % else:
    - 📚 -

    ${_('No courses found')}

    -

    ${_('There are currently no available courses')}

    + 📚 +

    ${_('No courses found')}

    +

    ${_('There are currently no available courses')}

    - % endif + % endif
    -
    +
    - + const query = document.getElementById("searchInput").value.toLowerCase().trim(); + const lang = document.getElementById("languageFilter").value; + const status = document.getElementById("statusFilter").value; + const org = document.getElementById("orgFilter").value; + + const cards = document.querySelectorAll("#courseList .course"); + let visible = 0; + + cards.forEach(card => { + const title = card.getAttribute("data-title"); + const cardLang = card.getAttribute("data-language"); + const cardStatus = card.getAttribute("data-status"); + const cardOrg = card.getAttribute("data-org"); + + const matches = + (!query || title.includes(query)) && + (!lang || cardLang === lang) && + (!status || cardStatus === status) && + (!org || cardOrg === org); + + card.style.display = matches ? "flex" : "none"; + if (matches) visible++; + }); + + const emptyState = document.querySelector(".no-results"); + if (!visible && !emptyState) { + const div = document.createElement("div"); + div.className = "no-results"; + div.innerHTML = `🔍

    ${_('No courses found')}

    `; + document.getElementById("courseList").appendChild(div); + } else if (visible && emptyState) { + emptyState.remove(); + } + } + + diff --git a/lms/templates/courseware/courses_basic.html b/lms/templates/courseware/courses_basic.html new file mode 100644 index 000000000000..f8826922a3be --- /dev/null +++ b/lms/templates/courseware/courses_basic.html @@ -0,0 +1,353 @@ +<%page expression_filter="h"/> +<%! + from django.utils.translation import gettext as _ +%> +<%inherit file="../main.html" /> + +<%block name="pagetitle">${_("Courses")} + +<%block name="headextra"> + + + +<%block name="content"> +
    +

    ${_("Courses")}

    +

    ${_("Explore our collection of educational programs and start learning today")}

    +
    + +
    +
    +

    ${_("Filter Courses")}

    +
    + + + + + + + +
    +
    + +
    + % if courses: + % for course in courses: + <% + from django.utils import timezone + now = timezone.now() + status = "completed" if course.end and course.end < now else "ongoing" + status_text = _('Completed') if status == "completed" else _('Ongoing') + %> +
    +
    + ${course.display_name} +
    ${status_text}
    +
    +
    +

    ${course.display_name}

    +
    + ${course.display_org_with_default} + % if course.language: + ${course.language} + % endif +
    +
    + ${_('Start')}: ${course.start.strftime('%Y-%m-%d') if course.start else _('Not specified')} + ${_('End')}: ${course.end.strftime('%Y-%m-%d') if course.end else _('Not specified')} +
    + ${_('Go to course')} +
    +
    + % endfor + % else: +
    + 📚 +

    ${_('No courses found')}

    +

    ${_('There are currently no available courses')}

    +
    + % endif +
    +
    + + + diff --git a/lms/templates/courseware/courses_winter.html b/lms/templates/courseware/courses_winter.html new file mode 100644 index 000000000000..72b206c0f6bb --- /dev/null +++ b/lms/templates/courseware/courses_winter.html @@ -0,0 +1,585 @@ +<%page expression_filter="h"/> +<%! +from django.utils.translation import gettext as _ +%> +<%inherit file="../main.html" /> + +<%block name="pagetitle">${_("Courses")} + +<%block name="headextra"> + + + +<%block name="content"> +
    +

    ${_("Courses")}

    +

    ${_("Explore our collection of educational programs and start learning today")}

    +
    + +
    +
    +

    ${_("Filter Courses")}

    +
    + + + + + + + +
    +
    + +
    + % if courses: + % for course in courses: + <% + from django.utils import timezone + now = timezone.now() + status = "completed" if course.end and course.end < now else "ongoing" + status_text = _('Completed') if status == "completed" else _('Ongoing') + %> +
    +
    + ${course.display_name} +
    ${status_text}
    +
    +
    +

    ${course.display_name}

    +
    + ${course.display_org_with_default} + % if course.language: + ${course.language} + % endif +
    +
    + ${_('Start')} + : ${course.start.strftime('%Y-%m-%d') if course.start else _('Not specified')} + ${_('End')}: ${course.end.strftime('%Y-%m-%d') if course.end else _('Not specified')} +
    + ${_('Go to course')} +
    +
    + % endfor + % else: +
    + 📚 +

    ${_('No courses found')}

    +

    ${_('There are currently no available courses')}

    +
    + % endif +
    +
    + + + + From f6adef29c40544ed5d3b13eb6a7048598cde0f56 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 26 Dec 2025 15:39:17 +0500 Subject: [PATCH 246/443] Conf ver --- lms/templates/courseware/courses.html | 704 +++++++++----------------- 1 file changed, 226 insertions(+), 478 deletions(-) diff --git a/lms/templates/courseware/courses.html b/lms/templates/courseware/courses.html index 82027e015871..f8826922a3be 100644 --- a/lms/templates/courseware/courses.html +++ b/lms/templates/courseware/courses.html @@ -1,605 +1,353 @@ <%page expression_filter="h"/> <%! -from django.utils.translation import gettext as _ + from django.utils.translation import gettext as _ %> <%inherit file="../main.html" /> <%block name="pagetitle">${_("Courses")} <%block name="headextra"> - + <%block name="content"> -
    +

    ${_("Courses")}

    - -

    ${_("С наступающим Новым годом!")}

    -
    +

    ${_("Explore our collection of educational programs and start learning today")}

    +
    -
    +
    -

    ${_("Filter Courses")}

    -
    - - - - - - - -
    +

    ${_("Filter Courses")}

    +
    + + + + + + + +
    - % if courses: + % if courses: % for course in courses: - <% - from django.utils import timezone - now = timezone.now() - status = "completed" if course.end and course.end < now else "ongoing" - status_text = _('Completed') if status == "completed" else _('Ongoing') - %> -
    + <% + from django.utils import timezone + now = timezone.now() + status = "completed" if course.end and course.end < now else "ongoing" + status_text = _('Completed') if status == "completed" else _('Ongoing') + %> +
    - ${course.display_name} -
    ${status_text}
    + ${course.display_name} +
    ${status_text}
    -

    ${course.display_name}

    -
    - ${course.display_org_with_default} - % if course.language: - ${course.language} - % endif -
    -
    - ${_('Start')} - : ${course.start.strftime('%Y-%m-%d') if course.start else _('Not specified')} - ${_('End')}: ${course.end.strftime('%Y-%m-%d') if course.end else _('Not specified')} -
    - ${_('Go to course')} +

    ${course.display_name}

    +
    + ${course.display_org_with_default} + % if course.language: + ${course.language} + % endif +
    +
    + ${_('Start')}: ${course.start.strftime('%Y-%m-%d') if course.start else _('Not specified')} + ${_('End')}: ${course.end.strftime('%Y-%m-%d') if course.end else _('Not specified')} +
    + ${_('Go to course')}
    -
    +
    % endfor - % else: + % else:
    - 📚 -

    ${_('No courses found')}

    -

    ${_('There are currently no available courses')}

    + 📚 +

    ${_('No courses found')}

    +

    ${_('There are currently no available courses')}

    - % endif + % endif
    -
    +
    - - + const query = document.getElementById("searchInput").value.toLowerCase().trim(); + const lang = document.getElementById("languageFilter").value; + const status = document.getElementById("statusFilter").value; + const org = document.getElementById("orgFilter").value; + + const cards = document.querySelectorAll("#courseList .course"); + let visible = 0; + + cards.forEach(card => { + const title = card.getAttribute("data-title"); + const cardLang = card.getAttribute("data-language"); + const cardStatus = card.getAttribute("data-status"); + const cardOrg = card.getAttribute("data-org"); + + const matches = + (!query || title.includes(query)) && + (!lang || cardLang === lang) && + (!status || cardStatus === status) && + (!org || cardOrg === org); + + card.style.display = matches ? "flex" : "none"; + if (matches) visible++; + }); + + const emptyState = document.querySelector(".no-results"); + if (!visible && !emptyState) { + const div = document.createElement("div"); + div.className = "no-results"; + div.innerHTML = `🔍

    ${_('No courses found')}

    `; + document.getElementById("courseList").appendChild(div); + } else if (visible && emptyState) { + emptyState.remove(); + } + } + From e849fac12c4006ccb61212c7deaa1852f39984cf Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 29 Dec 2025 10:08:45 +0500 Subject: [PATCH 247/443] Beta again --- lms/templates/courseware/courses.html | 682 +++++++++++++++++--------- 1 file changed, 457 insertions(+), 225 deletions(-) diff --git a/lms/templates/courseware/courses.html b/lms/templates/courseware/courses.html index f8826922a3be..72b206c0f6bb 100644 --- a/lms/templates/courseware/courses.html +++ b/lms/templates/courseware/courses.html @@ -1,353 +1,585 @@ <%page expression_filter="h"/> <%! - from django.utils.translation import gettext as _ +from django.utils.translation import gettext as _ %> <%inherit file="../main.html" /> <%block name="pagetitle">${_("Courses")} <%block name="headextra"> - + + /* BETA */ + .snowflake { + position: absolute; + color: #f1f3f6; + line-height: 1; + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + + .snowflake-solid { + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + border-radius: 50%; + background: #fff; + } + <%block name="content"> -
    +

    ${_("Courses")}

    ${_("Explore our collection of educational programs and start learning today")}

    -
    +
    -
    +
    -

    ${_("Filter Courses")}

    -
    - - - - - - - -
    +

    ${_("Filter Courses")}

    +
    + + + + + + + +
    - % if courses: + % if courses: % for course in courses: - <% - from django.utils import timezone - now = timezone.now() - status = "completed" if course.end and course.end < now else "ongoing" - status_text = _('Completed') if status == "completed" else _('Ongoing') - %> -
    + <% + from django.utils import timezone + now = timezone.now() + status = "completed" if course.end and course.end < now else "ongoing" + status_text = _('Completed') if status == "completed" else _('Ongoing') + %> +
    - ${course.display_name} -
    ${status_text}
    + ${course.display_name} +
    ${status_text}
    -

    ${course.display_name}

    -
    - ${course.display_org_with_default} - % if course.language: - ${course.language} - % endif -
    -
    - ${_('Start')}: ${course.start.strftime('%Y-%m-%d') if course.start else _('Not specified')} - ${_('End')}: ${course.end.strftime('%Y-%m-%d') if course.end else _('Not specified')} -
    - ${_('Go to course')} +

    ${course.display_name}

    +
    + ${course.display_org_with_default} + % if course.language: + ${course.language} + % endif +
    +
    + ${_('Start')} + : ${course.start.strftime('%Y-%m-%d') if course.start else _('Not specified')} + ${_('End')}: ${course.end.strftime('%Y-%m-%d') if course.end else _('Not specified')} +
    + ${_('Go to course')}
    -
    +
    % endfor - % else: + % else:
    - 📚 -

    ${_('No courses found')}

    -

    ${_('There are currently no available courses')}

    + 📚 +

    ${_('No courses found')}

    +

    ${_('There are currently no available courses')}

    - % endif + % endif
    -
    +
    - + const query = document.getElementById("searchInput").value.toLowerCase().trim(); + const lang = document.getElementById("languageFilter").value; + const status = document.getElementById("statusFilter").value; + const org = document.getElementById("orgFilter").value; + + const cards = document.querySelectorAll("#courseList .course"); + let visible = 0; + + cards.forEach(card => { + const title = card.getAttribute("data-title"); + const cardLang = card.getAttribute("data-language"); + const cardStatus = card.getAttribute("data-status"); + const cardOrg = card.getAttribute("data-org"); + + const matches = + (!query || title.includes(query)) && + (!lang || cardLang === lang) && + (!status || cardStatus === status) && + (!org || cardOrg === org); + + card.style.display = matches ? "flex" : "none"; + if (matches) visible++; + }); + + const emptyState = document.querySelector(".no-results"); + if (!visible && !emptyState) { + const div = document.createElement("div"); + div.className = "no-results"; + div.innerHTML = `🔍

    ${_('No courses found')}

    `; + document.getElementById("courseList").appendChild(div); + } else if (visible && emptyState) { + emptyState.remove(); + } + } + + From d31df5d836d231efb4e3d57e435d07904f128c7c Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 5 Jan 2026 10:52:20 +0500 Subject: [PATCH 248/443] meme page NOT FOR DEPLOY!!! --- lms/djangoapps/news/views.py | 5 ++++- lms/templates/courseware/meme_page.html | 10 ++++++++++ lms/urls.py | 3 ++- 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 lms/templates/courseware/meme_page.html diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 172b7a48158b..0716bd5bd981 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -31,10 +31,13 @@ def news_create(request): return redirect('news_list') else: form = NewsForm() - + context = { 'form': form, 'list_url': reverse('news_list'), } return render_to_response('news/form.html', context, request=request) +def meme_page(request): + return render(request, 'courseware/meme_page.html') + diff --git a/lms/templates/courseware/meme_page.html b/lms/templates/courseware/meme_page.html new file mode 100644 index 000000000000..ab6fa43b16df --- /dev/null +++ b/lms/templates/courseware/meme_page.html @@ -0,0 +1,10 @@ + + + + + Title + + +

    Hello world

    + + diff --git a/lms/urls.py b/lms/urls.py index c81f03a808e5..aea1abd7eaf9 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -51,7 +51,7 @@ from openedx.core.djangoapps.user_authn.views.login import redirect_to_lms_login from openedx.features.enterprise_support.api import enterprise_enabled from lms.djangoapps.univerapi import views as univer_views -from lms.djangoapps.news import views as news_views +from lms.djangoapps.news import views as news_views RESET_COURSE_DEADLINES_NAME = 'reset_course_deadlines' RENDER_XBLOCK_NAME = 'render_xblock' RENDER_VIDEO_XBLOCK_NAME = 'render_public_video_xblock' @@ -98,6 +98,7 @@ path('news/', news_views.news_list, name='news_list'), path('news//', news_views.news_detail, name='news_detail'), path('news/create/', news_views.news_create, name='news_create'), + path('meme/', news_views.meme_page, name='meme_page'), path('api/univertest/', univer_views.UniverTestView.as_view(), name='univer_test'), path('', branding_views.index, name='root'), # Main marketing page, or redirect to courseware From 07c72bcb40e57d67b9603b95bc82cc4618c5cb3b Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 5 Jan 2026 12:14:26 +0500 Subject: [PATCH 249/443] Meme style --- lms/templates/courseware/meme_page.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lms/templates/courseware/meme_page.html b/lms/templates/courseware/meme_page.html index ab6fa43b16df..66c13f2e2ac3 100644 --- a/lms/templates/courseware/meme_page.html +++ b/lms/templates/courseware/meme_page.html @@ -3,6 +3,9 @@ Title + {% load static %} + +

    Hello world

    From cda72a4dbf6afad293996cdf61133795154ef1ad Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 5 Jan 2026 14:28:04 +0500 Subject: [PATCH 250/443] analyze page --- lms/djangoapps/news/views.py | 4 ++-- lms/static/sass/base/meme_page.scss | 12 ++++++++++++ .../courseware/{meme_page.html => analyze.html} | 2 +- lms/urls.py | 2 +- 4 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 lms/static/sass/base/meme_page.scss rename lms/templates/courseware/{meme_page.html => analyze.html} (95%) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 0716bd5bd981..b930e0e4195f 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -38,6 +38,6 @@ def news_create(request): } return render_to_response('news/form.html', context, request=request) -def meme_page(request): - return render(request, 'courseware/meme_page.html') +def analyze(request): + return render(request, 'courseware/analyze.html') diff --git a/lms/static/sass/base/meme_page.scss b/lms/static/sass/base/meme_page.scss new file mode 100644 index 000000000000..8cbbe6fa4f6e --- /dev/null +++ b/lms/static/sass/base/meme_page.scss @@ -0,0 +1,12 @@ +@import "base/base"; +@import "base/reset"; +@import "base/layouts"; + +/* твои стили */ +h1 { + color: red; +} + +body { + background-color: red; +} diff --git a/lms/templates/courseware/meme_page.html b/lms/templates/courseware/analyze.html similarity index 95% rename from lms/templates/courseware/meme_page.html rename to lms/templates/courseware/analyze.html index 66c13f2e2ac3..cb31c4aa28f1 100644 --- a/lms/templates/courseware/meme_page.html +++ b/lms/templates/courseware/analyze.html @@ -5,7 +5,7 @@ Title {% load static %} - +

    Hello world

    diff --git a/lms/urls.py b/lms/urls.py index aea1abd7eaf9..dec4e4896422 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -98,7 +98,7 @@ path('news/', news_views.news_list, name='news_list'), path('news//', news_views.news_detail, name='news_detail'), path('news/create/', news_views.news_create, name='news_create'), - path('meme/', news_views.meme_page, name='meme_page'), + path('analyze/', news_views.analyze, name='analyze'), path('api/univertest/', univer_views.UniverTestView.as_view(), name='univer_test'), path('', branding_views.index, name='root'), # Main marketing page, or redirect to courseware From 6f7870f663ff129ea5e4b3a1be315b1acda7a68a Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 5 Jan 2026 14:47:44 +0500 Subject: [PATCH 251/443] Added new style --- lms/static/sass/{base => }/meme_page.scss | 2 -- 1 file changed, 2 deletions(-) rename lms/static/sass/{base => }/meme_page.scss (67%) diff --git a/lms/static/sass/base/meme_page.scss b/lms/static/sass/meme_page.scss similarity index 67% rename from lms/static/sass/base/meme_page.scss rename to lms/static/sass/meme_page.scss index 8cbbe6fa4f6e..9cf2b1ca6e15 100644 --- a/lms/static/sass/base/meme_page.scss +++ b/lms/static/sass/meme_page.scss @@ -1,8 +1,6 @@ @import "base/base"; @import "base/reset"; -@import "base/layouts"; -/* твои стили */ h1 { color: red; } From 50e87df835bc96b0d67e4dd618a7f9be911ba3a5 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 6 Jan 2026 16:31:34 +0500 Subject: [PATCH 252/443] beta --- lms/static/sass/meme_page.scss | 10 ---------- lms/templates/courseware/analyze.html | 4 ++-- 2 files changed, 2 insertions(+), 12 deletions(-) delete mode 100644 lms/static/sass/meme_page.scss diff --git a/lms/static/sass/meme_page.scss b/lms/static/sass/meme_page.scss deleted file mode 100644 index 9cf2b1ca6e15..000000000000 --- a/lms/static/sass/meme_page.scss +++ /dev/null @@ -1,10 +0,0 @@ -@import "base/base"; -@import "base/reset"; - -h1 { - color: red; -} - -body { - background-color: red; -} diff --git a/lms/templates/courseware/analyze.html b/lms/templates/courseware/analyze.html index cb31c4aa28f1..2983c2d12ba0 100644 --- a/lms/templates/courseware/analyze.html +++ b/lms/templates/courseware/analyze.html @@ -1,11 +1,11 @@ +@import "mytheme" + Title {% load static %} - -

    Hello world

    From d537e1bc670891c2d6b07386d41b2e897f88c4d1 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 6 Jan 2026 16:50:01 +0500 Subject: [PATCH 253/443] analyze add header --- lms/templates/courseware/analyze.html | 36 +++++++++++++++++---------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/lms/templates/courseware/analyze.html b/lms/templates/courseware/analyze.html index 2983c2d12ba0..b565e97dfb87 100644 --- a/lms/templates/courseware/analyze.html +++ b/lms/templates/courseware/analyze.html @@ -1,13 +1,23 @@ -@import "mytheme" - - - - - - Title - {% load static %} - - -

    Hello world

    - - +<%page expression_filter="h"/> +<%! from django.utils.translation import gettext as _ %> +<%inherit file="../main.html" /> + +<%block name="pagetitle">${_("News")} + +<%block name="extrahead"> + + + +
    + + +
    + Analyze +
    +
    + From c6b0b71f3e7470db70d4f7a7bf9ace55ab7e42c3 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 6 Jan 2026 17:41:54 +0500 Subject: [PATCH 254/443] copy news --- lms/templates/courseware/analyze.html | 238 +++++++++++++++++++++++++- 1 file changed, 235 insertions(+), 3 deletions(-) diff --git a/lms/templates/courseware/analyze.html b/lms/templates/courseware/analyze.html index b565e97dfb87..d186589cd174 100644 --- a/lms/templates/courseware/analyze.html +++ b/lms/templates/courseware/analyze.html @@ -6,7 +6,179 @@ <%block name="extrahead"> @@ -16,8 +188,68 @@

    ${_("News")}

    ${_("Stay updated with the latest news and announcements")}

    -
    - Analyze -
    + % if news_list: +
    + % for news in news_list: +
    + % if news.image: + ${news.title} + % else: +
    + +
    + % endif + +
    + + +
    + ${news.created_at.date()} +
    + +
    + ${news.content[:100]}... +
    + + + ${_("Read more")} → + +
    +
    + % endfor +
    + % else: +
    +
    📰
    +

    ${_("No news available")}

    +

    ${_("Check back later for updates")}

    +
    + % endif +<%block name="extrajs"> + + From a083f1427efbeb58cf48d7b61078a90926a1d507 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 6 Jan 2026 17:51:46 +0500 Subject: [PATCH 255/443] changed place --- lms/djangoapps/news/views.py | 2 +- lms/templates/{courseware => news}/analyze.html | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename lms/templates/{courseware => news}/analyze.html (100%) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index b930e0e4195f..c7026a40e631 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -39,5 +39,5 @@ def news_create(request): return render_to_response('news/form.html', context, request=request) def analyze(request): - return render(request, 'courseware/analyze.html') + return render(request, 'news/analyze.html') diff --git a/lms/templates/courseware/analyze.html b/lms/templates/news/analyze.html similarity index 100% rename from lms/templates/courseware/analyze.html rename to lms/templates/news/analyze.html From 0513e567584c0cac418fd935b566d5f21fac3e4b Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 8 Jan 2026 10:15:54 +0500 Subject: [PATCH 256/443] news copy --- lms/djangoapps/news/views.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index c7026a40e631..3ebcdc9025db 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -39,5 +39,10 @@ def news_create(request): return render_to_response('news/form.html', context, request=request) def analyze(request): - return render(request, 'news/analyze.html') + news = News.objects.all() + context = { + 'news_list': news, + 'create_url': reverse('news_create'), + } + return render_to_response('news/analyze.html', context, request=request) From 7d37c3d5a397705f557e35d1fba2cb2c93d7f3d0 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 8 Jan 2026 12:42:38 +0500 Subject: [PATCH 257/443] edit| --- lms/djangoapps/news/views.py | 7 +- lms/templates/news/analyze.html | 245 +------------------------------- 2 files changed, 3 insertions(+), 249 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 3ebcdc9025db..45ae2f02a55d 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -39,10 +39,5 @@ def news_create(request): return render_to_response('news/form.html', context, request=request) def analyze(request): - news = News.objects.all() - context = { - 'news_list': news, - 'create_url': reverse('news_create'), - } - return render_to_response('news/analyze.html', context, request=request) + return render_to_response('news/analyze.html', request=request) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index d186589cd174..e0319485ee46 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -5,251 +5,10 @@ <%block name="pagetitle">${_("News")} <%block name="extrahead"> - -
    - - - % if news_list: -
    - % for news in news_list: -
    - % if news.image: - ${news.title} - % else: -
    - -
    - % endif - -
    - - -
    - ${news.created_at.date()} -
    - -
    - ${news.content[:100]}... -
    - - - ${_("Read more")} → - -
    -
    - % endfor -
    - % else: -
    -
    📰
    -

    ${_("No news available")}

    -

    ${_("Check back later for updates")}

    -
    - % endif +
    +

    Hello world

    -<%block name="extrajs"> - - From cd816b1fe52ada4e6210a3562d7678d08e5add57 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 8 Jan 2026 14:25:26 +0500 Subject: [PATCH 258/443] Added course list --- lms/djangoapps/news/views.py | 19 ++++++++++++++++++- lms/templates/news/analyze.html | 22 ++++++++++++++++------ 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 45ae2f02a55d..947e7466b247 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -5,6 +5,10 @@ from .forms import NewsForm from django.contrib.auth.decorators import user_passes_test +from openedx.core.djangoapps.content.course_overviews.models import CourseOverview +# from ..commerce.api.v1.models import Course + + def news_list(request): news = News.objects.all() context = { @@ -38,6 +42,19 @@ def news_create(request): } return render_to_response('news/form.html', context, request=request) + + + def analyze(request): - return render_to_response('news/analyze.html', request=request) + courses = CourseOverview.objects.all().order_by('-created') + + context = { + "courses": courses, + "courses_count": courses.count(), + } + + return render(request, "news/analyze.html", context) + + + return render_to_response('news/analyze.html', context, request=request) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index e0319485ee46..0e5b4e69caa5 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -2,13 +2,23 @@ <%! from django.utils.translation import gettext as _ %> <%inherit file="../main.html" /> -<%block name="pagetitle">${_("News")} +<%block name="pagetitle">${_("Analyze")} -<%block name="extrahead"> +
    +

    📊 Курсы

    - +

    Всего курсов: ${courses_count}

    -
    -

    Hello world

    +
      + % for course in courses: +
    • + ${course.display_name}
      + + ${course.course_id} + | org: ${course.org} + | start: ${course.start} + +
    • + % endfor +
    - From df214d09470e9a5eb74382922606e488d5cc5369 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 8 Jan 2026 14:37:46 +0500 Subject: [PATCH 259/443] add --- lms/djangoapps/news/views.py | 2 +- lms/templates/news/analyze.html | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 947e7466b247..524a4973cf1a 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -53,7 +53,7 @@ def analyze(request): "courses_count": courses.count(), } - return render(request, "news/analyze.html", context) + # return render(request, "news/analyze.html", context) return render_to_response('news/analyze.html', context, request=request) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index 0e5b4e69caa5..312831ca63d1 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -4,6 +4,8 @@ <%block name="pagetitle">${_("Analyze")} +<%block name="extrahead"> +

    📊 Курсы

    @@ -22,3 +24,4 @@

    📊 Курсы

    % endfor
    + From 9346f9a231721d44936b37f8cdecd2a6927d9323 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 8 Jan 2026 14:52:56 +0500 Subject: [PATCH 260/443] add end block --- lms/templates/news/analyze.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index 312831ca63d1..fbeea0e68664 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -24,4 +24,4 @@

    📊 Курсы

    % endfor
    - + From 7ada26894f4d5d91028b998726f9a1bb071b0f6d Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 8 Jan 2026 15:06:10 +0500 Subject: [PATCH 261/443] add id --- lms/templates/news/analyze.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index fbeea0e68664..65ac53792fa2 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -16,7 +16,7 @@

    📊 Курсы

  • ${course.display_name}
    - ${course.course_id} + ${course.id} | org: ${course.org} | start: ${course.start} From f30ee00238dcf531367672f364d195a4485c46ac Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 8 Jan 2026 15:22:40 +0500 Subject: [PATCH 262/443] new table --- lms/djangoapps/news/views.py | 16 +++++++--- lms/templates/news/analyze.html | 56 ++++++++++++++++++++++++++++++--- 2 files changed, 64 insertions(+), 8 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 524a4973cf1a..4e8a7fccee18 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -4,6 +4,7 @@ from .models import News from .forms import NewsForm from django.contrib.auth.decorators import user_passes_test +from django.db.models import Count from openedx.core.djangoapps.content.course_overviews.models import CourseOverview # from ..commerce.api.v1.models import Course @@ -46,15 +47,22 @@ def news_create(request): def analyze(request): - courses = CourseOverview.objects.all().order_by('-created') + courses = CourseOverview.objects.all() + + courses_by_org = ( + CourseOverview.objects + .values("org") + .annotate(total=Count("id")) + .order_by("-total") + ) context = { - "courses": courses, + "courses": courses[:50], "courses_count": courses.count(), + "chart_labels": [c["org"] for c in courses_by_org], + "chart_data": [c["total"] for c in courses_by_org], } - # return render(request, "news/analyze.html", context) - return render_to_response('news/analyze.html', context, request=request) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index 65ac53792fa2..4f428e0fee24 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -5,23 +5,71 @@ <%block name="pagetitle">${_("Analyze")} <%block name="extrahead"> + +
    -

    📊 Курсы

    +

    🎓 Курсы по факультетам

    Всего курсов: ${courses_count}

    + +
    + +
    + + +

    📚 Курсы

      % for course in courses:
    • ${course.display_name}
      ${course.id} - | org: ${course.org} - | start: ${course.start} + | факультет: ${course.org}
    • % endfor
    - + + From 837dcf3b9aa8050c805414841d3a61bd68f20200 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 8 Jan 2026 15:40:00 +0500 Subject: [PATCH 263/443] new --- lms/templates/news/analyze.html | 59 +++++++++++---------------------- 1 file changed, 19 insertions(+), 40 deletions(-) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index 4f428e0fee24..a5bd7480783e 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -13,20 +13,16 @@

    🎓 Курсы по факультетам

    Всего курсов: ${courses_count}

    -
    - -

    📚 Курсы

      % for course in courses:
    • ${course.display_name}
      - ${course.id} - | факультет: ${course.org} + ${course.id} | факультет: ${course.org}
    • % endfor @@ -34,42 +30,25 @@

      📚 Курсы

  • From 027de80ba5d8427b776f0d7c71730cbfd85607d8 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 8 Jan 2026 15:52:11 +0500 Subject: [PATCH 264/443] add render --- lms/djangoapps/news/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 4e8a7fccee18..4967a74cae61 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -64,5 +64,5 @@ def analyze(request): } - return render_to_response('news/analyze.html', context, request=request) + return render('news/analyze.html', context, request=request) From 50f50f605564ca0108d08060d931fdb729a6bed0 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 8 Jan 2026 16:03:36 +0500 Subject: [PATCH 265/443] nothing --- lms/djangoapps/news/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 4967a74cae61..4e8a7fccee18 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -64,5 +64,5 @@ def analyze(request): } - return render('news/analyze.html', context, request=request) + return render_to_response('news/analyze.html', context, request=request) From b64ec36ac1a2ca68f7a30bfcf90de537aace1c84 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 8 Jan 2026 16:04:32 +0500 Subject: [PATCH 266/443] n --- lms/djangoapps/news/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 4e8a7fccee18..4967a74cae61 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -64,5 +64,5 @@ def analyze(request): } - return render_to_response('news/analyze.html', context, request=request) + return render('news/analyze.html', context, request=request) From 3501e8a9fd9d7de95ab895dafa99851b53e7947f Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 8 Jan 2026 16:17:08 +0500 Subject: [PATCH 267/443] new --- lms/djangoapps/news/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 4967a74cae61..65699d73a09b 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -64,5 +64,5 @@ def analyze(request): } - return render('news/analyze.html', context, request=request) + return render(request, "news/analyze.html", context) From 408cdfaa8aa605a1875211f27fae44ec0e7ac979 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 12 Jan 2026 09:39:54 +0500 Subject: [PATCH 268/443] Edit --- lms/templates/news/analyze.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index a5bd7480783e..68a934f6c29f 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -18,17 +18,18 @@

    🎓 Курсы по факультетам

      - % for course in courses: + % for course in courses:
    • ${course.display_name}
      ${course.id} | факультет: ${course.org}
    • - % endfor + % endfor
    +<%block name="extrajs"> + From 99634fc3c720f2622b6fbea1616987d8483ecf69 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 12 Jan 2026 10:38:22 +0500 Subject: [PATCH 269/443] Edit --- lms/templates/news/analyze.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index 68a934f6c29f..850d6832854f 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -11,7 +11,7 @@

    🎓 Курсы по факультетам

    -

    Всего курсов: ${courses_count}

    +

    Всего курсов: 123 ${courses_count}

    From 5e3263afc33e8e9c1b08907aa6d5508a9f5f136a Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 12 Jan 2026 11:33:40 +0500 Subject: [PATCH 270/443] count --- lms/djangoapps/news/views.py | 2 +- lms/templates/news/analyze.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 65699d73a09b..5fd688539e82 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -58,7 +58,7 @@ def analyze(request): context = { "courses": courses[:50], - "courses_count": courses.count(), + "courses_count": 10, # courses.count(), "chart_labels": [c["org"] for c in courses_by_org], "chart_data": [c["total"] for c in courses_by_org], } diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index 850d6832854f..2128e201b76e 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -11,7 +11,7 @@

    🎓 Курсы по факультетам

    -

    Всего курсов: 123 ${courses_count}

    +

    Всего курсов: ${courses_count}

    From ec2ce3b8ab00c1b0bc52bc63fde043be7e2380ea Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 12 Jan 2026 13:07:16 +0500 Subject: [PATCH 271/443] fix1 --- lms/djangoapps/news/views.py | 5 + lms/templates/news/analyze.html | 260 +++++++++++++++++++++++++++----- 2 files changed, 224 insertions(+), 41 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 5fd688539e82..bb47428d0495 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -63,6 +63,11 @@ def analyze(request): "chart_data": [c["total"] for c in courses_by_org], } + news = News.objects.all() + context = { + 'news_list': news, + 'create_url': reverse('news_create'), + } return render(request, "news/analyze.html", context) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index 2128e201b76e..a7216ee2bf9c 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -2,55 +2,233 @@ <%! from django.utils.translation import gettext as _ %> <%inherit file="../main.html" /> -<%block name="pagetitle">${_("Analyze")} +<%block name="pagetitle">${_("News")} <%block name="extrahead"> - - + + + +
    + -
      - % for course in courses: -
    • - ${course.display_name}
      - - ${course.id} | факультет: ${course.org} - -
    • - % endfor -
    + % if news_list: +
    + % for news in news_list: +
    + % if news.image: + ${news.title} + % else: +
    + +
    + % endif + +
    + + +
    + ${news.created_at.date()} +
    + +
    + ${news.content[:100]}... +
    + + + ${_("Read more")} → + +
    +
    + % endfor +
    + % else: +
    +
    📰
    +

    ${_("No news available")}

    +

    ${_("Check back later for updates")}

    +
    + % endif
    <%block name="extrajs"> - + From b9a53e2bdc43d76e7860802952224845c5f70b23 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 12 Jan 2026 13:18:37 +0500 Subject: [PATCH 272/443] f2 --- lms/djangoapps/news/views.py | 40 ++--- lms/templates/news/analyze.html | 238 ++++------------------------- lms/templates/news/analyze2.html | 255 +++++++++++++++++++++++++++++++ 3 files changed, 310 insertions(+), 223 deletions(-) create mode 100644 lms/templates/news/analyze2.html diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index bb47428d0495..ad7dc7aebe6d 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -47,27 +47,31 @@ def news_create(request): def analyze(request): - courses = CourseOverview.objects.all() - - courses_by_org = ( - CourseOverview.objects - .values("org") - .annotate(total=Count("id")) - .order_by("-total") - ) - - context = { - "courses": courses[:50], - "courses_count": 10, # courses.count(), - "chart_labels": [c["org"] for c in courses_by_org], - "chart_data": [c["total"] for c in courses_by_org], - } - + # courses = CourseOverview.objects.all() + # + # courses_by_org = ( + # CourseOverview.objects + # .values("org") + # .annotate(total=Count("id")) + # .order_by("-total") + # ) + # news = News.objects.all() + # context = { + # "courses": courses[:50], + # "courses_count": 10, # courses.count(), + # "chart_labels": [c["org"] for c in courses_by_org], + # "chart_data": [c["total"] for c in courses_by_org], + # + # 'news_list': news, + # 'create_url': reverse('news_create'), + # } + # + # + # return render(request, "news/analyze.html", context) news = News.objects.all() context = { 'news_list': news, 'create_url': reverse('news_create'), } - - return render(request, "news/analyze.html", context) + return render_to_response('news/list.html', context, request=request) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index a7216ee2bf9c..60f79d17c6e0 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -6,226 +6,54 @@ <%block name="extrahead">
    % if news_list: -
    - % for news in news_list: -
    - % if news.image: - ${news.title} - % else: -
    - -
    - % endif - -
    - - -
    - ${news.created_at.date()} -
    +
    + % for news in news_list: +
    + % if news.image: + ${news.title} + % else: +
    + +
    + % endif + +
    + -
    - ${news.content[:100]}... -
    +
    + ${news.created_at.date()} +
    - - ${_("Read more")} → - -
    +
    + ${news.content[:100]}...
    - % endfor + + + ${_("Read more")} → + +
    + % endfor +
    % else: -
    -
    📰
    -

    ${_("No news available")}

    -

    ${_("Check back later for updates")}

    -
    +
    +
    📰
    +

    ${_("No news available")}

    +

    ${_("Check back later for updates")}

    +
    % endif
    diff --git a/lms/templates/news/analyze2.html b/lms/templates/news/analyze2.html new file mode 100644 index 000000000000..d186589cd174 --- /dev/null +++ b/lms/templates/news/analyze2.html @@ -0,0 +1,255 @@ +<%page expression_filter="h"/> +<%! from django.utils.translation import gettext as _ %> +<%inherit file="../main.html" /> + +<%block name="pagetitle">${_("News")} + +<%block name="extrahead"> + + + +
    + + + % if news_list: +
    + % for news in news_list: +
    + % if news.image: + ${news.title} + % else: +
    + +
    + % endif + +
    + + +
    + ${news.created_at.date()} +
    + +
    + ${news.content[:100]}... +
    + + + ${_("Read more")} → + +
    +
    + % endfor +
    + % else: +
    +
    📰
    +

    ${_("No news available")}

    +

    ${_("Check back later for updates")}

    +
    + % endif +
    + +<%block name="extrajs"> + + From 8cfed587bc6f355d383b109d63e1e3f2ac50c2c3 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 12 Jan 2026 13:28:36 +0500 Subject: [PATCH 273/443] f2 --- lms/djangoapps/news/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index ad7dc7aebe6d..749d2deb30d5 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -73,5 +73,5 @@ def analyze(request): 'news_list': news, 'create_url': reverse('news_create'), } - return render_to_response('news/list.html', context, request=request) + return render_to_response('news/analyze2.html', context, request=request) From d2f8bec1c93aa428a05ec39f4f7523daccebb1a8 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 12 Jan 2026 13:43:04 +0500 Subject: [PATCH 274/443] f3 --- lms/djangoapps/news/views.py | 43 ++++---- lms/templates/news/analyze2.html | 178 +------------------------------ 2 files changed, 26 insertions(+), 195 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 749d2deb30d5..12e634b24acc 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -47,29 +47,30 @@ def news_create(request): def analyze(request): - # courses = CourseOverview.objects.all() - # - # courses_by_org = ( - # CourseOverview.objects - # .values("org") - # .annotate(total=Count("id")) - # .order_by("-total") - # ) - # news = News.objects.all() - # context = { - # "courses": courses[:50], - # "courses_count": 10, # courses.count(), - # "chart_labels": [c["org"] for c in courses_by_org], - # "chart_data": [c["total"] for c in courses_by_org], - # - # 'news_list': news, - # 'create_url': reverse('news_create'), - # } - # - # - # return render(request, "news/analyze.html", context) + courses = CourseOverview.objects.all() + + courses_by_org = ( + CourseOverview.objects + .values("org") + .annotate(total=Count("id")) + .order_by("-total") + ) + news = News.objects.all() + context = { + "courses": courses[:50], + "courses_count": 10, # courses.count(), + "chart_labels": [c["org"] for c in courses_by_org], + "chart_data": [c["total"] for c in courses_by_org], + + 'news_list': news, + 'create_url': reverse('news_create'), + } + + + news = News.objects.all() context = { + "courses": courses[:50], 'news_list': news, 'create_url': reverse('news_create'), } diff --git a/lms/templates/news/analyze2.html b/lms/templates/news/analyze2.html index d186589cd174..cfa4b90e5d64 100644 --- a/lms/templates/news/analyze2.html +++ b/lms/templates/news/analyze2.html @@ -2,183 +2,11 @@ <%! from django.utils.translation import gettext as _ %> <%inherit file="../main.html" /> -<%block name="pagetitle">${_("News")} +<%block name="pagetitle">${_("Analyze")} <%block name="extrahead"> @@ -187,7 +15,9 @@

    ${_("News")}

    ${_("Stay updated with the latest news and announcements")}

    - +
    + {courses} +
    % if news_list:
    % for news in news_list: From 52f22364b9969bafc7af2c4a1563a5a1f663e9ce Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 12 Jan 2026 13:58:20 +0500 Subject: [PATCH 275/443] f3 --- lms/djangoapps/news/views.py | 19 ++++++------------- lms/templates/news/analyze2.html | 2 +- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 12e634b24acc..373d6ffe96a6 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -55,24 +55,17 @@ def analyze(request): .annotate(total=Count("id")) .order_by("-total") ) + news = News.objects.all() + context = { "courses": courses[:50], - "courses_count": 10, # courses.count(), + "courses_count": courses.count(), "chart_labels": [c["org"] for c in courses_by_org], "chart_data": [c["total"] for c in courses_by_org], - - 'news_list': news, - 'create_url': reverse('news_create'), + "news_list": news, + "create_url": reverse("news_create"), } - - - news = News.objects.all() - context = { - "courses": courses[:50], - 'news_list': news, - 'create_url': reverse('news_create'), - } - return render_to_response('news/analyze2.html', context, request=request) + return render_to_response("news/analyze2.html", context, request=request) diff --git a/lms/templates/news/analyze2.html b/lms/templates/news/analyze2.html index cfa4b90e5d64..8eba9788ba5c 100644 --- a/lms/templates/news/analyze2.html +++ b/lms/templates/news/analyze2.html @@ -16,7 +16,7 @@

    ${_("News")}

    ${_("Stay updated with the latest news and announcements")}

    - {courses} + ${courses}
    % if news_list:
    From 9422eabafac04287189aa86f14bcdcbe39f0c733 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 12 Jan 2026 14:11:12 +0500 Subject: [PATCH 276/443] f4 --- lms/templates/news/analyze.html | 93 +++++++++++++++---------- lms/templates/news/analyze2.html | 114 +++++++++++++++---------------- 2 files changed, 114 insertions(+), 93 deletions(-) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index 60f79d17c6e0..8eba9788ba5c 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -2,7 +2,7 @@ <%! from django.utils.translation import gettext as _ %> <%inherit file="../main.html" /> -<%block name="pagetitle">${_("News")} +<%block name="pagetitle">${_("Analyze")} <%block name="extrahead"> + -
    +
    - ${courses} +

    📚 Список курсов

    + +

    Всего курсов: ${courses_count}

    + +
      + % for course in courses: +
    • + ${course.display_name}
      + + ID: ${course.id}
      + org: ${course.org}
      + number: ${course.number}
      + start: ${course.start}
      + end: ${course.end} +
      +
    • + % endfor +
    +
    % if news_list: -
    - % for news in news_list: -
    - % if news.image: - ${news.title} - % else: -
    - -
    - % endif +
    + % for news in news_list: +
    + % if news.image: + ${news.title} + % else: +
    + +
    + % endif -
    - - -
    - ${news.created_at.date()} -
    +
    + -
    - ${news.content[:100]}... -
    +
    + ${news.created_at.date()} +
    - - ${_("Read more")} → - -
    +
    + ${news.content[:100]}...
    - % endfor + + + ${_("Read more")} → + +
    + % endfor +
    % else: -
    -
    📰
    -

    ${_("No news available")}

    -

    ${_("Check back later for updates")}

    -
    +
    +
    📰
    +

    ${_("No news available")}

    +

    ${_("Check back later for updates")}

    +
    % endif
    <%block name="extrajs"> - + From e603197b80e4899313c96b9c76d46d088b3a0637 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 12 Jan 2026 14:44:31 +0500 Subject: [PATCH 277/443] add analyze3 --- lms/djangoapps/news/views.py | 77 ++++++++++++++++--- lms/templates/news/analyze.html | 112 ++++++++------------------- lms/templates/news/analyze2.html | 39 ---------- lms/templates/news/analyze3.html | 126 +++++++++++++++++++++++++++++++ 4 files changed, 226 insertions(+), 128 deletions(-) create mode 100644 lms/templates/news/analyze3.html diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 373d6ffe96a6..7be9c8cbea6e 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -43,12 +43,34 @@ def news_create(request): } return render_to_response('news/form.html', context, request=request) - - - +from django.db.models import Count +from django.db.models.functions import ExtractYear +from django.shortcuts import render +from course_overviews.models import CourseOverview + + +# def analyze(request): +# courses = CourseOverview.objects.all() +# +# courses_by_org = ( +# CourseOverview.objects +# .values("org") +# .annotate(total=Count("id")) +# .order_by("-total") +# ) +# +# context = { +# "courses": courses[:50], +# "courses_count": courses.count(), +# "chart_labels": [c["org"] for c in courses_by_org], +# "chart_data": [c["total"] for c in courses_by_org], +# } +# +# return render_to_response("news/analyze2.html", context, request=request) def analyze(request): courses = CourseOverview.objects.all() + # 1️⃣ Курсы по факультетам (org) courses_by_org = ( CourseOverview.objects .values("org") @@ -56,16 +78,51 @@ def analyze(request): .order_by("-total") ) - news = News.objects.all() + # 2️⃣ Курсы по годам старта + courses_by_year = ( + CourseOverview.objects + .exclude(start__isnull=True) + .annotate(year=ExtractYear("start")) + .values("year") + .annotate(total=Count("id")) + .order_by("year") + ) + + # 3️⃣ Курсы по языкам + courses_by_lang = ( + CourseOverview.objects + .exclude(language__isnull=True) + .values("language") + .annotate(total=Count("id")) + .order_by("-total") + ) + + # 4️⃣ Формат обучения + paced_data = [ + CourseOverview.objects.filter(self_paced=True).count(), + CourseOverview.objects.filter(self_paced=False).count(), + ] context = { + # список курсов "courses": courses[:50], "courses_count": courses.count(), - "chart_labels": [c["org"] for c in courses_by_org], - "chart_data": [c["total"] for c in courses_by_org], - "news_list": news, - "create_url": reverse("news_create"), - } - return render_to_response("news/analyze2.html", context, request=request) + # факультеты + "org_labels": [c["org"] for c in courses_by_org], + "org_data": [c["total"] for c in courses_by_org], + + # годы + "year_labels": [c["year"] for c in courses_by_year], + "year_data": [c["total"] for c in courses_by_year], + + # языки + "lang_labels": [c["language"] for c in courses_by_lang], + "lang_data": [c["total"] for c in courses_by_lang], + + # формат + "paced_labels": ["Self-paced", "Instructor-led"], + "paced_data": paced_data, + } + return render(request, "news/analyze3.html", context) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index 8eba9788ba5c..2a065a6fe4aa 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -1,85 +1,39 @@ -<%page expression_filter="h"/> -<%! from django.utils.translation import gettext as _ %> -<%inherit file="../main.html" /> - -<%block name="pagetitle">${_("Analyze")} - -<%block name="extrahead"> - - - -
    - -
    - ${courses} -
    - % if news_list: -
    - % for news in news_list: -
    - % if news.image: - ${news.title} - % else: -
    - -
    - % endif - -
    - - -
    - ${news.created_at.date()} -
    +% if news_list: +
    + % for news in news_list: +
    + % if news.image: + ${news.title} + % else: +
    + +
    + % endif + +
    + -
    - ${news.content[:100]}... -
    +
    + ${news.created_at.date()} +
    - - ${_("Read more")} → - -
    +
    + ${news.content[:100]}...
    - % endfor + + + ${_("Read more")} → + +
    + % endfor +
    % else: -
    -
    📰
    -

    ${_("No news available")}

    -

    ${_("Check back later for updates")}

    -
    +
    +
    📰
    +

    ${_("No news available")}

    +

    ${_("Check back later for updates")}

    +
    % endif -
    - -<%block name="extrajs"> - - diff --git a/lms/templates/news/analyze2.html b/lms/templates/news/analyze2.html index 38d191c204e2..fe6df27a0450 100644 --- a/lms/templates/news/analyze2.html +++ b/lms/templates/news/analyze2.html @@ -35,45 +35,6 @@

    📚 Список курсов

    - % if news_list: -
    - % for news in news_list: -
    - % if news.image: - ${news.title} - % else: -
    - -
    - % endif - -
    - - -
    - ${news.created_at.date()} -
    - -
    - ${news.content[:100]}... -
    - - - ${_("Read more")} → - -
    -
    - % endfor -
    - % else: -
    -
    📰
    -

    ${_("No news available")}

    -

    ${_("Check back later for updates")}

    -
    - % endif
    <%block name="extrajs"> diff --git a/lms/templates/news/analyze3.html b/lms/templates/news/analyze3.html new file mode 100644 index 000000000000..4968a379ee36 --- /dev/null +++ b/lms/templates/news/analyze3.html @@ -0,0 +1,126 @@ +<%page expression_filter="h"/> +<%! from django.utils.translation import gettext as _ %> +<%inherit file="../main.html" /> + +<%block name="pagetitle">${_("Analyze")} + +<%block name="extrahead"> + + + + +<%block name="content"> + +
    + +

    📊 Аналитика курсов

    + +

    Всего курсов: ${courses_count}

    + + +
    +

    Курсы по факультетам

    + +
    + + +
    +

    Курсы по годам

    + +
    + + +
    +

    Курсы по языкам

    + +
    + + +
    +

    Формат обучения

    + +
    + + +

    📚 Курсы

    + +
    + % for course in courses: +
    + ${course.display_name} +
    Org: ${course.org}
    +
    Language: ${course.language}
    + % if course.start: +
    Start: ${course.start.strftime('%d.%m.%Y')}
    + % endif + +
    + % endfor +
    + +
    + + + +<%block name="extrajs"> + + From 966cfc63553f8bcb2ced3617aa8e2444ddcd557d Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 12 Jan 2026 14:53:34 +0500 Subject: [PATCH 278/443] fx5 --- lms/djangoapps/news/views.py | 1 - 1 file changed, 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 7be9c8cbea6e..2e0de715ad0d 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -46,7 +46,6 @@ def news_create(request): from django.db.models import Count from django.db.models.functions import ExtractYear from django.shortcuts import render -from course_overviews.models import CourseOverview # def analyze(request): From 610aec26304371880f25f5b18c257aabf6fb69bc Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 13 Jan 2026 08:51:30 +0500 Subject: [PATCH 279/443] ok --- lms/djangoapps/news/views.py | 130 +++++++++++++++++------------------ 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 2e0de715ad0d..0ce9afda5a91 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -43,33 +43,14 @@ def news_create(request): } return render_to_response('news/form.html', context, request=request) -from django.db.models import Count -from django.db.models.functions import ExtractYear -from django.shortcuts import render +# from django.db.models import Count +# from django.db.models.functions import ExtractYear +# from django.shortcuts import render -# def analyze(request): -# courses = CourseOverview.objects.all() -# -# courses_by_org = ( -# CourseOverview.objects -# .values("org") -# .annotate(total=Count("id")) -# .order_by("-total") -# ) -# -# context = { -# "courses": courses[:50], -# "courses_count": courses.count(), -# "chart_labels": [c["org"] for c in courses_by_org], -# "chart_data": [c["total"] for c in courses_by_org], -# } -# -# return render_to_response("news/analyze2.html", context, request=request) def analyze(request): courses = CourseOverview.objects.all() - # 1️⃣ Курсы по факультетам (org) courses_by_org = ( CourseOverview.objects .values("org") @@ -77,51 +58,70 @@ def analyze(request): .order_by("-total") ) - # 2️⃣ Курсы по годам старта - courses_by_year = ( - CourseOverview.objects - .exclude(start__isnull=True) - .annotate(year=ExtractYear("start")) - .values("year") - .annotate(total=Count("id")) - .order_by("year") - ) - - # 3️⃣ Курсы по языкам - courses_by_lang = ( - CourseOverview.objects - .exclude(language__isnull=True) - .values("language") - .annotate(total=Count("id")) - .order_by("-total") - ) - - # 4️⃣ Формат обучения - paced_data = [ - CourseOverview.objects.filter(self_paced=True).count(), - CourseOverview.objects.filter(self_paced=False).count(), - ] - context = { - # список курсов "courses": courses[:50], "courses_count": courses.count(), - - # факультеты - "org_labels": [c["org"] for c in courses_by_org], - "org_data": [c["total"] for c in courses_by_org], - - # годы - "year_labels": [c["year"] for c in courses_by_year], - "year_data": [c["total"] for c in courses_by_year], - - # языки - "lang_labels": [c["language"] for c in courses_by_lang], - "lang_data": [c["total"] for c in courses_by_lang], - - # формат - "paced_labels": ["Self-paced", "Instructor-led"], - "paced_data": paced_data, + "chart_labels": [c["org"] for c in courses_by_org], + "chart_data": [c["total"] for c in courses_by_org], } - return render(request, "news/analyze3.html", context) + return render_to_response("news/analyze2.html", context, request=request) +# def analyze(request): +# courses = CourseOverview.objects.all() +# +# # 1️⃣ Курсы по факультетам (org) +# courses_by_org = ( +# CourseOverview.objects +# .values("org") +# .annotate(total=Count("id")) +# .order_by("-total") +# ) +# +# # 2️⃣ Курсы по годам старта +# courses_by_year = ( +# CourseOverview.objects +# .exclude(start__isnull=True) +# .annotate(year=ExtractYear("start")) +# .values("year") +# .annotate(total=Count("id")) +# .order_by("year") +# ) +# +# # 3️⃣ Курсы по языкам +# courses_by_lang = ( +# CourseOverview.objects +# .exclude(language__isnull=True) +# .values("language") +# .annotate(total=Count("id")) +# .order_by("-total") +# ) +# +# # 4️⃣ Формат обучения +# paced_data = [ +# CourseOverview.objects.filter(self_paced=True).count(), +# CourseOverview.objects.filter(self_paced=False).count(), +# ] +# +# context = { +# # список курсов +# "courses": courses[:50], +# "courses_count": courses.count(), +# +# # факультеты +# "org_labels": [c["org"] for c in courses_by_org], +# "org_data": [c["total"] for c in courses_by_org], +# +# # годы +# "year_labels": [c["year"] for c in courses_by_year], +# "year_data": [c["total"] for c in courses_by_year], +# +# # языки +# "lang_labels": [c["language"] for c in courses_by_lang], +# "lang_data": [c["total"] for c in courses_by_lang], +# +# # формат +# "paced_labels": ["Self-paced", "Instructor-led"], +# "paced_data": paced_data, +# } +# +# return render(request, "news/analyze3.html", context) From 78c8e65d57e0db1e7bbbbcbfcb7859a6b1f5ada8 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 13 Jan 2026 09:09:46 +0500 Subject: [PATCH 280/443] update --- lms/djangoapps/news/views.py | 129 +++++++++++++++++------------------ 1 file changed, 64 insertions(+), 65 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 0ce9afda5a91..6130b551e80e 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -43,33 +43,13 @@ def news_create(request): } return render_to_response('news/form.html', context, request=request) -# from django.db.models import Count -# from django.db.models.functions import ExtractYear -# from django.shortcuts import render - - -def analyze(request): - courses = CourseOverview.objects.all() - - courses_by_org = ( - CourseOverview.objects - .values("org") - .annotate(total=Count("id")) - .order_by("-total") - ) +from django.db.models import Count +from django.db.models.functions import ExtractYear - context = { - "courses": courses[:50], - "courses_count": courses.count(), - "chart_labels": [c["org"] for c in courses_by_org], - "chart_data": [c["total"] for c in courses_by_org], - } - return render_to_response("news/analyze2.html", context, request=request) # def analyze(request): # courses = CourseOverview.objects.all() # -# # 1️⃣ Курсы по факультетам (org) # courses_by_org = ( # CourseOverview.objects # .values("org") @@ -77,51 +57,70 @@ def analyze(request): # .order_by("-total") # ) # -# # 2️⃣ Курсы по годам старта -# courses_by_year = ( -# CourseOverview.objects -# .exclude(start__isnull=True) -# .annotate(year=ExtractYear("start")) -# .values("year") -# .annotate(total=Count("id")) -# .order_by("year") -# ) -# -# # 3️⃣ Курсы по языкам -# courses_by_lang = ( -# CourseOverview.objects -# .exclude(language__isnull=True) -# .values("language") -# .annotate(total=Count("id")) -# .order_by("-total") -# ) -# -# # 4️⃣ Формат обучения -# paced_data = [ -# CourseOverview.objects.filter(self_paced=True).count(), -# CourseOverview.objects.filter(self_paced=False).count(), -# ] -# # context = { -# # список курсов # "courses": courses[:50], # "courses_count": courses.count(), -# -# # факультеты -# "org_labels": [c["org"] for c in courses_by_org], -# "org_data": [c["total"] for c in courses_by_org], -# -# # годы -# "year_labels": [c["year"] for c in courses_by_year], -# "year_data": [c["total"] for c in courses_by_year], -# -# # языки -# "lang_labels": [c["language"] for c in courses_by_lang], -# "lang_data": [c["total"] for c in courses_by_lang], -# -# # формат -# "paced_labels": ["Self-paced", "Instructor-led"], -# "paced_data": paced_data, +# "chart_labels": [c["org"] for c in courses_by_org], +# "chart_data": [c["total"] for c in courses_by_org], # } # -# return render(request, "news/analyze3.html", context) +# return render_to_response("news/analyze2.html", context, request=request) +def analyze(request): + courses = CourseOverview.objects.all() + + # 1️⃣ Курсы по факультетам (org) + courses_by_org = ( + CourseOverview.objects + .values("org") + .annotate(total=Count("id")) + .order_by("-total") + ) + + # 2️⃣ Курсы по годам старта + courses_by_year = ( + CourseOverview.objects + .exclude(start__isnull=True) + .annotate(year=ExtractYear("start")) + .values("year") + .annotate(total=Count("id")) + .order_by("year") + ) + + # 3️⃣ Курсы по языкам + courses_by_lang = ( + CourseOverview.objects + .exclude(language__isnull=True) + .values("language") + .annotate(total=Count("id")) + .order_by("-total") + ) + + # 4️⃣ Формат обучения + paced_data = [ + CourseOverview.objects.filter(self_paced=True).count(), + CourseOverview.objects.filter(self_paced=False).count(), + ] + + context = { + # список курсов + "courses": courses[:50], + "courses_count": courses.count(), + + # факультеты + "org_labels": [c["org"] for c in courses_by_org], + "org_data": [c["total"] for c in courses_by_org], + + # годы + "year_labels": [c["year"] for c in courses_by_year], + "year_data": [c["total"] for c in courses_by_year], + + # языки + "lang_labels": [c["language"] for c in courses_by_lang], + "lang_data": [c["total"] for c in courses_by_lang], + + # формат + "paced_labels": ["Self-paced", "Instructor-led"], + "paced_data": paced_data, + } + + return render(request, "news/analyze3.html", context) From 833fdbddd789c2fc8f2be0c907c4ef4146c17eab Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 13 Jan 2026 09:34:45 +0500 Subject: [PATCH 281/443] render --- lms/djangoapps/news/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 6130b551e80e..96547a8e3b07 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -123,4 +123,4 @@ def analyze(request): "paced_data": paced_data, } - return render(request, "news/analyze3.html", context) + return render_to_response(request, "news/analyze3.html", context) From 07b4fff7a16c9b4f64c0a995da129c40a373d95d Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 13 Jan 2026 09:58:51 +0500 Subject: [PATCH 282/443] d --- lms/djangoapps/news/views.py | 128 +++++++++++++++++------------------ 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 96547a8e3b07..95be2b44a489 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -43,32 +43,13 @@ def news_create(request): } return render_to_response('news/form.html', context, request=request) -from django.db.models import Count -from django.db.models.functions import ExtractYear +# from django.db.models import Count +# from django.db.models.functions import ExtractYear -# def analyze(request): -# courses = CourseOverview.objects.all() -# -# courses_by_org = ( -# CourseOverview.objects -# .values("org") -# .annotate(total=Count("id")) -# .order_by("-total") -# ) -# -# context = { -# "courses": courses[:50], -# "courses_count": courses.count(), -# "chart_labels": [c["org"] for c in courses_by_org], -# "chart_data": [c["total"] for c in courses_by_org], -# } -# -# return render_to_response("news/analyze2.html", context, request=request) def analyze(request): courses = CourseOverview.objects.all() - # 1️⃣ Курсы по факультетам (org) courses_by_org = ( CourseOverview.objects .values("org") @@ -76,51 +57,70 @@ def analyze(request): .order_by("-total") ) - # 2️⃣ Курсы по годам старта - courses_by_year = ( - CourseOverview.objects - .exclude(start__isnull=True) - .annotate(year=ExtractYear("start")) - .values("year") - .annotate(total=Count("id")) - .order_by("year") - ) - - # 3️⃣ Курсы по языкам - courses_by_lang = ( - CourseOverview.objects - .exclude(language__isnull=True) - .values("language") - .annotate(total=Count("id")) - .order_by("-total") - ) - - # 4️⃣ Формат обучения - paced_data = [ - CourseOverview.objects.filter(self_paced=True).count(), - CourseOverview.objects.filter(self_paced=False).count(), - ] - context = { - # список курсов "courses": courses[:50], "courses_count": courses.count(), - - # факультеты - "org_labels": [c["org"] for c in courses_by_org], - "org_data": [c["total"] for c in courses_by_org], - - # годы - "year_labels": [c["year"] for c in courses_by_year], - "year_data": [c["total"] for c in courses_by_year], - - # языки - "lang_labels": [c["language"] for c in courses_by_lang], - "lang_data": [c["total"] for c in courses_by_lang], - - # формат - "paced_labels": ["Self-paced", "Instructor-led"], - "paced_data": paced_data, + "chart_labels": [c["org"] for c in courses_by_org], + "chart_data": [c["total"] for c in courses_by_org], } - return render_to_response(request, "news/analyze3.html", context) + return render_to_response("news/analyze2.html", context, request=request) +# def analyze(request): +# courses = CourseOverview.objects.all() +# +# # 1️⃣ Курсы по факультетам (org) +# courses_by_org = ( +# CourseOverview.objects +# .values("org") +# .annotate(total=Count("id")) +# .order_by("-total") +# ) +# +# # 2️⃣ Курсы по годам старта +# courses_by_year = ( +# CourseOverview.objects +# .exclude(start__isnull=True) +# .annotate(year=ExtractYear("start")) +# .values("year") +# .annotate(total=Count("id")) +# .order_by("year") +# ) +# +# # 3️⃣ Курсы по языкам +# courses_by_lang = ( +# CourseOverview.objects +# .exclude(language__isnull=True) +# .values("language") +# .annotate(total=Count("id")) +# .order_by("-total") +# ) +# +# # 4️⃣ Формат обучения +# paced_data = [ +# CourseOverview.objects.filter(self_paced=True).count(), +# CourseOverview.objects.filter(self_paced=False).count(), +# ] +# +# context = { +# # список курсов +# "courses": courses[:50], +# "courses_count": courses.count(), +# +# # факультеты +# "org_labels": [c["org"] for c in courses_by_org], +# "org_data": [c["total"] for c in courses_by_org], +# +# # годы +# "year_labels": [c["year"] for c in courses_by_year], +# "year_data": [c["total"] for c in courses_by_year], +# +# # языки +# "lang_labels": [c["language"] for c in courses_by_lang], +# "lang_data": [c["total"] for c in courses_by_lang], +# +# # формат +# "paced_labels": ["Self-paced", "Instructor-led"], +# "paced_data": paced_data, +# } +# +# return render_to_response(request, "news/analyze3.html", context) From c281eb978bc36d5e0e683c7b1588824c31e8110a Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 15 Jan 2026 14:10:44 +0500 Subject: [PATCH 283/443] Beta --- lms/djangoapps/news/views.py | 126 +++++++++++++++++------------------ 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 95be2b44a489..23a9e20e14c7 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -46,29 +46,10 @@ def news_create(request): # from django.db.models import Count # from django.db.models.functions import ExtractYear - -def analyze(request): - courses = CourseOverview.objects.all() - - courses_by_org = ( - CourseOverview.objects - .values("org") - .annotate(total=Count("id")) - .order_by("-total") - ) - - context = { - "courses": courses[:50], - "courses_count": courses.count(), - "chart_labels": [c["org"] for c in courses_by_org], - "chart_data": [c["total"] for c in courses_by_org], - } - - return render_to_response("news/analyze2.html", context, request=request) +# # def analyze(request): # courses = CourseOverview.objects.all() # -# # 1️⃣ Курсы по факультетам (org) # courses_by_org = ( # CourseOverview.objects # .values("org") @@ -76,51 +57,70 @@ def analyze(request): # .order_by("-total") # ) # -# # 2️⃣ Курсы по годам старта -# courses_by_year = ( -# CourseOverview.objects -# .exclude(start__isnull=True) -# .annotate(year=ExtractYear("start")) -# .values("year") -# .annotate(total=Count("id")) -# .order_by("year") -# ) -# -# # 3️⃣ Курсы по языкам -# courses_by_lang = ( -# CourseOverview.objects -# .exclude(language__isnull=True) -# .values("language") -# .annotate(total=Count("id")) -# .order_by("-total") -# ) -# -# # 4️⃣ Формат обучения -# paced_data = [ -# CourseOverview.objects.filter(self_paced=True).count(), -# CourseOverview.objects.filter(self_paced=False).count(), -# ] -# # context = { -# # список курсов # "courses": courses[:50], # "courses_count": courses.count(), -# -# # факультеты -# "org_labels": [c["org"] for c in courses_by_org], -# "org_data": [c["total"] for c in courses_by_org], -# -# # годы -# "year_labels": [c["year"] for c in courses_by_year], -# "year_data": [c["total"] for c in courses_by_year], -# -# # языки -# "lang_labels": [c["language"] for c in courses_by_lang], -# "lang_data": [c["total"] for c in courses_by_lang], -# -# # формат -# "paced_labels": ["Self-paced", "Instructor-led"], -# "paced_data": paced_data, +# "chart_labels": [c["org"] for c in courses_by_org], +# "chart_data": [c["total"] for c in courses_by_org], # } # -# return render_to_response(request, "news/analyze3.html", context) +# return render_to_response("news/analyze2.html", context, request=request) +def analyze(request): + courses = CourseOverview.objects.all() + + # 1️⃣ Курсы по факультетам (org) + courses_by_org = ( + CourseOverview.objects + .values("org") + .annotate(total=Count("id")) + .order_by("-total") + ) + + # 2️⃣ Курсы по годам старта + courses_by_year = ( + CourseOverview.objects + .exclude(start__isnull=True) + .annotate(year=ExtractYear("start")) + .values("year") + .annotate(total=Count("id")) + .order_by("year") + ) + + # 3️⃣ Курсы по языкам + courses_by_lang = ( + CourseOverview.objects + .exclude(language__isnull=True) + .values("language") + .annotate(total=Count("id")) + .order_by("-total") + ) + + # 4️⃣ Формат обучения + paced_data = [ + CourseOverview.objects.filter(self_paced=True).count(), + CourseOverview.objects.filter(self_paced=False).count(), + ] + + context = { + # список курсов + "courses": courses[:50], + "courses_count": courses.count(), + + # факультеты + "org_labels": [c["org"] for c in courses_by_org], + "org_data": [c["total"] for c in courses_by_org], + + # годы + "year_labels": [c["year"] for c in courses_by_year], + "year_data": [c["total"] for c in courses_by_year], + + # языки + "lang_labels": [c["language"] for c in courses_by_lang], + "lang_data": [c["total"] for c in courses_by_lang], + + # формат + "paced_labels": ["Self-paced", "Instructor-led"], + "paced_data": paced_data, + } + + return render_to_response(request, "news/analyze3.html", context) From 906062600a1bc5e243fdc4fb9d1210f925eac9ed Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 15 Jan 2026 14:16:34 +0500 Subject: [PATCH 284/443] beta1 --- lms/djangoapps/news/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 23a9e20e14c7..91730d4693eb 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -43,8 +43,8 @@ def news_create(request): } return render_to_response('news/form.html', context, request=request) -# from django.db.models import Count -# from django.db.models.functions import ExtractYear +from django.db.models import Count +from django.db.models.functions import ExtractYear # # def analyze(request): From 47ba6a704d6e8c9b4373176d28c1624dec27dbef Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 15 Jan 2026 14:32:45 +0500 Subject: [PATCH 285/443] beta2 --- lms/djangoapps/news/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 91730d4693eb..dbbe3c80c698 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -123,4 +123,4 @@ def analyze(request): "paced_data": paced_data, } - return render_to_response(request, "news/analyze3.html", context) + return render_to_response("news/analyze3.html", context, request) From 0d85c756448519ebb56c14e049b7efc19f1fe512 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 15 Jan 2026 14:49:10 +0500 Subject: [PATCH 286/443] beta --- lms/djangoapps/news/views.py | 37 +++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index dbbe3c80c698..2d01f21eafea 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -6,7 +6,7 @@ from django.contrib.auth.decorators import user_passes_test from django.db.models import Count -from openedx.core.djangoapps.content.course_overviews.models import CourseOverview + # from ..commerce.api.v1.models import Course @@ -65,10 +65,19 @@ def news_create(request): # } # # return render_to_response("news/analyze2.html", context, request=request) + +import json + +import json +from django.db.models import Count +from django.db.models.functions import ExtractYear +from openedx.core.djangoapps.content.course_overviews.models import CourseOverview +from edxmako.shortcuts import render_to_response + + def analyze(request): courses = CourseOverview.objects.all() - # 1️⃣ Курсы по факультетам (org) courses_by_org = ( CourseOverview.objects .values("org") @@ -76,7 +85,6 @@ def analyze(request): .order_by("-total") ) - # 2️⃣ Курсы по годам старта courses_by_year = ( CourseOverview.objects .exclude(start__isnull=True) @@ -86,7 +94,6 @@ def analyze(request): .order_by("year") ) - # 3️⃣ Курсы по языкам courses_by_lang = ( CourseOverview.objects .exclude(language__isnull=True) @@ -95,32 +102,32 @@ def analyze(request): .order_by("-total") ) - # 4️⃣ Формат обучения paced_data = [ CourseOverview.objects.filter(self_paced=True).count(), CourseOverview.objects.filter(self_paced=False).count(), ] context = { - # список курсов + # список курсов (НЕ для JS — оставляем как есть) "courses": courses[:50], "courses_count": courses.count(), # факультеты - "org_labels": [c["org"] for c in courses_by_org], - "org_data": [c["total"] for c in courses_by_org], + "org_labels": json.dumps([c["org"] for c in courses_by_org]), + "org_data": json.dumps([c["total"] for c in courses_by_org]), # годы - "year_labels": [c["year"] for c in courses_by_year], - "year_data": [c["total"] for c in courses_by_year], + "year_labels": json.dumps([c["year"] for c in courses_by_year]), + "year_data": json.dumps([c["total"] for c in courses_by_year]), # языки - "lang_labels": [c["language"] for c in courses_by_lang], - "lang_data": [c["total"] for c in courses_by_lang], + "lang_labels": json.dumps([c["language"] for c in courses_by_lang]), + "lang_data": json.dumps([c["total"] for c in courses_by_lang]), # формат - "paced_labels": ["Self-paced", "Instructor-led"], - "paced_data": paced_data, + "paced_labels": json.dumps(["Self-paced", "Instructor-led"]), + "paced_data": json.dumps(paced_data), } - return render_to_response("news/analyze3.html", context, request) + return render_to_response("news/analyze3.html", context, request=request) + From b1181442e8f6411a5098a80aab39b914ac0c61c5 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 15 Jan 2026 14:52:09 +0500 Subject: [PATCH 287/443] Beta --- lms/djangoapps/news/views.py | 1 - 1 file changed, 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 2d01f21eafea..091317d7f028 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -72,7 +72,6 @@ def news_create(request): from django.db.models import Count from django.db.models.functions import ExtractYear from openedx.core.djangoapps.content.course_overviews.models import CourseOverview -from edxmako.shortcuts import render_to_response def analyze(request): From 505f98161ba8445395d3298247723ee4bd682b70 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 15 Jan 2026 17:05:26 +0500 Subject: [PATCH 288/443] GG --- lms/djangoapps/news/views.py | 130 +++++++++++++++++------------------ 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 091317d7f028..fcd0d4ba202b 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -43,8 +43,8 @@ def news_create(request): } return render_to_response('news/form.html', context, request=request) -from django.db.models import Count -from django.db.models.functions import ExtractYear +# from django.db.models import Count +# from django.db.models.functions import ExtractYear # # def analyze(request): @@ -66,67 +66,67 @@ def news_create(request): # # return render_to_response("news/analyze2.html", context, request=request) -import json - -import json -from django.db.models import Count -from django.db.models.functions import ExtractYear -from openedx.core.djangoapps.content.course_overviews.models import CourseOverview - - -def analyze(request): - courses = CourseOverview.objects.all() - - courses_by_org = ( - CourseOverview.objects - .values("org") - .annotate(total=Count("id")) - .order_by("-total") - ) - - courses_by_year = ( - CourseOverview.objects - .exclude(start__isnull=True) - .annotate(year=ExtractYear("start")) - .values("year") - .annotate(total=Count("id")) - .order_by("year") - ) - - courses_by_lang = ( - CourseOverview.objects - .exclude(language__isnull=True) - .values("language") - .annotate(total=Count("id")) - .order_by("-total") - ) - - paced_data = [ - CourseOverview.objects.filter(self_paced=True).count(), - CourseOverview.objects.filter(self_paced=False).count(), - ] - - context = { - # список курсов (НЕ для JS — оставляем как есть) - "courses": courses[:50], - "courses_count": courses.count(), - - # факультеты - "org_labels": json.dumps([c["org"] for c in courses_by_org]), - "org_data": json.dumps([c["total"] for c in courses_by_org]), - - # годы - "year_labels": json.dumps([c["year"] for c in courses_by_year]), - "year_data": json.dumps([c["total"] for c in courses_by_year]), - - # языки - "lang_labels": json.dumps([c["language"] for c in courses_by_lang]), - "lang_data": json.dumps([c["total"] for c in courses_by_lang]), - - # формат - "paced_labels": json.dumps(["Self-paced", "Instructor-led"]), - "paced_data": json.dumps(paced_data), - } - - return render_to_response("news/analyze3.html", context, request=request) +# import json +# +# import json +# from django.db.models import Count +# from django.db.models.functions import ExtractYear +# from openedx.core.djangoapps.content.course_overviews.models import CourseOverview +# +# def analyze(request): +# courses = CourseOverview.objects.all() +# +# courses_by_org = ( +# CourseOverview.objects +# .values("org") +# .annotate(total=Count("id")) +# .order_by("-total") +# ) +# +# courses_by_year = ( +# CourseOverview.objects +# .exclude(start__isnull=True) +# .annotate(year=ExtractYear("start")) +# .values("year") +# .annotate(total=Count("id")) +# .order_by("year") +# ) +# +# courses_by_lang = ( +# CourseOverview.objects +# .exclude(language__isnull=True) +# .values("language") +# .annotate(total=Count("id")) +# .order_by("-total") +# ) +# +# paced_data = [ +# CourseOverview.objects.filter(self_paced=True).count(), +# CourseOverview.objects.filter(self_paced=False).count(), +# ] +# +# context = { +# # список курсов (НЕ для JS — оставляем как есть) +# "courses": courses[:50], +# "courses_count": courses.count(), +# +# # факультеты +# "org_labels": json.dumps([c["org"] for c in courses_by_org]), +# "org_data": json.dumps([c["total"] for c in courses_by_org]), +# +# # годы +# "year_labels": json.dumps([c["year"] for c in courses_by_year]), +# "year_data": json.dumps([c["total"] for c in courses_by_year]), +# +# # языки +# "lang_labels": json.dumps([c["language"] for c in courses_by_lang]), +# "lang_data": json.dumps([c["total"] for c in courses_by_lang]), +# +# # формат +# "paced_labels": json.dumps(["Self-paced", "Instructor-led"]), +# "paced_data": json.dumps(paced_data), +# } +# +# return render_to_response("news/analyze3.html", context, request=request) +# From de60eced0ab87735350350e81323ec445ec77e66 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 15 Jan 2026 17:08:55 +0500 Subject: [PATCH 289/443] workd --- lms/urls.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/urls.py b/lms/urls.py index dec4e4896422..649339fe5b03 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -98,7 +98,7 @@ path('news/', news_views.news_list, name='news_list'), path('news//', news_views.news_detail, name='news_detail'), path('news/create/', news_views.news_create, name='news_create'), - path('analyze/', news_views.analyze, name='analyze'), + # path('analyze/', news_views.analyze, name='analyze'), path('api/univertest/', univer_views.UniverTestView.as_view(), name='univer_test'), path('', branding_views.index, name='root'), # Main marketing page, or redirect to courseware From da09c2d5c9f1da885a6880b91c31b49dcb9989bf Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 26 Jan 2026 14:25:04 +0500 Subject: [PATCH 290/443] Ok --- lms/djangoapps/news/views.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index fcd0d4ba202b..aaf503a3a6e6 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -45,7 +45,7 @@ def news_create(request): # from django.db.models import Count # from django.db.models.functions import ExtractYear - +# # # def analyze(request): # courses = CourseOverview.objects.all() @@ -65,14 +65,14 @@ def news_create(request): # } # # return render_to_response("news/analyze2.html", context, request=request) - +# # import json # # import json # from django.db.models import Count # from django.db.models.functions import ExtractYear # from openedx.core.djangoapps.content.course_overviews.models import CourseOverview - +# # # def analyze(request): # courses = CourseOverview.objects.all() @@ -129,4 +129,4 @@ def news_create(request): # } # # return render_to_response("news/analyze3.html", context, request=request) -# + From ebf0641653a8aee9584628ff1c819cc32a36a0d2 Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 26 Jan 2026 14:26:14 +0500 Subject: [PATCH 291/443] New version test --- lms/djangoapps/news/views.py | 172 +++++++++++++++++------------------ lms/urls.py | 2 +- 2 files changed, 87 insertions(+), 87 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index aaf503a3a6e6..0efaa6920c89 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -43,90 +43,90 @@ def news_create(request): } return render_to_response('news/form.html', context, request=request) -# from django.db.models import Count -# from django.db.models.functions import ExtractYear -# -# -# def analyze(request): -# courses = CourseOverview.objects.all() -# -# courses_by_org = ( -# CourseOverview.objects -# .values("org") -# .annotate(total=Count("id")) -# .order_by("-total") -# ) -# -# context = { -# "courses": courses[:50], -# "courses_count": courses.count(), -# "chart_labels": [c["org"] for c in courses_by_org], -# "chart_data": [c["total"] for c in courses_by_org], -# } -# -# return render_to_response("news/analyze2.html", context, request=request) -# -# import json -# -# import json -# from django.db.models import Count -# from django.db.models.functions import ExtractYear -# from openedx.core.djangoapps.content.course_overviews.models import CourseOverview -# -# -# def analyze(request): -# courses = CourseOverview.objects.all() -# -# courses_by_org = ( -# CourseOverview.objects -# .values("org") -# .annotate(total=Count("id")) -# .order_by("-total") -# ) -# -# courses_by_year = ( -# CourseOverview.objects -# .exclude(start__isnull=True) -# .annotate(year=ExtractYear("start")) -# .values("year") -# .annotate(total=Count("id")) -# .order_by("year") -# ) -# -# courses_by_lang = ( -# CourseOverview.objects -# .exclude(language__isnull=True) -# .values("language") -# .annotate(total=Count("id")) -# .order_by("-total") -# ) -# -# paced_data = [ -# CourseOverview.objects.filter(self_paced=True).count(), -# CourseOverview.objects.filter(self_paced=False).count(), -# ] -# -# context = { -# # список курсов (НЕ для JS — оставляем как есть) -# "courses": courses[:50], -# "courses_count": courses.count(), -# -# # факультеты -# "org_labels": json.dumps([c["org"] for c in courses_by_org]), -# "org_data": json.dumps([c["total"] for c in courses_by_org]), -# -# # годы -# "year_labels": json.dumps([c["year"] for c in courses_by_year]), -# "year_data": json.dumps([c["total"] for c in courses_by_year]), -# -# # языки -# "lang_labels": json.dumps([c["language"] for c in courses_by_lang]), -# "lang_data": json.dumps([c["total"] for c in courses_by_lang]), -# -# # формат -# "paced_labels": json.dumps(["Self-paced", "Instructor-led"]), -# "paced_data": json.dumps(paced_data), -# } -# -# return render_to_response("news/analyze3.html", context, request=request) +from django.db.models import Count +from django.db.models.functions import ExtractYear + + +def analyze(request): + courses = CourseOverview.objects.all() + + courses_by_org = ( + CourseOverview.objects + .values("org") + .annotate(total=Count("id")) + .order_by("-total") + ) + + context = { + "courses": courses[:50], + "courses_count": courses.count(), + "chart_labels": [c["org"] for c in courses_by_org], + "chart_data": [c["total"] for c in courses_by_org], + } + + return render_to_response("news/analyze2.html", context, request=request) + +import json + +import json +from django.db.models import Count +from django.db.models.functions import ExtractYear +from openedx.core.djangoapps.content.course_overviews.models import CourseOverview + + +def analyze(request): + courses = CourseOverview.objects.all() + + courses_by_org = ( + CourseOverview.objects + .values("org") + .annotate(total=Count("id")) + .order_by("-total") + ) + + courses_by_year = ( + CourseOverview.objects + .exclude(start__isnull=True) + .annotate(year=ExtractYear("start")) + .values("year") + .annotate(total=Count("id")) + .order_by("year") + ) + + courses_by_lang = ( + CourseOverview.objects + .exclude(language__isnull=True) + .values("language") + .annotate(total=Count("id")) + .order_by("-total") + ) + + paced_data = [ + CourseOverview.objects.filter(self_paced=True).count(), + CourseOverview.objects.filter(self_paced=False).count(), + ] + + context = { + # список курсов (НЕ для JS — оставляем как есть) + "courses": courses[:50], + "courses_count": courses.count(), + + # факультеты + "org_labels": json.dumps([c["org"] for c in courses_by_org]), + "org_data": json.dumps([c["total"] for c in courses_by_org]), + + # годы + "year_labels": json.dumps([c["year"] for c in courses_by_year]), + "year_data": json.dumps([c["total"] for c in courses_by_year]), + + # языки + "lang_labels": json.dumps([c["language"] for c in courses_by_lang]), + "lang_data": json.dumps([c["total"] for c in courses_by_lang]), + + # формат + "paced_labels": json.dumps(["Self-paced", "Instructor-led"]), + "paced_data": json.dumps(paced_data), + } + + return render_to_response("news/analyze3.html", context, request=request) diff --git a/lms/urls.py b/lms/urls.py index 649339fe5b03..dec4e4896422 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -98,7 +98,7 @@ path('news/', news_views.news_list, name='news_list'), path('news//', news_views.news_detail, name='news_detail'), path('news/create/', news_views.news_create, name='news_create'), - # path('analyze/', news_views.analyze, name='analyze'), + path('analyze/', news_views.analyze, name='analyze'), path('api/univertest/', univer_views.UniverTestView.as_view(), name='univer_test'), path('', branding_views.index, name='root'), # Main marketing page, or redirect to courseware From cc96d4d39fb6426505e594d51b64c712b2df31f6 Mon Sep 17 00:00:00 2001 From: Erarys Date: Wed, 28 Jan 2026 11:36:05 +0500 Subject: [PATCH 292/443] no snow --- lms/templates/courseware/courses.html | 682 +++++++++----------------- 1 file changed, 225 insertions(+), 457 deletions(-) diff --git a/lms/templates/courseware/courses.html b/lms/templates/courseware/courses.html index 72b206c0f6bb..f8826922a3be 100644 --- a/lms/templates/courseware/courses.html +++ b/lms/templates/courseware/courses.html @@ -1,585 +1,353 @@ <%page expression_filter="h"/> <%! -from django.utils.translation import gettext as _ + from django.utils.translation import gettext as _ %> <%inherit file="../main.html" /> <%block name="pagetitle">${_("Courses")} <%block name="headextra"> - + <%block name="content"> -
    +

    ${_("Courses")}

    ${_("Explore our collection of educational programs and start learning today")}

    -
    +
    -
    +
    -

    ${_("Filter Courses")}

    -
    - - - - - - - -
    +

    ${_("Filter Courses")}

    +
    + + + + + + + +
    - % if courses: + % if courses: % for course in courses: - <% - from django.utils import timezone - now = timezone.now() - status = "completed" if course.end and course.end < now else "ongoing" - status_text = _('Completed') if status == "completed" else _('Ongoing') - %> -
    + <% + from django.utils import timezone + now = timezone.now() + status = "completed" if course.end and course.end < now else "ongoing" + status_text = _('Completed') if status == "completed" else _('Ongoing') + %> +
    - ${course.display_name} -
    ${status_text}
    + ${course.display_name} +
    ${status_text}
    -

    ${course.display_name}

    -
    - ${course.display_org_with_default} - % if course.language: - ${course.language} - % endif -
    -
    - ${_('Start')} - : ${course.start.strftime('%Y-%m-%d') if course.start else _('Not specified')} - ${_('End')}: ${course.end.strftime('%Y-%m-%d') if course.end else _('Not specified')} -
    - ${_('Go to course')} +

    ${course.display_name}

    +
    + ${course.display_org_with_default} + % if course.language: + ${course.language} + % endif +
    +
    + ${_('Start')}: ${course.start.strftime('%Y-%m-%d') if course.start else _('Not specified')} + ${_('End')}: ${course.end.strftime('%Y-%m-%d') if course.end else _('Not specified')} +
    + ${_('Go to course')}
    -
    +
    % endfor - % else: + % else:
    - 📚 -

    ${_('No courses found')}

    -

    ${_('There are currently no available courses')}

    + 📚 +

    ${_('No courses found')}

    +

    ${_('There are currently no available courses')}

    - % endif + % endif
    -
    +
    - - + const query = document.getElementById("searchInput").value.toLowerCase().trim(); + const lang = document.getElementById("languageFilter").value; + const status = document.getElementById("statusFilter").value; + const org = document.getElementById("orgFilter").value; + + const cards = document.querySelectorAll("#courseList .course"); + let visible = 0; + + cards.forEach(card => { + const title = card.getAttribute("data-title"); + const cardLang = card.getAttribute("data-language"); + const cardStatus = card.getAttribute("data-status"); + const cardOrg = card.getAttribute("data-org"); + + const matches = + (!query || title.includes(query)) && + (!lang || cardLang === lang) && + (!status || cardStatus === status) && + (!org || cardOrg === org); + + card.style.display = matches ? "flex" : "none"; + if (matches) visible++; + }); + + const emptyState = document.querySelector(".no-results"); + if (!visible && !emptyState) { + const div = document.createElement("div"); + div.className = "no-results"; + div.innerHTML = `🔍

    ${_('No courses found')}

    `; + document.getElementById("courseList").appendChild(div); + } else if (visible && emptyState) { + emptyState.remove(); + } + } + From b81ecb99bd008b8ff30f2614a61d98238f8c1076 Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 29 Jan 2026 14:39:16 +0500 Subject: [PATCH 293/443] New column for db --- lms/templates/courseware/courses.html | 2 ++ .../djangoapps/content/course_overviews/models.py | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/lms/templates/courseware/courses.html b/lms/templates/courseware/courses.html index f8826922a3be..640eedf18a30 100644 --- a/lms/templates/courseware/courses.html +++ b/lms/templates/courseware/courses.html @@ -351,3 +351,5 @@

    ${_('No courses found')}

    } + + diff --git a/openedx/core/djangoapps/content/course_overviews/models.py b/openedx/core/djangoapps/content/course_overviews/models.py index 10a56f0868fb..c3a9e3e99089 100644 --- a/openedx/core/djangoapps/content/course_overviews/models.py +++ b/openedx/core/djangoapps/content/course_overviews/models.py @@ -59,6 +59,11 @@ class CourseOverview(TimeStampedModel): .. no_pii: """ + COMPLEXITY_CHOICES = [ + ("easy", "Easy"), + ("medium", "Medium"), + ("hard", "Hard"), + ] class Meta: app_label = 'course_overviews' @@ -126,6 +131,14 @@ class Meta: short_description = models.TextField(null=True) course_video_url = models.TextField(null=True) effort = models.TextField(null=True) + # New column + complexity = models.CharField( + max_length=10, + choices=COMPLEXITY_CHOICES, + default="medium", + null=False, + blank=False, + ) self_paced = models.BooleanField(default=False) marketing_url = models.TextField(null=True) eligible_for_financial_aid = models.BooleanField(default=True) From 084e611823c50387a1326dca8a87b02c031219e8 Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 29 Jan 2026 16:45:31 +0500 Subject: [PATCH 294/443] add new migrations --- ...0030_courseoverview_complexity_and_more.py | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 openedx/core/djangoapps/content/course_overviews/migrations/0030_courseoverview_complexity_and_more.py diff --git a/openedx/core/djangoapps/content/course_overviews/migrations/0030_courseoverview_complexity_and_more.py b/openedx/core/djangoapps/content/course_overviews/migrations/0030_courseoverview_complexity_and_more.py new file mode 100644 index 000000000000..75f46e3ce6b5 --- /dev/null +++ b/openedx/core/djangoapps/content/course_overviews/migrations/0030_courseoverview_complexity_and_more.py @@ -0,0 +1,40 @@ +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ( + "course_overviews", + "0029_alter_historicalcourseoverview_options", + ), + ] + + operations = [ + migrations.AddField( + model_name="courseoverview", + name="complexity", + field=models.CharField( + max_length=10, + default="medium", + choices=[ + ("easy", "Easy"), + ("medium", "Medium"), + ("hard", "Hard"), + ], + ), + ), + migrations.AddField( + model_name="historicalcourseoverview", + name="complexity", + field=models.CharField( + max_length=10, + default="medium", + choices=[ + ("easy", "Easy"), + ("medium", "Medium"), + ("hard", "Hard"), + ], + ), + ), + ] From 72058510353758dc47c3a9f1a743af728d7eabb6 Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 30 Jan 2026 10:10:07 +0500 Subject: [PATCH 295/443] New row in the course about --- lms/templates/courseware/course_about.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lms/templates/courseware/course_about.html b/lms/templates/courseware/course_about.html index 502665bd842b..cf66ecdab05d 100644 --- a/lms/templates/courseware/course_about.html +++ b/lms/templates/courseware/course_about.html @@ -225,6 +225,9 @@

    ${course.display_name_with_default}

  • ${_("Estimated Effort")}

    ${get_course_about_section(request, course, "effort")}
  • % endif + % if get_course_about_section(request, course, "complexity"): +
  • ${_("Course Difficulties")}

    ${get_course_about_section(request, course, "complexity")}
  • + % endif ##
  • ${_('Course Length')}

    ${_('{number} weeks').format(number=15)}
  • %if course_price and (is_cosmetic_price_enabled): From 7bd976395dae0205eff6201dff5d3e47c93a04ba Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 30 Jan 2026 14:09:46 +0500 Subject: [PATCH 296/443] add new row --- lms/templates/courseware/course_about.html | 1 + 1 file changed, 1 insertion(+) diff --git a/lms/templates/courseware/course_about.html b/lms/templates/courseware/course_about.html index cf66ecdab05d..561143b6c8a5 100644 --- a/lms/templates/courseware/course_about.html +++ b/lms/templates/courseware/course_about.html @@ -228,6 +228,7 @@

    ${course.display_name_with_default}

    % if get_course_about_section(request, course, "complexity"):
  • ${_("Course Difficulties")}

    ${get_course_about_section(request, course, "complexity")}
  • % endif +

    Hello world

    ##
  • ${_('Course Length')}

    ${_('{number} weeks').format(number=15)}
  • %if course_price and (is_cosmetic_price_enabled): From d0c88be7cd9b44c7eb4dfc4661b90f73f1bbb60b Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 2 Feb 2026 10:41:41 +0500 Subject: [PATCH 297/443] add new column --- lms/djangoapps/courseware/views/views.py | 2 ++ lms/templates/courseware/course_about.html | 13 ++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lms/djangoapps/courseware/views/views.py b/lms/djangoapps/courseware/views/views.py index 6fe5b22f268d..88640a35a950 100644 --- a/lms/djangoapps/courseware/views/views.py +++ b/lms/djangoapps/courseware/views/views.py @@ -857,9 +857,11 @@ def course_about(request, course_id): # pylint: disable=too-many-statements sidebar_html_enabled = ENABLE_COURSE_ABOUT_SIDEBAR_HTML.is_enabled() allow_anonymous = check_public_access(course, [COURSE_VISIBILITY_PUBLIC, COURSE_VISIBILITY_PUBLIC_OUTLINE]) + complexity = overview.extra_fields.get("complexity") context = { 'course': course, + 'complexity': complexity, 'course_details': course_details, 'staff_access': staff_access, 'studio_url': studio_url, diff --git a/lms/templates/courseware/course_about.html b/lms/templates/courseware/course_about.html index 561143b6c8a5..b54a4e83686c 100644 --- a/lms/templates/courseware/course_about.html +++ b/lms/templates/courseware/course_about.html @@ -225,10 +225,17 @@

    ${course.display_name_with_default}

  • ${_("Estimated Effort")}

    ${get_course_about_section(request, course, "effort")}
  • % endif - % if get_course_about_section(request, course, "complexity"): -
  • ${_("Course Difficulties")}

    ${get_course_about_section(request, course, "complexity")}
  • + % if course_complexity: +
  • + +

    + ${_("Course Difficulty")} +

    + + ${course_complexity} + +
  • % endif -

    Hello world

    ##
  • ${_('Course Length')}

    ${_('{number} weeks').format(number=15)}
  • %if course_price and (is_cosmetic_price_enabled): From dbdfef123acfb17f798a6a3b40f41229d6f562e8 Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 2 Feb 2026 12:01:26 +0500 Subject: [PATCH 298/443] fix --- lms/djangoapps/courseware/views/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/courseware/views/views.py b/lms/djangoapps/courseware/views/views.py index 88640a35a950..29b0202465f4 100644 --- a/lms/djangoapps/courseware/views/views.py +++ b/lms/djangoapps/courseware/views/views.py @@ -857,7 +857,7 @@ def course_about(request, course_id): # pylint: disable=too-many-statements sidebar_html_enabled = ENABLE_COURSE_ABOUT_SIDEBAR_HTML.is_enabled() allow_anonymous = check_public_access(course, [COURSE_VISIBILITY_PUBLIC, COURSE_VISIBILITY_PUBLIC_OUTLINE]) - complexity = overview.extra_fields.get("complexity") + complexity = overview.other_course_settings.get("complexity") context = { 'course': course, From d16423be0e3474122a230a348735062c3b74da86 Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 2 Feb 2026 12:28:37 +0500 Subject: [PATCH 299/443] fix --- lms/djangoapps/courseware/views/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/courseware/views/views.py b/lms/djangoapps/courseware/views/views.py index 29b0202465f4..6f69a81cd3bf 100644 --- a/lms/djangoapps/courseware/views/views.py +++ b/lms/djangoapps/courseware/views/views.py @@ -857,7 +857,7 @@ def course_about(request, course_id): # pylint: disable=too-many-statements sidebar_html_enabled = ENABLE_COURSE_ABOUT_SIDEBAR_HTML.is_enabled() allow_anonymous = check_public_access(course, [COURSE_VISIBILITY_PUBLIC, COURSE_VISIBILITY_PUBLIC_OUTLINE]) - complexity = overview.other_course_settings.get("complexity") + complexity = overview.complexity context = { 'course': course, From 2da71c4e63ce5810a113a6d6c4d8d45a8f032df2 Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 2 Feb 2026 14:15:32 +0500 Subject: [PATCH 300/443] fix --- lms/templates/courseware/course_about.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lms/templates/courseware/course_about.html b/lms/templates/courseware/course_about.html index b54a4e83686c..369b9b4a6c2c 100644 --- a/lms/templates/courseware/course_about.html +++ b/lms/templates/courseware/course_about.html @@ -225,14 +225,14 @@

    ${course.display_name_with_default}

  • ${_("Estimated Effort")}

    ${get_course_about_section(request, course, "effort")}
  • % endif - % if course_complexity: + % if complexity:
  • ${_("Course Difficulty")}

    - ${course_complexity} + ${complexity}
  • % endif From 3a82976b544c58118e012c7d20d5466cf2d5188c Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 3 Feb 2026 11:20:24 +0500 Subject: [PATCH 301/443] add translation --- lms/templates/courseware/course_about.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/templates/courseware/course_about.html b/lms/templates/courseware/course_about.html index 369b9b4a6c2c..ac82a6dbfb1d 100644 --- a/lms/templates/courseware/course_about.html +++ b/lms/templates/courseware/course_about.html @@ -232,7 +232,7 @@

    ${course.display_name_with_default}

    ${_("Course Difficulty")}

    - ${complexity} + ${_(complexity)} % endif From 2449b1095872be6f8f1783deac7fb5231bd10c92 Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 3 Feb 2026 15:19:24 +0500 Subject: [PATCH 302/443] new table --- lms/djangoapps/news/models.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/news/models.py b/lms/djangoapps/news/models.py index 55088bf33945..6057e6d83de2 100644 --- a/lms/djangoapps/news/models.py +++ b/lms/djangoapps/news/models.py @@ -18,4 +18,8 @@ class Meta: ordering = ['-created_at'] def __str__(self): - return self.title \ No newline at end of file + return self.title + + +class EmptyTable(models.Model): + title = models.CharField(max_length=200, verbose_name="Заголовок") From 17ab7a3acd8836b1c272500d82298b46156e0ce1 Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 3 Feb 2026 15:40:00 +0500 Subject: [PATCH 303/443] new table migrations --- lms/djangoapps/news/migrations/002_initial.py | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 lms/djangoapps/news/migrations/002_initial.py diff --git a/lms/djangoapps/news/migrations/002_initial.py b/lms/djangoapps/news/migrations/002_initial.py new file mode 100644 index 000000000000..a8bbefc1ac2a --- /dev/null +++ b/lms/djangoapps/news/migrations/002_initial.py @@ -0,0 +1,27 @@ +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='EmptyTable', + fields=[ + ('id', models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name='ID' + )), + ('title', models.CharField( + max_length=200, + verbose_name='Заголовок' + )), + ], + ), + ] From a5ac18c16154dda63431e9342b0bee4393d9dc98 Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 3 Feb 2026 15:55:06 +0500 Subject: [PATCH 304/443] new table --- .../news/migrations/{002_initial.py => 0002_add_new_table.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename lms/djangoapps/news/migrations/{002_initial.py => 0002_add_new_table.py} (100%) diff --git a/lms/djangoapps/news/migrations/002_initial.py b/lms/djangoapps/news/migrations/0002_add_new_table.py similarity index 100% rename from lms/djangoapps/news/migrations/002_initial.py rename to lms/djangoapps/news/migrations/0002_add_new_table.py From 9953afcc7c97e170db07c7950103243421e02af6 Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 3 Feb 2026 16:02:51 +0500 Subject: [PATCH 305/443] remove --- .../news/migrations/0002_add_new_table.py | 27 ------------------- 1 file changed, 27 deletions(-) delete mode 100644 lms/djangoapps/news/migrations/0002_add_new_table.py diff --git a/lms/djangoapps/news/migrations/0002_add_new_table.py b/lms/djangoapps/news/migrations/0002_add_new_table.py deleted file mode 100644 index a8bbefc1ac2a..000000000000 --- a/lms/djangoapps/news/migrations/0002_add_new_table.py +++ /dev/null @@ -1,27 +0,0 @@ -from django.db import migrations, models - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ] - - operations = [ - migrations.CreateModel( - name='EmptyTable', - fields=[ - ('id', models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name='ID' - )), - ('title', models.CharField( - max_length=200, - verbose_name='Заголовок' - )), - ], - ), - ] From 2be786e5e4323972dce0f066f89f9f72c6f3d946 Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 3 Feb 2026 16:14:37 +0500 Subject: [PATCH 306/443] add new table --- .../news/migrations/0002_emptytable.py | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 lms/djangoapps/news/migrations/0002_emptytable.py diff --git a/lms/djangoapps/news/migrations/0002_emptytable.py b/lms/djangoapps/news/migrations/0002_emptytable.py new file mode 100644 index 000000000000..a8bbefc1ac2a --- /dev/null +++ b/lms/djangoapps/news/migrations/0002_emptytable.py @@ -0,0 +1,27 @@ +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='EmptyTable', + fields=[ + ('id', models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name='ID' + )), + ('title', models.CharField( + max_length=200, + verbose_name='Заголовок' + )), + ], + ), + ] From 156977d2e94630ee55a2384504ae196230d6282e Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 3 Feb 2026 16:24:33 +0500 Subject: [PATCH 307/443] add new corrections --- .../news/migrations/0002_emptytable.py | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/lms/djangoapps/news/migrations/0002_emptytable.py b/lms/djangoapps/news/migrations/0002_emptytable.py index a8bbefc1ac2a..9efc84b62d29 100644 --- a/lms/djangoapps/news/migrations/0002_emptytable.py +++ b/lms/djangoapps/news/migrations/0002_emptytable.py @@ -3,25 +3,30 @@ class Migration(migrations.Migration): - initial = True - dependencies = [ + ("news", "0001_initial"), ] operations = [ migrations.CreateModel( - name='EmptyTable', + name="EmptyTable", fields=[ - ('id', models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name='ID' - )), - ('title', models.CharField( - max_length=200, - verbose_name='Заголовок' - )), + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "title", + models.CharField( + max_length=200, + verbose_name="Заголовок", + ), + ), ], ), ] From 9a610e77130418be50a5e7ed314ae13cfee45a67 Mon Sep 17 00:00:00 2001 From: Erarys Date: Wed, 4 Feb 2026 10:20:37 +0500 Subject: [PATCH 308/443] modify progress function --- lms/djangoapps/courseware/views/views.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lms/djangoapps/courseware/views/views.py b/lms/djangoapps/courseware/views/views.py index 6f69a81cd3bf..413f4847ace3 100644 --- a/lms/djangoapps/courseware/views/views.py +++ b/lms/djangoapps/courseware/views/views.py @@ -975,7 +975,10 @@ def _progress(request, course_key, student_id): student_id = int(student_id) # Check for ValueError if 'student_id' cannot be converted to integer. except ValueError: - raise Http404 # lint-amnesty, pylint: disable=raise-missing-from + try: + user_by_username = User.objects.get(username=student_id) + except User.DoesNotExist: + raise Http404 course = get_course_with_access(request.user, 'load', course_key) @@ -997,9 +1000,12 @@ def _progress(request, course_key, student_id): if not has_access_on_students_profiles: raise Http404 try: - student = User.objects.get(id=student_id) + if user_by_username: + student = user_by_username + else: + student = User.objects.get(id=student_id) except User.DoesNotExist: - raise Http404 # lint-amnesty, pylint: disable=raise-missing-from + raise Http404 # lint-amnesty, pylint: disable=raise-missing-from # NOTE: To make sure impersonation by instructor works, use # student instead of request.user in the rest of the function. From bf2e8b54fa4e4242ac2b7f0d3b0a618188283337 Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 12 Feb 2026 17:11:33 +0500 Subject: [PATCH 309/443] some changes --- lms/djangoapps/grades/rest_api/serializers.py | 2 +- lms/djangoapps/grades/rest_api/v1/gradebook_views.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lms/djangoapps/grades/rest_api/serializers.py b/lms/djangoapps/grades/rest_api/serializers.py index b5c757f31bc6..36a6a07305bb 100644 --- a/lms/djangoapps/grades/rest_api/serializers.py +++ b/lms/djangoapps/grades/rest_api/serializers.py @@ -57,7 +57,7 @@ class StudentGradebookEntrySerializer(serializers.Serializer): external_user_key = serializers.CharField(required=False) percent = serializers.FloatField() section_breakdown = SectionBreakdownSerializer(many=True) - + profile_username = serializers.CharField(required=False, allow_null=True) class SubsectionGradeOverrideSerializer(serializers.Serializer): """ diff --git a/lms/djangoapps/grades/rest_api/v1/gradebook_views.py b/lms/djangoapps/grades/rest_api/v1/gradebook_views.py index c295563da565..5a3b7860e52e 100644 --- a/lms/djangoapps/grades/rest_api/v1/gradebook_views.py +++ b/lms/djangoapps/grades/rest_api/v1/gradebook_views.py @@ -507,6 +507,8 @@ def _gradebook_entry(self, user, course, graded_subsections, course_grade): kwargs=dict(course_id=str(course.id), student_id=user.id) ) user_entry['user_id'] = user.id + profile = getattr(user, 'profile', None) + user_entry['profile_username'] = getattr(profile, 'username', None) def is_masters_student(): # If this is a multiple-user lookup (didn't use the username param) we insert @@ -654,7 +656,7 @@ def get(self, request, course_key): # lint-amnesty, pylint: disable=too-many-st # TODO: In django 3.0+, we can directly filter on this 'exists' rather than annotating q_objects.append(Q(has_excluded_role=False)) entries = [] - related_models = ['user'] + related_models = ['user', 'user__profile'] users = self._paginate_users(course_key, q_objects, related_models, annotations=annotations) users_counts = self._get_users_counts(course_key, q_objects, annotations=annotations) From cd59c5dcd0b4ff6deab26af20be353e28ea9ebf1 Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 16 Feb 2026 12:29:20 +0500 Subject: [PATCH 310/443] fixed bugs username to name --- lms/djangoapps/grades/rest_api/serializers.py | 2 +- lms/djangoapps/grades/rest_api/v1/gradebook_views.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lms/djangoapps/grades/rest_api/serializers.py b/lms/djangoapps/grades/rest_api/serializers.py index 36a6a07305bb..c3969a947ff4 100644 --- a/lms/djangoapps/grades/rest_api/serializers.py +++ b/lms/djangoapps/grades/rest_api/serializers.py @@ -57,7 +57,7 @@ class StudentGradebookEntrySerializer(serializers.Serializer): external_user_key = serializers.CharField(required=False) percent = serializers.FloatField() section_breakdown = SectionBreakdownSerializer(many=True) - profile_username = serializers.CharField(required=False, allow_null=True) + profile_name = serializers.CharField(required=False, allow_null=True) class SubsectionGradeOverrideSerializer(serializers.Serializer): """ diff --git a/lms/djangoapps/grades/rest_api/v1/gradebook_views.py b/lms/djangoapps/grades/rest_api/v1/gradebook_views.py index 5a3b7860e52e..14c5e38c6313 100644 --- a/lms/djangoapps/grades/rest_api/v1/gradebook_views.py +++ b/lms/djangoapps/grades/rest_api/v1/gradebook_views.py @@ -508,7 +508,7 @@ def _gradebook_entry(self, user, course, graded_subsections, course_grade): ) user_entry['user_id'] = user.id profile = getattr(user, 'profile', None) - user_entry['profile_username'] = getattr(profile, 'username', None) + user_entry['profile_name'] = getattr(profile, 'name', None) def is_masters_student(): # If this is a multiple-user lookup (didn't use the username param) we insert From 682dd6909724ebc2fe1428dc950c78a5bbe39677 Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 24 Feb 2026 14:32:29 +0500 Subject: [PATCH 311/443] add new column for numbar --- lms/templates/header/navbar-authenticated.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lms/templates/header/navbar-authenticated.html b/lms/templates/header/navbar-authenticated.html index aafc8ee11972..ee67c297cd6a 100644 --- a/lms/templates/header/navbar-authenticated.html +++ b/lms/templates/header/navbar-authenticated.html @@ -96,6 +96,11 @@ ${_("News")}
    + % endif
    From 765889949a08c994de8aebcd520c95081c5ca281 Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 24 Feb 2026 17:16:35 +0500 Subject: [PATCH 312/443] add some style| --- .../header/navbar-authenticated.html | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lms/templates/header/navbar-authenticated.html b/lms/templates/header/navbar-authenticated.html index ee67c297cd6a..f9acb33b1f20 100644 --- a/lms/templates/header/navbar-authenticated.html +++ b/lms/templates/header/navbar-authenticated.html @@ -42,6 +42,27 @@ color: #1a263c !important; } } +/* делаем .main flex, чтобы gap работал */ +.nav-links .main { + display: flex !important; + align-items: center; + flex-wrap: wrap; + gap: 6px !important; +} + +/* одинаковые отступы для всех пунктов */ +.nav-links .main .nav-item, +.nav-links .main .mobile-nav-item { + margin: 0 !important; + margin-top: 3px !important; + padding: 0 !important; /* чтобы inline не нужен был */ +} + +/* “воздух” внутри клика */ +.nav-links .main a { + padding: 0 6px !important; + line-height: 1.2 !important; +} From f6571be0106d6d9876239b7cfdd1e7c90aca4c20 Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 7 Apr 2026 11:24:05 +0500 Subject: [PATCH 325/443] new correction --- lms/templates/certificates/_accomplishment-rendering.html | 1 + 1 file changed, 1 insertion(+) diff --git a/lms/templates/certificates/_accomplishment-rendering.html b/lms/templates/certificates/_accomplishment-rendering.html index 5bbbf922faa2..b7211a65a482 100644 --- a/lms/templates/certificates/_accomplishment-rendering.html +++ b/lms/templates/certificates/_accomplishment-rendering.html @@ -125,6 +125,7 @@

    Внимание пользователям iPhone!

    СЕРТИФИКАТ
    ${_("This certificate hereby confirms that")} + 123
    ${accomplishment_copy_name} From 70df762a5dafb61a01ec38e641c4dd5852c32641 Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 7 Apr 2026 11:31:56 +0500 Subject: [PATCH 326/443] back --- lms/templates/certificates/_accomplishment-rendering.html | 1 - 1 file changed, 1 deletion(-) diff --git a/lms/templates/certificates/_accomplishment-rendering.html b/lms/templates/certificates/_accomplishment-rendering.html index b7211a65a482..5bbbf922faa2 100644 --- a/lms/templates/certificates/_accomplishment-rendering.html +++ b/lms/templates/certificates/_accomplishment-rendering.html @@ -125,7 +125,6 @@

    Внимание пользователям iPhone!

    СЕРТИФИКАТ
    ${_("This certificate hereby confirms that")} - 123
    ${accomplishment_copy_name} From be7296f6adb59fad175775b7ea5d752b361d1cfb Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 7 Apr 2026 11:41:21 +0500 Subject: [PATCH 327/443] add --- lms/templates/certificates/_accomplishment-rendering.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/templates/certificates/_accomplishment-rendering.html b/lms/templates/certificates/_accomplishment-rendering.html index 5bbbf922faa2..089a11daa8fb 100644 --- a/lms/templates/certificates/_accomplishment-rendering.html +++ b/lms/templates/certificates/_accomplishment-rendering.html @@ -124,7 +124,7 @@

    Внимание пользователям iPhone!

    СЕРТИФИКАТ
    - ${_("This certificate hereby confirms that")} + ${_("This certificate hereby confirms that")} 1
    ${accomplishment_copy_name} From 3519111e8a1b007c298e4717c3b3645ff60a38c9 Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 7 Apr 2026 11:49:40 +0500 Subject: [PATCH 328/443] hd --- lms/templates/certificates/_accomplishment-rendering.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/templates/certificates/_accomplishment-rendering.html b/lms/templates/certificates/_accomplishment-rendering.html index 089a11daa8fb..76b48e908428 100644 --- a/lms/templates/certificates/_accomplishment-rendering.html +++ b/lms/templates/certificates/_accomplishment-rendering.html @@ -124,7 +124,7 @@

    Внимание пользователям iPhone!

    СЕРТИФИКАТ
    - ${_("This certificate hereby confirms that")} 1 + ${_("This certificate hereby confirms")}
    ${accomplishment_copy_name} From 69569a8678d3087946b8bb1c0407d9f44cbd3353 Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 7 Apr 2026 11:58:04 +0500 Subject: [PATCH 329/443] new --- lms/templates/certificates/_accomplishment-rendering.html | 1 + 1 file changed, 1 insertion(+) diff --git a/lms/templates/certificates/_accomplishment-rendering.html b/lms/templates/certificates/_accomplishment-rendering.html index 76b48e908428..03e217a9f9f1 100644 --- a/lms/templates/certificates/_accomplishment-rendering.html +++ b/lms/templates/certificates/_accomplishment-rendering.html @@ -125,6 +125,7 @@

    Внимание пользователям iPhone!

    СЕРТИФИКАТ
    ${_("This certificate hereby confirms")} + ${_("Translate")}
    ${accomplishment_copy_name} From 59a235dda42de1f68738389ecbb4bd269b5c3956 Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 7 Apr 2026 12:06:30 +0500 Subject: [PATCH 330/443] D --- lms/templates/certificates/_accomplishment-rendering.html | 1 - 1 file changed, 1 deletion(-) diff --git a/lms/templates/certificates/_accomplishment-rendering.html b/lms/templates/certificates/_accomplishment-rendering.html index 03e217a9f9f1..76b48e908428 100644 --- a/lms/templates/certificates/_accomplishment-rendering.html +++ b/lms/templates/certificates/_accomplishment-rendering.html @@ -125,7 +125,6 @@

    Внимание пользователям iPhone!

    СЕРТИФИКАТ
    ${_("This certificate hereby confirms")} - ${_("Translate")}
    ${accomplishment_copy_name} From 01b0c3f84a84b19eea464c2f8c903c2c7c9e1726 Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 7 Apr 2026 12:15:56 +0500 Subject: [PATCH 331/443] add translation --- .../_accomplishment-rendering.html | 65 ++++++++++--------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/lms/templates/certificates/_accomplishment-rendering.html b/lms/templates/certificates/_accomplishment-rendering.html index 15ab1f44ed71..76b48e908428 100644 --- a/lms/templates/certificates/_accomplishment-rendering.html +++ b/lms/templates/certificates/_accomplishment-rendering.html @@ -124,7 +124,7 @@

    Внимание пользователям iPhone!

    СЕРТИФИКАТ
    - Сертификат настоящим подтверждает, что + ${_("This certificate hereby confirms")}
    ${accomplishment_copy_name} @@ -133,15 +133,15 @@

    Внимание пользователям iPhone!

    - Прошел(-а) онлайн курс: + ${_("Passed an online course")}: ${accomplishment_copy_course_name}
    - Дата выдачи: + ${_("Date of issue")}: ${formatted_date}
    - Регистрационный номер: + ${_("Registration number")}: ${certificate_id_number}
    @@ -150,43 +150,44 @@

    Внимание пользователям iPhone!

    Signature 1
    Галеева А.К.
    -
    Член Правления - проректор
    по академическим вопросам
    +
    ${_("Board Member - Vice-Rector for")}
    ${_("Academic Affairs")}
    Signature 2
    Круговых И.И.
    -
    Руководитель Офиса академических
    и цифровых инноваций
    +
    ${_("Head of the Office of")}
    ${_("academic and digital innovation")}
    - % if mode != 'base' and certificate_data: - <% - signatories = certificate_data.get('signatories', []) - label = "Автор курса" - - if signatories: - name_text = signatories[0].get('name', '') - matches = re.findall(r'[А-ЯЁA-Z]\.[А-ЯЁA-Z]\.', name_text) - if len(matches) > 1: - label = "Авторы курса" - %> - % for signatory in certificate_data.get('signatories', []): - % if signatory.get('signature_image_path'): -
    - ${signatory['name']} + % if mode != 'base' and certificate_data: + <% + signatories = certificate_data.get('signatories', []) + label = _("Course author") + + if signatories: + name_text = signatories[0].get('name', '') + matches = re.findall(r'[А-ЯЁA-Z]\.[А-ЯЁA-Z]\.', name_text) + if len(matches) > 1: + label = _("Course authors") + %> + + % for signatory in certificate_data.get('signatories', []): + % if signatory.get('signature_image_path'): +
    + ${signatory['name']} +
    + % endif +
    + ${signatory['name']}
    - % endif + % endfor +
    - ${signatory['name']} + ${label}
    - % endfor - -
    - ${label} -
    - % endif -
    + % endif +
    From c12053cfd96dca9c84d1a6fbecbc1089bccb370f Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 7 Apr 2026 12:34:28 +0500 Subject: [PATCH 332/443] add new changes --- lms/templates/certificates/_accomplishment-rendering.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/templates/certificates/_accomplishment-rendering.html b/lms/templates/certificates/_accomplishment-rendering.html index 76b48e908428..5bbbf922faa2 100644 --- a/lms/templates/certificates/_accomplishment-rendering.html +++ b/lms/templates/certificates/_accomplishment-rendering.html @@ -124,7 +124,7 @@

    Внимание пользователям iPhone!

    СЕРТИФИКАТ
    - ${_("This certificate hereby confirms")} + ${_("This certificate hereby confirms that")}
    ${accomplishment_copy_name} From 5beb3f3e6a4c3aee69ae4a4e33795fe02284476c Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 7 Apr 2026 16:06:42 +0500 Subject: [PATCH 333/443] add course name --- lms/djangoapps/news/views.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 4c13aa36723d..52a1930346c8 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -147,18 +147,22 @@ def analyze(request): def go_to_exam(request): # ✅ 1. Берем данные из frontend - user_id = request.GET.get("user_id", "0") - username = request.GET.get("username", "unknown") + user_id = request.user.id + username = request.user.username unit_url = request.GET.get("unit_url", "/") + course_name = request.GET.get("course_name", "empty") + # можно взять реальные данные если нужно - firstname = request.user.profile.name - lastname = "User" - logger.info(f"User name 1", firstname) + try: + firstname, lastname = request.user.profile.name + except: + firstname, lastname = "None", "None" exam_id = 12321312 - exam_name = "Тестовый экзамен по Python" + exam_name = f"Тестовый экзамен по {course_name}" + logger.info(f"User name 1", exam_name) # 2. Время now = datetime.utcnow() start_iso = now.isoformat() + "Z" From 1671cb5d4b1c15c4366eb96fb7d72b2a149d03da Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 9 Apr 2026 09:49:17 +0500 Subject: [PATCH 334/443] add finish redirect --- lms/djangoapps/news/views.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 52a1930346c8..a07d3e6e3eed 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -136,6 +136,7 @@ def analyze(request): import jwt import urllib.parse import time +import random from datetime import datetime, timedelta from django.http import HttpResponseRedirect @@ -159,17 +160,18 @@ def go_to_exam(request): except: firstname, lastname = "None", "None" - exam_id = 12321312 + exam_id = random.randint(10**10, 10**11 - 1) + session_id = exam_id exam_name = f"Тестовый экзамен по {course_name}" + request.session["proctoring_session_id"] = session_id + logger.info(f"User name 1", exam_name) # 2. Время now = datetime.utcnow() start_iso = now.isoformat() + "Z" end_iso = (now + timedelta(hours=2)).isoformat() + "Z" - session_id = f"session_{user_id}_{exam_id}_{int(time.time())}" - # ✅ 3. Payload с динамическим возвратом payload = { "userId": user_id, @@ -210,3 +212,13 @@ def go_to_exam(request): print("Return URL:", unit_url) return HttpResponseRedirect(final_url) + + +def finish_redirect(request): + session_id = request.session.get("proctoring_session_id") + + redirect_url = request.GET.get("redirectUrl", "/") + + url = f"https://farabi-proctoring.kaznu.kz/integration/simple/kaznu_moodle/finish/{session_id}/?redirectUrl={redirect_url}" + + return HttpResponseRedirect(url) From 2cc69e2a376f476619664ee8cb0beb3bfbaee480 Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 9 Apr 2026 12:08:30 +0500 Subject: [PATCH 335/443] add finish exam url --- lms/djangoapps/news/views.py | 36 ++++--------------- .../_accomplishment-rendering.html | 2 +- lms/urls.py | 1 + 3 files changed, 8 insertions(+), 31 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index a07d3e6e3eed..d2602cc45271 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -7,6 +7,12 @@ from django.db.models import Count from common.djangoapps.student.models import UserProfile +from django.db.models import Count +from django.db.models.functions import ExtractYear +import json +from django.db.models import Count +from django.db.models.functions import ExtractYear +from openedx.core.djangoapps.content.course_overviews.models import CourseOverview # from ..commerce.api.v1.models import Course import logging @@ -45,36 +51,6 @@ def news_create(request): } return render_to_response('news/form.html', context, request=request) -from django.db.models import Count -from django.db.models.functions import ExtractYear - - -def analyze(request): - courses = CourseOverview.objects.all() - - courses_by_org = ( - CourseOverview.objects - .values("org") - .annotate(total=Count("id")) - .order_by("-total") - ) - - context = { - "courses": courses[:50], - "courses_count": courses.count(), - "chart_labels": [c["org"] for c in courses_by_org], - "chart_data": [c["total"] for c in courses_by_org], - } - - return render_to_response("news/analyze2.html", context, request=request) - -import json - -import json -from django.db.models import Count -from django.db.models.functions import ExtractYear -from openedx.core.djangoapps.content.course_overviews.models import CourseOverview - def analyze(request): courses = CourseOverview.objects.all() diff --git a/lms/templates/certificates/_accomplishment-rendering.html b/lms/templates/certificates/_accomplishment-rendering.html index 76b48e908428..678c4fdf179b 100644 --- a/lms/templates/certificates/_accomplishment-rendering.html +++ b/lms/templates/certificates/_accomplishment-rendering.html @@ -19,7 +19,7 @@ - + diff --git a/lms/urls.py b/lms/urls.py index c260094310d9..f2a94d0cef05 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -100,6 +100,7 @@ path('news/create/', news_views.news_create, name='news_create'), path('analyze/', news_views.analyze, name='analyze'), path('go-to-exam/', news_views.go_to_exam, name='exam'), + path('finish-exam/', news_views.finish_redirect, name='finish_exam'), path('api/univertest/', univer_views.UniverTestView.as_view(), name='univer_test'), path('', branding_views.index, name='root'), # Main marketing page, or redirect to courseware From 632dbae0e14ed239addc4da8bdde44c7d1af1107 Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 9 Apr 2026 14:31:57 +0500 Subject: [PATCH 336/443] add extended param form exam id and sessionid --- lms/djangoapps/news/views.py | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index d2602cc45271..5f8ab1d56e4e 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -15,6 +15,13 @@ from openedx.core.djangoapps.content.course_overviews.models import CourseOverview # from ..commerce.api.v1.models import Course import logging +import jwt +import urllib.parse +import time +import random +from datetime import datetime, timedelta + +from django.http import HttpResponseRedirect logger = logging.getLogger(__name__) @@ -109,15 +116,6 @@ def analyze(request): return render_to_response("news/analyze3.html", context, request=request) -import jwt -import urllib.parse -import time -import random -from datetime import datetime, timedelta - -from django.http import HttpResponseRedirect - - SECRET_KEY = "qaZE879dFwPO*#Pox@r$!1" PROCTORING_URL = "https://farabi-proctoring.kaznu.kz/integration/simple/kaznu_moodle/start/" @@ -136,8 +134,8 @@ def go_to_exam(request): except: firstname, lastname = "None", "None" - exam_id = random.randint(10**10, 10**11 - 1) - session_id = exam_id + exam_id = random.randint(10**7, 10**8 - 1) + session_id = random.randint(10**10, 10**11 - 1) exam_name = f"Тестовый экзамен по {course_name}" request.session["proctoring_session_id"] = session_id From 46e641f35a4d3f83f792844a580848edff07a3fd Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 9 Apr 2026 16:08:52 +0500 Subject: [PATCH 337/443] add system which start stop exam with proctoring --- lms/djangoapps/news/views.py | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 5f8ab1d56e4e..b10bcdd3082f 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -19,9 +19,12 @@ import urllib.parse import time import random -from datetime import datetime, timedelta +from datetime import datetime, timedelta, timezone from django.http import HttpResponseRedirect +import httpx +from django.http import JsonResponse +from django.views.decorators.csrf import csrf_exempt logger = logging.getLogger(__name__) @@ -188,11 +191,24 @@ def go_to_exam(request): return HttpResponseRedirect(final_url) -def finish_redirect(request): +def finish_exam_api(request): session_id = request.session.get("proctoring_session_id") - redirect_url = request.GET.get("redirectUrl", "/") + now = datetime.now(timezone.utc) + payload = { + "iat": int(now.timestamp()), + "exp": int((now + timedelta(minutes=5)).timestamp()), + "sessionId": session_id, + } - url = f"https://farabi-proctoring.kaznu.kz/integration/simple/kaznu_moodle/finish/{session_id}/?redirectUrl={redirect_url}" + token = jwt.encode(payload, SECRET_KEY, algorithm="HS256") + + url = f"https://farabi-proctoring.kaznu.kz/api/integration/simple/kaznu_moodle/sessions/{session_id}/finish/" + + httpx.post( + url, + headers={"Authorization": f"Bearer {token}"}, + json={"status": "finished"} + ) - return HttpResponseRedirect(url) + return JsonResponse({"status": "ok"}) From c2a3ab5be5c09bfc048a72dea3a0960c0a7b586d Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 9 Apr 2026 16:29:12 +0500 Subject: [PATCH 338/443] fixed function name --- lms/urls.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/urls.py b/lms/urls.py index f2a94d0cef05..3bc498619f45 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -100,7 +100,7 @@ path('news/create/', news_views.news_create, name='news_create'), path('analyze/', news_views.analyze, name='analyze'), path('go-to-exam/', news_views.go_to_exam, name='exam'), - path('finish-exam/', news_views.finish_redirect, name='finish_exam'), + path('finish-exam/', news_views.finish_exam_api, name='finish_exam'), path('api/univertest/', univer_views.UniverTestView.as_view(), name='univer_test'), path('', branding_views.index, name='root'), # Main marketing page, or redirect to courseware From 7b625dfe74c0b28b8a4316c0e2a75320b4baad8a Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 9 Apr 2026 16:44:16 +0500 Subject: [PATCH 339/443] add new url| : --- lms/djangoapps/news/views.py | 2 +- lms/urls.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index b10bcdd3082f..6b1a18d62c68 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -159,7 +159,7 @@ def go_to_exam(request): "accountName": "kaznu_moodle", "examId": exam_id, "examName": exam_name, - "duration": 60, + "duration": 5, "schedule": False, "proctoring": "online", "examDesc": "Курс: Тестирование систем
    Преподаватель: AI Assistant", diff --git a/lms/urls.py b/lms/urls.py index 3bc498619f45..88d3c36e4d66 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -100,7 +100,7 @@ path('news/create/', news_views.news_create, name='news_create'), path('analyze/', news_views.analyze, name='analyze'), path('go-to-exam/', news_views.go_to_exam, name='exam'), - path('finish-exam/', news_views.finish_exam_api, name='finish_exam'), + path('finish-exam-api/', news_views.finish_exam_api, name='finish_exam'), path('api/univertest/', univer_views.UniverTestView.as_view(), name='univer_test'), path('', branding_views.index, name='root'), # Main marketing page, or redirect to courseware From f5a67f431b9b9b7406999eddcbd7301fdfddf725 Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 10 Apr 2026 09:38:51 +0500 Subject: [PATCH 340/443] back --- lms/djangoapps/news/views.py | 21 ++++----------------- lms/urls.py | 2 +- 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 6b1a18d62c68..e97cd9aa4cf4 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -191,24 +191,11 @@ def go_to_exam(request): return HttpResponseRedirect(final_url) -def finish_exam_api(request): +def finish_exam(request): session_id = request.session.get("proctoring_session_id") - now = datetime.now(timezone.utc) - payload = { - "iat": int(now.timestamp()), - "exp": int((now + timedelta(minutes=5)).timestamp()), - "sessionId": session_id, - } + redirect_url = request.GET.get("redirectUrl", "/") - token = jwt.encode(payload, SECRET_KEY, algorithm="HS256") - - url = f"https://farabi-proctoring.kaznu.kz/api/integration/simple/kaznu_moodle/sessions/{session_id}/finish/" - - httpx.post( - url, - headers={"Authorization": f"Bearer {token}"}, - json={"status": "finished"} - ) + url = f"https://farabi-proctoring.kaznu.kz/integration/simple/kaznu_moodle/finish/{session_id}/?redirectUrl={redirect_url}" - return JsonResponse({"status": "ok"}) + return HttpResponseRedirect(url) diff --git a/lms/urls.py b/lms/urls.py index 88d3c36e4d66..4ee979a84351 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -100,7 +100,7 @@ path('news/create/', news_views.news_create, name='news_create'), path('analyze/', news_views.analyze, name='analyze'), path('go-to-exam/', news_views.go_to_exam, name='exam'), - path('finish-exam-api/', news_views.finish_exam_api, name='finish_exam'), + path('finish-exam/', news_views.finish_exam, name='finish_exam'), path('api/univertest/', univer_views.UniverTestView.as_view(), name='univer_test'), path('', branding_views.index, name='root'), # Main marketing page, or redirect to courseware From 2326275c0432055d3edb9a574fa5bc6482b3f7a9 Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 10 Apr 2026 10:50:52 +0500 Subject: [PATCH 341/443] hide secret key --- lms/djangoapps/news/views.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index e97cd9aa4cf4..14751e55ef53 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -25,7 +25,7 @@ import httpx from django.http import JsonResponse from django.views.decorators.csrf import csrf_exempt - +from django.conf import settings logger = logging.getLogger(__name__) def news_list(request): @@ -119,11 +119,12 @@ def analyze(request): return render_to_response("news/analyze3.html", context, request=request) -SECRET_KEY = "qaZE879dFwPO*#Pox@r$!1" + PROCTORING_URL = "https://farabi-proctoring.kaznu.kz/integration/simple/kaznu_moodle/start/" def go_to_exam(request): + SECRET_KEY = str(settings.SECRET_KEY) # ✅ 1. Берем данные из frontend user_id = request.user.id username = request.user.username From 4fcf77506d5749f21187a855c951263bb92d06a4 Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 10 Apr 2026 11:23:48 +0500 Subject: [PATCH 342/443] change key name --- lms/djangoapps/news/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 14751e55ef53..b795cd79b542 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -124,7 +124,7 @@ def analyze(request): def go_to_exam(request): - SECRET_KEY = str(settings.SECRET_KEY) + SECRET_KEY = str(settings.PROCTORING_API_KEY) # ✅ 1. Берем данные из frontend user_id = request.user.id username = request.user.username From e34b026949bf1b39ae6f359963665d179963949c Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 13 Apr 2026 09:18:09 +0500 Subject: [PATCH 343/443] add protored student name --- lms/djangoapps/news/views.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index b795cd79b542..0e0e78def0d5 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -134,7 +134,11 @@ def go_to_exam(request): # можно взять реальные данные если нужно try: - firstname, lastname = request.user.profile.name + name = request.user.profile.name.strip() + parts = name.split(maxsplit=1) + + firstname = parts[0] if len(parts) > 0 else "" + lastname = parts[1] if len(parts) > 1 else "" except: firstname, lastname = "None", "None" From a7d88d5ae434c475558d2182e68eb2449e19b276 Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 13 Apr 2026 11:43:51 +0500 Subject: [PATCH 344/443] remove utf coding --- lms/templates/certificates/_accomplishment-rendering.html | 1 - 1 file changed, 1 deletion(-) diff --git a/lms/templates/certificates/_accomplishment-rendering.html b/lms/templates/certificates/_accomplishment-rendering.html index 5bbbf922faa2..730cb0586924 100644 --- a/lms/templates/certificates/_accomplishment-rendering.html +++ b/lms/templates/certificates/_accomplishment-rendering.html @@ -19,7 +19,6 @@ - From 4bf7d2f302771a9647bcfe338827574160a4c33f Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 13 Apr 2026 11:51:24 +0500 Subject: [PATCH 345/443] rmove httpx --- lms/djangoapps/news/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 0e0e78def0d5..689fb4d8c920 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -22,7 +22,7 @@ from datetime import datetime, timedelta, timezone from django.http import HttpResponseRedirect -import httpx + from django.http import JsonResponse from django.views.decorators.csrf import csrf_exempt from django.conf import settings From 59635e7e38cc6b611e651c878667ccca57bed0f4 Mon Sep 17 00:00:00 2001 From: Erarys Date: Wed, 15 Apr 2026 10:23:56 +0500 Subject: [PATCH 346/443] add attention row --- lms/templates/static_templates/competition.html | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lms/templates/static_templates/competition.html b/lms/templates/static_templates/competition.html index 63b31b34e536..b7692b246b16 100644 --- a/lms/templates/static_templates/competition.html +++ b/lms/templates/static_templates/competition.html @@ -445,7 +445,17 @@

    ${_("About the Competition")}

    ${_("The Office of Academic and Digital Innovations is accepting applications for participation in the competition of pedagogical scenarios for the creation and publication of online courses (MOOC/SPOC)")}.

    - +
    +

    ${_("Attention!")}

    +

    ${_("The competition for pedagogical scenarios for the development and publication of online courses (MOOC/SPOC), organized by the Office of Academic and Digital Innovations, has been canceled in 2026.")}

    +

    ${_("Order on cancellation.")}

    +

    ${_("Information about the next competition will be published on this page.")}

    + +

    ${_("MOOC Competition Regulations")}

    From a6ab6fc705f0ec5279ff73d7a151689cc86fc718 Mon Sep 17 00:00:00 2001 From: Erarys Date: Wed, 15 Apr 2026 11:15:10 +0500 Subject: [PATCH 347/443] change platform name --- lms/djangoapps/news/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 0e0e78def0d5..5945a661eb96 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -120,7 +120,7 @@ def analyze(request): -PROCTORING_URL = "https://farabi-proctoring.kaznu.kz/integration/simple/kaznu_moodle/start/" +PROCTORING_URL = "https://farabi-proctoring.kaznu.kz/integration/simple/kaznu_open/start/" def go_to_exam(request): @@ -161,7 +161,7 @@ def go_to_exam(request): "firstName": firstname, "thirdName": username, "language": "ru", - "accountName": "kaznu_moodle", + "accountName": "kaznu_open", "examId": exam_id, "examName": exam_name, "duration": 5, From 23e9ddb99d2af93efb63674261dcab3257d165d9 Mon Sep 17 00:00:00 2001 From: Erarys Date: Wed, 15 Apr 2026 11:16:09 +0500 Subject: [PATCH 348/443] change platform name --- lms/djangoapps/news/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 689fb4d8c920..ac586fb270b2 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -120,7 +120,7 @@ def analyze(request): -PROCTORING_URL = "https://farabi-proctoring.kaznu.kz/integration/simple/kaznu_moodle/start/" +PROCTORING_URL = "https://farabi-proctoring.kaznu.kz/integration/simple/kaznu_open/start/" def go_to_exam(request): @@ -161,7 +161,7 @@ def go_to_exam(request): "firstName": firstname, "thirdName": username, "language": "ru", - "accountName": "kaznu_moodle", + "accountName": "kaznu_open", "examId": exam_id, "examName": exam_name, "duration": 5, From 4e12fb1e53eb19ad9a0c9d3b78ec9136290d7e28 Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 16 Apr 2026 10:10:16 +0500 Subject: [PATCH 349/443] add complexity --- lms/djangoapps/course_api/serializers.py | 1 + openedx/core/djangoapps/models/course_details.py | 1 + 2 files changed, 2 insertions(+) diff --git a/lms/djangoapps/course_api/serializers.py b/lms/djangoapps/course_api/serializers.py index 5fc711376784..9b9bc262f48e 100644 --- a/lms/djangoapps/course_api/serializers.py +++ b/lms/djangoapps/course_api/serializers.py @@ -100,6 +100,7 @@ class CourseSerializer(serializers.Serializer): # pylint: disable=abstract-meth blocks_url = serializers.SerializerMethodField() effort = serializers.CharField() + complexity = serializers.CharField() end = serializers.DateTimeField() enrollment_start = serializers.DateTimeField() enrollment_end = serializers.DateTimeField() diff --git a/openedx/core/djangoapps/models/course_details.py b/openedx/core/djangoapps/models/course_details.py index c00d7d0b8816..33312d192ad2 100644 --- a/openedx/core/djangoapps/models/course_details.py +++ b/openedx/core/djangoapps/models/course_details.py @@ -27,6 +27,7 @@ 'short_description', 'overview', 'effort', + 'complexity', 'entrance_exam_enabled', 'entrance_exam_id', 'entrance_exam_minimum_score_pct', From 639b402da035dabdf1740cc41c8e872495c58db0 Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 16 Apr 2026 12:08:34 +0500 Subject: [PATCH 350/443] try to fix --- .../contentstore/rest_api/v1/serializers/course_details.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cms/djangoapps/contentstore/rest_api/v1/serializers/course_details.py b/cms/djangoapps/contentstore/rest_api/v1/serializers/course_details.py index 6c2660428e66..8d4f4c2b12f4 100644 --- a/cms/djangoapps/contentstore/rest_api/v1/serializers/course_details.py +++ b/cms/djangoapps/contentstore/rest_api/v1/serializers/course_details.py @@ -34,6 +34,7 @@ class CourseDetailsSerializer(serializers.Serializer): description = serializers.CharField(allow_blank=True) duration = serializers.CharField(allow_blank=True) effort = serializers.CharField(allow_null=True, allow_blank=True) + complexity = serializers.CharField(allow_null=True, allow_blank=True, required=False) end_date = serializers.DateTimeField(allow_null=True) enrollment_end = serializers.DateTimeField(allow_null=True) enrollment_start = serializers.DateTimeField(allow_null=True) From e09c73565c0513e5fa9689b6807e7945b6c90a56 Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 16 Apr 2026 12:36:30 +0500 Subject: [PATCH 351/443] add log --- cms/djangoapps/contentstore/rest_api/v1/views/course_details.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cms/djangoapps/contentstore/rest_api/v1/views/course_details.py b/cms/djangoapps/contentstore/rest_api/v1/views/course_details.py index d5ccf3c6165e..34e350031b8b 100644 --- a/cms/djangoapps/contentstore/rest_api/v1/views/course_details.py +++ b/cms/djangoapps/contentstore/rest_api/v1/views/course_details.py @@ -119,6 +119,7 @@ def get(self, request: Request, course_id: str): ) @verify_course_exists() def put(self, request: Request, course_id: str): + print("REQUEST DATA:", request.data) """ Update a course's details. From d5526e2840c2c330be4068adb09f63c3f255dbb0 Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 16 Apr 2026 16:48:10 +0500 Subject: [PATCH 352/443] add complexity changes --- lms/djangoapps/course_api/serializers.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lms/djangoapps/course_api/serializers.py b/lms/djangoapps/course_api/serializers.py index 9b9bc262f48e..8642a95917cb 100644 --- a/lms/djangoapps/course_api/serializers.py +++ b/lms/djangoapps/course_api/serializers.py @@ -17,7 +17,6 @@ from openedx.core.djangoapps.models.course_details import CourseDetails from openedx.core.lib.api.fields import AbsoluteURLField - class _MediaSerializer(serializers.Serializer): # pylint: disable=abstract-method """ Nested serializer to represent a media object. @@ -100,7 +99,7 @@ class CourseSerializer(serializers.Serializer): # pylint: disable=abstract-meth blocks_url = serializers.SerializerMethodField() effort = serializers.CharField() - complexity = serializers.CharField() + complexity = serializers.SerializerMethodField() end = serializers.DateTimeField() enrollment_start = serializers.DateTimeField() enrollment_end = serializers.DateTimeField() @@ -121,6 +120,9 @@ class CourseSerializer(serializers.Serializer): # pylint: disable=abstract-meth # 'course_id' is a deprecated field, please use 'id' instead. course_id = serializers.CharField(source='id', read_only=True) + def get_complexity(self, obj): + return CourseDetails.fetch_about_attribute(obj.id, 'complexity') + def get_hidden(self, course_overview): """ Get the representation for SerializerMethodField `hidden` From ac770ecb32d366903e48a88f488d398956eaa36d Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 16 Apr 2026 18:02:04 +0500 Subject: [PATCH 353/443] add complexity --- openedx/core/djangoapps/models/course_details.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openedx/core/djangoapps/models/course_details.py b/openedx/core/djangoapps/models/course_details.py index 33312d192ad2..6ae0a626622a 100644 --- a/openedx/core/djangoapps/models/course_details.py +++ b/openedx/core/djangoapps/models/course_details.py @@ -28,6 +28,7 @@ 'overview', 'effort', 'complexity', + 'complexity', 'entrance_exam_enabled', 'entrance_exam_id', 'entrance_exam_minimum_score_pct', From e90a3864026fd228d2b67d62cabe7a2bc31718b5 Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 17 Apr 2026 09:50:54 +0500 Subject: [PATCH 354/443] add log --- openedx/core/djangoapps/models/course_details.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openedx/core/djangoapps/models/course_details.py b/openedx/core/djangoapps/models/course_details.py index 6ae0a626622a..02bce2cabd1d 100644 --- a/openedx/core/djangoapps/models/course_details.py +++ b/openedx/core/djangoapps/models/course_details.py @@ -28,7 +28,6 @@ 'overview', 'effort', 'complexity', - 'complexity', 'entrance_exam_enabled', 'entrance_exam_id', 'entrance_exam_minimum_score_pct', @@ -195,6 +194,7 @@ def update_about_video(cls, course, video_id, user_id): @classmethod def update_from_json(cls, course_key, jsondict, user): # pylint: disable=too-many-statements + print(">>> PAYLOAD:", jsondict) """ Decode the json into CourseDetails and save any changed attrs to the db """ From 3487a09d5a3d358a81942964fd16f52016e2b8d3 Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 17 Apr 2026 10:06:45 +0500 Subject: [PATCH 355/443] add log --- openedx/core/djangoapps/models/course_details.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openedx/core/djangoapps/models/course_details.py b/openedx/core/djangoapps/models/course_details.py index 02bce2cabd1d..cfbacb13edf1 100644 --- a/openedx/core/djangoapps/models/course_details.py +++ b/openedx/core/djangoapps/models/course_details.py @@ -313,6 +313,7 @@ def update_from_json(cls, course_key, jsondict, user): # pylint: disable=too-ma # fields changed. for attribute in ABOUT_ATTRIBUTES: if attribute in jsondict: + print(">>> SAVING:", attribute, jsondict[attribute]) cls.update_about_item(block, attribute, jsondict[attribute], user.id) cls.update_about_video(block, jsondict['intro_video'], user.id) From aa2735686f69bf5af6208c440b820879cfd92b7d Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 17 Apr 2026 11:35:05 +0500 Subject: [PATCH 356/443] log --- openedx/core/djangoapps/models/course_details.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openedx/core/djangoapps/models/course_details.py b/openedx/core/djangoapps/models/course_details.py index cfbacb13edf1..8768c58fe57d 100644 --- a/openedx/core/djangoapps/models/course_details.py +++ b/openedx/core/djangoapps/models/course_details.py @@ -311,6 +311,7 @@ def update_from_json(cls, course_key, jsondict, user): # pylint: disable=too-ma # the fields actually changed to make faster, could compare # against db or could have client send over a list of which # fields changed. + print(">>> ATTRIBUTES:", ABOUT_ATTRIBUTES) for attribute in ABOUT_ATTRIBUTES: if attribute in jsondict: print(">>> SAVING:", attribute, jsondict[attribute]) From 5d8ec97bc81b2870fe54b8d7ef52ff827917e58e Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 17 Apr 2026 11:56:18 +0500 Subject: [PATCH 357/443] log --- openedx/core/djangoapps/models/course_details.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openedx/core/djangoapps/models/course_details.py b/openedx/core/djangoapps/models/course_details.py index 8768c58fe57d..72278ec20d42 100644 --- a/openedx/core/djangoapps/models/course_details.py +++ b/openedx/core/djangoapps/models/course_details.py @@ -314,6 +314,8 @@ def update_from_json(cls, course_key, jsondict, user): # pylint: disable=too-ma print(">>> ATTRIBUTES:", ABOUT_ATTRIBUTES) for attribute in ABOUT_ATTRIBUTES: if attribute in jsondict: + print(">>> KEYS:", list(jsondict.keys())) + print(">>> COMPLEXITY IN JSONDICT:", "complexity" in jsondict) print(">>> SAVING:", attribute, jsondict[attribute]) cls.update_about_item(block, attribute, jsondict[attribute], user.id) From 3fbdfd121372f260bef46b81d245380b1e14369b Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 17 Apr 2026 12:05:21 +0500 Subject: [PATCH 358/443] fix bug --- openedx/core/djangoapps/models/course_details.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/openedx/core/djangoapps/models/course_details.py b/openedx/core/djangoapps/models/course_details.py index 72278ec20d42..51b4ce92e1de 100644 --- a/openedx/core/djangoapps/models/course_details.py +++ b/openedx/core/djangoapps/models/course_details.py @@ -312,13 +312,20 @@ def update_from_json(cls, course_key, jsondict, user): # pylint: disable=too-ma # against db or could have client send over a list of which # fields changed. print(">>> ATTRIBUTES:", ABOUT_ATTRIBUTES) + # сначала сохрани всё кроме complexity for attribute in ABOUT_ATTRIBUTES: + if attribute == "complexity": + continue + if attribute in jsondict: - print(">>> KEYS:", list(jsondict.keys())) - print(">>> COMPLEXITY IN JSONDICT:", "complexity" in jsondict) print(">>> SAVING:", attribute, jsondict[attribute]) cls.update_about_item(block, attribute, jsondict[attribute], user.id) + # потом отдельно complexity + if 'complexity' in jsondict: + print(">>> SAVING COMPLEXITY:", jsondict['complexity']) + cls.update_about_item(block, 'complexity', jsondict['complexity'], user.id) + cls.update_about_video(block, jsondict['intro_video'], user.id) # Could just return jsondict w/o doing any db reads, but I put From a90ab079cf9c3e3ec1dc824ee496fb0272bb10ce Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 17 Apr 2026 12:17:02 +0500 Subject: [PATCH 359/443] add fix --- openedx/core/djangoapps/models/course_details.py | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/openedx/core/djangoapps/models/course_details.py b/openedx/core/djangoapps/models/course_details.py index 51b4ce92e1de..4440792b35e1 100644 --- a/openedx/core/djangoapps/models/course_details.py +++ b/openedx/core/djangoapps/models/course_details.py @@ -312,19 +312,10 @@ def update_from_json(cls, course_key, jsondict, user): # pylint: disable=too-ma # against db or could have client send over a list of which # fields changed. print(">>> ATTRIBUTES:", ABOUT_ATTRIBUTES) - # сначала сохрани всё кроме complexity - for attribute in ABOUT_ATTRIBUTES: - if attribute == "complexity": - continue - - if attribute in jsondict: - print(">>> SAVING:", attribute, jsondict[attribute]) - cls.update_about_item(block, attribute, jsondict[attribute], user.id) + attributes_to_save = [a for a in ABOUT_ATTRIBUTES if a in jsondict] - # потом отдельно complexity - if 'complexity' in jsondict: - print(">>> SAVING COMPLEXITY:", jsondict['complexity']) - cls.update_about_item(block, 'complexity', jsondict['complexity'], user.id) + for attribute in attributes_to_save: + cls.update_about_item(block, attribute, jsondict[attribute], user.id) cls.update_about_video(block, jsondict['intro_video'], user.id) From 644f13ff981a3bc7a8e35da905608052d9d89d4e Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 17 Apr 2026 12:38:44 +0500 Subject: [PATCH 360/443] fix --- openedx/core/djangoapps/models/course_details.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openedx/core/djangoapps/models/course_details.py b/openedx/core/djangoapps/models/course_details.py index 4440792b35e1..cd2c1210edbe 100644 --- a/openedx/core/djangoapps/models/course_details.py +++ b/openedx/core/djangoapps/models/course_details.py @@ -315,7 +315,10 @@ def update_from_json(cls, course_key, jsondict, user): # pylint: disable=too-ma attributes_to_save = [a for a in ABOUT_ATTRIBUTES if a in jsondict] for attribute in attributes_to_save: - cls.update_about_item(block, attribute, jsondict[attribute], user.id) + if attribute == "complexity": + print(">>> BEFORE complexity save:", jsondict[attribute]) + cls.update_about_item(block, attribute, jsondict[attribute], user.id) + print(">>> AFTER complexity save") cls.update_about_video(block, jsondict['intro_video'], user.id) From f297c37a872d1e186a48487550cdc1a98447620b Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 20 Apr 2026 09:16:44 +0500 Subject: [PATCH 361/443] add complexity update by new way --- .../contentstore/rest_api/v1/views/course_details.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/cms/djangoapps/contentstore/rest_api/v1/views/course_details.py b/cms/djangoapps/contentstore/rest_api/v1/views/course_details.py index 34e350031b8b..e6ad4b95979f 100644 --- a/cms/djangoapps/contentstore/rest_api/v1/views/course_details.py +++ b/cms/djangoapps/contentstore/rest_api/v1/views/course_details.py @@ -119,7 +119,6 @@ def get(self, request: Request, course_id: str): ) @verify_course_exists() def put(self, request: Request, course_id: str): - print("REQUEST DATA:", request.data) """ Update a course's details. @@ -152,5 +151,13 @@ def put(self, request: Request, course_id: str): except ValidationError as err: return JsonResponseBadRequest({"error": err.message}) + from openedx.core.djangoapps.content.course_overviews.models import CourseOverview + + print("REQUEST DATA:", course_id, request.data) + complexity = request.data.get("complexity") + + if complexity: + CourseOverview.objects.filter(id=course_key).update(complexity=complexity) + serializer = CourseDetailsSerializer(updated_data) return Response(serializer.data) From c97e4d38ef7d4ad318f0a1ba28d7be56e17c3755 Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 20 Apr 2026 10:15:55 +0500 Subject: [PATCH 362/443] backup 20.04.2026 --- .../rest_api/v1/serializers/course_details.py | 2 +- lms/djangoapps/course_api/serializers.py | 2 +- openedx/core/djangoapps/models/course_details.py | 13 +++++-------- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/cms/djangoapps/contentstore/rest_api/v1/serializers/course_details.py b/cms/djangoapps/contentstore/rest_api/v1/serializers/course_details.py index 8d4f4c2b12f4..436e9be6fa61 100644 --- a/cms/djangoapps/contentstore/rest_api/v1/serializers/course_details.py +++ b/cms/djangoapps/contentstore/rest_api/v1/serializers/course_details.py @@ -34,7 +34,7 @@ class CourseDetailsSerializer(serializers.Serializer): description = serializers.CharField(allow_blank=True) duration = serializers.CharField(allow_blank=True) effort = serializers.CharField(allow_null=True, allow_blank=True) - complexity = serializers.CharField(allow_null=True, allow_blank=True, required=False) + # complexity = serializers.CharField(allow_null=True, allow_blank=True, required=False) end_date = serializers.DateTimeField(allow_null=True) enrollment_end = serializers.DateTimeField(allow_null=True) enrollment_start = serializers.DateTimeField(allow_null=True) diff --git a/lms/djangoapps/course_api/serializers.py b/lms/djangoapps/course_api/serializers.py index 8642a95917cb..bd4e981d2e9d 100644 --- a/lms/djangoapps/course_api/serializers.py +++ b/lms/djangoapps/course_api/serializers.py @@ -99,7 +99,7 @@ class CourseSerializer(serializers.Serializer): # pylint: disable=abstract-meth blocks_url = serializers.SerializerMethodField() effort = serializers.CharField() - complexity = serializers.SerializerMethodField() + # complexity = serializers.SerializerMethodField() end = serializers.DateTimeField() enrollment_start = serializers.DateTimeField() enrollment_end = serializers.DateTimeField() diff --git a/openedx/core/djangoapps/models/course_details.py b/openedx/core/djangoapps/models/course_details.py index cd2c1210edbe..dd60852cc902 100644 --- a/openedx/core/djangoapps/models/course_details.py +++ b/openedx/core/djangoapps/models/course_details.py @@ -27,7 +27,7 @@ 'short_description', 'overview', 'effort', - 'complexity', + # 'complexity', 'entrance_exam_enabled', 'entrance_exam_id', 'entrance_exam_minimum_score_pct', @@ -194,7 +194,7 @@ def update_about_video(cls, course, video_id, user_id): @classmethod def update_from_json(cls, course_key, jsondict, user): # pylint: disable=too-many-statements - print(">>> PAYLOAD:", jsondict) + # print(">>> PAYLOAD:", jsondict) """ Decode the json into CourseDetails and save any changed attrs to the db """ @@ -311,14 +311,11 @@ def update_from_json(cls, course_key, jsondict, user): # pylint: disable=too-ma # the fields actually changed to make faster, could compare # against db or could have client send over a list of which # fields changed. - print(">>> ATTRIBUTES:", ABOUT_ATTRIBUTES) - attributes_to_save = [a for a in ABOUT_ATTRIBUTES if a in jsondict] + # print(">>> ATTRIBUTES:", ABOUT_ATTRIBUTES) + for attribute in ABOUT_ATTRIBUTES: - for attribute in attributes_to_save: - if attribute == "complexity": - print(">>> BEFORE complexity save:", jsondict[attribute]) + if attribute in jsondict: cls.update_about_item(block, attribute, jsondict[attribute], user.id) - print(">>> AFTER complexity save") cls.update_about_video(block, jsondict['intro_video'], user.id) From 74cc6ec5e5f0ee75802153faa554014751943e90 Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 20 Apr 2026 11:07:34 +0500 Subject: [PATCH 363/443] add translation --- lms/templates/static_templates/competition.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/templates/static_templates/competition.html b/lms/templates/static_templates/competition.html index b7692b246b16..892e262fd3a3 100644 --- a/lms/templates/static_templates/competition.html +++ b/lms/templates/static_templates/competition.html @@ -453,7 +453,7 @@

    ${_("Attention!")}

    ${_("Data Download")} + style="background: var(--primary-dark); color: white; padding: 10px 20px; border-radius: 4px; text-decoration: none;">${_("Order")}
    From 02fa92b1f7a80773ec4760dfd777da6b5fdcec73 Mon Sep 17 00:00:00 2001 From: Erarys Date: Wed, 22 Apr 2026 11:24:08 +0500 Subject: [PATCH 364/443] stable version --- lms/djangoapps/news/views.py | 3 +- lms/templates/news/analyze.html | 147 ++++++++++++++++++++++++------- lms/templates/news/analyze2.html | 44 --------- lms/templates/news/analyze3.html | 126 -------------------------- 4 files changed, 118 insertions(+), 202 deletions(-) delete mode 100644 lms/templates/news/analyze2.html delete mode 100644 lms/templates/news/analyze3.html diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index ac586fb270b2..a91ac03830fd 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -17,7 +17,6 @@ import logging import jwt import urllib.parse -import time import random from datetime import datetime, timedelta, timezone @@ -116,7 +115,7 @@ def analyze(request): "paced_data": json.dumps(paced_data), } - return render_to_response("news/analyze3.html", context, request=request) + return render_to_response("news/analyze.html", context, request=request) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index 2a065a6fe4aa..4968a379ee36 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -1,39 +1,126 @@ -% if news_list: -
    - % for news in news_list: -
    - % if news.image: - ${news.title} - % else: -
    - -
    - % endif +<%page expression_filter="h"/> +<%! from django.utils.translation import gettext as _ %> +<%inherit file="../main.html" /> + +<%block name="pagetitle">${_("Analyze")} + +<%block name="extrahead"> + + + + +<%block name="content"> + +
    + +

    📊 Аналитика курсов

    + +

    Всего курсов: ${courses_count}

    + + +
    +

    Курсы по факультетам

    + +
    + + +
    +

    Курсы по годам

    + +
    -
    - + +
    +

    Курсы по языкам

    + +
    -
    - ${news.created_at.date()} -
    + +
    +

    Формат обучения

    + +
    -
    - ${news.content[:100]}... -
    + +

    📚 Курсы

    - - ${_("Read more")} → + - % else: -
    -
    📰
    -

    ${_("No news available")}

    -

    ${_("Check back later for updates")}

    -
    - % endif + +
    + + + +<%block name="extrajs"> + + diff --git a/lms/templates/news/analyze2.html b/lms/templates/news/analyze2.html deleted file mode 100644 index fe6df27a0450..000000000000 --- a/lms/templates/news/analyze2.html +++ /dev/null @@ -1,44 +0,0 @@ -<%page expression_filter="h"/> -<%! from django.utils.translation import gettext as _ %> -<%inherit file="../main.html" /> - -<%block name="pagetitle">${_("Analyze")} - -<%block name="extrahead"> - - - -
    - -
    -

    📚 Список курсов

    - -

    Всего курсов: ${courses_count}

    - -
      - % for course in courses: -
    • - ${course.display_name}
      - - ID: ${course.id}
      - org: ${course.org}
      - number: ${course.number}
      - start: ${course.start}
      - end: ${course.end} -
      -
    • - % endfor -
    - -
    -
    - -<%block name="extrajs"> - - diff --git a/lms/templates/news/analyze3.html b/lms/templates/news/analyze3.html deleted file mode 100644 index 4968a379ee36..000000000000 --- a/lms/templates/news/analyze3.html +++ /dev/null @@ -1,126 +0,0 @@ -<%page expression_filter="h"/> -<%! from django.utils.translation import gettext as _ %> -<%inherit file="../main.html" /> - -<%block name="pagetitle">${_("Analyze")} - -<%block name="extrahead"> - - - - -<%block name="content"> - -
    - -

    📊 Аналитика курсов

    - -

    Всего курсов: ${courses_count}

    - - -
    -

    Курсы по факультетам

    - -
    - - -
    -

    Курсы по годам

    - -
    - - -
    -

    Курсы по языкам

    - -
    - - -
    -

    Формат обучения

    - -
    - - -

    📚 Курсы

    - -
    - % for course in courses: -
    - ${course.display_name} -
    Org: ${course.org}
    -
    Language: ${course.language}
    - % if course.start: -
    Start: ${course.start.strftime('%d.%m.%Y')}
    - % endif - -
    - % endfor -
    - -
    - - - -<%block name="extrajs"> - - From 3653d788e683b38f104bc436d767d2209a577a1a Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 23 Apr 2026 14:51:23 +0500 Subject: [PATCH 365/443] add log --- lms/djangoapps/news/views.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index a91ac03830fd..8c1003110cf4 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -147,7 +147,7 @@ def go_to_exam(request): request.session["proctoring_session_id"] = session_id - logger.info(f"User name 1", exam_name) + logger.info("my-log: exam start", extra={"sessionID": session_id}) # 2. Время now = datetime.utcnow() start_iso = now.isoformat() + "Z" @@ -197,8 +197,10 @@ def go_to_exam(request): def finish_exam(request): session_id = request.session.get("proctoring_session_id") + logger.info("my-log: exam finished", extra={"sessionID": session_id}) redirect_url = request.GET.get("redirectUrl", "/") + logger.info("my-log: exam finished", extra={"redirect_url": redirect_url}) url = f"https://farabi-proctoring.kaznu.kz/integration/simple/kaznu_moodle/finish/{session_id}/?redirectUrl={redirect_url}" From 09f4dd3c5e30bdcd6bc97f92043d5fdbba30707a Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 23 Apr 2026 15:00:08 +0500 Subject: [PATCH 366/443] logs fixed --- lms/djangoapps/news/views.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 8c1003110cf4..c8627299f257 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -147,7 +147,7 @@ def go_to_exam(request): request.session["proctoring_session_id"] = session_id - logger.info("my-log: exam start", extra={"sessionID": session_id}) + logger.info("my-log: exam start", session_id) # 2. Время now = datetime.utcnow() start_iso = now.isoformat() + "Z" @@ -197,10 +197,10 @@ def go_to_exam(request): def finish_exam(request): session_id = request.session.get("proctoring_session_id") - logger.info("my-log: exam finished", extra={"sessionID": session_id}) + logger.info("my-log: exam finished", session_id) redirect_url = request.GET.get("redirectUrl", "/") - logger.info("my-log: exam finished", extra={"redirect_url": redirect_url}) + logger.info("my-log: exam finished", redirect_url) url = f"https://farabi-proctoring.kaznu.kz/integration/simple/kaznu_moodle/finish/{session_id}/?redirectUrl={redirect_url}" From 2d5f8e43e5ad4f4654589f2c09e58417eee75512 Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 27 Apr 2026 09:43:01 +0500 Subject: [PATCH 367/443] fix logs --- lms/djangoapps/news/views.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index c8627299f257..a6cafdde906d 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -147,7 +147,7 @@ def go_to_exam(request): request.session["proctoring_session_id"] = session_id - logger.info("my-log: exam start", session_id) + logger.info(f"my-log: exam start {session_id}") # 2. Время now = datetime.utcnow() start_iso = now.isoformat() + "Z" @@ -197,10 +197,10 @@ def go_to_exam(request): def finish_exam(request): session_id = request.session.get("proctoring_session_id") - logger.info("my-log: exam finished", session_id) + logger.info(f"my-log: exam finished {session_id}") redirect_url = request.GET.get("redirectUrl", "/") - logger.info("my-log: exam finished", redirect_url) + logger.info(f"my-log: exam finished {redirect_url}") url = f"https://farabi-proctoring.kaznu.kz/integration/simple/kaznu_moodle/finish/{session_id}/?redirectUrl={redirect_url}" From 259595915674cfb83a768ebc1ccd5de41e0cc699 Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 27 Apr 2026 10:33:10 +0500 Subject: [PATCH 368/443] add session --- lms/djangoapps/news/views.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index a6cafdde906d..cf066046923e 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -145,9 +145,10 @@ def go_to_exam(request): session_id = random.randint(10**10, 10**11 - 1) exam_name = f"Тестовый экзамен по {course_name}" - request.session["proctoring_session_id"] = session_id - logger.info(f"my-log: exam start {session_id}") + + redirect_with_session = f"{unit_url}?session_id={session_id}" + # 2. Время now = datetime.utcnow() start_iso = now.isoformat() + "Z" @@ -179,7 +180,7 @@ def go_to_exam(request): # 🔥 ВАЖНО: возвращаем туда откуда пришли "sessionUrl": unit_url, - "redirectUrl": unit_url, + "redirectUrl": redirect_with_session, } # 4. JWT @@ -196,7 +197,7 @@ def go_to_exam(request): def finish_exam(request): - session_id = request.session.get("proctoring_session_id") + session_id = request.GET.get("session_id") logger.info(f"my-log: exam finished {session_id}") redirect_url = request.GET.get("redirectUrl", "/") From f29ffb54ac02dd81059a00da407d87f24d6174c3 Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 27 Apr 2026 10:53:48 +0500 Subject: [PATCH 369/443] session --- lms/djangoapps/news/views.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index cf066046923e..9b7e507c0134 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -147,7 +147,10 @@ def go_to_exam(request): logger.info(f"my-log: exam start {session_id}") - redirect_with_session = f"{unit_url}?session_id={session_id}" + if "?" in unit_url: + redirect_with_session = f"{unit_url}&session_id={session_id}" + else: + redirect_with_session = f"{unit_url}?session_id={session_id}" # 2. Время now = datetime.utcnow() From dc92b561c48d0235fb554058f9966a742de38328 Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 27 Apr 2026 11:22:49 +0500 Subject: [PATCH 370/443] idk --- lms/djangoapps/news/views.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 9b7e507c0134..7e49718fbcb9 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -147,10 +147,7 @@ def go_to_exam(request): logger.info(f"my-log: exam start {session_id}") - if "?" in unit_url: - redirect_with_session = f"{unit_url}&session_id={session_id}" - else: - redirect_with_session = f"{unit_url}?session_id={session_id}" + redirect_with_session = f"{unit_url}&session_id={session_id}" # 2. Время now = datetime.utcnow() From 24e0d9c607cf23f7a7cb22734fb1fec8da449086 Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 27 Apr 2026 12:42:32 +0500 Subject: [PATCH 371/443] take back session id by session --- lms/djangoapps/news/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 7e49718fbcb9..0ea84bb4f741 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -144,7 +144,7 @@ def go_to_exam(request): exam_id = random.randint(10**7, 10**8 - 1) session_id = random.randint(10**10, 10**11 - 1) exam_name = f"Тестовый экзамен по {course_name}" - + request.session["proctoring_session_id"] = session_id logger.info(f"my-log: exam start {session_id}") redirect_with_session = f"{unit_url}&session_id={session_id}" @@ -197,7 +197,7 @@ def go_to_exam(request): def finish_exam(request): - session_id = request.GET.get("session_id") + session_id = request.session.get("proctoring_session_id") logger.info(f"my-log: exam finished {session_id}") redirect_url = request.GET.get("redirectUrl", "/") From a51c66a7f3e1ca3602a00317abaa74ffc4d0a95a Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 27 Apr 2026 14:35:40 +0500 Subject: [PATCH 372/443] add session correct --- lms/djangoapps/news/views.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 0ea84bb4f741..adb4af32e7ad 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -147,7 +147,6 @@ def go_to_exam(request): request.session["proctoring_session_id"] = session_id logger.info(f"my-log: exam start {session_id}") - redirect_with_session = f"{unit_url}&session_id={session_id}" # 2. Время now = datetime.utcnow() @@ -180,7 +179,7 @@ def go_to_exam(request): # 🔥 ВАЖНО: возвращаем туда откуда пришли "sessionUrl": unit_url, - "redirectUrl": redirect_with_session, + "redirectUrl": unit_url, } # 4. JWT From 0b36803fb958f80225344ab930b7d4e474466e48 Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 28 Apr 2026 09:26:26 +0500 Subject: [PATCH 373/443] fixed moodle to open --- lms/djangoapps/news/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index adb4af32e7ad..426ac81e7257 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -202,6 +202,6 @@ def finish_exam(request): redirect_url = request.GET.get("redirectUrl", "/") logger.info(f"my-log: exam finished {redirect_url}") - url = f"https://farabi-proctoring.kaznu.kz/integration/simple/kaznu_moodle/finish/{session_id}/?redirectUrl={redirect_url}" + url = f"https://farabi-proctoring.kaznu.kz/integration/simple/kaznu_open/finish/{session_id}/?redirectUrl={redirect_url}" return HttpResponseRedirect(url) From a949e3bfbfc5d8be619b742db2f9c77314c3ef68 Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 28 Apr 2026 10:23:40 +0500 Subject: [PATCH 374/443] add logg --- lms/djangoapps/news/views.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 426ac81e7257..c73d1d84d8b2 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -163,10 +163,10 @@ def go_to_exam(request): "accountName": "kaznu_open", "examId": exam_id, "examName": exam_name, - "duration": 5, + "duration": 30, "schedule": False, "proctoring": "online", - "examDesc": "Курс: Тестирование систем
    Преподаватель: AI Assistant", + "examDesc": f"Курс: Тестирование систем
    Преподаватель: AI Assistant", "rules": { "websites": True, "look_away": True, @@ -191,6 +191,7 @@ def go_to_exam(request): print("Redirecting user to:", final_url) print("Return URL:", unit_url) + logger.info(f"Data {payload}") return HttpResponseRedirect(final_url) From 8e945b987dec546c5854892e2d6e728451102174 Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 28 Apr 2026 10:37:35 +0500 Subject: [PATCH 375/443] add log --- lms/djangoapps/news/views.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index c73d1d84d8b2..76dc58a2be58 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -143,7 +143,7 @@ def go_to_exam(request): exam_id = random.randint(10**7, 10**8 - 1) session_id = random.randint(10**10, 10**11 - 1) - exam_name = f"Тестовый экзамен по {course_name}" + exam_name = f"Экзамен по {course_name}" request.session["proctoring_session_id"] = session_id logger.info(f"my-log: exam start {session_id}") @@ -166,7 +166,7 @@ def go_to_exam(request): "duration": 30, "schedule": False, "proctoring": "online", - "examDesc": f"Курс: Тестирование систем
    Преподаватель: AI Assistant", + "examDesc": f"Курс: {course_name}
    Преподаватель: AI Assistant", "rules": { "websites": True, "look_away": True, @@ -189,9 +189,7 @@ def go_to_exam(request): encoded_token = urllib.parse.quote(token) final_url = f"{PROCTORING_URL}?token={encoded_token}" - print("Redirecting user to:", final_url) - print("Return URL:", unit_url) - logger.info(f"Data {payload}") + logger.info(f"my-log: request get {request.GET}") return HttpResponseRedirect(final_url) From d2d67d6804f7e747aee435a3b4c20bb0dcfc532d Mon Sep 17 00:00:00 2001 From: Erarys Date: Wed, 29 Apr 2026 09:28:53 +0500 Subject: [PATCH 376/443] Improved examDesc --- lms/djangoapps/news/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 76dc58a2be58..876a4b826c46 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -129,6 +129,7 @@ def go_to_exam(request): username = request.user.username unit_url = request.GET.get("unit_url", "/") course_name = request.GET.get("course_name", "empty") + section_name = request.GET.get("section_name", "empty") # можно взять реальные данные если нужно @@ -166,7 +167,7 @@ def go_to_exam(request): "duration": 30, "schedule": False, "proctoring": "online", - "examDesc": f"Курс: {course_name}
    Преподаватель: AI Assistant", + "examDesc": f"Курс: {course_name}
    Модуль: {section_name}

    Ссылка на задание {unit_url}", "rules": { "websites": True, "look_away": True, From e65f9fc3ea90200455bdc548f88dc4d970039230 Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 18 May 2026 11:14:54 +0500 Subject: [PATCH 377/443] edited open analyze --- .../news/migrations/0002_emptytable.py | 32 ------------------- lms/djangoapps/news/views.py | 21 ++++++++---- 2 files changed, 14 insertions(+), 39 deletions(-) delete mode 100644 lms/djangoapps/news/migrations/0002_emptytable.py diff --git a/lms/djangoapps/news/migrations/0002_emptytable.py b/lms/djangoapps/news/migrations/0002_emptytable.py deleted file mode 100644 index 9efc84b62d29..000000000000 --- a/lms/djangoapps/news/migrations/0002_emptytable.py +++ /dev/null @@ -1,32 +0,0 @@ -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("news", "0001_initial"), - ] - - operations = [ - migrations.CreateModel( - name="EmptyTable", - fields=[ - ( - "id", - models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "title", - models.CharField( - max_length=200, - verbose_name="Заголовок", - ), - ), - ], - ), - ] diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 876a4b826c46..1b58ab4fd2ce 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -63,16 +63,23 @@ def news_create(request): def analyze(request): courses = CourseOverview.objects.all() + course_org_filter = ["Test_kaznu", "rty", "123"] + today = timezone.now().date() - courses_by_org = ( + courses_qs = ( CourseOverview.objects + .exclude(org__in=course_org_filter) + .exclude(start__gt=today) + ) + courses_by_org = ( + courses_qs .values("org") .annotate(total=Count("id")) .order_by("-total") ) courses_by_year = ( - CourseOverview.objects + courses_qs .exclude(start__isnull=True) .annotate(year=ExtractYear("start")) .values("year") @@ -81,7 +88,7 @@ def analyze(request): ) courses_by_lang = ( - CourseOverview.objects + courses_qs .exclude(language__isnull=True) .values("language") .annotate(total=Count("id")) @@ -89,14 +96,14 @@ def analyze(request): ) paced_data = [ - CourseOverview.objects.filter(self_paced=True).count(), - CourseOverview.objects.filter(self_paced=False).count(), + courses_qs.objects.filter(self_paced=True).count(), + courses_qs.objects.filter(self_paced=False).count(), ] context = { # список курсов (НЕ для JS — оставляем как есть) - "courses": courses[:50], - "courses_count": courses.count(), + "courses": courses_qs[:50], + "courses_count": courses_qs.count(), # факультеты "org_labels": json.dumps([c["org"] for c in courses_by_org]), From 202274b66e604c4a216610530c037fc08c0b8769 Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 18 May 2026 11:16:12 +0500 Subject: [PATCH 378/443] edited open analyze --- lms/djangoapps/news/views.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 876a4b826c46..1b58ab4fd2ce 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -63,16 +63,23 @@ def news_create(request): def analyze(request): courses = CourseOverview.objects.all() + course_org_filter = ["Test_kaznu", "rty", "123"] + today = timezone.now().date() - courses_by_org = ( + courses_qs = ( CourseOverview.objects + .exclude(org__in=course_org_filter) + .exclude(start__gt=today) + ) + courses_by_org = ( + courses_qs .values("org") .annotate(total=Count("id")) .order_by("-total") ) courses_by_year = ( - CourseOverview.objects + courses_qs .exclude(start__isnull=True) .annotate(year=ExtractYear("start")) .values("year") @@ -81,7 +88,7 @@ def analyze(request): ) courses_by_lang = ( - CourseOverview.objects + courses_qs .exclude(language__isnull=True) .values("language") .annotate(total=Count("id")) @@ -89,14 +96,14 @@ def analyze(request): ) paced_data = [ - CourseOverview.objects.filter(self_paced=True).count(), - CourseOverview.objects.filter(self_paced=False).count(), + courses_qs.objects.filter(self_paced=True).count(), + courses_qs.objects.filter(self_paced=False).count(), ] context = { # список курсов (НЕ для JS — оставляем как есть) - "courses": courses[:50], - "courses_count": courses.count(), + "courses": courses_qs[:50], + "courses_count": courses_qs.count(), # факультеты "org_labels": json.dumps([c["org"] for c in courses_by_org]), From 726c414724a673b1e42294c553db43a12ffd0658 Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 18 May 2026 11:24:47 +0500 Subject: [PATCH 379/443] fix mistake --- lms/djangoapps/news/views.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 1b58ab4fd2ce..7172a8c056cd 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -62,7 +62,6 @@ def news_create(request): def analyze(request): - courses = CourseOverview.objects.all() course_org_filter = ["Test_kaznu", "rty", "123"] today = timezone.now().date() @@ -96,8 +95,8 @@ def analyze(request): ) paced_data = [ - courses_qs.objects.filter(self_paced=True).count(), - courses_qs.objects.filter(self_paced=False).count(), + courses_qs.filter(self_paced=True).count(), + courses_qs.filter(self_paced=False).count(), ] context = { From 68a0ad4da7f10e00bd3eb264a7b9db2d821ed848 Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 18 May 2026 11:33:59 +0500 Subject: [PATCH 380/443] fix mistake2 --- lms/djangoapps/news/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 7172a8c056cd..a2c1ce901ae9 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -11,6 +11,7 @@ from django.db.models.functions import ExtractYear import json from django.db.models import Count +from django.utils import timezone from django.db.models.functions import ExtractYear from openedx.core.djangoapps.content.course_overviews.models import CourseOverview # from ..commerce.api.v1.models import Course @@ -18,7 +19,7 @@ import jwt import urllib.parse import random -from datetime import datetime, timedelta, timezone +from datetime import datetime, timedelta from django.http import HttpResponseRedirect From 466f01cde57903e9e1ec23a19cfc6944bff07785 Mon Sep 17 00:00:00 2001 From: Erarys Date: Wed, 20 May 2026 11:46:46 +0500 Subject: [PATCH 381/443] add new column to CourseOverview --- .../0031_courseoverview_faculty_directions.py | 34 +++++++++++++++++++ .../content/course_overviews/models.py | 3 ++ 2 files changed, 37 insertions(+) create mode 100644 openedx/core/djangoapps/content/course_overviews/migrations/0031_courseoverview_faculty_directions.py diff --git a/openedx/core/djangoapps/content/course_overviews/migrations/0031_courseoverview_faculty_directions.py b/openedx/core/djangoapps/content/course_overviews/migrations/0031_courseoverview_faculty_directions.py new file mode 100644 index 000000000000..702f8574a024 --- /dev/null +++ b/openedx/core/djangoapps/content/course_overviews/migrations/0031_courseoverview_faculty_directions.py @@ -0,0 +1,34 @@ +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ( + "course_overviews", + "0030_courseoverview_complexity_and_more", + ), + ] + + operations = [ + migrations.AddField( + model_name="courseoverview", + name="faculty", + field=models.TextField(null=True), + ), + migrations.AddField( + model_name="courseoverview", + name="directions", + field=models.TextField(null=True), + ), + migrations.AddField( + model_name="historicalcourseoverview", + name="faculty", + field=models.TextField(null=True), + ), + migrations.AddField( + model_name="historicalcourseoverview", + name="directions", + field=models.TextField(null=True), + ), + ] diff --git a/openedx/core/djangoapps/content/course_overviews/models.py b/openedx/core/djangoapps/content/course_overviews/models.py index c3a9e3e99089..07f471e9d5bf 100644 --- a/openedx/core/djangoapps/content/course_overviews/models.py +++ b/openedx/core/djangoapps/content/course_overviews/models.py @@ -139,6 +139,9 @@ class Meta: null=False, blank=False, ) + faculty = models.TextField(null=True) + directions = models.TextField(null=True) + self_paced = models.BooleanField(default=False) marketing_url = models.TextField(null=True) eligible_for_financial_aid = models.BooleanField(default=True) From 6fae2cfc98436f89bbf8c197a2cb4cff566ea9c3 Mon Sep 17 00:00:00 2001 From: Erarys Date: Wed, 20 May 2026 14:19:55 +0500 Subject: [PATCH 382/443] change column name in courseoverview --- lms/djangoapps/news/views.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index a2c1ce901ae9..d515a263911d 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -71,9 +71,12 @@ def analyze(request): .exclude(org__in=course_org_filter) .exclude(start__gt=today) ) - courses_by_org = ( + + courses_by_faculty = ( courses_qs - .values("org") + .exclude(faculty__isnull=True) + .exclude(faculty="") + .values("faculty") .annotate(total=Count("id")) .order_by("-total") ) @@ -101,20 +104,19 @@ def analyze(request): ] context = { - # список курсов (НЕ для JS — оставляем как есть) "courses": courses_qs[:50], "courses_count": courses_qs.count(), # факультеты - "org_labels": json.dumps([c["org"] for c in courses_by_org]), - "org_data": json.dumps([c["total"] for c in courses_by_org]), + "org_labels": json.dumps([c["faculty"] for c in courses_by_faculty], ensure_ascii=False), + "org_data": json.dumps([c["total"] for c in courses_by_faculty]), # годы "year_labels": json.dumps([c["year"] for c in courses_by_year]), "year_data": json.dumps([c["total"] for c in courses_by_year]), # языки - "lang_labels": json.dumps([c["language"] for c in courses_by_lang]), + "lang_labels": json.dumps([c["language"] for c in courses_by_lang], ensure_ascii=False), "lang_data": json.dumps([c["total"] for c in courses_by_lang]), # формат From 5f03b102610bbc57c40a33fbce176d3269a16c6e Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 18 May 2026 11:24:47 +0500 Subject: [PATCH 383/443] fix mistake --- lms/djangoapps/news/views.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 1b58ab4fd2ce..7172a8c056cd 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -62,7 +62,6 @@ def news_create(request): def analyze(request): - courses = CourseOverview.objects.all() course_org_filter = ["Test_kaznu", "rty", "123"] today = timezone.now().date() @@ -96,8 +95,8 @@ def analyze(request): ) paced_data = [ - courses_qs.objects.filter(self_paced=True).count(), - courses_qs.objects.filter(self_paced=False).count(), + courses_qs.filter(self_paced=True).count(), + courses_qs.filter(self_paced=False).count(), ] context = { From ee5dc13c70e09d2341d86ed36a587815e5a57ddc Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 18 May 2026 11:33:59 +0500 Subject: [PATCH 384/443] fix mistake2 --- lms/djangoapps/news/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 7172a8c056cd..a2c1ce901ae9 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -11,6 +11,7 @@ from django.db.models.functions import ExtractYear import json from django.db.models import Count +from django.utils import timezone from django.db.models.functions import ExtractYear from openedx.core.djangoapps.content.course_overviews.models import CourseOverview # from ..commerce.api.v1.models import Course @@ -18,7 +19,7 @@ import jwt import urllib.parse import random -from datetime import datetime, timedelta, timezone +from datetime import datetime, timedelta from django.http import HttpResponseRedirect From 2f16958498fa14251579d2d6c471e80678694369 Mon Sep 17 00:00:00 2001 From: Erarys Date: Wed, 20 May 2026 11:46:46 +0500 Subject: [PATCH 385/443] add new column to CourseOverview --- .../0031_courseoverview_faculty_directions.py | 34 +++++++++++++++++++ .../content/course_overviews/models.py | 3 ++ 2 files changed, 37 insertions(+) create mode 100644 openedx/core/djangoapps/content/course_overviews/migrations/0031_courseoverview_faculty_directions.py diff --git a/openedx/core/djangoapps/content/course_overviews/migrations/0031_courseoverview_faculty_directions.py b/openedx/core/djangoapps/content/course_overviews/migrations/0031_courseoverview_faculty_directions.py new file mode 100644 index 000000000000..702f8574a024 --- /dev/null +++ b/openedx/core/djangoapps/content/course_overviews/migrations/0031_courseoverview_faculty_directions.py @@ -0,0 +1,34 @@ +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ( + "course_overviews", + "0030_courseoverview_complexity_and_more", + ), + ] + + operations = [ + migrations.AddField( + model_name="courseoverview", + name="faculty", + field=models.TextField(null=True), + ), + migrations.AddField( + model_name="courseoverview", + name="directions", + field=models.TextField(null=True), + ), + migrations.AddField( + model_name="historicalcourseoverview", + name="faculty", + field=models.TextField(null=True), + ), + migrations.AddField( + model_name="historicalcourseoverview", + name="directions", + field=models.TextField(null=True), + ), + ] diff --git a/openedx/core/djangoapps/content/course_overviews/models.py b/openedx/core/djangoapps/content/course_overviews/models.py index c3a9e3e99089..07f471e9d5bf 100644 --- a/openedx/core/djangoapps/content/course_overviews/models.py +++ b/openedx/core/djangoapps/content/course_overviews/models.py @@ -139,6 +139,9 @@ class Meta: null=False, blank=False, ) + faculty = models.TextField(null=True) + directions = models.TextField(null=True) + self_paced = models.BooleanField(default=False) marketing_url = models.TextField(null=True) eligible_for_financial_aid = models.BooleanField(default=True) From b6e30fd769a78a7c27413ce7c5ba26949a48ab8e Mon Sep 17 00:00:00 2001 From: Erarys Date: Wed, 20 May 2026 14:19:55 +0500 Subject: [PATCH 386/443] change column name in courseoverview --- lms/djangoapps/news/views.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index a2c1ce901ae9..d515a263911d 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -71,9 +71,12 @@ def analyze(request): .exclude(org__in=course_org_filter) .exclude(start__gt=today) ) - courses_by_org = ( + + courses_by_faculty = ( courses_qs - .values("org") + .exclude(faculty__isnull=True) + .exclude(faculty="") + .values("faculty") .annotate(total=Count("id")) .order_by("-total") ) @@ -101,20 +104,19 @@ def analyze(request): ] context = { - # список курсов (НЕ для JS — оставляем как есть) "courses": courses_qs[:50], "courses_count": courses_qs.count(), # факультеты - "org_labels": json.dumps([c["org"] for c in courses_by_org]), - "org_data": json.dumps([c["total"] for c in courses_by_org]), + "org_labels": json.dumps([c["faculty"] for c in courses_by_faculty], ensure_ascii=False), + "org_data": json.dumps([c["total"] for c in courses_by_faculty]), # годы "year_labels": json.dumps([c["year"] for c in courses_by_year]), "year_data": json.dumps([c["total"] for c in courses_by_year]), # языки - "lang_labels": json.dumps([c["language"] for c in courses_by_lang]), + "lang_labels": json.dumps([c["language"] for c in courses_by_lang], ensure_ascii=False), "lang_data": json.dumps([c["total"] for c in courses_by_lang]), # формат From d42d168dd3d3c64a629aaac2a9776bb81b7b2271 Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 21 May 2026 10:22:46 +0500 Subject: [PATCH 387/443] change directions, faculty --- lms/templates/news/analyze.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index 4968a379ee36..a2509397e40f 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -68,7 +68,8 @@

    📚 Курсы

    % for course in courses:
    ${course.display_name} -
    Org: ${course.org}
    +
    Org: ${course.faculty}
    +
    Org: ${course.directions}
    Language: ${course.language}
    % if course.start:
    Start: ${course.start.strftime('%d.%m.%Y')}
    From dc4164c01c13c9d623d83d7246713bbc7111111b Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 21 May 2026 10:39:09 +0500 Subject: [PATCH 388/443] add new thing in analyze --- lms/djangoapps/news/views.py | 8 ++++++-- lms/templates/news/analyze.html | 25 +++++++++++++++++++------ 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index d515a263911d..6c319612e9e1 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -108,8 +108,12 @@ def analyze(request): "courses_count": courses_qs.count(), # факультеты - "org_labels": json.dumps([c["faculty"] for c in courses_by_faculty], ensure_ascii=False), - "org_data": json.dumps([c["total"] for c in courses_by_faculty]), + "faculty_labels": json.dumps([c["faculty"] for c in courses_by_faculty], ensure_ascii=False), + "faculty_data": json.dumps([c["total"] for c in courses_by_faculty]), + + # факультеты + "directions_labels": json.dumps([c["directions"] for c in courses_by_faculty], ensure_ascii=False), + "directions_data": json.dumps([c["total"] for c in courses_by_faculty]), # годы "year_labels": json.dumps([c["year"] for c in courses_by_year]), diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index a2509397e40f..fef94a4714a1 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -40,7 +40,12 @@

    📊 Аналитика курсов

    Курсы по факультетам

    - + +
    + +
    +

    Курсы по факультетам

    +
    @@ -68,8 +73,8 @@

    📚 Курсы

    % for course in courses:
    ${course.display_name} -
    Org: ${course.faculty}
    -
    Org: ${course.directions}
    +
    Faculty: ${course.faculty}
    +
    Directions: ${course.directions}
    Language: ${course.language}
    % if course.start:
    Start: ${course.start.strftime('%d.%m.%Y')}
    @@ -89,11 +94,19 @@

    📚 Курсы

    <%block name="extrajs"> <%block name="content"> +
    +
    +
    +
    +
    Course analytics
    +

    Аналитика курсов

    +

    + Сводка по опубликованным курсам без тестовых организаций. Ниже показаны актуальные курсы текущего года; графики факультетов и направлений фильтруют список. +

    +
    +
    Обновлено: ${generated_at}
    +
    -
    - -

    📊 Аналитика курсов

    +
    +
    +
    Всего курсов
    +
    ${courses_count}
    +
    Без тестовых организаций
    +
    +
    +
    Актуальные за ${current_year}
    +
    ${current_year_courses_count}
    +
    Используются в списке ниже
    +
    +
    +
    Факультетов
    +
    ${faculty_count}
    +
    С заполненным полем faculty
    +
    +
    +
    Направлений
    +
    ${directions_count}
    +
    С заполненным полем directions
    +
    +
    -

    Всего курсов: ${courses_count}

    +
    + Языки: + % if language_summary: + % for language in language_summary: + ${language["label"]}: ${language["total"]} + % endfor + % else: + Нет данных + % endif +
    - -
    -

    Курсы по факультетам

    - -
    +
    +
    +
    +

    Курсы по годам

    +

    Динамика количества курсов по дате старта.

    +
    +
    +
    +
    + +
    +
    +
    -
    -

    Курсы по факультетам

    - -
    +
    +
    +
    +

    Структура курсов

    +

    Нажмите на столбец факультета или направления, чтобы отфильтровать актуальные курсы ниже.

    +
    +
    +
    +
    +
    +
    +

    Курсы по факультетам

    +

    Топ факультетов по количеству курсов.

    +
    +
    +
    + +
    +
    +
    +
    +
    +

    Курсы по направлениям

    +

    Топ направлений по количеству курсов.

    +
    +
    +
    + +
    +
    +
    +
    - -
    -

    Курсы по годам

    - -
    +
    +
    +
    +

    Курсы топ 50

    +

    Актуальные курсы с датой старта в ${current_year} году.

    +
    +
    - -
    -

    Курсы по языкам

    - -
    +
    +
    +
    + +
    - -
    -

    Формат обучения

    - -
    +
    +
    +
    - -

    📚 Курсы

    - -
    - % for course in courses: -
    - ${course.display_name} -
    Faculty: ${course.faculty}
    -
    Directions: ${course.directions}
    -
    Language: ${course.language}
    - % if course.start: -
    Start: ${course.start.strftime('%d.%m.%Y')}
    - % endif -
    - - Перейти к курсу → - +
    + + + + + + + + + + + + +
    КурсФакультетНаправлениеЯзыкСтарт
    +
    +
    По выбранному фильтру нет актуальных курсов за ${current_year} год.
    -
    - % endfor +
    -
    - <%block name="extrajs"> From 234704398e5bc50d76157e455e2189e920da0129 Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 21 May 2026 11:59:47 +0500 Subject: [PATCH 391/443] make disign better --- lms/templates/news/analyze.html | 142 +++++++++++++++++++++----------- 1 file changed, 96 insertions(+), 46 deletions(-) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index 74d5e8302e01..89ae7fd49097 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -11,14 +11,28 @@ --analytics-bg: #f6f8fb; --analytics-surface: #ffffff; --analytics-surface-soft: #f9fafc; - --analytics-border: #d9e0ea; + + --analytics-border: #d7e0ea; + --analytics-border-soft: #e7edf4; + --analytics-text: #172033; --analytics-muted: #667085; - --analytics-accent: #1b5e8f; - --analytics-accent-strong: #123f63; - --analytics-accent-soft: #e8f2f8; - --analytics-good: #2f7d5a; + + /* Мягкий синий: не слишком яркий, но все еще аккуратный */ + --analytics-accent: #2f6f95; + --analytics-accent-strong: #244b66; + --analytics-accent-dark: #18384f; + --analytics-accent-soft: #edf5fa; + --analytics-accent-soft-2: #f5f9fc; + + --analytics-good: #3b8067; + + --analytics-radius-sm: 6px; + --analytics-radius-md: 10px; + --analytics-radius-lg: 12px; + --analytics-shadow: 0 14px 40px rgba(16, 24, 40, 0.08); + --analytics-shadow-soft: 0 2px 8px rgba(16, 24, 40, 0.05); } .analytics-page { @@ -52,6 +66,7 @@ } .analytics-title { + color: var(--analytics-text); font-size: 34px; font-weight: 700; line-height: 1.15; @@ -80,9 +95,9 @@ .summary-card { background: var(--analytics-surface); - border: 1px solid var(--analytics-border); - border-radius: 6px; - box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04); + border: 1px solid var(--analytics-border-soft); + border-radius: var(--analytics-radius-md); + box-shadow: var(--analytics-shadow-soft); padding: 18px; } @@ -108,9 +123,9 @@ .language-strip { background: var(--analytics-surface); - border: 1px solid var(--analytics-border); - border-radius: 6px; - box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04); + border: 1px solid var(--analytics-border-soft); + border-radius: var(--analytics-radius-md); + box-shadow: var(--analytics-shadow-soft); display: flex; gap: 10px; flex-wrap: wrap; @@ -129,8 +144,8 @@ .language-chip, .filter-chip { align-items: center; - background: var(--analytics-surface-soft); - border: 1px solid var(--analytics-border); + background: var(--analytics-accent-soft-2); + border: 1px solid #d4e4ee; border-radius: 999px; color: var(--analytics-text); display: inline-flex; @@ -138,7 +153,7 @@ font-weight: 600; gap: 8px; min-height: 30px; - padding: 5px 11px; + padding: 5px 12px; } .language-chip strong, @@ -159,6 +174,7 @@ } .section-heading h2 { + color: var(--analytics-text); font-size: 21px; font-weight: 700; margin: 0; @@ -172,8 +188,8 @@ .panel { background: var(--analytics-surface); - border: 1px solid var(--analytics-border); - border-radius: 6px; + border: 1px solid var(--analytics-border-soft); + border-radius: var(--analytics-radius-lg); box-shadow: var(--analytics-shadow); padding: 20px; } @@ -196,8 +212,8 @@ .active-filter-bar { align-items: center; background: var(--analytics-accent-soft); - border: 1px solid #c7deed; - border-radius: 6px; + border: 1px solid #cbdde9; + border-radius: var(--analytics-radius-md); display: none; gap: 12px; justify-content: space-between; @@ -217,14 +233,24 @@ .clear-filter-button { background: var(--analytics-surface); - border: 1px solid #b7d1e3; - border-radius: 4px; + border: 1px solid #c3d6e3; + border-radius: 999px; color: var(--analytics-accent-strong); cursor: pointer; font-size: 13px; font-weight: 700; min-height: 34px; - padding: 6px 12px; + padding: 6px 14px; + transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease; +} + +.clear-filter-button:hover, +.clear-filter-button:focus { + background: var(--analytics-accent-dark); + border-color: var(--analytics-accent-dark); + color: #ffffff; + box-shadow: 0 6px 14px rgba(24, 56, 79, 0.18); + outline: none; } .courses-toolbar { @@ -251,7 +277,7 @@ } .courses-table th { - background: #f1f4f8; + background: #f3f6fa; border-bottom: 1px solid var(--analytics-border); color: #384152; font-size: 12px; @@ -263,7 +289,7 @@ } .courses-table td { - border-bottom: 1px solid #e8edf3; + border-bottom: 1px solid var(--analytics-border-soft); color: var(--analytics-text); font-size: 14px; padding: 14px 12px; @@ -274,14 +300,22 @@ border-bottom: 0; } +.courses-table tbody tr { + transition: background-color 0.16s ease; +} + +.courses-table tbody tr:hover { + background: #f8fbfd; +} + .course-title { color: var(--analytics-accent-strong); font-weight: 700; text-decoration: none; } -.course-title:hover, -.course-link:hover { +.course-title:hover { + color: var(--analytics-accent); text-decoration: underline; } @@ -292,28 +326,41 @@ } .filter-button { - background: transparent; - border: 0; - color: var(--analytics-accent); + background: var(--analytics-accent-soft-2); + border: 1px solid #d4e4ee; + border-radius: 999px; + color: var(--analytics-accent-strong); cursor: pointer; font: inherit; + font-size: 13px; font-weight: 700; - padding: 0; + padding: 5px 11px; text-align: left; + transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease; } -.filter-button:hover { - color: var(--analytics-accent-strong); - text-decoration: underline; +.filter-button:hover, +.filter-button:focus { + background: var(--analytics-accent-dark); + border-color: var(--analytics-accent-dark); + color: #ffffff; + box-shadow: 0 6px 14px rgba(24, 56, 79, 0.16); + outline: none; + text-decoration: none; } .course-link { - color: var(--analytics-accent); + color: var(--analytics-accent-strong); font-weight: 700; text-decoration: none; white-space: nowrap; } +.course-link:hover { + color: var(--analytics-accent); + text-decoration: underline; +} + .empty-state { color: var(--analytics-muted); display: none; @@ -519,20 +566,20 @@

    Курсы топ 50

    var courses = ${courses_json | n}; var palette = [ - "#1b5e8f", - "#2f7d5a", - "#8a5b15", - "#6f4aa8", - "#9a3f3f", - "#34758f", - "#4f6f52", - "#625f6f", - "#7a5872", - "#526a8a" + "#2f6f95", + "#3b8067", + "#9a7742", + "#6f5f96", + "#9a5b5b", + "#4b7f8f", + "#6f7f54", + "#6b7280", + "#8a6680", + "#5f7896" ]; Chart.defaults.font.family = "'Inter', 'Segoe UI', Arial, sans-serif"; - Chart.defaults.color = "#667085"; + Chart.defaults.color = "#5f6f82"; Chart.defaults.plugins.legend.display = false; function barChart(canvasId, labels, values, horizontal) { @@ -556,8 +603,11 @@

    Курсы топ 50

    indexAxis: horizontal ? "y" : "x", plugins: { tooltip: { - backgroundColor: "#172033", - padding: 10, + backgroundColor: "#18384f", + borderColor: "#2f6f95", + borderWidth: 1, + cornerRadius: 8, + padding: 11, titleFont: { weight: "700" }, callbacks: { label: function (context) { From 9d431e3933ea5589922d2b142fd5c8b5903b884c Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 21 May 2026 17:31:57 +0500 Subject: [PATCH 392/443] filter for coruse duplicate --- lms/djangoapps/news/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 214ad91dd96e..282ca3a653e7 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -85,7 +85,7 @@ def analyze(request): .exclude(faculty__isnull=True) .exclude(faculty="") .values("faculty") - .annotate(total=Count("id")) + .annotate(total=Count("display_name", distinct=True)) .order_by("-total", "faculty")[:12] ) @@ -94,7 +94,7 @@ def analyze(request): .exclude(directions__isnull=True) .exclude(directions="") .values("directions") - .annotate(total=Count("id")) + .annotate(total=Count("display_name", distinct=True)) .order_by("-total", "directions")[:12] ) From 78a540924b97194f7ed72c207ad830a3825003d5 Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 22 May 2026 09:51:37 +0500 Subject: [PATCH 393/443] add distinct for course --- lms/djangoapps/news/views.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 282ca3a653e7..e48e495743b1 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -4,13 +4,11 @@ from .models import News from .forms import NewsForm from django.contrib.auth.decorators import user_passes_test -from django.db.models import Count from common.djangoapps.student.models import UserProfile -from django.db.models import Count -from django.db.models.functions import ExtractYear import json from django.db.models import Count +from django.db.models import Count, OuterRef, Subquery from django.utils import timezone from django.db.models.functions import ExtractYear from openedx.core.djangoapps.content.course_overviews.models import CourseOverview @@ -67,10 +65,24 @@ def analyze(request): today = timezone.now().date() current_year = today.year - courses_qs = ( + base_courses_qs = ( CourseOverview.objects .exclude(org__in=course_org_filter) .exclude(start__gt=today) + .exclude(display_name__isnull=True) + .exclude(display_name="") + ) + + latest_course_ids = ( + base_courses_qs + .filter(display_name=OuterRef("display_name")) + .order_by("-start", "-id") + .values("id")[:1] + ) + + courses_qs = ( + base_courses_qs + .filter(id__in=Subquery(latest_course_ids)) ) current_year_courses_qs = ( @@ -85,7 +97,7 @@ def analyze(request): .exclude(faculty__isnull=True) .exclude(faculty="") .values("faculty") - .annotate(total=Count("display_name", distinct=True)) + .annotate(total=Count("id")) .order_by("-total", "faculty")[:12] ) @@ -94,7 +106,7 @@ def analyze(request): .exclude(directions__isnull=True) .exclude(directions="") .values("directions") - .annotate(total=Count("display_name", distinct=True)) + .annotate(total=Count("id")) .order_by("-total", "directions")[:12] ) From 8c363424d3c3469c392296f771915b5994f11365 Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 22 May 2026 09:56:11 +0500 Subject: [PATCH 394/443] add new filter for course --- lms/djangoapps/news/views.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index e48e495743b1..3d07a13e84d3 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -62,13 +62,29 @@ def news_create(request): def analyze(request): course_org_filter = ["Test_kaznu", "rty", "123"] - today = timezone.now().date() + + now = timezone.now() + today = now.date() current_year = today.year - base_courses_qs = ( + max_valid_end = now + timedelta(days=366) + + base_courses_qs = ( CourseOverview.objects .exclude(org__in=course_org_filter) - .exclude(start__gt=today) + + # курс уже должен быть запущен + .exclude(start__isnull=True) + .exclude(start__gt=now) + + # курс еще не должен закончиться + .exclude(end__isnull=True) + .exclude(end__lt=now) + + # скрываем слишком долгие/ошибочные курсы, например до 2028 года + .exclude(end__gt=max_valid_end) + + # убираем пустые названия .exclude(display_name__isnull=True) .exclude(display_name="") ) From d129d9da886f94b1115d9b9b7170741a4cdee5cf Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 22 May 2026 10:12:35 +0500 Subject: [PATCH 395/443] new version --- lms/djangoapps/news/views.py | 107 ++++++++++++++++++----------------- 1 file changed, 55 insertions(+), 52 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 3d07a13e84d3..4de9b7d86745 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -7,10 +7,8 @@ from common.djangoapps.student.models import UserProfile import json -from django.db.models import Count -from django.db.models import Count, OuterRef, Subquery from django.utils import timezone -from django.db.models.functions import ExtractYear +from collections import Counte from openedx.core.djangoapps.content.course_overviews.models import CourseOverview # from ..commerce.api.v1.models import Course import logging @@ -24,6 +22,8 @@ from django.http import JsonResponse from django.views.decorators.csrf import csrf_exempt from django.conf import settings + +r logger = logging.getLogger(__name__) def news_list(request): @@ -87,64 +87,67 @@ def analyze(request): # убираем пустые названия .exclude(display_name__isnull=True) .exclude(display_name="") + .order_by("display_name", "-start", "-id") ) - latest_course_ids = ( - base_courses_qs - .filter(display_name=OuterRef("display_name")) - .order_by("-start", "-id") - .values("id")[:1] - ) + unique_courses = {} + for course in base_courses_qs: + if course.display_name not in unique_courses: + unique_courses[course.display_name] = course - courses_qs = ( - base_courses_qs - .filter(id__in=Subquery(latest_course_ids)) - ) + courses = list(unique_courses.values()) - current_year_courses_qs = ( - courses_qs - .exclude(start__isnull=True) - .filter(start__year=current_year) - .order_by("-start", "display_name") - ) + current_year_courses = [ + course for course in courses + if course.start and course.start.year == current_year + ] - courses_by_faculty = ( - courses_qs - .exclude(faculty__isnull=True) - .exclude(faculty="") - .values("faculty") - .annotate(total=Count("id")) - .order_by("-total", "faculty")[:12] + faculty_counter = Counter( + course.faculty for course in courses + if course.faculty ) - courses_by_directions = ( - courses_qs - .exclude(directions__isnull=True) - .exclude(directions="") - .values("directions") - .annotate(total=Count("id")) - .order_by("-total", "directions")[:12] + directions_counter = Counter( + course.directions for course in courses + if course.directions ) - courses_by_year = ( - courses_qs - .exclude(start__isnull=True) - .annotate(year=ExtractYear("start")) - .values("year") - .annotate(total=Count("id")) - .order_by("year") + year_counter = Counter( + course.start.year for course in courses + if course.start ) - courses_by_lang = ( - courses_qs - .exclude(language__isnull=True) - .exclude(language="") - .values("language") - .annotate(total=Count("id")) - .order_by("-total", "language") + language_counter = Counter( + course.language for course in courses + if course.language ) - top_courses = list(current_year_courses_qs[:50]) + courses_by_faculty = [ + {"faculty": faculty, "total": total} + for faculty, total in faculty_counter.most_common(12) + ] + + courses_by_directions = [ + {"directions": directions, "total": total} + for directions, total in directions_counter.most_common(12) + ] + + courses_by_year = [ + {"year": year, "total": year_counter[year]} + for year in sorted(year_counter) + ] + + courses_by_lang = [ + {"language": language, "total": total} + for language, total in language_counter.most_common() + ] + + top_courses = sorted( + current_year_courses, + key=lambda course: course.start, + reverse=True + )[:50] + courses_json = [ { "id": str(course.id), @@ -159,11 +162,11 @@ def analyze(request): ] context = { - "courses_count": courses_qs.count(), + "courses_count": len(courses), "current_year": current_year, - "current_year_courses_count": current_year_courses_qs.count(), - "faculty_count": courses_qs.exclude(faculty__isnull=True).exclude(faculty="").values("faculty").distinct().count(), - "directions_count": courses_qs.exclude(directions__isnull=True).exclude(directions="").values("directions").distinct().count(), + "current_year_courses_count": len(current_year_courses), + "faculty_count": len(set(course.faculty for course in courses if course.faculty)), + "directions_count": len(set(course.directions for course in courses if course.directions)), "generated_at": timezone.localtime().strftime("%d.%m.%Y %H:%M"), "language_summary": [ From 3925b08b9ad2e985372835e45460dd542c817b77 Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 22 May 2026 10:15:01 +0500 Subject: [PATCH 396/443] fix mistake --- lms/djangoapps/news/views.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 4de9b7d86745..89282dd1b253 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -8,7 +8,7 @@ import json from django.utils import timezone -from collections import Counte +from collections import Counter from openedx.core.djangoapps.content.course_overviews.models import CourseOverview # from ..commerce.api.v1.models import Course import logging @@ -23,7 +23,6 @@ from django.views.decorators.csrf import csrf_exempt from django.conf import settings -r logger = logging.getLogger(__name__) def news_list(request): From fe466e8112e7ff33cb651fa2a730061dfbdfb8bd Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 22 May 2026 10:37:22 +0500 Subject: [PATCH 397/443] remove filter for course full grapthic --- lms/djangoapps/news/views.py | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 89282dd1b253..87409bf6ef3c 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -23,6 +23,10 @@ from django.views.decorators.csrf import csrf_exempt from django.conf import settings + +from django.db.models.functions import ExtractYear +from django.db.models import Count + logger = logging.getLogger(__name__) def news_list(request): @@ -100,7 +104,22 @@ def analyze(request): course for course in courses if course.start and course.start.year == current_year ] + # + courses_by_year_qs = ( + CourseOverview.objects + .exclude(org__in=course_org_filter) + .exclude(start__isnull=True) + .annotate(year=ExtractYear("start")) + .values("year") + .annotate(total=Count("id")) + .order_by("year") + ) + courses_by_year = [ + {"year": row["year"], "total": row["total"]} + for row in courses_by_year_qs + ] + # faculty_counter = Counter( course.faculty for course in courses if course.faculty @@ -111,11 +130,6 @@ def analyze(request): if course.directions ) - year_counter = Counter( - course.start.year for course in courses - if course.start - ) - language_counter = Counter( course.language for course in courses if course.language @@ -131,11 +145,6 @@ def analyze(request): for directions, total in directions_counter.most_common(12) ] - courses_by_year = [ - {"year": year, "total": year_counter[year]} - for year in sorted(year_counter) - ] - courses_by_lang = [ {"language": language, "total": total} for language, total in language_counter.most_common() From 66d51547f81728d11d91018761adc1b38a5e2503 Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 22 May 2026 10:56:19 +0500 Subject: [PATCH 398/443] add new filters --- lms/djangoapps/news/views.py | 125 +++++++++++++++++++++++------------ 1 file changed, 82 insertions(+), 43 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 214ad91dd96e..87409bf6ef3c 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -4,15 +4,11 @@ from .models import News from .forms import NewsForm from django.contrib.auth.decorators import user_passes_test -from django.db.models import Count from common.djangoapps.student.models import UserProfile -from django.db.models import Count -from django.db.models.functions import ExtractYear import json -from django.db.models import Count from django.utils import timezone -from django.db.models.functions import ExtractYear +from collections import Counter from openedx.core.djangoapps.content.course_overviews.models import CourseOverview # from ..commerce.api.v1.models import Course import logging @@ -26,6 +22,11 @@ from django.http import JsonResponse from django.views.decorators.csrf import csrf_exempt from django.conf import settings + + +from django.db.models.functions import ExtractYear +from django.db.models import Count + logger = logging.getLogger(__name__) def news_list(request): @@ -64,59 +65,97 @@ def news_create(request): def analyze(request): course_org_filter = ["Test_kaznu", "rty", "123"] - today = timezone.now().date() + + now = timezone.now() + today = now.date() current_year = today.year - courses_qs = ( + max_valid_end = now + timedelta(days=366) + + base_courses_qs = ( CourseOverview.objects .exclude(org__in=course_org_filter) - .exclude(start__gt=today) - ) - current_year_courses_qs = ( - courses_qs + # курс уже должен быть запущен .exclude(start__isnull=True) - .filter(start__year=current_year) - .order_by("-start", "display_name") - ) + .exclude(start__gt=now) - courses_by_faculty = ( - courses_qs - .exclude(faculty__isnull=True) - .exclude(faculty="") - .values("faculty") - .annotate(total=Count("id")) - .order_by("-total", "faculty")[:12] - ) + # курс еще не должен закончиться + .exclude(end__isnull=True) + .exclude(end__lt=now) - courses_by_directions = ( - courses_qs - .exclude(directions__isnull=True) - .exclude(directions="") - .values("directions") - .annotate(total=Count("id")) - .order_by("-total", "directions")[:12] + # скрываем слишком долгие/ошибочные курсы, например до 2028 года + .exclude(end__gt=max_valid_end) + + # убираем пустые названия + .exclude(display_name__isnull=True) + .exclude(display_name="") + .order_by("display_name", "-start", "-id") ) - courses_by_year = ( - courses_qs + unique_courses = {} + for course in base_courses_qs: + if course.display_name not in unique_courses: + unique_courses[course.display_name] = course + + courses = list(unique_courses.values()) + + current_year_courses = [ + course for course in courses + if course.start and course.start.year == current_year + ] + # + courses_by_year_qs = ( + CourseOverview.objects + .exclude(org__in=course_org_filter) .exclude(start__isnull=True) .annotate(year=ExtractYear("start")) .values("year") .annotate(total=Count("id")) .order_by("year") ) + courses_by_year = [ + {"year": row["year"], "total": row["total"]} + for row in courses_by_year_qs + ] - courses_by_lang = ( - courses_qs - .exclude(language__isnull=True) - .exclude(language="") - .values("language") - .annotate(total=Count("id")) - .order_by("-total", "language") + # + faculty_counter = Counter( + course.faculty for course in courses + if course.faculty + ) + + directions_counter = Counter( + course.directions for course in courses + if course.directions ) - top_courses = list(current_year_courses_qs[:50]) + language_counter = Counter( + course.language for course in courses + if course.language + ) + + courses_by_faculty = [ + {"faculty": faculty, "total": total} + for faculty, total in faculty_counter.most_common(12) + ] + + courses_by_directions = [ + {"directions": directions, "total": total} + for directions, total in directions_counter.most_common(12) + ] + + courses_by_lang = [ + {"language": language, "total": total} + for language, total in language_counter.most_common() + ] + + top_courses = sorted( + current_year_courses, + key=lambda course: course.start, + reverse=True + )[:50] + courses_json = [ { "id": str(course.id), @@ -131,11 +170,11 @@ def analyze(request): ] context = { - "courses_count": courses_qs.count(), + "courses_count": len(courses), "current_year": current_year, - "current_year_courses_count": current_year_courses_qs.count(), - "faculty_count": courses_qs.exclude(faculty__isnull=True).exclude(faculty="").values("faculty").distinct().count(), - "directions_count": courses_qs.exclude(directions__isnull=True).exclude(directions="").values("directions").distinct().count(), + "current_year_courses_count": len(current_year_courses), + "faculty_count": len(set(course.faculty for course in courses if course.faculty)), + "directions_count": len(set(course.directions for course in courses if course.directions)), "generated_at": timezone.localtime().strftime("%d.%m.%Y %H:%M"), "language_summary": [ From 96e743478d721d4a486c1acc2d6ed1c7c67deb46 Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 22 May 2026 11:20:03 +0500 Subject: [PATCH 399/443] add certificate translate and fixed something --- .../_accomplishment-rendering.html | 67 ++++++++++--------- 1 file changed, 34 insertions(+), 33 deletions(-) diff --git a/lms/templates/certificates/_accomplishment-rendering.html b/lms/templates/certificates/_accomplishment-rendering.html index 7dde88d9f834..678c4fdf179b 100644 --- a/lms/templates/certificates/_accomplishment-rendering.html +++ b/lms/templates/certificates/_accomplishment-rendering.html @@ -19,7 +19,7 @@ - + @@ -124,7 +124,7 @@

    Внимание пользователям iPhone!

    СЕРТИФИКАТ
    - Сертификат настоящим подтверждает, что + ${_("This certificate hereby confirms")}
    ${accomplishment_copy_name} @@ -133,15 +133,15 @@

    Внимание пользователям iPhone!

    - Прошел(-а) онлайн курс: + ${_("Passed an online course")}: ${accomplishment_copy_course_name}
    - Дата выдачи: + ${_("Date of issue")}: ${formatted_date}
    - Регистрационный номер: + ${_("Registration number")}: ${certificate_id_number}
    @@ -150,43 +150,44 @@

    Внимание пользователям iPhone!

    Signature 1
    Галеева А.К.
    -
    Член Правления - проректор
    по академическим вопросам
    +
    ${_("Board Member - Vice-Rector for")}
    ${_("Academic Affairs")}
    Signature 2
    Круговых И.И.
    -
    Руководитель Офиса академических
    и цифровых инноваций
    +
    ${_("Head of the Office of")}
    ${_("academic and digital innovation")}
    - % if mode != 'base' and certificate_data: - <% - signatories = certificate_data.get('signatories', []) - label = "Автор" - - if signatories: - name_text = signatories[0].get('name', '') - matches = re.findall(r'[А-ЯЁA-Z]\.[А-ЯЁA-Z]\.', name_text) - if len(matches) > 1: - label = "Авторы" - %> - % for signatory in certificate_data.get('signatories', []): - % if signatory.get('signature_image_path'): -
    - ${signatory['name']} + % if mode != 'base' and certificate_data: + <% + signatories = certificate_data.get('signatories', []) + label = _("Course author") + + if signatories: + name_text = signatories[0].get('name', '') + matches = re.findall(r'[А-ЯЁA-Z]\.[А-ЯЁA-Z]\.', name_text) + if len(matches) > 1: + label = _("Course authors") + %> + + % for signatory in certificate_data.get('signatories', []): + % if signatory.get('signature_image_path'): +
    + ${signatory['name']} +
    + % endif +
    + ${signatory['name']}
    - % endif + % endfor +
    - ${signatory['name']} + ${label}
    - % endfor - -
    - ${label} -
    - % endif -
    + % endif +
    From 622fc57839985c2928f89a502ed6d201af65a897 Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 22 May 2026 11:25:35 +0500 Subject: [PATCH 400/443] add filter for analyze and add new strtime for certificate --- lms/djangoapps/certificates/views/webview.py | 3 ++- lms/djangoapps/news/views.py | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/certificates/views/webview.py b/lms/djangoapps/certificates/views/webview.py index 3b6cc75e4890..1a2651166508 100644 --- a/lms/djangoapps/certificates/views/webview.py +++ b/lms/djangoapps/certificates/views/webview.py @@ -121,7 +121,8 @@ def _update_certificate_context(context, course, course_overview, user_certifica else: date = display_date_for_certificate(course, user_certificate) # Translators: The format of the date includes the full name of the month - context['certificate_date_issued'] = strftime_localized(date, settings.CERTIFICATE_DATE_FORMAT) + # context['certificate_date_issued'] = strftime_localized(date, settings.CERTIFICATE_DATE_FORMAT) + context['certificate_date_issued'] = date.strftime("%d.%m.%Y") # Translators: This text represents the verification of the certificate context['document_meta_description'] = _('This is a valid {platform_name} certificate for {user_name}, ' diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 87409bf6ef3c..2c3a49bedb65 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -105,10 +105,13 @@ def analyze(request): if course.start and course.start.year == current_year ] # + max_year = current_year + 1 + courses_by_year_qs = ( CourseOverview.objects .exclude(org__in=course_org_filter) .exclude(start__isnull=True) + .filter(start__year__lte=max_year) .annotate(year=ExtractYear("start")) .values("year") .annotate(total=Count("id")) From 61f20ff3e6dc0676b97803aea2462cc0d12e0c8b Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 22 May 2026 12:11:03 +0500 Subject: [PATCH 401/443] width auto for certificate --- .../certificates/_accomplishment-rendering.html | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lms/templates/certificates/_accomplishment-rendering.html b/lms/templates/certificates/_accomplishment-rendering.html index 678c4fdf179b..7d494f555b88 100644 --- a/lms/templates/certificates/_accomplishment-rendering.html +++ b/lms/templates/certificates/_accomplishment-rendering.html @@ -25,9 +25,16 @@ @@ -114,7 +116,7 @@

    Внимание пользователям iPhone!

    -
    +
    From e5f1d10e9ae9e5bc9134c11865b079ba4226fe18 Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 22 May 2026 12:33:55 +0500 Subject: [PATCH 403/443] its big mistake so backup --- .../_accomplishment-rendering.html | 25 ++++++------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/lms/templates/certificates/_accomplishment-rendering.html b/lms/templates/certificates/_accomplishment-rendering.html index 4f430024a6ca..678c4fdf179b 100644 --- a/lms/templates/certificates/_accomplishment-rendering.html +++ b/lms/templates/certificates/_accomplishment-rendering.html @@ -25,20 +25,10 @@ @@ -115,8 +106,8 @@

    Внимание пользователям iPhone!

    -
    -
    +
    +
    From e1485ee9602551f138102185a01df3b1cac1acdc Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 22 May 2026 12:36:11 +0500 Subject: [PATCH 404/443] change width in analyze --- lms/templates/news/analyze.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index 89ae7fd49097..a6adc98ea9c9 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -267,13 +267,13 @@ } .courses-table-wrap { - overflow-x: auto; + overflow-x: hidden; } .courses-table { border-collapse: collapse; - min-width: 980px; width: 100%; + table-layout: fixed; } .courses-table th { From 04895d4cb4c6cb139f6aa87c55feef20f84e5dc1 Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 22 May 2026 12:45:52 +0500 Subject: [PATCH 405/443] add th, td limiter --- lms/templates/news/analyze.html | 36 +++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index a6adc98ea9c9..9f4be700f6a3 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -296,6 +296,42 @@ vertical-align: top; } +.courses-table td, +.courses-table th { + word-break: break-word; + overflow-wrap: anywhere; +} + +.courses-table th:nth-child(1), +.courses-table td:nth-child(1) { + width: 32%; +} + +.courses-table th:nth-child(2), +.courses-table td:nth-child(2) { + width: 16%; +} + +.courses-table th:nth-child(3), +.courses-table td:nth-child(3) { + width: 22%; +} + +.courses-table th:nth-child(4), +.courses-table td:nth-child(4) { + width: 9%; +} + +.courses-table th:nth-child(5), +.courses-table td:nth-child(5) { + width: 11%; +} + +.courses-table th:nth-child(6), +.courses-table td:nth-child(6) { + width: 10%; +} + .courses-table tr:last-child td { border-bottom: 0; } From 9e91059801de4393d3cd32032d5caa8aede7a37c Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 22 May 2026 14:40:44 +0500 Subject: [PATCH 406/443] fixed --- lms/templates/certificates/_accomplishment-rendering.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/templates/certificates/_accomplishment-rendering.html b/lms/templates/certificates/_accomplishment-rendering.html index 678c4fdf179b..93876d40dd3f 100644 --- a/lms/templates/certificates/_accomplishment-rendering.html +++ b/lms/templates/certificates/_accomplishment-rendering.html @@ -124,7 +124,7 @@

    Внимание пользователям iPhone!

    СЕРТИФИКАТ
    - ${_("This certificate hereby confirms")} + ${_("This certificate hereby confirms that")}
    ${accomplishment_copy_name} From d7c3c8be8786b3227aaf452ba18b1528d8122ba1 Mon Sep 17 00:00:00 2001 From: Erarys Date: Fri, 22 May 2026 14:43:37 +0500 Subject: [PATCH 407/443] fuck --- lms/djangoapps/news/views.py | 128 +++++++++++++++++++++++------------ 1 file changed, 85 insertions(+), 43 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 214ad91dd96e..2c3a49bedb65 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -4,15 +4,11 @@ from .models import News from .forms import NewsForm from django.contrib.auth.decorators import user_passes_test -from django.db.models import Count from common.djangoapps.student.models import UserProfile -from django.db.models import Count -from django.db.models.functions import ExtractYear import json -from django.db.models import Count from django.utils import timezone -from django.db.models.functions import ExtractYear +from collections import Counter from openedx.core.djangoapps.content.course_overviews.models import CourseOverview # from ..commerce.api.v1.models import Course import logging @@ -26,6 +22,11 @@ from django.http import JsonResponse from django.views.decorators.csrf import csrf_exempt from django.conf import settings + + +from django.db.models.functions import ExtractYear +from django.db.models import Count + logger = logging.getLogger(__name__) def news_list(request): @@ -64,59 +65,100 @@ def news_create(request): def analyze(request): course_org_filter = ["Test_kaznu", "rty", "123"] - today = timezone.now().date() + + now = timezone.now() + today = now.date() current_year = today.year - courses_qs = ( + max_valid_end = now + timedelta(days=366) + + base_courses_qs = ( CourseOverview.objects .exclude(org__in=course_org_filter) - .exclude(start__gt=today) - ) - current_year_courses_qs = ( - courses_qs + # курс уже должен быть запущен .exclude(start__isnull=True) - .filter(start__year=current_year) - .order_by("-start", "display_name") - ) + .exclude(start__gt=now) - courses_by_faculty = ( - courses_qs - .exclude(faculty__isnull=True) - .exclude(faculty="") - .values("faculty") - .annotate(total=Count("id")) - .order_by("-total", "faculty")[:12] - ) + # курс еще не должен закончиться + .exclude(end__isnull=True) + .exclude(end__lt=now) - courses_by_directions = ( - courses_qs - .exclude(directions__isnull=True) - .exclude(directions="") - .values("directions") - .annotate(total=Count("id")) - .order_by("-total", "directions")[:12] + # скрываем слишком долгие/ошибочные курсы, например до 2028 года + .exclude(end__gt=max_valid_end) + + # убираем пустые названия + .exclude(display_name__isnull=True) + .exclude(display_name="") + .order_by("display_name", "-start", "-id") ) - courses_by_year = ( - courses_qs + unique_courses = {} + for course in base_courses_qs: + if course.display_name not in unique_courses: + unique_courses[course.display_name] = course + + courses = list(unique_courses.values()) + + current_year_courses = [ + course for course in courses + if course.start and course.start.year == current_year + ] + # + max_year = current_year + 1 + + courses_by_year_qs = ( + CourseOverview.objects + .exclude(org__in=course_org_filter) .exclude(start__isnull=True) + .filter(start__year__lte=max_year) .annotate(year=ExtractYear("start")) .values("year") .annotate(total=Count("id")) .order_by("year") ) + courses_by_year = [ + {"year": row["year"], "total": row["total"]} + for row in courses_by_year_qs + ] - courses_by_lang = ( - courses_qs - .exclude(language__isnull=True) - .exclude(language="") - .values("language") - .annotate(total=Count("id")) - .order_by("-total", "language") + # + faculty_counter = Counter( + course.faculty for course in courses + if course.faculty + ) + + directions_counter = Counter( + course.directions for course in courses + if course.directions ) - top_courses = list(current_year_courses_qs[:50]) + language_counter = Counter( + course.language for course in courses + if course.language + ) + + courses_by_faculty = [ + {"faculty": faculty, "total": total} + for faculty, total in faculty_counter.most_common(12) + ] + + courses_by_directions = [ + {"directions": directions, "total": total} + for directions, total in directions_counter.most_common(12) + ] + + courses_by_lang = [ + {"language": language, "total": total} + for language, total in language_counter.most_common() + ] + + top_courses = sorted( + current_year_courses, + key=lambda course: course.start, + reverse=True + )[:50] + courses_json = [ { "id": str(course.id), @@ -131,11 +173,11 @@ def analyze(request): ] context = { - "courses_count": courses_qs.count(), + "courses_count": len(courses), "current_year": current_year, - "current_year_courses_count": current_year_courses_qs.count(), - "faculty_count": courses_qs.exclude(faculty__isnull=True).exclude(faculty="").values("faculty").distinct().count(), - "directions_count": courses_qs.exclude(directions__isnull=True).exclude(directions="").values("directions").distinct().count(), + "current_year_courses_count": len(current_year_courses), + "faculty_count": len(set(course.faculty for course in courses if course.faculty)), + "directions_count": len(set(course.directions for course in courses if course.directions)), "generated_at": timezone.localtime().strftime("%d.%m.%Y %H:%M"), "language_summary": [ From 40ba13cc46b878279f90007db1654b92d35b39ec Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 25 May 2026 08:53:28 +0500 Subject: [PATCH 408/443] fix certificate open --- lms/djangoapps/news/views.py | 4 ---- lms/templates/certificates/_accomplishment-rendering.html | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 2c3a49bedb65..82ca60540db4 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -76,10 +76,6 @@ def analyze(request): CourseOverview.objects .exclude(org__in=course_org_filter) - # курс уже должен быть запущен - .exclude(start__isnull=True) - .exclude(start__gt=now) - # курс еще не должен закончиться .exclude(end__isnull=True) .exclude(end__lt=now) diff --git a/lms/templates/certificates/_accomplishment-rendering.html b/lms/templates/certificates/_accomplishment-rendering.html index 678c4fdf179b..93876d40dd3f 100644 --- a/lms/templates/certificates/_accomplishment-rendering.html +++ b/lms/templates/certificates/_accomplishment-rendering.html @@ -124,7 +124,7 @@

    Внимание пользователям iPhone!

    СЕРТИФИКАТ
    - ${_("This certificate hereby confirms")} + ${_("This certificate hereby confirms that")}
    ${accomplishment_copy_name} From 5d987edf3245d441407c33e0e98ee62c1696d4f4 Mon Sep 17 00:00:00 2001 From: Erarys Date: Mon, 25 May 2026 14:37:49 +0500 Subject: [PATCH 409/443] remove empty row --- lms/djangoapps/news/views.py | 1 - 1 file changed, 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 82ca60540db4..6dd0fccd53db 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -199,7 +199,6 @@ def analyze(request): PROCTORING_URL = "https://farabi-proctoring.kaznu.kz/integration/simple/kaznu_open/start/" - def go_to_exam(request): SECRET_KEY = str(settings.PROCTORING_API_KEY) # ✅ 1. Берем данные из frontend From bd554d45bfcda8998c6e015f43053327283b0793 Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 28 May 2026 13:57:54 +0500 Subject: [PATCH 410/443] add translation for analyze --- lms/templates/news/analyze.html | 92 ++-- lms/templates/news/analyze_save.html | 775 +++++++++++++++++++++++++++ 2 files changed, 826 insertions(+), 41 deletions(-) create mode 100644 lms/templates/news/analyze_save.html diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index 9f4be700f6a3..3bbe7de9382f 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -460,54 +460,54 @@
    -
    Course analytics
    -

    Аналитика курсов

    +
    ${_("Course analytics")}
    +

    ${_("Course analysis")}

    - Сводка по опубликованным курсам без тестовых организаций. Ниже показаны актуальные курсы текущего года; графики факультетов и направлений фильтруют список. + ${_("Summary of published courses without test organizations. The current courses of the current year are shown below; schedules of faculties and directions filter the list.")}

    -
    Обновлено: ${generated_at}
    +
    ${_("Updated")}: ${generated_at}
    -
    +
    -
    Всего курсов
    +
    ${_("Total courses")}
    ${courses_count}
    -
    Без тестовых организаций
    +
    ${_("Without test courses")}
    -
    Актуальные за ${current_year}
    +
    ${_("Current issues")} ${current_year}
    ${current_year_courses_count}
    -
    Используются в списке ниже
    +
    ${_("Used in the list below")}
    -
    Факультетов
    +
    ${_("Faculties")}
    ${faculty_count}
    -
    С заполненным полем faculty
    +
    ${_("With filled faculty field")}
    -
    Направлений
    +
    ${_("Directions")}
    ${directions_count}
    -
    С заполненным полем directions
    +
    ${_("With filled directions field")}
    -
    - Языки: +
    + ${_("Languages")}: % if language_summary: % for language in language_summary: ${language["label"]}: ${language["total"]} % endfor % else: - Нет данных + ${_("No data")} % endif
    -

    Курсы по годам

    -

    Динамика количества курсов по дате старта.

    +

    ${_("Courses by year")}

    +

    ${_("Course count dynamics by start date.")}

    @@ -520,16 +520,16 @@

    Курсы по годам

    -

    Структура курсов

    -

    Нажмите на столбец факультета или направления, чтобы отфильтровать актуальные курсы ниже.

    +

    ${_("Course structure")}

    +

    ${_("Click a faculty or direction bar to filter the current courses below.")}

    -

    Курсы по факультетам

    -

    Топ факультетов по количеству курсов.

    +

    ${_("Courses by faculty")}

    +

    ${_("Top faculties by number of courses.")}

    @@ -539,8 +539,8 @@

    Курсы по факультетам

    -

    Курсы по направлениям

    -

    Топ направлений по количеству курсов.

    +

    ${_("Courses by directions")}

    +

    ${_("Top directions by number of courses.")}

    @@ -553,15 +553,15 @@

    Курсы по направлениям

    -

    Курсы топ 50

    -

    Актуальные курсы с датой старта в ${current_year} году.

    +

    ${_("Top 50 courses")}

    +

    ${_("Current courses with a start date in")} ${current_year} ${_("year")}.

    - +
    @@ -572,18 +572,18 @@

    Курсы топ 50

    - - - - - + + + + +
    КурсФакультетНаправлениеЯзыкСтарт${_("Course")}${_("Faculty")}${_("Direction")}${_("Language")}${_("Start")}
    -
    По выбранному фильтру нет актуальных курсов за ${current_year} год.
    +
    ${_("There are no current courses for the selected filter in")} ${current_year} ${_("year")}.
    @@ -601,6 +601,16 @@

    Курсы топ 50

    var directionsData = ${directions_data | n}; var courses = ${courses_json | n}; + var translations = { + courses: "${_("Courses")}", + notSpecified: "${_("Not specified")}", + open: "${_("Open")}", + shown: "${_("Shown")}", + of: "${_("of")}", + faculty: "${_("Faculty")}", + direction: "${_("Direction")}" + }; + var palette = [ "#2f6f95", "#3b8067", @@ -624,7 +634,7 @@

    Курсы топ 50

    data: { labels: labels, datasets: [{ - label: "Курсы", + label: translations.courses, data: values, backgroundColor: labels.map(function (_, index) { return palette[index % palette.length]; @@ -647,7 +657,7 @@

    Курсы топ 50

    titleFont: { weight: "700" }, callbacks: { label: function (context) { - return "Курсов: " + context.parsed[horizontal ? "x" : "y"]; + return translations.courses + ": " + context.parsed[horizontal ? "x" : "y"]; } } } @@ -697,7 +707,7 @@

    Курсы топ 50

    function filterButton(type, value) { if (!value) { - return 'Не указано'; + return '' + translations.notSpecified + ''; } return ''; } @@ -719,18 +729,18 @@

    Курсы топ 50

    '' + courseCell(course) + '' + '' + filterButton("faculty", course.faculty) + '' + '' + filterButton("directions", course.directions) + '' + - '' + escapeHtml(course.language || "Не указан") + '' + - '' + escapeHtml(course.start || "Не указано") + '' + - 'Открыть' + + '' + escapeHtml(course.language || translations.notSpecified) + '' + + '' + escapeHtml(course.start || translations.notSpecified) + '' + + '' + translations.open + '' + ''; }).join(""); - coursesCount.textContent = "Показано: " + visibleCourses.length + " из " + courses.length; + coursesCount.textContent = translations.shown + ": " + visibleCourses.length + " " + translations.of + " " + courses.length; emptyState.classList.toggle("is-visible", visibleCourses.length === 0); if (activeFilter) { activeFilterBar.classList.add("is-visible"); - activeFilterLabel.textContent = (activeFilter.type === "faculty" ? "Факультет: " : "Направление: ") + activeFilter.value; + activeFilterLabel.textContent = (activeFilter.type === "faculty" ? translations.faculty + ": " : translations.direction + ": ") + activeFilter.value; } else { activeFilterBar.classList.remove("is-visible"); activeFilterLabel.textContent = ""; diff --git a/lms/templates/news/analyze_save.html b/lms/templates/news/analyze_save.html new file mode 100644 index 000000000000..5a9e69f3e813 --- /dev/null +++ b/lms/templates/news/analyze_save.html @@ -0,0 +1,775 @@ +<%page expression_filter="h"/> +<%! from django.utils.translation import gettext as _ %> +<%inherit file="../main.html" /> + +<%block name="pagetitle">${_("Analyze")} + +<%block name="extrahead"> + + + + +<%block name="content"> +
    +
    +
    +
    +
    Course analytics
    +

    ${_("Course analysis")}

    +

    + ${_("Summary of published courses without test organizations. The current courses of the current year are shown below; schedules of faculties and directions filter the list")}. +

    +
    +
    ${_("Updated")}: ${generated_at}
    +
    + +
    +
    +
    ${_("Total courses")}
    +
    ${courses_count}
    +
    ${_("Without test courses")}
    +
    +
    +
    ${_("Current issues")} ${current_year}
    +
    ${current_year_courses_count}
    +
    Используются в списке ниже
    +
    +
    +
    Факультетов
    +
    ${faculty_count}
    +
    С заполненным полем faculty
    +
    +
    +
    Направлений
    +
    ${directions_count}
    +
    С заполненным полем directions
    +
    +
    + +
    + Языки: + % if language_summary: + % for language in language_summary: + ${language["label"]}: ${language["total"]} + % endfor + % else: + Нет данных + % endif +
    + +
    +
    +
    +

    Курсы по годам

    +

    Динамика количества курсов по дате старта.

    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +

    Структура курсов

    +

    Нажмите на столбец факультета или направления, чтобы отфильтровать актуальные курсы ниже.

    +
    +
    +
    +
    +
    +
    +

    Курсы по факультетам

    +

    Топ факультетов по количеству курсов.

    +
    +
    +
    + +
    +
    +
    +
    +
    +

    Курсы по направлениям

    +

    Топ направлений по количеству курсов.

    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +

    Курсы топ 50

    +

    Актуальные курсы с датой старта в ${current_year} году.

    +
    +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + + + + + + + + + + + + +
    КурсФакультетНаправлениеЯзыкСтарт
    +
    +
    По выбранному фильтру нет актуальных курсов за ${current_year} год.
    +
    +
    +
    +
    + + +<%block name="extrajs"> + + From a42e459fa9e10e7f2f77ec388f25ff7d5abb4114 Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 28 May 2026 15:26:46 +0500 Subject: [PATCH 411/443] add new word --- lms/templates/news/analyze.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index 3bbe7de9382f..f3886ef27af4 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -520,7 +520,7 @@

    ${_("Courses by year")}

    -

    ${_("Course structure")}

    +

    ${_("Course Structure")}

    ${_("Click a faculty or direction bar to filter the current courses below.")}

    @@ -604,7 +604,7 @@

    ${_("Top 50 courses")}

    var translations = { courses: "${_("Courses")}", notSpecified: "${_("Not specified")}", - open: "${_("Open")}", + open: "${_("Open it")}", shown: "${_("Shown")}", of: "${_("of")}", faculty: "${_("Faculty")}", From 1c23930985e44c181a2874d8a31ffbd9342ad7e0 Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 28 May 2026 16:08:39 +0500 Subject: [PATCH 412/443] test translate for faculty --- lms/djangoapps/news/views.py | 103 ++++++++++++++++++++++++++++++++++- 1 file changed, 100 insertions(+), 3 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 6dd0fccd53db..c10faa5f5214 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -62,7 +62,101 @@ def news_create(request): } return render_to_response('news/form.html', context, request=request) - +# +from django.utils.translation import get_language + +FACULTY_TRANSLATIONS = { + "Биологии и биотехнологии": { + "kk": "Биология және биотехнология", + "en": "Biology and Biotechnology", + }, + "Востоковедения": { + "kk": "Шығыстану", + "en": "Oriental Studies", + }, + "Высшая школа экономики и бизнеса": { + "kk": "Экономика және бизнес Жоғары мектебі", + "en": "Higher School of Economics and Business", + }, + "Довузовского образования": { + "kk": "Жоғары оқу орнына дейінгі білім беру", + "en": "Pre-university education", + }, + "Журналистики": { + "kk": "Журналистика", + "en": "Journalism", + }, + "ОАиЦИ": { + "kk": "ОАжЦИ", + "en": "OADI", + }, + "Информационных технологий": { + "kk": "Ақпараттық технологиялар", + "en": "Information Technology", + }, + "Истории": { + "kk": "Тарих", + "en": "History", + }, + "Исторический": { + "kk": "Тарихи", + "en": "Historical", + }, + "Кластер инжиниринга и наукоемких технологий": { + "kk": "Инжиниринг және жоғары технологиялар кластері", + "en": "Cluster of Engineering and High Technologies", + }, + "Механико-математический": { + "kk": "Механика-математика", + "en": "Mechanics and Mathematics", + }, + "Физико-технический": { + "kk": "Физика-техникалық", + "en": "Physics and Technology", + }, + "Филологический": { + "kk": "Филология", + "en": "Philology", + }, + "Философии и политологии": { + "kk": "Философия және саясаттану", + "en": "Philosophy and Political Science", + }, + "Химии и химической технологии": { + "kk": "Химия және химиялық технологиялар", + "en": "Chemistry and Chemical Technology", + }, + "Юридический": { + "kk": "Заң", + "en": "Law", + }, + "Международных отношений": { + "kk": "Халықаралық қатынастар", + "en": "International Relations", + }, + "Медицины и здравоохранения": { + "kk": "Медицина және денсаулық сақтау", + "en": "Medicine and Healthcare", + }, +} + + +def normalize_language_code(): + language = get_language() or "ru" + return language.split("-")[0].split("_")[0] + + +def translate_faculty(value): + if not value: + return "" + + language = normalize_language_code() + + if language == "ru": + return value + + return FACULTY_TRANSLATIONS.get(value, {}).get(language, value) +# def analyze(request): course_org_filter = ["Test_kaznu", "rty", "123"] @@ -159,7 +253,7 @@ def analyze(request): { "id": str(course.id), "display_name": course.display_name or str(course.id), - "faculty": course.faculty or "", + "faculty": translate_faculty(course.faculty), "directions": course.directions or "", "language": course.language or "", "start": course.start.strftime("%d.%m.%Y") if course.start else "", @@ -181,7 +275,10 @@ def analyze(request): for row in courses_by_lang ], - "faculty_labels": json.dumps([row["faculty"] for row in courses_by_faculty], ensure_ascii=False), + "faculty_labels": json.dumps( + [translate_faculty(row["faculty"]) for row in courses_by_faculty], + ensure_ascii=False + ), "faculty_data": json.dumps([row["total"] for row in courses_by_faculty]), "directions_labels": json.dumps([row["directions"] for row in courses_by_directions], ensure_ascii=False), From f806a5217894f3b2cb1e50636f0237d145f5d4c8 Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 28 May 2026 16:16:25 +0500 Subject: [PATCH 413/443] add new thing --- lms/djangoapps/news/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index c10faa5f5214..fa2b48db414d 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -90,7 +90,7 @@ def news_create(request): "kk": "ОАжЦИ", "en": "OADI", }, - "Информационных технологий": { + "Information Technology": { # Информационных технологий "kk": "Ақпараттық технологиялар", "en": "Information Technology", }, From c15d209b36a268002a0a0107538feb3b421517bf Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 28 May 2026 16:27:16 +0500 Subject: [PATCH 414/443] add directions --- lms/djangoapps/news/views.py | 37 +++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index fa2b48db414d..39edcd33ded6 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -90,7 +90,7 @@ def news_create(request): "kk": "ОАжЦИ", "en": "OADI", }, - "Information Technology": { # Информационных технологий + "Информационных технологий": { # "kk": "Ақпараттық технологиялар", "en": "Information Technology", }, @@ -140,6 +140,41 @@ def news_create(request): }, } +DIRECTION_TRANSLATIONS = { + "Социальные науки, журналистика и информация": { + "kk": "Әлеуметтік ғылымдар, журналистика және ақпарат", + "en": "Social sciences, Journalism and Information", + }, + "Естественные науки, математика и статистика": { + "kk": "Жаратылыстану ғылымдары, математика және статистика", + "en": "Natural Sciences, Mathematics and Statistics", + }, + "Искусство и гуманитарные науки": { + "kk": "Өнер және гуманитарлық ғылымдар", + "en": "Arts and Humanities", + }, + "Бизнес, управление и право": { + "kk": "Бизнес, басқару және құқық", + "en": "Business, Management and Law", + }, + "Педагогические науки": { + "kk": "Педагогикалық ғылымдар", + "en": "Pedagogical sciences", + }, + "Информационно-коммуникационные технологии": { + "kk": "Ақпараттық-коммуникациялық технологиялар", + "en": "Information and communication technologies", + }, + "Инженерные, обрабатывающие и строительные отрасли": { + "kk": "Инженерлік, өңдеу және құрылыс салалары", + "en": "Engineering, manufacturing and construction branches", + }, + "Здравоохранение": { + "kk": "Денсаулық сақтау", + "en": "Healthcare", + }, +} + def normalize_language_code(): language = get_language() or "ru" From f4e9661ff067ebadac503322a91151b229297c57 Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 28 May 2026 17:01:25 +0500 Subject: [PATCH 415/443] add translation --- lms/djangoapps/news/views.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 39edcd33ded6..f49fc3831ae4 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -191,6 +191,18 @@ def translate_faculty(value): return value return FACULTY_TRANSLATIONS.get(value, {}).get(language, value) + + +def translate_direction(value): + if not value: + return "" + + language = normalize_language_code() + + if language == "ru": + return value + + return DIRECTION_TRANSLATIONS.get(value, {}).get(language, value) # def analyze(request): course_org_filter = ["Test_kaznu", "rty", "123"] @@ -289,7 +301,7 @@ def analyze(request): "id": str(course.id), "display_name": course.display_name or str(course.id), "faculty": translate_faculty(course.faculty), - "directions": course.directions or "", + "directions": translate_direction(course.directions), "language": course.language or "", "start": course.start.strftime("%d.%m.%Y") if course.start else "", "url": "/courses/{}/about".format(course.id), @@ -316,7 +328,10 @@ def analyze(request): ), "faculty_data": json.dumps([row["total"] for row in courses_by_faculty]), - "directions_labels": json.dumps([row["directions"] for row in courses_by_directions], ensure_ascii=False), + "directions_labels": json.dumps( + [translate_direction(row["directions"]) for row in courses_by_directions], + ensure_ascii=False + ), "directions_data": json.dumps([row["total"] for row in courses_by_directions]), "year_labels": json.dumps([row["year"] for row in courses_by_year]), From a0f7d1d5431ed6972759730d59df7c88498bd45b Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 28 May 2026 17:04:58 +0500 Subject: [PATCH 416/443] add flexable columns --- lms/templates/news/analyze.html | 56 ++++++++++++++++++++++++++++++--- 1 file changed, 52 insertions(+), 4 deletions(-) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index f3886ef27af4..010081d3ab51 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -199,7 +199,7 @@ } .chart-wrap { - height: 300px; + height: 360px; position: relative; } @@ -627,12 +627,43 @@

    ${_("Top 50 courses")}

    Chart.defaults.font.family = "'Inter', 'Segoe UI', Arial, sans-serif"; Chart.defaults.color = "#5f6f82"; Chart.defaults.plugins.legend.display = false; + function wrapLabel(label, maxLength) { + if (!label) { + return ""; + } + + var words = String(label).split(" "); + var lines = []; + var currentLine = ""; + + words.forEach(function (word) { + var testLine = currentLine ? currentLine + " " + word : word; + + if (testLine.length > maxLength && currentLine) { + lines.push(currentLine); + currentLine = word; + } else { + currentLine = testLine; + } + }); + + if (currentLine) { + lines.push(currentLine); + } + return lines; + } function barChart(canvasId, labels, values, horizontal) { + var displayLabels = horizontal + ? labels.map(function (label) { + return wrapLabel(label, 24); + }) + : labels; + return new Chart(document.getElementById(canvasId), { type: "bar", data: { - labels: labels, + labels: displayLabels, datasets: [{ label: translations.courses, data: values, @@ -640,13 +671,21 @@

    ${_("Top 50 courses")}

    return palette[index % palette.length]; }), borderRadius: 4, - maxBarThickness: horizontal ? 28 : 42 + maxBarThickness: horizontal ? 24 : 42 }] }, options: { responsive: true, maintainAspectRatio: false, indexAxis: horizontal ? "y" : "x", + layout: { + padding: { + left: horizontal ? 8 : 0, + right: 16, + top: 4, + bottom: 4 + } + }, plugins: { tooltip: { backgroundColor: "#18384f", @@ -656,6 +695,9 @@

    ${_("Top 50 courses")}

    padding: 11, titleFont: { weight: "700" }, callbacks: { + title: function (context) { + return labels[context[0].dataIndex]; + }, label: function (context) { return translations.courses + ": " + context.parsed[horizontal ? "x" : "y"]; } @@ -671,7 +713,13 @@

    ${_("Top 50 courses")}

    y: { beginAtZero: true, grid: { color: horizontal ? "transparent" : "#edf1f6" }, - ticks: { precision: 0 } + ticks: { + precision: 0, + autoSkip: false, + font: { + size: horizontal ? 11 : 12 + } + } } } } From 3c60fdafcce11f2e45c91411a826edface87cc0b Mon Sep 17 00:00:00 2001 From: Erarys Date: Thu, 28 May 2026 17:32:06 +0500 Subject: [PATCH 417/443] remove tab row func --- lms/templates/news/analyze.html | 55 ++++++++++----------------------- 1 file changed, 16 insertions(+), 39 deletions(-) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index 010081d3ab51..8acc4c3c3a2a 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -209,6 +209,16 @@ gap: 18px; } +.stacked-charts { + display: grid; + grid-template-columns: 1fr; + gap: 18px; +} + +.chart-wrap--directions { + height: 430px; +} + .active-filter-bar { align-items: center; background: var(--analytics-accent-soft); @@ -524,7 +534,7 @@

    ${_("Course Structure")}

    ${_("Click a faculty or direction bar to filter the current courses below.")}

    -
    +
    @@ -536,6 +546,7 @@

    ${_("Courses by faculty")}

    +
    @@ -543,7 +554,7 @@

    ${_("Courses by directions")}

    ${_("Top directions by number of courses.")}

    -
    +
    @@ -627,43 +638,12 @@

    ${_("Top 50 courses")}

    Chart.defaults.font.family = "'Inter', 'Segoe UI', Arial, sans-serif"; Chart.defaults.color = "#5f6f82"; Chart.defaults.plugins.legend.display = false; - function wrapLabel(label, maxLength) { - if (!label) { - return ""; - } - var words = String(label).split(" "); - var lines = []; - var currentLine = ""; - - words.forEach(function (word) { - var testLine = currentLine ? currentLine + " " + word : word; - - if (testLine.length > maxLength && currentLine) { - lines.push(currentLine); - currentLine = word; - } else { - currentLine = testLine; - } - }); - - if (currentLine) { - lines.push(currentLine); - } - - return lines; - } function barChart(canvasId, labels, values, horizontal) { - var displayLabels = horizontal - ? labels.map(function (label) { - return wrapLabel(label, 24); - }) - : labels; - return new Chart(document.getElementById(canvasId), { type: "bar", data: { - labels: displayLabels, + labels: labels, datasets: [{ label: translations.courses, data: values, @@ -671,7 +651,7 @@

    ${_("Top 50 courses")}

    return palette[index % palette.length]; }), borderRadius: 4, - maxBarThickness: horizontal ? 24 : 42 + maxBarThickness: horizontal ? 28 : 42 }] }, options: { @@ -681,7 +661,7 @@

    ${_("Top 50 courses")}

    layout: { padding: { left: horizontal ? 8 : 0, - right: 16, + right: 18, top: 4, bottom: 4 } @@ -695,9 +675,6 @@

    ${_("Top 50 courses")}

    padding: 11, titleFont: { weight: "700" }, callbacks: { - title: function (context) { - return labels[context[0].dataIndex]; - }, label: function (context) { return translations.courses + ": " + context.parsed[horizontal ? "x" : "y"]; } From 6b02c9a801b2a4d2ee51799c894eadb901420c0f Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 2 Jun 2026 09:36:09 +0500 Subject: [PATCH 418/443] add new v of translation --- lms/djangoapps/news/views.py | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index f49fc3831ae4..f7278d67e4bf 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -66,42 +66,38 @@ def news_create(request): from django.utils.translation import get_language FACULTY_TRANSLATIONS = { - "Биологии и биотехнологии": { + "Биология и биотехнология": { "kk": "Биология және биотехнология", "en": "Biology and Biotechnology", }, - "Востоковедения": { + "Востоковедение": { "kk": "Шығыстану", "en": "Oriental Studies", }, "Высшая школа экономики и бизнеса": { - "kk": "Экономика және бизнес Жоғары мектебі", + "kk": "Экономика және бизнес жоғары мектебі", "en": "Higher School of Economics and Business", }, - "Довузовского образования": { + "Довузовское образование": { "kk": "Жоғары оқу орнына дейінгі білім беру", - "en": "Pre-university education", + "en": "Pre-university Education", }, - "Журналистики": { + "Журналистика": { "kk": "Журналистика", "en": "Journalism", }, - "ОАиЦИ": { - "kk": "ОАжЦИ", - "en": "OADI", + "Офис академических и цифровых инноваций": { + "kk": "Академиялық және цифрлық инновациялар кеңсесі", + "en": "Office of Academic and Digital Innovations", }, - "Информационных технологий": { # - "kk": "Ақпараттық технологиялар", - "en": "Information Technology", + "Информационные технологии и искусственный интеллект": { + "kk": "Ақпараттық технологиялар және жасанды интеллект", + "en": "Information Technology and Artificial Intelligence", }, - "Истории": { + "История": { "kk": "Тарих", "en": "History", }, - "Исторический": { - "kk": "Тарихи", - "en": "Historical", - }, "Кластер инжиниринга и наукоемких технологий": { "kk": "Инжиниринг және жоғары технологиялар кластері", "en": "Cluster of Engineering and High Technologies", From cbc3f3c44d616ad729db91c496a73e4aa49fd0c2 Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 2 Jun 2026 10:03:58 +0500 Subject: [PATCH 419/443] same --- lms/djangoapps/news/views.py | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index f49fc3831ae4..f7278d67e4bf 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -66,42 +66,38 @@ def news_create(request): from django.utils.translation import get_language FACULTY_TRANSLATIONS = { - "Биологии и биотехнологии": { + "Биология и биотехнология": { "kk": "Биология және биотехнология", "en": "Biology and Biotechnology", }, - "Востоковедения": { + "Востоковедение": { "kk": "Шығыстану", "en": "Oriental Studies", }, "Высшая школа экономики и бизнеса": { - "kk": "Экономика және бизнес Жоғары мектебі", + "kk": "Экономика және бизнес жоғары мектебі", "en": "Higher School of Economics and Business", }, - "Довузовского образования": { + "Довузовское образование": { "kk": "Жоғары оқу орнына дейінгі білім беру", - "en": "Pre-university education", + "en": "Pre-university Education", }, - "Журналистики": { + "Журналистика": { "kk": "Журналистика", "en": "Journalism", }, - "ОАиЦИ": { - "kk": "ОАжЦИ", - "en": "OADI", + "Офис академических и цифровых инноваций": { + "kk": "Академиялық және цифрлық инновациялар кеңсесі", + "en": "Office of Academic and Digital Innovations", }, - "Информационных технологий": { # - "kk": "Ақпараттық технологиялар", - "en": "Information Technology", + "Информационные технологии и искусственный интеллект": { + "kk": "Ақпараттық технологиялар және жасанды интеллект", + "en": "Information Technology and Artificial Intelligence", }, - "Истории": { + "История": { "kk": "Тарих", "en": "History", }, - "Исторический": { - "kk": "Тарихи", - "en": "Historical", - }, "Кластер инжиниринга и наукоемких технологий": { "kk": "Инжиниринг және жоғары технологиялар кластері", "en": "Cluster of Engineering and High Technologies", From 54b9fe9bb5e095e64bfa4b908eb5b9b988d8f162 Mon Sep 17 00:00:00 2001 From: Erarys Date: Tue, 2 Jun 2026 10:12:17 +0500 Subject: [PATCH 420/443] add complexity and another columns copy to new course (RERUN) --- cms/djangoapps/contentstore/tasks.py | 42 ++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/cms/djangoapps/contentstore/tasks.py b/cms/djangoapps/contentstore/tasks.py index b6cb2af53d56..ac421cbb6642 100644 --- a/cms/djangoapps/contentstore/tasks.py +++ b/cms/djangoapps/contentstore/tasks.py @@ -130,6 +130,46 @@ def clone_instance(instance, field_values): return instance +def copy_custom_course_overview_fields(source_course_key, destination_course_key): + """ + Copy custom CourseOverview fields from source course to rerun course. + """ + from openedx.core.djangoapps.content.course_overviews.models import CourseOverview + + try: + source_overview = CourseOverview.objects.get(id=source_course_key) + + try: + destination_overview = CourseOverview.objects.get(id=destination_course_key) + except CourseOverview.DoesNotExist: + destination_overview = CourseOverview.get_from_id(destination_course_key) + + destination_overview.faculty = source_overview.faculty + destination_overview.directions = source_overview.directions + destination_overview.complexity = source_overview.complexity + + destination_overview.save(update_fields=[ + "faculty", + "directions", + "complexity", + ]) + + LOGGER.info( + "my-log: copied custom overview fields during course rerun: %s -> %s, faculty=%s, directions=%s, complexity=%s", + source_course_key, + destination_course_key, + source_overview.faculty, + source_overview.directions, + source_overview.complexity, + ) + + except Exception: + LOGGER.exception( + "my-log: failed to copy custom overview fields during course rerun: %s -> %s", + source_course_key, + destination_course_key, + ) + @shared_task @set_code_owner_attribute @@ -152,6 +192,8 @@ def rerun_course(source_course_key_string, destination_course_key_string, user_i with store.default_store('split'): store.clone_course(source_course_key, destination_course_key, user_id, fields=fields) + copy_custom_course_overview_fields(source_course_key, destination_course_key) + update_unit_discussion_state_from_discussion_blocks(destination_course_key, user_id) # set initial permissions for the user to access the course. From 03a8eaa2738323c1d93b8c361cc6d4f9dd954b7e Mon Sep 17 00:00:00 2001 From: Erarys Date: Wed, 3 Jun 2026 16:39:12 +0500 Subject: [PATCH 421/443] org -> faculty --- lms/templates/courseware/courses.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lms/templates/courseware/courses.html b/lms/templates/courseware/courses.html index 640eedf18a30..9029ea8d07d7 100644 --- a/lms/templates/courseware/courses.html +++ b/lms/templates/courseware/courses.html @@ -261,8 +261,8 @@

    ${_("Filter Courses")}

    From 173f3a7cb7aac2c86f65c7a2b7f88e9c4267dc2b Mon Sep 17 00:00:00 2001 From: Erarys Date: Wed, 3 Jun 2026 17:04:05 +0500 Subject: [PATCH 422/443] fixed faculty --- lms/templates/courseware/courses.html | 42 +++++++++++++-------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/lms/templates/courseware/courses.html b/lms/templates/courseware/courses.html index 9029ea8d07d7..3bf65a770e27 100644 --- a/lms/templates/courseware/courses.html +++ b/lms/templates/courseware/courses.html @@ -259,9 +259,9 @@

    ${_("Filter Courses")}

    - + + % for faculty in sorted(set([c.faculty for c in courses if c.faculty])): % endfor @@ -281,7 +281,7 @@

    ${_("Filter Courses")}

    data-title="${course.display_name.lower()}" data-language="${course.language or ''}" data-status="${status}" - data-org="${course.display_org_with_default}"> + data-faculty="${course.faculty or ''}">
    ${course.display_name} @@ -315,32 +315,32 @@

    ${_('No courses found')}

    + + + From 3c18587e558f8ca496a3e5332f9e90bd2ab6bcc9 Mon Sep 17 00:00:00 2001 From: Erarys Abylkasym Date: Wed, 19 Aug 2026 15:58:22 +0500 Subject: [PATCH 428/443] add course launch count --- lms/djangoapps/news/views.py | 12 ++++++++++++ lms/templates/news/analyze.html | 17 ++++++++++++----- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index f7278d67e4bf..2e42326eedc6 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -292,6 +292,17 @@ def analyze(request): reverse=True )[:50] + course_run_counts = dict( + CourseOverview.objects + .exclude(org__in=course_org_filter) + .exclude(display_name__isnull=True) + .exclude(display_name="") + .exclude(start__isnull=True) + .values("display_name") + .annotate(total=Count("id", distinct=True)) + .values_list("display_name", "total") + ) + courses_json = [ { "id": str(course.id), @@ -300,6 +311,7 @@ def analyze(request): "directions": translate_direction(course.directions), "language": course.language or "", "start": course.start.strftime("%d.%m.%Y") if course.start else "", + "run_count": course_run_counts.get(course.display_name, 1), "url": "/courses/{}/about".format(course.id), } for course in top_courses diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index 8acc4c3c3a2a..89311a1709f4 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -314,17 +314,17 @@ .courses-table th:nth-child(1), .courses-table td:nth-child(1) { - width: 32%; + width: 29%; } .courses-table th:nth-child(2), .courses-table td:nth-child(2) { - width: 16%; + width: 15%; } .courses-table th:nth-child(3), .courses-table td:nth-child(3) { - width: 22%; + width: 19%; } .courses-table th:nth-child(4), @@ -334,12 +334,17 @@ .courses-table th:nth-child(5), .courses-table td:nth-child(5) { - width: 11%; + width: 9%; } .courses-table th:nth-child(6), .courses-table td:nth-child(6) { - width: 10%; + width: 11%; + + +.courses-table th:nth-child(7), +.courses-table td:nth-child(7) { + width: 8%; } .courses-table tr:last-child td { @@ -587,6 +592,7 @@

    ${_("Top 50 courses")}

    ${_("Faculty")} ${_("Direction")} ${_("Language")} + ${_("Launches")} ${_("Start")} @@ -755,6 +761,7 @@

    ${_("Top 50 courses")}

    '' + filterButton("faculty", course.faculty) + '' + '' + filterButton("directions", course.directions) + '' + '' + escapeHtml(course.language || translations.notSpecified) + '' + + '' + escapeHtml(course.run_count || 1) + '' + '' + escapeHtml(course.start || translations.notSpecified) + '' + '' + translations.open + '' + ''; From b6d5e20a42008961517aa5de5448b090dcb3826a Mon Sep 17 00:00:00 2001 From: Erarys Abylkasym Date: Thu, 20 Aug 2026 16:18:23 +0500 Subject: [PATCH 429/443] remove year filter --- lms/djangoapps/news/views.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 2e42326eedc6..abc92da15ad3 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -201,7 +201,7 @@ def translate_direction(value): return DIRECTION_TRANSLATIONS.get(value, {}).get(language, value) # def analyze(request): - course_org_filter = ["Test_kaznu", "rty", "123"] + course_org_filter = ["Test_kaznu", "rty", "123", "AI Tools in Action: Boosting Productivity with Modern Workflows", "Demo"] now = timezone.now() today = now.date() @@ -237,6 +237,8 @@ def analyze(request): course for course in courses if course.start and course.start.year == current_year ] + # Rewrite code to test it # + current_year_courses = courses # max_year = current_year + 1 @@ -244,7 +246,7 @@ def analyze(request): CourseOverview.objects .exclude(org__in=course_org_filter) .exclude(start__isnull=True) - .filter(start__year__lte=max_year) + # .filter(start__year__lte=max_year) .annotate(year=ExtractYear("start")) .values("year") .annotate(total=Count("id")) From a78ea589cc6c18b40a946752a605bfc6953a4789 Mon Sep 17 00:00:00 2001 From: Erarys Abylkasym Date: Fri, 21 Aug 2026 11:43:40 +0500 Subject: [PATCH 430/443] d --- lms/djangoapps/news/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index abc92da15ad3..cc75cadf91dd 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -214,8 +214,8 @@ def analyze(request): .exclude(org__in=course_org_filter) # курс еще не должен закончиться - .exclude(end__isnull=True) - .exclude(end__lt=now) + # .exclude(end__isnull=True) + # .exclude(end__lt=now) # скрываем слишком долгие/ошибочные курсы, например до 2028 года .exclude(end__gt=max_valid_end) From c5e46bd35811fd669b7d74923e1dd226ccc0368a Mon Sep 17 00:00:00 2001 From: Erarys Abylkasym Date: Fri, 21 Aug 2026 12:00:07 +0500 Subject: [PATCH 431/443] a --- lms/djangoapps/news/views.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index cc75cadf91dd..d7e2136dcd43 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -221,6 +221,7 @@ def analyze(request): .exclude(end__gt=max_valid_end) # убираем пустые названия + .filter(start__lte=now) .exclude(display_name__isnull=True) .exclude(display_name="") .order_by("display_name", "-start", "-id") From e24d54319d1eb3bb351d33f3a6693f70fa76b597 Mon Sep 17 00:00:00 2001 From: Erarys Abylkasym Date: Fri, 21 Aug 2026 12:19:25 +0500 Subject: [PATCH 432/443] a --- lms/djangoapps/news/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index d7e2136dcd43..5848a1b6318a 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -214,7 +214,7 @@ def analyze(request): .exclude(org__in=course_org_filter) # курс еще не должен закончиться - # .exclude(end__isnull=True) + .exclude(end__isnull=True) # .exclude(end__lt=now) # скрываем слишком долгие/ошибочные курсы, например до 2028 года From 5af99c722287f3bec71f0b8badbe6c98c39513b4 Mon Sep 17 00:00:00 2001 From: Erarys Abylkasym Date: Fri, 21 Aug 2026 12:29:56 +0500 Subject: [PATCH 433/443] d --- lms/djangoapps/news/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index 5848a1b6318a..a920a6d07148 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -247,7 +247,7 @@ def analyze(request): CourseOverview.objects .exclude(org__in=course_org_filter) .exclude(start__isnull=True) - # .filter(start__year__lte=max_year) + .filter(start__year__lte=max_year) .annotate(year=ExtractYear("start")) .values("year") .annotate(total=Count("id")) From 35f853c2db6a1afe638862be3499c8b367c9bac0 Mon Sep 17 00:00:00 2001 From: Erarys Abylkasym Date: Fri, 21 Aug 2026 12:43:58 +0500 Subject: [PATCH 434/443] Changes --- lms/templates/news/analyze.html | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index 89311a1709f4..8acc4c3c3a2a 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -314,17 +314,17 @@ .courses-table th:nth-child(1), .courses-table td:nth-child(1) { - width: 29%; + width: 32%; } .courses-table th:nth-child(2), .courses-table td:nth-child(2) { - width: 15%; + width: 16%; } .courses-table th:nth-child(3), .courses-table td:nth-child(3) { - width: 19%; + width: 22%; } .courses-table th:nth-child(4), @@ -334,17 +334,12 @@ .courses-table th:nth-child(5), .courses-table td:nth-child(5) { - width: 9%; + width: 11%; } .courses-table th:nth-child(6), .courses-table td:nth-child(6) { - width: 11%; - - -.courses-table th:nth-child(7), -.courses-table td:nth-child(7) { - width: 8%; + width: 10%; } .courses-table tr:last-child td { @@ -592,7 +587,6 @@

    ${_("Top 50 courses")}

    ${_("Faculty")} ${_("Direction")} ${_("Language")} - ${_("Launches")} ${_("Start")} @@ -761,7 +755,6 @@

    ${_("Top 50 courses")}

    '' + filterButton("faculty", course.faculty) + '' + '' + filterButton("directions", course.directions) + '' + '' + escapeHtml(course.language || translations.notSpecified) + '' + - '' + escapeHtml(course.run_count || 1) + '' + '' + escapeHtml(course.start || translations.notSpecified) + '' + '' + translations.open + '' + ''; From 1fcc0d3ee83ce1f397628689a6f65cf2fc606f5e Mon Sep 17 00:00:00 2001 From: Erarys Abylkasym Date: Fri, 21 Aug 2026 13:01:42 +0500 Subject: [PATCH 435/443] ok --- lms/templates/news/analyze.html | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index 8acc4c3c3a2a..89311a1709f4 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -314,17 +314,17 @@ .courses-table th:nth-child(1), .courses-table td:nth-child(1) { - width: 32%; + width: 29%; } .courses-table th:nth-child(2), .courses-table td:nth-child(2) { - width: 16%; + width: 15%; } .courses-table th:nth-child(3), .courses-table td:nth-child(3) { - width: 22%; + width: 19%; } .courses-table th:nth-child(4), @@ -334,12 +334,17 @@ .courses-table th:nth-child(5), .courses-table td:nth-child(5) { - width: 11%; + width: 9%; } .courses-table th:nth-child(6), .courses-table td:nth-child(6) { - width: 10%; + width: 11%; + + +.courses-table th:nth-child(7), +.courses-table td:nth-child(7) { + width: 8%; } .courses-table tr:last-child td { @@ -587,6 +592,7 @@

    ${_("Top 50 courses")}

    ${_("Faculty")} ${_("Direction")} ${_("Language")} + ${_("Launches")} ${_("Start")} @@ -755,6 +761,7 @@

    ${_("Top 50 courses")}

    '' + filterButton("faculty", course.faculty) + '' + '' + filterButton("directions", course.directions) + '' + '' + escapeHtml(course.language || translations.notSpecified) + '' + + '' + escapeHtml(course.run_count || 1) + '' + '' + escapeHtml(course.start || translations.notSpecified) + '' + '' + translations.open + '' + ''; From 14273e648c562d67d16ca3a4779986221be919f9 Mon Sep 17 00:00:00 2001 From: Erarys Abylkasym Date: Fri, 21 Aug 2026 14:05:47 +0500 Subject: [PATCH 436/443] add new style --- lms/templates/courseware/courses_summer.html | 961 ++++++++++++------- 1 file changed, 611 insertions(+), 350 deletions(-) diff --git a/lms/templates/courseware/courses_summer.html b/lms/templates/courseware/courses_summer.html index 7438d15fd067..5414b04baefb 100644 --- a/lms/templates/courseware/courses_summer.html +++ b/lms/templates/courseware/courses_summer.html @@ -9,214 +9,265 @@ <%block name="headextra"> - - -<%block name="content"> -
    -
    -
    -
    -
    ${_("Course analytics")}
    -

    ${_("Course analysis")}

    -

    - ${_("Summary of published courses without test organizations. The current courses of the current year are shown below; schedules of faculties and directions filter the list.")} -

    -
    -
    ${_("Updated")}: ${generated_at}
    -
    - -
    -
    -
    ${_("Total courses")}
    -
    ${courses_count}
    -
    ${_("Without test courses")}
    -
    -
    -
    ${_("Current issues")} ${current_year}
    -
    ${current_year_courses_count}
    -
    ${_("Used in the list below")}
    -
    -
    -
    ${_("Faculties")}
    -
    ${faculty_count}
    -
    ${_("With filled faculty field")}
    -
    -
    -
    ${_("Directions")}
    -
    ${directions_count}
    -
    ${_("With filled directions field")}
    -
    -
    - -
    - ${_("Languages")}: - % if language_summary: - % for language in language_summary: - ${language["label"]}: ${language["total"]} - % endfor - % else: - ${_("No data")} - % endif -
    - -
    -
    -
    -

    ${_("Courses by year")}

    -

    ${_("Course count dynamics by start date.")}

    -
    -
    -
    -
    - -
    -
    -
    - -
    -
    -
    -

    ${_("Course Structure")}

    -

    ${_("Click a faculty or direction bar to filter the current courses below.")}

    -
    -
    -
    -
    -
    -
    -

    ${_("Courses by faculty")}

    -

    ${_("Top faculties by number of courses.")}

    -
    -
    -
    - -
    -
    - -
    -
    -
    -

    ${_("Courses by directions")}

    -

    ${_("Top directions by number of courses.")}

    -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -

    ${_("Top 50 courses")}

    -

    ${_("Current courses with a start date in")} ${current_year} ${_("year")}.

    -
    -
    - -
    -
    -
    - -
    - -
    -
    -
    -
    - - - - - - - - - - - - - -
    ${_("Course")}${_("Faculty")}${_("Direction")}${_("Language")}${_("Launches")}${_("Start")}
    -
    -
    ${_("There are no current courses for the selected filter in")} ${current_year} ${_("year")}.
    -
    -
    -
    -
    - - -<%block name="extrajs"> - - +.summary-card { + background: var(--analytics-surface); + border: 1px solid rgba(255, 255, 255, 0.92); + border-radius: var(--analytics-radius-md); + box-shadow: var(--analytics-shadow); + overflow: hidden; + padding: 20px; + position: relative; + transition: box-shadow var(--analytics-transition), transform var(--analytics-transition); +} + +.summary-card::before { + background: linear-gradient(90deg, var(--analytics-navy), var(--analytics-blue-bright), var(--analytics-sky)); + content: ""; + height: 4px; + left: 0; + position: absolute; + right: 0; + top: 0; + transform: scaleX(0.34); + transform-origin: left; + transition: transform var(--analytics-transition); From 820187d0056ae22c0ab1d7c8de74af304ced5fa9 Mon Sep 17 00:00:00 2001 From: Erarys Abylkasym Date: Wed, 26 Aug 2026 11:00:45 +0500 Subject: [PATCH 443/443] remake --- lms/djangoapps/news/views.py | 4 +- lms/templates/news/analyze.html | 1021 +++++++++++++++++++++++++------ 2 files changed, 831 insertions(+), 194 deletions(-) diff --git a/lms/djangoapps/news/views.py b/lms/djangoapps/news/views.py index f858a76fa1df..98190738a0b5 100644 --- a/lms/djangoapps/news/views.py +++ b/lms/djangoapps/news/views.py @@ -293,7 +293,7 @@ def analyze(request): current_year_courses, key=lambda course: course.start, reverse=True - )[:50] + ) course_run_counts = dict( CourseOverview.objects @@ -351,7 +351,7 @@ def analyze(request): "courses_json": json.dumps(courses_json, ensure_ascii=False), } - return render_to_response("news/analyze_save.html", context, request=request) + return render_to_response("news/analyze.html", context, request=request) diff --git a/lms/templates/news/analyze.html b/lms/templates/news/analyze.html index 1e9d3da4b1d2..ae0c2cc6299d 100644 --- a/lms/templates/news/analyze.html +++ b/lms/templates/news/analyze.html @@ -1,192 +1,829 @@ - background: - radial-gradient(circle at 8% 18%, rgba(96, 165, 250, 0.16), transparent 25rem), - radial-gradient(circle at 94% 72%, rgba(30, 64, 175, 0.09), transparent 28rem), - var(--analytics-bg); - color: var(--analytics-text); - margin: -20px -15px 0; - min-height: 100vh; - overflow: hidden; - padding: 24px 20px 56px; - position: relative; -} - -.analytics-scroll-progress { - background: rgba(219, 234, 254, 0.32); - height: 4px; - left: 0; - pointer-events: none; - position: fixed; - right: 0; - top: 0; - z-index: 9999; -} - -.analytics-scroll-progress span { - background: linear-gradient(90deg, var(--analytics-navy), var(--analytics-blue-bright), var(--analytics-sky)); - box-shadow: 0 0 12px rgba(96, 165, 250, 0.65); - display: block; - height: 100%; - transform: scaleX(0); - transform-origin: left center; - width: 100%; - will-change: transform; -} - -.analytics-shell { - margin: 0 auto; - max-width: 1240px; -} - -.analytics-hero { - animation: analyticsGradient 14s ease-in-out infinite alternate; - background: linear-gradient(125deg, var(--analytics-navy), var(--analytics-blue), var(--analytics-blue-bright)); - background-size: 180% 180%; - border-radius: 28px; - box-shadow: 0 24px 62px rgba(26, 38, 60, 0.22); - color: #fff; - isolation: isolate; - margin-bottom: 20px; - min-height: 250px; - overflow: hidden; - padding: 44px 42px; - position: relative; -} - -.analytics-hero::before { - background-image: - linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px), - linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px); - background-size: 44px 44px; - content: ""; - inset: 0; - mask-image: linear-gradient(to right, #000, transparent 92%); - position: absolute; - z-index: -1; -} - -.analytics-hero__orb { - backdrop-filter: blur(3px); - background: linear-gradient(145deg, rgba(255, 255, 255, 0.24), rgba(96, 165, 250, 0.06)); - border: 1px solid rgba(255, 255, 255, 0.22); - border-radius: 50%; - pointer-events: none; - position: absolute; -} - -.analytics-hero__orb--one { - animation: analyticsFloatOne 8s ease-in-out infinite; - height: 155px; - right: 7%; - top: 24px; - width: 155px; -} - -.analytics-hero__orb--two { - animation: analyticsFloatTwo 10s ease-in-out infinite; - bottom: -38px; - height: 105px; - right: 25%; - width: 105px; -} - -.analytics-header { - align-items: flex-end; - display: flex; - gap: 28px; - justify-content: space-between; - min-height: 162px; - position: relative; - z-index: 2; -} - -.analytics-header__copy { - max-width: 760px; -} - -.analytics-kicker { - align-items: center; - backdrop-filter: blur(10px); - background: rgba(255, 255, 255, 0.12); - border: 1px solid rgba(255, 255, 255, 0.24); - border-radius: 999px; - color: #fff; - display: inline-flex; - font-size: 12px; - font-weight: 800; - gap: 8px; - letter-spacing: 0.11em; - margin-bottom: 17px; - padding: 8px 13px; - text-transform: uppercase; -} - -.analytics-kicker::before { - animation: analyticsPulse 2.4s ease-in-out infinite; - background: #93c5fd; - border-radius: 50%; - content: ""; - height: 8px; - width: 8px; -} - -.analytics-title { - color: #fff !important; - font-size: clamp(2.3rem, 5vw, 4rem); - font-weight: 850; - letter-spacing: -0.045em; - line-height: 1; - margin: 0; - text-shadow: 0 10px 30px rgba(7, 18, 48, 0.25); -} - -.analytics-subtitle { - color: rgba(255, 255, 255, 0.84); - font-size: 15px; - line-height: 1.65; - margin: 16px 0 0; - max-width: 720px; -} - -.analytics-date { - backdrop-filter: blur(12px); - background: rgba(255, 255, 255, 0.1); - border: 1px solid rgba(255, 255, 255, 0.2); - border-radius: 14px; - color: rgba(255, 255, 255, 0.88); - font-size: 12px; - font-weight: 650; - padding: 11px 14px; - white-space: nowrap; -} - -.analytics-summary { - display: grid; - gap: 14px; - grid-template-columns: repeat(4, minmax(0, 1fr)); - margin: -38px 20px 20px; - position: relative; - z-index: 5; -} - -.summary-card { - background: var(--analytics-surface); - border: 1px solid rgba(255, 255, 255, 0.92); - border-radius: var(--analytics-radius-md); - box-shadow: var(--analytics-shadow); - overflow: hidden; - padding: 20px; - position: relative; - transition: box-shadow var(--analytics-transition), transform var(--analytics-transition); -} - -.summary-card::before { - background: linear-gradient(90deg, var(--analytics-navy), var(--analytics-blue-bright), var(--analytics-sky)); - content: ""; - height: 4px; - left: 0; - position: absolute; - right: 0; - top: 0; - transform: scaleX(0.34); - transform-origin: left; - transition: transform var(--analytics-transition); +<%page expression_filter="h"/> +<%! from django.utils.translation import gettext as _ %> +<%inherit file="../main.html" /> + +<%block name="pagetitle">${_("Analyze")} + +<%block name="extrahead"> + + + + +<%block name="content"> +
    +
    +
    +
    +
    ${_("Course analytics")}
    +

    ${_("Course analysis")}

    +

    + ${_("Summary of published courses without test organizations. The current courses of the current year are shown below; schedules of faculties and directions filter the list.")} +

    +
    +
    ${_("Updated")}: ${generated_at}
    +
    + +
    +
    +
    ${_("Total courses")}
    +
    ${courses_count}
    +
    ${_("Without test courses")}
    +
    +
    +
    ${_("Current issues")} ${current_year}
    +
    ${current_year_courses_count}
    +
    ${_("Used in the list below")}
    +
    +
    +
    ${_("Faculties")}
    +
    ${faculty_count}
    +
    ${_("With filled faculty field")}
    +
    +
    +
    ${_("Directions")}
    +
    ${directions_count}
    +
    ${_("With filled directions field")}
    +
    +
    + +
    + ${_("Languages")}: + % if language_summary: + % for language in language_summary: + ${language["label"]}: ${language["total"]} + % endfor + % else: + ${_("No data")} + % endif +
    + +
    +
    +
    +

    ${_("Courses by year")}

    +

    ${_("Course count dynamics by start date.")}

    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +

    ${_("Course Structure")}

    +

    ${_("Click a faculty or direction bar to filter the current courses below.")}

    +
    +
    +
    +
    +
    +
    +

    ${_("Courses by faculty")}

    +

    ${_("Top faculties by number of courses.")}

    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    ${_("Courses by directions")}

    +

    ${_("Top directions by number of courses.")}

    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +

    ${_("Top 50 courses")}

    +

    ${_("Current courses with a start date in")} ${current_year} ${_("year")}.

    +
    +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + + + + + + + + + + + + + +
    ${_("Course")}${_("Faculty")}${_("Direction")}${_("Language")}${_("Launches")}${_("Start")}
    +
    +
    ${_("There are no current courses for the selected filter in")} ${current_year} ${_("year")} + . +
    +
    +
    +
    +
    + + +<%block name="extrajs"> + +