diff options
-rw-r--r-- | hyperkitty/urls.py | 2 | ||||
-rw-r--r-- | hyperkitty/views/accounts.py | 29 | ||||
-rw-r--r-- | hyperkitty/views/api.py | 47 | ||||
-rw-r--r-- | hyperkitty/views/list.py | 37 | ||||
-rw-r--r-- | hyperkitty/views/message.py | 30 | ||||
-rw-r--r-- | hyperkitty/views/pages.py | 25 | ||||
-rw-r--r-- | hyperkitty/views/thread.py | 24 |
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') |