Merge pull request #22865 from cpennington/dont-delete-course-overviews
Dont delete course overviews
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.27 on 2020-01-15 20:22
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('course_modes', '0012_historicalcoursemode'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='coursemode',
|
||||
name='course',
|
||||
field=models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.DO_NOTHING, related_name='modes', to='course_overviews.CourseOverview'),
|
||||
),
|
||||
]
|
||||
@@ -54,7 +54,7 @@ class CourseMode(models.Model):
|
||||
db_constraint=False,
|
||||
db_index=True,
|
||||
related_name='modes',
|
||||
on_delete=models.CASCADE,
|
||||
on_delete=models.DO_NOTHING,
|
||||
)
|
||||
|
||||
# Django sets the `course_id` property in __init__ with the value from the database
|
||||
|
||||
@@ -21,6 +21,7 @@ from six.moves import zip
|
||||
from course_modes.helpers import enrollment_mode_display
|
||||
from course_modes.models import CourseMode, Mode, get_cosmetic_display_price, invalidate_course_mode_cache
|
||||
from course_modes.tests.factories import CourseModeFactory
|
||||
from openedx.core.djangoapps.content.course_overviews.models import CourseOverview
|
||||
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
|
||||
from xmodule.modulestore.tests.factories import CourseFactory
|
||||
|
||||
@@ -523,6 +524,19 @@ class CourseModeModelTest(TestCase):
|
||||
self.assertEqual(CourseMode.is_masters_only(self.course_key), expected_is_masters_only)
|
||||
|
||||
|
||||
class TestCourseOverviewIntegration(ModuleStoreTestCase):
|
||||
def test_course_overview_version_update(self):
|
||||
course = CourseFactory.create()
|
||||
course_overview = CourseOverview.get_from_id(course.id)
|
||||
course_overview.version -= 1
|
||||
course_overview.save()
|
||||
course_mode = CourseModeFactory.create(course_id=course_overview.id)
|
||||
|
||||
assert CourseMode.objects.filter(pk=course_mode.pk).exists()
|
||||
CourseOverview.get_from_id(course.id)
|
||||
assert CourseMode.objects.filter(pk=course_mode.pk).exists()
|
||||
|
||||
|
||||
class TestDisplayPrices(ModuleStoreTestCase):
|
||||
@override_settings(PAID_COURSE_REGISTRATION_CURRENCY=["USD", "$"])
|
||||
def test_get_cosmetic_display_price(self):
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.27 on 2020-01-15 20:22
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('entitlements', '0013_historicalcourseentitlementsupportdetail'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='courseentitlementsupportdetail',
|
||||
name='unenrolled_run',
|
||||
field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, to='course_overviews.CourseOverview'),
|
||||
),
|
||||
]
|
||||
@@ -499,7 +499,7 @@ class CourseEntitlementSupportDetail(TimeStampedModel):
|
||||
null=True,
|
||||
blank=True,
|
||||
db_constraint=False,
|
||||
on_delete=models.CASCADE,
|
||||
on_delete=models.DO_NOTHING,
|
||||
)
|
||||
|
||||
history = HistoricalRecords()
|
||||
|
||||
@@ -321,9 +321,8 @@ class CourseOverview(TimeStampedModel):
|
||||
try:
|
||||
course_overview = cls.objects.select_related('image_set').get(id=course_id)
|
||||
if course_overview.version < cls.VERSION:
|
||||
# Throw away old versions of CourseOverview, as they might contain stale data.
|
||||
course_overview.delete()
|
||||
course_overview = None
|
||||
# Reload the overview from the modulestore to update the version
|
||||
course_overview = cls.load_from_module_store(course_id)
|
||||
except cls.DoesNotExist:
|
||||
course_overview = None
|
||||
|
||||
|
||||
Reference in New Issue
Block a user