Commit 7bcf85e0 by Albert St. Aubin

simple method of updating entitlement on Enroll

parent ff55826e
......@@ -25,6 +25,7 @@ from lms.djangoapps.commerce.utils import EcommerceService
from lms.djangoapps.experiments.utils import get_experiment_user_metadata_context
from openedx.core.djangoapps.embargo import api as embargo_api
from student.models import CourseEnrollment
from entitlements.utils import get_entitlement_data
from third_party_auth.decorators import tpa_hint_ends_existing_session
from util import organizations_helpers as organization_api
from util.db import outer_atomic
......@@ -85,6 +86,7 @@ class ChooseModeView(View):
return redirect(embargo_redirect)
enrollment_mode, is_active = CourseEnrollment.enrollment_mode_for_user(request.user, course_key)
entitlement_data = get_entitlement_data(request.user, course_key)
modes = CourseMode.modes_for_course_dict(course_key)
ecommerce_service = EcommerceService()
......
from django.db import models
from django.contrib.auth.models import User
from student.models import CourseEnrollment
from course_modes.models import CourseMode
from opaque_keys.edx.keys import CourseKey
class CourseEntitlement(models.Model):
"""
......@@ -18,7 +19,7 @@ class CourseEntitlement(models.Model):
mode = models.CharField(default=CourseMode.DEFAULT_MODE_SLUG, max_length=100)
enrollment_course_id = models.ForeignKey(CourseEnrollment, null=True)
enrollment_course_id = models.ForeignKey('student.CourseEnrollment', null=True)
is_active = models.BooleanField(default=1)
......@@ -36,3 +37,11 @@ class CourseEntitlement(models.Model):
def get_user_course_entitlement(cls, user, course):
# TODO: Implement check to see if the Course ID is valid
return cls.objects.filter(user_id=user, root_course_id=course).all()
@classmethod
def set_enrollment(cls, user, course_key, course_enrollment):
course = course_key.org + '+' + course_key.course
return cls.objects.filter(
user_id=user,
root_course_id=course
).update(enrollment_course_id=course_enrollment)
......@@ -53,6 +53,8 @@ from course_modes.models import CourseMode
from courseware.models import DynamicUpgradeDeadlineConfiguration, CourseDynamicUpgradeDeadlineConfiguration
from enrollment.api import _default_course_mode
from entitlements.utils import get_entitlement_data
from entitlements.models import CourseEntitlement
from openedx.core.djangoapps.content.course_overviews.models import CourseOverview
from openedx.core.djangoapps.schedules.models import ScheduleConfig
from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers
......@@ -1334,6 +1336,9 @@ class CourseEnrollment(models.Model):
enrollment.update_enrollment(is_active=True, mode=mode)
enrollment.send_signal(EnrollStatusChange.enroll)
if get_entitlement_data(user, course_key.org + '+' + course_key.course):
CourseEntitlement.set_enrollment(user, course_key, enrollment)
return enrollment
@classmethod
......
......@@ -50,7 +50,9 @@
handleEnroll: function() {
// Enrollment click event handled here
var courseRunKey = $('.run-select').val() || this.model.get('course_run_key');
var courseRunKey = $('.' + this.$el[0].className + ' .run-select').val() ||
this.model.get('course_run_key');
this.model.updateCourseRun(courseRunKey);
if (!this.model.get('is_enrolled')) {
// Create the enrollment.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment