-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathviews.py
95 lines (85 loc) · 3.46 KB
/
views.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
from django.shortcuts import render_to_response
from django.db.models import Q
from django.views.generic.simple import direct_to_template
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
from django.contrib.auth.models import User
import datetime
from tvshow.models import Show, Season, Episode
from accounts.models import UserProfile
import registration
from forms import ContactForm
def index(request):
top_users = UserProfile.objects.order_by('-episodes_submited')[0:5]
one_hour_ago = datetime.datetime.now() - datetime.timedelta(hours=1)
sql_datetime = datetime.datetime.strftime(one_hour_ago, '%Y-%m-%d %H:%M:%S')
# Show the number of users that has been login an hour ago.
online_users = User.objects.filter(last_login__gt=sql_datetime, is_active__exact=1).order_by('-last_login')
latest_episodes = Episode.objects.order_by('-pub_date')[0:5]
params = {
'latest':latest_episodes,
'top_users':top_users,
'online_users':online_users,
}
if request.user.is_authenticated():
return HttpResponseRedirect(reverse('user_home'))
return direct_to_template(request, template='index.html', extra_context=params)
def home(request):
top_users = UserProfile.objects.order_by('-episodes_submited')[0:5]
one_hour_ago = datetime.datetime.now() - datetime.timedelta(hours=1)
sql_datetime = datetime.datetime.strftime(one_hour_ago, '%Y-%m-%d %H:%M:%S')
# Show the number of users that has been login an hour ago.
online_users = User.objects.filter(last_login__gt=sql_datetime, is_active__exact=1).order_by('-last_login')
latest_episodes = Episode.objects.order_by('-pub_date')[0:5]
params = {
'user':request.user,
'latest':latest_episodes,
'top_users':top_users,
'online_users':online_users,
}
return render_to_response("base.html", params)
def search(request):
query = request.GET.get('q', '')
if query:
qset = (
Q(name__icontains=query)
)
results = Show.objects.filter(qset).distinct()
else:
results = []
if request.user.is_authenticated():
return render_to_response("search_results.html", {
'results':results,
'query':query,
'user':request.user,
'matches':len(results),
})
else:
return render_to_response("search_results.html", {
'results':results,
'query':query,
'matches':len(results),
})
def advanced_search(request):
return direct_to_template(request, template='advanced_search.html')
def contact(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
subject = '[Contact] ' + form.cleaned_data['subject']
message = form.cleaned_data['message']
sender = form.cleaned_data['sender']
cc_myself = form.cleaned_data['cc_myself']
recipients = ['[email protected]']
if cc_myself:
recipients.append(sender)
from django.core.mail import send_mail
send_mail(subject, message, sender, recipients)
return direct_to_template(request, template='sent.html')
else:
form = ContactForm() # An unbound form
return render_to_response('contact.html', {
'form': form,
})
def help(request):
return direct_to_template(request, template='help.html')