Allow communication experiences to be customized per-learner
This commit is contained in:
committed by
Gabe Mulley
parent
908d5f91a5
commit
e5c8acb609
@@ -6,6 +6,13 @@ from model_utils.models import TimeStampedModel
|
||||
from config_models.models import ConfigurationModel
|
||||
|
||||
|
||||
EXPERIENCE_TYPES = (
|
||||
(0, 'Recurring Nudge and Upgrade Reminder'),
|
||||
(1, 'Course Updates'),
|
||||
)
|
||||
DEFAULT_EXPERIENCE_TYPE = EXPERIENCE_TYPES[0][0]
|
||||
|
||||
|
||||
class Schedule(TimeStampedModel):
|
||||
enrollment = models.OneToOneField('student.CourseEnrollment', null=False)
|
||||
active = models.BooleanField(
|
||||
@@ -23,6 +30,12 @@ class Schedule(TimeStampedModel):
|
||||
help_text=_('Deadline by which the learner must upgrade to a verified seat')
|
||||
)
|
||||
|
||||
def get_experience_type(self):
|
||||
if (hasattr(self, 'experience')):
|
||||
return self.experience.experience_type
|
||||
else:
|
||||
return DEFAULT_EXPERIENCE_TYPE
|
||||
|
||||
class Meta(object):
|
||||
verbose_name = _('Schedule')
|
||||
verbose_name_plural = _('Schedules')
|
||||
@@ -39,3 +52,8 @@ class ScheduleConfig(ConfigurationModel):
|
||||
deliver_upgrade_reminder = models.BooleanField(default=False)
|
||||
enqueue_course_update = models.BooleanField(default=False)
|
||||
deliver_course_update = models.BooleanField(default=False)
|
||||
|
||||
|
||||
class ScheduleExperience(models.Model):
|
||||
schedule = models.OneToOneField(Schedule, related_name='experience')
|
||||
experience_type = models.IntegerField(choices=EXPERIENCE_TYPES, default=DEFAULT_EXPERIENCE_TYPE)
|
||||
|
||||
Reference in New Issue
Block a user