From 16356e5cf6cd0d041f1d8eacef9f0914fe514780 Mon Sep 17 00:00:00 2001
From: Julia Hansbrough <julia@edx.org>
Date: Thu, 17 Oct 2013 16:47:06 +0000
Subject: [PATCH] Fixed LMS-1062

---
 common/djangoapps/course_modes/views.py | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/common/djangoapps/course_modes/views.py b/common/djangoapps/course_modes/views.py
index 84e6f657854..c4dd41b61eb 100644
--- a/common/djangoapps/course_modes/views.py
+++ b/common/djangoapps/course_modes/views.py
@@ -34,12 +34,19 @@ class ChooseModeView(View):
     @method_decorator(login_required)
     def get(self, request, course_id, error=None):
         """ Displays the course mode choice page """
-        if CourseEnrollment.enrollment_mode_for_user(request.user, course_id) == 'verified':
+        
+        enrollment_mode = CourseEnrollment.enrollment_mode_for_user(request.user, course_id)
+        upgrade = request.GET.get('upgrade', False)
+
+        # verified users do not need to register or upgrade
+        if enrollment_mode == 'verified':
             return redirect(reverse('dashboard'))
-        modes = CourseMode.modes_for_course_dict(course_id)
 
-        upgrade = request.GET.get('upgrade', False)
+        # registered users who are not trying to upgrade do not need to re-register
+        if enrollment_mode != None and upgrade == False:
+            return redirect(reverse('dashboard'))
 
+        modes = CourseMode.modes_for_course_dict(course_id)
         donation_for_course = request.session.get("donation_for_course", {})
         chosen_price = donation_for_course.get(course_id, None)
 
-- 
GitLab