Commit 0d823768 by Amir Qayyum Khan

Fixed exception related to course not found for ccx

parent 173154d1
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import logging
from ccx_keys.locator import CCXLocator
from courseware.courses import get_course_by_id
from django.db import migrations
from django.http import Http404
from lms.djangoapps.ccx.utils import (
add_master_course_staff_to_ccx,
remove_master_course_staff_from_ccx,
)
log = logging.getLogger("edx.ccx")
def add_master_course_staff_to_ccx_for_existing_ccx(apps, schema_editor):
"""
......@@ -23,16 +28,24 @@ def add_master_course_staff_to_ccx_for_existing_ccx(apps, schema_editor):
CustomCourseForEdX = apps.get_model("ccx", "CustomCourseForEdX")
list_ccx = CustomCourseForEdX.objects.all()
for ccx in list_ccx:
if ccx.course_id.deprecated:
# prevent migration for deprecated course ids.
if not ccx.course_id or ccx.course_id.deprecated:
# prevent migration for deprecated course ids or invalid ids.
continue
ccx_locator = CCXLocator.from_course_locator(ccx.course_id, unicode(ccx.id))
add_master_course_staff_to_ccx(
get_course_by_id(ccx.course_id),
ccx_locator,
ccx.display_name,
send_email=False
)
try:
course = get_course_by_id(ccx.course_id)
add_master_course_staff_to_ccx(
course,
ccx_locator,
ccx.display_name,
send_email=False
)
except Http404:
log.warning(
"Unable to add instructors and staff of master course %s to ccx %s.",
ccx.course_id,
ccx_locator
)
def remove_master_course_staff_from_ccx_for_existing_ccx(apps, schema_editor):
......@@ -47,17 +60,24 @@ def remove_master_course_staff_from_ccx_for_existing_ccx(apps, schema_editor):
CustomCourseForEdX = apps.get_model("ccx", "CustomCourseForEdX")
list_ccx = CustomCourseForEdX.objects.all()
for ccx in list_ccx:
if ccx.course_id.deprecated:
# prevent migration for deprecated course ids.
if not ccx.course_id or ccx.course_id.deprecated:
# prevent migration for deprecated course ids or invalid ids.
continue
ccx_locator = CCXLocator.from_course_locator(ccx.course_id, unicode(ccx.id))
remove_master_course_staff_from_ccx(
get_course_by_id(ccx.course_id),
ccx_locator,
ccx.display_name,
send_email=False
)
try:
course = get_course_by_id(ccx.course_id)
remove_master_course_staff_from_ccx(
course,
ccx_locator,
ccx.display_name,
send_email=False
)
except Http404:
log.warning(
"Unable to remove instructors and staff of master course %s from ccx %s.",
ccx.course_id,
ccx_locator
)
class Migration(migrations.Migration):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment