102 lines
2.5 KiB
Python
102 lines
2.5 KiB
Python
# Create your views here.
|
|
from django.shortcuts import render_to_response
|
|
from models import Issue
|
|
from settings import ERANG_SUBSCRIBE_URL
|
|
import urllib2
|
|
from django.http import HttpResponse
|
|
from django.core.mail import send_mail
|
|
from django.db.models import Q
|
|
from oxdjango.shortcuts import render_to_json_response
|
|
from django.core.paginator import Paginator, InvalidPage, EmptyPage
|
|
|
|
|
|
RESULTS_PER_PAGE = 6
|
|
|
|
def home(request):
|
|
all_issues = Issue.objects.all().order_by('-date')
|
|
if request.GET.has_key('issue_id'):
|
|
issue_id = request.GET.get('issue_id')
|
|
else:
|
|
# l = 0
|
|
issue_id = all_issues[0].id
|
|
current_issue = Issue.objects.get(pk=issue_id)
|
|
other_issues = all_issues.exclude(pk=issue_id)
|
|
return render_to_response("erang/home.html", {
|
|
'current_issue': current_issue,
|
|
# 'past_issues': other_issues
|
|
})
|
|
|
|
def issue_list(request):
|
|
p = RESULTS_PER_PAGE
|
|
try:
|
|
page_no = int(request.GET.get("page", '1'))
|
|
except ValueError:
|
|
page_no = 1
|
|
|
|
# print start_no
|
|
search_terms = request.GET.get("search", "")
|
|
# print search_terms
|
|
if search_terms != '':
|
|
qset = search(search_terms)
|
|
else:
|
|
qset = Issue.objects.all()
|
|
|
|
qset = qset.order_by('-date')
|
|
paginator = Paginator(qset, p)
|
|
|
|
try:
|
|
results = paginator.page(page_no)
|
|
except (EmptyPage, InvalidPage):
|
|
results = paginator.page(paginator.num_pages)
|
|
|
|
issues = []
|
|
for r in results.object_list:
|
|
d = r.get_dict()
|
|
issues.append(d)
|
|
|
|
return render_to_json_response({
|
|
'hasPrev': results.has_previous(),
|
|
'hasNext': results.has_next(),
|
|
'issues': issues,
|
|
'page_no': page_no,
|
|
'search_terms': search_terms
|
|
})
|
|
|
|
|
|
def subscribe(request):
|
|
email = request.POST.get("email")
|
|
url = ERANG_SUBSCRIBE_URL + email
|
|
re = urllib2.urlopen(url).read()
|
|
return HttpResponse(re)
|
|
|
|
def search(terms):
|
|
# terms = request.GET['search']
|
|
words = terms.split(" ")
|
|
qset = Issue.objects.all()
|
|
issues = []
|
|
for w in words:
|
|
qset = qset.filter(Q(title__icontains=w) | Q(summary__icontains=w))
|
|
return qset
|
|
'''
|
|
for issue in qset:
|
|
d = issue.get_dict()
|
|
issues.append(d)
|
|
return issues
|
|
'''
|
|
|
|
def postfeedback(request):
|
|
p = request.POST
|
|
issue = p.get("issue")
|
|
name = p.get("name")
|
|
email = p.get("email")
|
|
comment = p.get("comment")
|
|
txt = """
|
|
Feedback on Issue: %s
|
|
|
|
Name: %s
|
|
Email: %s
|
|
Feedback %s
|
|
""" % (issue, name, email, comment,)
|
|
send_mail("eRang Feedback", txt, "do-not-reply@theatreforum.in", ['sanjaybhangar@gmail.com', 'erang@theatreforum.in'])
|
|
return HttpResponse("1")
|