Exposing course run license via Course API

The license for course run content is now stored on the CourseOverviews model and exposed via the Course API.

LEARNER-2791
This commit is contained in:
Clinton Blackburn
2017-10-06 16:37:24 -04:00
committed by Clinton Blackburn
parent d38428ea41
commit a1419b15f7
5 changed files with 46 additions and 3 deletions

View File

@@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('course_overviews', '0014_courseoverview_certificate_available_date'),
]
operations = [
migrations.AddField(
model_name='courseoverview',
name='license',
field=models.CharField(max_length=255, blank=True),
),
]

View File

@@ -44,7 +44,7 @@ class CourseOverview(TimeStampedModel):
app_label = 'course_overviews'
# IMPORTANT: Bump this whenever you modify this model and/or add a migration.
VERSION = 6
VERSION = 7
# Cache entry versioning.
version = IntegerField()
@@ -103,6 +103,7 @@ class CourseOverview(TimeStampedModel):
eligible_for_financial_aid = BooleanField(default=True)
language = TextField(null=True)
license = models.CharField(max_length=255, blank=True)
@classmethod
def _create_or_update(cls, course):
@@ -195,6 +196,7 @@ class CourseOverview(TimeStampedModel):
course_overview.self_paced = course.self_paced
course_overview.language = course.language
course_overview.license = course.license or ''
return course_overview

View File

@@ -508,6 +508,17 @@ class CourseOverviewTestCase(ModuleStoreTestCase):
self.assertEqual(len(course_ids_to_overviews), 1)
self.assertIn(course_with_overview_1.id, course_ids_to_overviews)
@ddt.data(
('', '',),
(None, '',),
('all-rights-reserved', 'all-rights-reserved',),
)
@ddt.unpack
def test_license(self, license, expected_value):
course = CourseFactory.create(emit_signals=True, license=license)
course_overview = CourseOverview.get_from_id(course.id)
self.assertEqual(course_overview.license, expected_value)
@attr(shard=3)
@ddt.ddt