Skip to content
Snippets Groups Projects
Commit edfff323 authored by Piotr Mitros's avatar Piotr Mitros
Browse files

Incorporated Dave's feedback

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