summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--hyperkitty/urls.py2
-rw-r--r--hyperkitty/views/accounts.py29
-rw-r--r--hyperkitty/views/api.py47
-rw-r--r--hyperkitty/views/list.py37
-rw-r--r--hyperkitty/views/message.py30
-rw-r--r--hyperkitty/views/pages.py25
-rw-r--r--hyperkitty/views/thread.py24
7 files changed, 44 insertions, 150 deletions
diff --git a/hyperkitty/urls.py b/hyperkitty/urls.py
index ddf13bc..6e5d1a6 100644
--- a/hyperkitty/urls.py
+++ b/hyperkitty/urls.py
@@ -88,7 +88,7 @@ urlpatterns = patterns('hyperkitty.views',
# REST API
- url(r'^api/$', 'api.api'),
+ url(r'^api/$', direct_to_template, {"template": "api.html"}),
url(r'^api/email\/(?P<mlist_fqdn>[^/@]+@[^/@]+)\/(?P<hashid>.*)/',
EmailResource.as_view(), name="api_email"),
url(r'^api/thread\/(?P<mlist_fqdn>[^/@]+@[^/@]+)\/(?P<threadid>.*)/',
diff --git a/hyperkitty/views/accounts.py b/hyperkitty/views/accounts.py
index f8f518b..640871f 100644
--- a/hyperkitty/views/accounts.py
+++ b/hyperkitty/views/accounts.py
@@ -19,23 +19,14 @@
# Author: Aamir Khan <syst3m.w0rm@gmail.com>
#
-import re
-import sys
import logging
-from urllib2 import HTTPError
-from urlparse import urlparse
from django.conf import settings
from django.core.urlresolvers import reverse
-from django.contrib import messages
from django.contrib.auth import logout, authenticate, login
-from django.contrib.auth.decorators import (login_required,
- permission_required,
- user_passes_test)
+from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User
-from django.http import HttpResponse, HttpResponseRedirect
-from django.shortcuts import render_to_response, redirect
-from django.template import Context, loader, RequestContext
+from django.shortcuts import render, redirect
from django.utils.http import is_safe_url
from django.utils.translation import gettext as _
@@ -52,7 +43,6 @@ logger = logging.getLogger(__name__)
def user_profile(request, user_email=None):
if not request.user.is_authenticated():
return redirect('user_login')
- t = loader.get_template('user_profile.html')
store = get_store(request)
# try to render the user profile.
@@ -90,14 +80,13 @@ def user_profile(request, user_email=None):
thread = store.get_thread(fav.list_address, fav.threadid)
fav.thread = thread
- c = RequestContext(request, {
+ context = {
'user_profile' : user_profile,
'votes_up': votes_up,
'votes_down': votes_down,
'favorites': favorites,
- })
-
- return HttpResponse(t.render(c))
+ }
+ return render(request, "user_profile.html", context)
def user_registration(request):
@@ -108,7 +97,7 @@ def user_registration(request):
if request.user.is_authenticated():
# Already registered, redirect back to index page
- return HttpResponseRedirect(redirect_to)
+ return redirect(redirect_to)
if request.POST:
form = RegistrationForm(request.POST)
@@ -125,7 +114,7 @@ def user_registration(request):
logger.debug(user)
if user.is_active:
login(request, user)
- return HttpResponseRedirect(redirect_to)
+ return redirect(redirect_to)
else:
form = RegistrationForm()
@@ -133,6 +122,4 @@ def user_registration(request):
'form': form,
'next': redirect_to,
}
- return render_to_response('register.html', context,
- context_instance=RequestContext(request))
-
+ return render(request, 'register.html', context)
diff --git a/hyperkitty/views/api.py b/hyperkitty/views/api.py
deleted file mode 100644
index d7d18b6..0000000
--- a/hyperkitty/views/api.py
+++ /dev/null
@@ -1,47 +0,0 @@
-#-*- coding: utf-8 -*-
-# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
-#
-# This file is part of HyperKitty.
-#
-# HyperKitty is free software: you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free
-# Software Foundation, either version 3 of the License, or (at your option)
-# any later version.
-#
-# HyperKitty is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-# more details.
-#
-# You should have received a copy of the GNU General Public License along with
-# HyperKitty. If not, see <http://www.gnu.org/licenses/>.
-#
-# Author: Aamir Khan <syst3m.w0rm@gmail.com>
-#
-
-import re
-import os
-import json
-import urllib
-import django.utils.simplejson as simplejson
-
-from calendar import timegm
-from datetime import datetime, timedelta
-
-from urlparse import urljoin
-from django.http import HttpResponse, HttpResponseRedirect
-from django.template import RequestContext, loader
-from django.conf import settings
-from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger, InvalidPage
-from django.contrib.auth.decorators import (login_required,
- permission_required,
- user_passes_test)
-
-
-def api(request):
- t = loader.get_template('api.html')
- c = RequestContext(request, {
- })
- return HttpResponse(t.render(c))
-
-
diff --git a/hyperkitty/views/list.py b/hyperkitty/views/list.py
index de3d622..7f89ee8 100644
--- a/hyperkitty/views/list.py
+++ b/hyperkitty/views/list.py
@@ -20,34 +20,19 @@
# Author: Aurelien Bompard <abompard@fedoraproject.org>
#
-import re
-import os
-import json
-import urllib
-import logging
import datetime
-from calendar import timegm
-from urlparse import urljoin
from collections import namedtuple, defaultdict
-import django.utils.simplejson as simplejson
-from django.http import HttpResponse, HttpResponseRedirect
-from django.shortcuts import render_to_response
-from django.template import RequestContext, loader
+from django.shortcuts import redirect, render
from django.conf import settings
from django.core.urlresolvers import reverse
-from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger, InvalidPage
-from django.contrib.auth.decorators import (login_required,
- permission_required,
- user_passes_test)
+from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from hyperkitty.models import Tag, Favorite
from hyperkitty.lib import get_months, get_store, get_display_dates, get_votes
-from forms import *
+from forms import SearchForm
-logger = logging.getLogger(__name__)
-
if settings.USE_MOCKUPS:
from hyperkitty.lib.mockup import generate_top_author, generate_thread_per_category
@@ -60,7 +45,7 @@ FLASH_MESSAGES = {
def archives(request, mlist_fqdn, year=None, month=None, day=None):
if year is None and month is None:
today = datetime.date.today()
- return HttpResponseRedirect(reverse(
+ return redirect(reverse(
'archives_with_month', kwargs={
"mlist_fqdn": mlist_fqdn,
'year': today.year,
@@ -150,15 +135,13 @@ def _thread_list(request, mlist, threads, template_name='thread_list.html', extr
'flash_msg': flash_msg,
}
context.update(extra_context)
- return render_to_response(template_name, context,
- context_instance=RequestContext(request))
+ return render(request, template_name, context)
def overview(request, mlist_fqdn=None):
if not mlist_fqdn:
- return HttpResponseRedirect('/')
- t = loader.get_template('recent_activities.html')
+ return redirect('/')
search_form = SearchForm(auto_id=False)
# Get stats for last 30 days
@@ -220,7 +203,7 @@ def overview(request, mlist_fqdn=None):
else:
threads_per_category = {}
- c = RequestContext(request, {
+ context = {
'mlist' : mlist,
'search_form': search_form,
'top_threads': top_threads[:5],
@@ -230,8 +213,8 @@ def overview(request, mlist_fqdn=None):
'months_list': get_months(store, mlist.name),
'evolution': evolution,
'days': days,
- })
- return HttpResponse(t.render(c))
+ }
+ return render(request, "recent_activities.html", context)
def search(request, mlist_fqdn):
@@ -247,7 +230,7 @@ def search(request, mlist_fqdn):
url += '%s/' % page
else:
url = reverse('search_list', kwargs={"mlist_fqdn": mlist_fqdn})
- return HttpResponseRedirect(url)
+ return redirect(url)
def search_keyword(request, mlist_fqdn, target, keyword, page=1):
diff --git a/hyperkitty/views/message.py b/hyperkitty/views/message.py
index d2a7a8f..0245b24 100644
--- a/hyperkitty/views/message.py
+++ b/hyperkitty/views/message.py
@@ -20,27 +20,21 @@
# Author: Aurelien Bompard <abompard@fedoraproject.org>
#
-import re
-import os
import urllib
import datetime
-import django.utils.simplejson as simplejson
-from django.http import HttpResponse, HttpResponseRedirect, Http404
-from django.shortcuts import redirect, render, render_to_response
-from django.template import RequestContext, loader
+import django.utils.simplejson as json
+from django.http import HttpResponse, Http404
+from django.shortcuts import redirect, render
from django.conf import settings
-from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger, InvalidPage
from django.core.urlresolvers import reverse
from django.core.mail import EmailMessage
from django.core.exceptions import SuspiciousOperation
-from django.contrib.auth.decorators import (login_required,
- permission_required,
- user_passes_test)
+from django.contrib.auth.decorators import login_required
from hyperkitty.lib import get_store, get_months, get_votes
from hyperkitty.models import Rating
-from forms import *
+from forms import SearchForm, ReplyForm, PostForm
def index(request, mlist_fqdn, message_id_hash):
@@ -49,7 +43,6 @@ def index(request, mlist_fqdn, message_id_hash):
message_id)
'''
search_form = SearchForm(auto_id=False)
- t = loader.get_template('message.html')
store = get_store(request)
message = store.get_message_by_hash_from_list(mlist_fqdn, message_id_hash)
if message is None:
@@ -68,14 +61,14 @@ def index(request, mlist_fqdn, message_id_hash):
mlist = store.get_list(mlist_fqdn)
- c = RequestContext(request, {
+ context = {
'mlist' : mlist,
'message': message,
'message_id_hash' : message_id_hash,
'months_list': get_months(store, mlist.name),
'reply_form': ReplyForm(),
- })
- return HttpResponse(t.render(c))
+ }
+ return render(request, "message.html", context)
def attachment(request, mlist_fqdn, message_id_hash, counter, filename):
@@ -133,7 +126,7 @@ def vote(request, mlist_fqdn, message_id_hash):
elif vote.vote == -1:
status["dislike"] += 1
- return HttpResponse(simplejson.dumps(status),
+ return HttpResponse(json.dumps(status),
mimetype='application/javascript')
@@ -181,7 +174,7 @@ def new_message(request, mlist_fqdn):
'year': today.year,
'month': today.month})
redirect_url += "?msg=sent-ok"
- return HttpResponseRedirect(redirect_url)
+ return redirect(redirect_url)
else:
form = PostForm()
context = {
@@ -189,8 +182,7 @@ def new_message(request, mlist_fqdn):
"post_form": form,
'months_list': get_months(store, mlist.name),
}
- return render_to_response("message_new.html", context,
- context_instance=RequestContext(request))
+ return render(request, "message_new.html", context)
def _send_email(request, mlist, subject, message, headers={}):
diff --git a/hyperkitty/views/pages.py b/hyperkitty/views/pages.py
index f86a9aa..bad7166 100644
--- a/hyperkitty/views/pages.py
+++ b/hyperkitty/views/pages.py
@@ -19,29 +19,14 @@
# Author: Aamir Khan <syst3m.w0rm@gmail.com>
#
-import re
-import os
-import json
-import urllib
-from calendar import timegm
-from datetime import datetime, timedelta
-from urlparse import urljoin
-
-import django.utils.simplejson as simplejson
-from django.http import HttpResponse, HttpResponseRedirect
-from django.template import RequestContext, loader
+from django.shortcuts import render
from django.conf import settings
-from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger, InvalidPage
-from django.contrib.auth.decorators import (login_required,
- permission_required,
- user_passes_test)
from hyperkitty.lib import get_store
-from forms import *
+from forms import SearchForm
def index(request):
- t = loader.get_template('index.html')
search_form = SearchForm(auto_id=False)
base_url = settings.MAILMAN_API_URL % {
@@ -50,8 +35,8 @@ def index(request):
store = get_store(request)
lists = store.get_lists()
- c = RequestContext(request, {
+ context = {
'lists': lists,
'search_form': search_form,
- })
- return HttpResponse(t.render(c))
+ }
+ return render(request, "index.html", context)
diff --git a/hyperkitty/views/thread.py b/hyperkitty/views/thread.py
index 4400d5c..8fcca20 100644
--- a/hyperkitty/views/thread.py
+++ b/hyperkitty/views/thread.py
@@ -22,29 +22,23 @@
import datetime
-import django.utils.simplejson as simplejson
+import django.utils.simplejson as json
-from django.http import HttpResponse, HttpResponseRedirect, Http404
-from django.template import RequestContext, loader
+from django.http import HttpResponse, Http404
from django.conf import settings
-from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger, InvalidPage
+from django.template import RequestContext, loader
+from django.shortcuts import render
from django.core.urlresolvers import reverse
from django.core.exceptions import SuspiciousOperation
-from django.utils.datastructures import SortedDict
-from django.contrib.auth.decorators import (login_required,
- permission_required,
- user_passes_test)
from hyperkitty.models import Tag, Favorite
-#from hyperkitty.lib.mockup import *
-from forms import *
+from forms import SearchForm, AddTagForm, ReplyForm
from hyperkitty.lib import get_months, get_store, stripped_subject, get_votes
def thread_index(request, mlist_fqdn, threadid, month=None, year=None):
''' Displays all the email for a given thread identifier '''
search_form = SearchForm(auto_id=False)
- t = loader.get_template('thread.html')
store = get_store(request)
thread = store.get_thread(mlist_fqdn, threadid)
if not thread:
@@ -107,7 +101,7 @@ def thread_index(request, mlist_fqdn, threadid, month=None, year=None):
mlist = store.get_list(mlist_fqdn)
subject = stripped_subject(mlist, thread.starting_email.subject)
- c = RequestContext(request, {
+ context = {
'mlist' : mlist,
'threadid' : threadid,
'subject': subject,
@@ -125,8 +119,8 @@ def thread_index(request, mlist_fqdn, threadid, month=None, year=None):
'sort_mode': sort_mode,
'fav_action': fav_action,
'reply_form': ReplyForm(),
- })
- return HttpResponse(t.render(c))
+ }
+ return render(request, "thread.html", context)
def add_tag(request, mlist_fqdn, threadid):
@@ -158,7 +152,7 @@ def add_tag(request, mlist_fqdn, threadid):
"list_address": mlist_fqdn}))
response = {"tags": [ t.tag for t in tags ], "html": html}
- return HttpResponse(simplejson.dumps(response),
+ return HttpResponse(json.dumps(response),
mimetype='application/javascript')