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):
active = models.BooleanField(default=False)
@classmethod
def auto_enroll(cls, student=None, future_membership=None):
assert student is not None and future_membership is not None
def auto_enroll(cls, student, future_membership):
"""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(
poc=future_membership.poc, student=student, active=True
)
try:
CourseEnrollment.enroll(student, future_membership.poc.course_id)
CourseEnrollment.enroll(
student, future_membership.poc.course_id, check_access=True
)
except AlreadyEnrolledError:
# if the user is already enrolled in the course, great!
pass
else:
membership.save()
future_membership.delete()
membership.save()
future_membership.delete()
class PocFutureMembership(models.Model):
......
......@@ -147,7 +147,9 @@ class PocMiddleware(object):
)
_POC_CONTEXT.poc = membership.poc
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):
"""
......
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