--- a/reg/views.py Tue Apr 13 10:50:29 2010 +0530
+++ b/reg/views.py Tue Apr 13 12:03:12 2010 +0530
@@ -1,5 +1,8 @@
from datetime import datetime
+from django.http import Http404
+from django.utils.datastructures import MultiValueDictKeyError
+
from django.contrib.auth.models import User
from django.contrib.auth import authenticate, login, logout
from django.contrib.auth.decorators import login_required
@@ -12,8 +15,6 @@
from workshop.feedback.models import Feedback
-from django.http import HttpResponse
-
def homepage(request):
""" see if the user is active.
If not, only show the re send activation email link.
@@ -40,8 +41,11 @@
username = User.objects.get(email__iexact=email).username
user = authenticate(username=username, password=password)
- login(request, user)
- return redirect('/reg')
+ if user.is_active:
+ login(request, user)
+ return redirect('/reg')
+ else:
+ return render_to_response('account_inactive.html', {'user':user, 'email':email})
else:
return render_to_response('login.html', {'user':user, 'form':form})
else:
@@ -63,22 +67,50 @@
form = reg_forms.RegisterForm(request.POST)
if form.is_valid():
data = form.cleaned_data
- reg_events.create_user(email=data['email'],
- password=data['password'],
- first_name=data['first_name'],
- last_name=data['last_name'],
- gender=data['gender'],
- profession=data['profession'],
- affiliated_to=data['affiliated_to'],
- interests=data['interests']
- )
- return render_to_response('account_created.html')
+ new_user = reg_events.create_user(email=data['email'],
+ password=data['password'],
+ first_name=data['first_name'],
+ last_name=data['last_name'],
+ gender=data['gender'],
+ profession=data['profession'],
+ affiliated_to=data['affiliated_to'],
+ interests=data['interests']
+ )
+ return redirect('/reg/account_created')
else:
return render_to_response('register.html', {'form':form})
else:
form = reg_forms.RegisterForm()
return render_to_response('register.html', {'form':form})
+def account_created(request):
+ """ simply display a page.
+ """
+
+ user = request.user
+ return render_to_response('account_created.html', {'user':user})
+
+def send_activation(request):
+
+ try:
+ email = request.GET['email']
+ except MultiValueDictKeyError:
+ raise Http404
+
+ try:
+ user = User.objects.get(email__iexact=email)
+ except User.DoesNotExist:
+ raise Http404
+
+ if user.is_active:
+ return redirect('/reg')
+
+ profile = user.get_profile()
+ activation_key = profile.activation_key
+ reg_events.send_activation(user)
+
+ return render_to_response('sent_activationkey.html', {'user':user})
+
def create_event(request):
""" see if the user is a staff and only then let him do it.
"""
@@ -117,7 +149,7 @@
except Event.DoesNotExist:
return redirect("/reg")
- is_guest = False if user.is_authenticated() else True
+ is_guest = False if user.is_authenticated() and user.is_active else True
is_attendee = True if user in event.attendees.all() else False
is_org = True if user in event.organizers.all() else False
@@ -274,7 +306,7 @@
"""
user = request.user
- if user.is_authenticated():
+ if user.is_authenticated() and user.is_active:
try:
event = Event.objects.get(key__iexact=event_key)
except Event.DoesNotExist: