Skip to content
This repository has been archived by the owner on Feb 27, 2024. It is now read-only.

Commit

Permalink
[MCKIN-7759] Remove usage of coursemetadata (#14)
Browse files Browse the repository at this point in the history
  • Loading branch information
xitij2000 committed Mar 20, 2019
2 parents d74f46a + 2f63ccf commit 3cf5fc6
Show file tree
Hide file tree
Showing 6 changed files with 3 additions and 104 deletions.
5 changes: 0 additions & 5 deletions course_metadata/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,3 @@ class SolutionsAppCourseMetadataConfig(AppConfig):

name = 'course_metadata'
verbose_name = 'Course meta data'

def ready(self):

# import signal handlers
import course_metadata.signals # pylint: disable=unused-import
18 changes: 0 additions & 18 deletions course_metadata/signals.py

This file was deleted.

34 changes: 0 additions & 34 deletions course_metadata/tasks.py

This file was deleted.

22 changes: 0 additions & 22 deletions course_metadata/tests/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
from xmodule.modulestore.django import SignalHandler
from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory

from course_metadata.signals import course_publish_handler_in_course_metadata
from course_metadata.models import CourseAggregatedMetaData

from xmodule.modulestore.tests.django_utils import (
Expand Down Expand Up @@ -52,27 +51,6 @@ def setUp(self):
display_name="Html component"
)

def test_course_aggregate_metadata_update_on_course_published(self):
"""
Test course aggregate metadata update receiver is called on course_published signal
and CourseAggregatedMetaData is updated
"""
with mock_signal_receiver(SignalHandler.course_published,
wraps=course_publish_handler_in_course_metadata) as receiver:
self.assertEqual(receiver.call_count, 0)

# adding new video unit to course should fire the signal
ItemFactory.create(
category="video",
parent_location=self.unit.location,
data=self.test_data,
display_name="Video to test aggregates"
)

self.assertEqual(receiver.call_count, 1)
total_assessments = CourseAggregatedMetaData.objects.get(id=self.course.id).total_assessments
self.assertEqual(total_assessments, 2)

def test_get_course_aggregate_metadata_by_course_key(self):
"""
Test course aggregate metadata should compute and return metadata
Expand Down
26 changes: 2 additions & 24 deletions course_metadata/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,39 +5,17 @@
from django.db.models import Q

from xmodule.modulestore.django import modulestore
from progress.models import StudentProgress, CourseModuleCompletion
from student.models import CourseEnrollment


def remove_orphans_and_recalculate_progress(course_key, detached_categories):
def remove_orphans(course_key, detached_categories):
from contentstore.views.item import _delete_orphans
from xmodule.modulestore import ModuleStoreEnum
from progress.signals import is_valid_progress_module

_delete_orphans(
course_key, ModuleStoreEnum.UserID.mgmt_command, True
)

users = CourseEnrollment.objects.users_enrolled_in(course_key)

detached_categories_list = [Q(content_id__contains=item.strip()) for item in detached_categories]
detached_categories_list = reduce(lambda a, b: a | b, detached_categories_list)

for user in users:
completions = CourseModuleCompletion.objects.filter(course_id=course_key, user_id=user.id)\
.exclude(detached_categories_list).values_list('content_id', flat=True).distinct()

num_completions = sum([is_valid_progress_module(content_id=content_id) for content_id in completions])
try:
progress_record = StudentProgress.objects.get(user=user, course_id=course_key)

if progress_record.completions != num_completions:
progress_record.completions = num_completions
progress_record.save()

except StudentProgress.DoesNotExist:
pass


def get_course_leaf_nodes(course_key):
"""
Expand All @@ -48,7 +26,7 @@ def get_course_leaf_nodes(course_key):
store = modulestore()
orphans = store.get_orphans(course_key)
if orphans:
remove_orphans_and_recalculate_progress(course_key, detached_categories)
remove_orphans(course_key, detached_categories)
verticals = store.get_items(course_key, qualifiers={'category': 'vertical'})
for vertical in verticals:
if hasattr(vertical, 'children') and not is_progress_detached_vertical(vertical) and \
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

setup(
name='course-edx-platform-extensions',
version='1.1.1',
version='2.0.0',
description='Course metadata management extension for edX platform',
long_description=open('README.rst').read(),
author='edX',
Expand Down

0 comments on commit 3cf5fc6

Please sign in to comment.