From edfff32338c2253bba725b657bfca0c07ad2ebbe Mon Sep 17 00:00:00 2001
From: Piotr Mitros <pmitros@mitx.mit.edu>
Date: Wed, 21 Mar 2012 14:19:36 -0400
Subject: [PATCH] Incorporated Dave's feedback

---
 djangoapps/student/models.py | 11 ++++++-----
 djangoapps/student/views.py  | 27 ++++++++++-----------------
 urls.py                      |  2 +-
 3 files changed, 17 insertions(+), 23 deletions(-)

diff --git a/djangoapps/student/models.py b/djangoapps/student/models.py
index 76b3cefcf55..e21084e20f5 100644
--- a/djangoapps/student/models.py
+++ b/djangoapps/student/models.py
@@ -31,10 +31,12 @@ class UserProfile(models.Model):
     courseware = models.CharField(blank=True, max_length=255, default='course.xml')
 
     def get_meta(self):
-        try: 
-            js = json.reads(self.meta)
-        except:
+        js_str = self.meta
+        if not js: 
             js = dict()
+        else:
+            js = json.reads(self.meta)
+
         return js
 
     def set_meta(self,js):
@@ -138,10 +140,9 @@ default_groups = {'email_future_courses' : 'Receive e-mails about future MITx co
                   '6002x_unenroll' : 'Took and dropped 6002x'}
 
 def add_user_to_default_group(user, group):
-    ''' Untested '''
     try:
         utg = UserTestGroup.objects.get(name = group)
-    except: 
+    except UserTestGroup.DoesNotExist: 
         utg = UserTestGroup()
         utg.name = group
         utg.description = default_groups[group]
diff --git a/djangoapps/student/views.py b/djangoapps/student/views.py
index 9346ac3a3aa..4619eedba1e 100644
--- a/djangoapps/student/views.py
+++ b/djangoapps/student/views.py
@@ -2,6 +2,7 @@ import json
 import logging
 import random
 import string
+import sys
 import uuid
 
 from django.conf import settings
@@ -16,9 +17,10 @@ from django.http import HttpResponse, Http404
 from django.shortcuts import redirect
 from mitxmako.shortcuts import render_to_response, render_to_string
 
-from models import Registration, UserProfile, PendingNameChange, PendingEmailChange
 from django_future.csrf import ensure_csrf_cookie
 
+from models import Registration, UserProfile, PendingNameChange, PendingEmailChange
+
 log = logging.getLogger("mitx.user")
 
 def csrf_token(context):
@@ -87,7 +89,6 @@ def login_user(request, error=""):
 def logout_user(request):
     ''' HTTP request to log in the user. Redirects to marketing page'''
     logout(request)
-#    print len(connection.queries), connection.queries
     return redirect('/')
 
 @ensure_csrf_cookie
@@ -98,10 +99,8 @@ def change_setting(request):
         return redirect('/')
     up = UserProfile.objects.get(user=request.user) #request.user.profile_cache
     if 'location' in request.POST:
-#        print "loc"
         up.location=request.POST['location']
     if 'language' in request.POST:
-#        print "lang"
         up.language=request.POST['language']
     up.save()
 
@@ -199,13 +198,13 @@ def create_account(request, post_override=None):
         if not settings.GENERATE_RANDOM_USER_CREDENTIALS:
             res=u.email_user(subject, message, settings.DEFAULT_FROM_EMAIL)
     except:
+        log.exception(sys.exc_info())
         js['value']='Could not send activation e-mail.'
         return HttpResponse(json.dumps(js))
         
     js={'success':True,
         'value':render_to_string('registration/reg_complete.html', {'email':post_vars['email'], 
                                                                     'csrf':csrf(request)['csrf_token']})}
-#    print len(connection.queries), connection.queries
     return HttpResponse(json.dumps(js), mimetype="application/json")
     
 def create_random_account(create_account_function):
