Store Discussions ID Map on CourseDiscussionSettings model when course publish signal is fired.
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.12 on 2018-04-23 21:09
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
import jsonfield.fields
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('django_comment_common', '0005_coursediscussionsettings'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='coursediscussionsettings',
|
||||
name='discussions_id_map',
|
||||
field=jsonfield.fields.JSONField(blank=True, help_text=b'Key/value store mapping discussion IDs to discussion XBlock usage keys.', null=True),
|
||||
),
|
||||
]
|
||||
@@ -8,6 +8,7 @@ from django.db import models
|
||||
from django.db.models.signals import post_save
|
||||
from django.dispatch import receiver
|
||||
from django.utils.translation import ugettext_noop
|
||||
from jsonfield.fields import JSONField
|
||||
from opaque_keys.edx.django.models import CourseKeyField
|
||||
from six import text_type
|
||||
|
||||
@@ -180,6 +181,11 @@ class CourseDiscussionSettings(models.Model):
|
||||
db_index=True,
|
||||
help_text="Which course are these settings associated with?",
|
||||
)
|
||||
discussions_id_map = JSONField(
|
||||
null=True,
|
||||
blank=True,
|
||||
help_text="Key/value store mapping discussion IDs to discussion XBlock usage keys.",
|
||||
)
|
||||
always_divide_inline_discussions = models.BooleanField(default=False)
|
||||
_divided_discussions = models.TextField(db_column='divided_discussions', null=True, blank=True) # JSON list
|
||||
|
||||
|
||||
@@ -139,11 +139,18 @@ def set_course_discussion_settings(course_key, **kwargs):
|
||||
divided_discussions (list): List of discussion ids.
|
||||
division_scheme (str): `CourseDiscussionSettings.NONE`, `CourseDiscussionSettings.COHORT`,
|
||||
or `CourseDiscussionSettings.ENROLLMENT_TRACK`
|
||||
discussions_id_map (dict): Dict containing discussion IDs as keys and the associated discussion
|
||||
XBlock usage keys as values.
|
||||
|
||||
Returns:
|
||||
A CourseDiscussionSettings object.
|
||||
"""
|
||||
fields = {'division_scheme': basestring, 'always_divide_inline_discussions': bool, 'divided_discussions': list}
|
||||
fields = {
|
||||
'division_scheme': basestring,
|
||||
'always_divide_inline_discussions': bool,
|
||||
'divided_discussions': list,
|
||||
'discussions_id_map': dict,
|
||||
}
|
||||
course_discussion_settings = get_course_discussion_settings(course_key)
|
||||
for field, field_type in fields.items():
|
||||
if field in kwargs:
|
||||
|
||||
Reference in New Issue
Block a user