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
This commit is contained in:
cewing
2015-01-06 10:42:17 -08:00
parent 91aa7b06ce
commit 6f1a2ed531
2 changed files with 16 additions and 7 deletions

View File

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

View File

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