Allow communication experiences to be customized per-learner

This commit is contained in:
Tyler Hallada
2017-10-20 12:07:31 -04:00
committed by Gabe Mulley
parent 908d5f91a5
commit e5c8acb609
4 changed files with 54 additions and 2 deletions

View File

@@ -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)