1 from datetime import datetime |
1 from datetime import datetime |
|
2 |
|
3 from django.http import Http404 |
|
4 from django.utils.datastructures import MultiValueDictKeyError |
2 |
5 |
3 from django.contrib.auth.models import User |
6 from django.contrib.auth.models import User |
4 from django.contrib.auth import authenticate, login, logout |
7 from django.contrib.auth import authenticate, login, logout |
5 from django.contrib.auth.decorators import login_required |
8 from django.contrib.auth.decorators import login_required |
6 |
9 |
9 from workshop.reg.models import Event |
12 from workshop.reg.models import Event |
10 from workshop.reg import forms as reg_forms |
13 from workshop.reg import forms as reg_forms |
11 from workshop.reg import events as reg_events |
14 from workshop.reg import events as reg_events |
12 |
15 |
13 from workshop.feedback.models import Feedback |
16 from workshop.feedback.models import Feedback |
14 |
|
15 from django.http import HttpResponse |
|
16 |
17 |
17 def homepage(request): |
18 def homepage(request): |
18 """ see if the user is active. |
19 """ see if the user is active. |
19 If not, only show the re send activation email link. |
20 If not, only show the re send activation email link. |
20 else show all the options in homepage. |
21 else show all the options in homepage. |
38 email = form.cleaned_data['email'] |
39 email = form.cleaned_data['email'] |
39 password = form.cleaned_data['password'] |
40 password = form.cleaned_data['password'] |
40 username = User.objects.get(email__iexact=email).username |
41 username = User.objects.get(email__iexact=email).username |
41 |
42 |
42 user = authenticate(username=username, password=password) |
43 user = authenticate(username=username, password=password) |
43 login(request, user) |
44 if user.is_active: |
44 return redirect('/reg') |
45 login(request, user) |
|
46 return redirect('/reg') |
|
47 else: |
|
48 return render_to_response('account_inactive.html', {'user':user, 'email':email}) |
45 else: |
49 else: |
46 return render_to_response('login.html', {'user':user, 'form':form}) |
50 return render_to_response('login.html', {'user':user, 'form':form}) |
47 else: |
51 else: |
48 form = reg_forms.LoginForm() |
52 form = reg_forms.LoginForm() |
49 return render_to_response('login.html', {'user':user, 'form':form}) |
53 return render_to_response('login.html', {'user':user, 'form':form}) |
61 |
65 |
62 if request.method == "POST": |
66 if request.method == "POST": |
63 form = reg_forms.RegisterForm(request.POST) |
67 form = reg_forms.RegisterForm(request.POST) |
64 if form.is_valid(): |
68 if form.is_valid(): |
65 data = form.cleaned_data |
69 data = form.cleaned_data |
66 reg_events.create_user(email=data['email'], |
70 new_user = reg_events.create_user(email=data['email'], |
67 password=data['password'], |
71 password=data['password'], |
68 first_name=data['first_name'], |
72 first_name=data['first_name'], |
69 last_name=data['last_name'], |
73 last_name=data['last_name'], |
70 gender=data['gender'], |
74 gender=data['gender'], |
71 profession=data['profession'], |
75 profession=data['profession'], |
72 affiliated_to=data['affiliated_to'], |
76 affiliated_to=data['affiliated_to'], |
73 interests=data['interests'] |
77 interests=data['interests'] |
74 ) |
78 ) |
75 return render_to_response('account_created.html') |
79 return redirect('/reg/account_created') |
76 else: |
80 else: |
77 return render_to_response('register.html', {'form':form}) |
81 return render_to_response('register.html', {'form':form}) |
78 else: |
82 else: |
79 form = reg_forms.RegisterForm() |
83 form = reg_forms.RegisterForm() |
80 return render_to_response('register.html', {'form':form}) |
84 return render_to_response('register.html', {'form':form}) |
|
85 |
|
86 def account_created(request): |
|
87 """ simply display a page. |
|
88 """ |
|
89 |
|
90 user = request.user |
|
91 return render_to_response('account_created.html', {'user':user}) |
|
92 |
|
93 def send_activation(request): |
|
94 |
|
95 try: |
|
96 email = request.GET['email'] |
|
97 except MultiValueDictKeyError: |
|
98 raise Http404 |
|
99 |
|
100 try: |
|
101 user = User.objects.get(email__iexact=email) |
|
102 except User.DoesNotExist: |
|
103 raise Http404 |
|
104 |
|
105 if user.is_active: |
|
106 return redirect('/reg') |
|
107 |
|
108 profile = user.get_profile() |
|
109 activation_key = profile.activation_key |
|
110 reg_events.send_activation(user) |
|
111 |
|
112 return render_to_response('sent_activationkey.html', {'user':user}) |
81 |
113 |
82 def create_event(request): |
114 def create_event(request): |
83 """ see if the user is a staff and only then let him do it. |
115 """ see if the user is a staff and only then let him do it. |
84 """ |
116 """ |
85 |
117 |
115 try: |
147 try: |
116 event = Event.objects.get(key__iexact=key) |
148 event = Event.objects.get(key__iexact=key) |
117 except Event.DoesNotExist: |
149 except Event.DoesNotExist: |
118 return redirect("/reg") |
150 return redirect("/reg") |
119 |
151 |
120 is_guest = False if user.is_authenticated() else True |
152 is_guest = False if user.is_authenticated() and user.is_active else True |
121 is_attendee = True if user in event.attendees.all() else False |
153 is_attendee = True if user in event.attendees.all() else False |
122 is_org = True if user in event.organizers.all() else False |
154 is_org = True if user in event.organizers.all() else False |
123 |
155 |
124 can_submit_feedback = False |
156 can_submit_feedback = False |
125 if not event.feedback_status == "0": |
157 if not event.feedback_status == "0": |
272 """ check if the user is logged in. |
304 """ check if the user is logged in. |
273 simply add him to the attendees list. |
305 simply add him to the attendees list. |
274 """ |
306 """ |
275 |
307 |
276 user = request.user |
308 user = request.user |
277 if user.is_authenticated(): |
309 if user.is_authenticated() and user.is_active: |
278 try: |
310 try: |
279 event = Event.objects.get(key__iexact=event_key) |
311 event = Event.objects.get(key__iexact=event_key) |
280 except Event.DoesNotExist: |
312 except Event.DoesNotExist: |
281 return redirect("/reg") |
313 return redirect("/reg") |
282 |
314 |