Commit 6f1a2ed5 by cewing

MIT: CCX. Fix issues identified in code review

Remove over-cautious assertion and allow calling errors to be calling errors

fix problems in auto_enroll method

ensure that the active poc is wiped out if the user has no poc membership
parent 91aa7b06
...@@ -23,18 +23,25 @@ class PocMembership(models.Model): ...@@ -23,18 +23,25 @@ class PocMembership(models.Model):
active = models.BooleanField(default=False) active = models.BooleanField(default=False)
@classmethod @classmethod
def auto_enroll(cls, student=None, future_membership=None): def auto_enroll(cls, student, future_membership):
assert student is not None and future_membership is not None """convert future_membership to an active membership
"""
if not future_membership.auto_enroll:
msg = "auto enrollment not allowed for {}"
raise ValueError(msg.format(future_membership))
membership = cls( membership = cls(
poc=future_membership.poc, student=student, active=True poc=future_membership.poc, student=student, active=True
) )
try: try:
CourseEnrollment.enroll(student, future_membership.poc.course_id) CourseEnrollment.enroll(
student, future_membership.poc.course_id, check_access=True
)
except AlreadyEnrolledError: except AlreadyEnrolledError:
# if the user is already enrolled in the course, great!
pass pass
else:
membership.save() membership.save()
future_membership.delete() future_membership.delete()
class PocFutureMembership(models.Model): class PocFutureMembership(models.Model):
......
...@@ -147,7 +147,9 @@ class PocMiddleware(object): ...@@ -147,7 +147,9 @@ class PocMiddleware(object):
) )
_POC_CONTEXT.poc = membership.poc _POC_CONTEXT.poc = membership.poc
except PocMembership.DoesNotExist: except PocMembership.DoesNotExist:
pass # if there is no membership, be sure to unset the active poc
_POC_CONTEXT.poc = None
request.session.pop(ACTIVE_POC_KEY)
def process_response(self, request, response): def process_response(self, request, response):
""" """
......
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