@@ -223,8 +222,6 @@ def create_random_account(create_account_function):
                             'honor_code' : u'true',
                             'terms_of_service' : u'true',}
         
-#        print "Creating random account: " , post_override
-        
         return create_account_function(request, post_override = post_override)
         
     return inner_create_random_account
@@ -267,11 +264,11 @@ def password_reset(request):
 @ensure_csrf_cookie
 def reactivation_email(request):
     ''' Send an e-mail to reactivate a deactivated account, or to
-    resend an activation e-mail '''
+    resend an activation e-mail. Untested. '''
     email = request.POST['email']
     try: 
         user = User.objects.get(email = 'email')
-    except: # TODO: Type of exception
+    except User.DoesNotExist:
         return HttpResponse(json.dumps({'success':False,
                                         'error': 'No inactive user with this e-mail exists'}))
     
@@ -351,7 +348,7 @@ def confirm_email_change(request, key):
     '''
     try:
         pec=PendingEmailChange.objects.get(activation_key=key)
-    except:
+    except PendingEmailChange.DoesNotExist:
         return render_to_response("invalid_email_key.html", {})
     
     user = pec.user
@@ -368,7 +365,6 @@ def confirm_email_change(request, key):
     message = render_to_string('emails/confirm_email_change.txt',d)
     up = UserProfile.objects.get( user = user )
     meta = up.get_meta()
-    print meta
     if 'old_emails' not in meta:
         meta['old_emails'] = []
     meta['old_emails'].append(user.email)
@@ -389,7 +385,7 @@ def change_name_request(request):
     
     try: 
         pnc = PendingNameChange.objects.get(user = request.user)
-    except:
+    except PendingNameChange.DoesNotExist:
         pnc = PendingNameChange()
     pnc.user = request.user
     pnc.new_name = request.POST['new_name']
@@ -404,9 +400,7 @@ def change_name_request(request):
 @ensure_csrf_cookie
 def pending_name_changes(request):
     ''' Web page which allows staff to approve or reject name changes. '''
-    print request.user.is_staff, request.user
     if not request.user.is_staff:
-        print "AAAA"
         raise Http404
 
     changes = list(PendingNameChange.objects.all())
@@ -426,7 +420,7 @@ def reject_name_change(request):
 
     try: 
         pnc = PendingNameChange.objects.get(id = int(request.POST['id']))
-    except: 
+    except PendingNameChange.DoesNotExist: 
         return HttpResponse(json.dumps({'success':False, 'error':'Invalid ID'})) 
 
     pnc.delete()
@@ -440,7 +434,7 @@ def accept_name_change(request):
 
     try: 
         pnc = PendingNameChange.objects.get(id = int(request.POST['id']))
-    except: 
+    except PendingNameChange.DoesNotExist: 
         return HttpResponse(json.dumps({'success':False, 'error':'Invalid ID'})) 
 
     u = pnc.user
@@ -448,7 +442,6 @@ def accept_name_change(request):
 
     # Save old name
     meta = up.get_meta()
-    print meta
     if 'old_names' not in meta:
         meta['old_names'] = []
     meta['old_names'].append(up.name)
diff --git a/urls.py b/urls.py
index 8a2ef623652..def5bac7de3 100644
--- a/urls.py
+++ b/urls.py
@@ -23,7 +23,7 @@ urlpatterns = ('',
     url(r'^logout$', 'student.views.logout_user'),
     url(r'^create_account$', 'student.views.create_account'),
     url(r'^activate/(?P<key>[^/]*)$', 'student.views.activate_account'),
-    url(r'^reactivate/(?P<key>[^/]*)$', 'student.views.reactivation_email'),
+#    url(r'^reactivate/(?P<key>[^/]*)$', 'student.views.reactivation_email'),
     url(r'^password_reset/$', 'student.views.password_reset'),
     ## Obsolete Django views for password resets
     ## TODO: Replace with Mako-ized views
-- 
GitLab