From: Stephen Finucane
Date: Wed, 16 Mar 2016 16:00:18 +0000 (+0000)
Subject: views: Use context dictionaries in 'user'
X-Git-Tag: v2.0.0-rc1~401
X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9d871cb599bd7ef5d28e77168f2bc3964299b66b;p=thirdparty%2Fpatchwork.git
views: Use context dictionaries in 'user'
Remove the use of PatchworkRequestContext in this view as it is not
required and causes a 'RemovedInDjango110Warning' warning. This
requires the use of 'render', rather than 'render_to_response'. It
also requires adding a 'request' parameter to 'render_to_string' calls
so that the default context processors continue to be passed through.
This includes a typo fix for another template.
Signed-off-by: Stephen Finucane
Tested-by: Andy Doan
---
diff --git a/patchwork/templates/patchwork/profile.html b/patchwork/templates/patchwork/profile.html
index 3d1c04f7..1c2151d1 100644
--- a/patchwork/templates/patchwork/profile.html
+++ b/patchwork/templates/patchwork/profile.html
@@ -102,7 +102,7 @@ address.
Bundles
{% if bundles %}
-You have the following bundle{{ bundle|length|pluralize }}:
+You have the following bundle{{ bundles|length|pluralize }}:
{% for bundle in bundles %}
- {{ bundle.name }}
diff --git a/patchwork/views/user.py b/patchwork/views/user.py
index 720b32c3..22c6fd8d 100644
--- a/patchwork/views/user.py
+++ b/patchwork/views/user.py
@@ -26,7 +26,7 @@ from django.conf import settings
from django.core.mail import send_mail
from django.core import urlresolvers
from django.http import HttpResponseRedirect
-from django.shortcuts import render_to_response, get_object_or_404
+from django.shortcuts import render, render_to_response, get_object_or_404
from django.template.loader import render_to_string
from patchwork.filters import DelegateFilter
@@ -34,16 +34,17 @@ from patchwork.forms import (UserProfileForm, UserPersonLinkForm,
RegistrationForm)
from patchwork.models import (Project, Bundle, Person, EmailConfirmation,
State, EmailOptout)
-from patchwork.requestcontext import PatchworkRequestContext
from patchwork.views import generic_list
def register(request):
- context = PatchworkRequestContext(request)
+ context = {}
+
if request.method == 'POST':
form = RegistrationForm(request.POST)
if form.is_valid():
data = form.cleaned_data
+
# create inactive user
user = auth.models.User.objects.create_user(data['username'],
data['email'],
@@ -59,34 +60,29 @@ def register(request):
conf.save()
# send email
- mail_ctx = {'site': Site.objects.get_current(),
- 'confirmation': conf}
-
- subject = render_to_string(
- 'patchwork/activation_email_subject.txt',
- mail_ctx).replace('\n', ' ').strip()
-
- message = render_to_string('patchwork/activation_email.txt',
- mail_ctx)
+ subject = 'Patchwork account confirmation'
+ message = render_to_string(
+ 'patchwork/activation_email.txt',
+ {'site': Site.objects.get_current(), 'confirmation': conf})
send_mail(subject, message, settings.DEFAULT_FROM_EMAIL,
[conf.email])
# setting 'confirmation' in the template indicates success
context['confirmation'] = conf
-
else:
form = RegistrationForm()
- return render_to_response('patchwork/registration_form.html',
- {'form': form},
- context_instance=context)
+ context['form'] = form
+
+ return render(request, 'patchwork/registration_form.html', context)
def register_confirm(request, conf):
conf.user.is_active = True
conf.user.save()
conf.deactivate()
+
try:
person = Person.objects.get(email__iexact=conf.user.email)
except Person.DoesNotExist:
@@ -95,13 +91,11 @@ def register_confirm(request, conf):
person.user = conf.user
person.save()
- return render_to_response('patchwork/registration-confirm.html')
+ return render(request, 'patchwork/registration-confirm.html')
@login_required
def profile(request):
- context = PatchworkRequestContext(request)
-
if request.method == 'POST':
form = UserProfileForm(instance=request.user.profile,
data=request.POST)
@@ -110,10 +104,14 @@ def profile(request):
else:
form = UserProfileForm(instance=request.user.profile)
- context.project = request.user.profile.primary_project
- context['bundles'] = Bundle.objects.filter(owner=request.user)
- context['profileform'] = form
+ # TODO(stephenfin): Add a related_name for User->Bundle
+ context = {
+ 'project': request.user.profile.primary_project,
+ 'bundles': Bundle.objects.filter(owner=request.user),
+ 'profileform': form,
+ }
+ # FIXME(stephenfin): This looks unsafe. Investigate.
optout_query = '%s.%s IN (SELECT %s FROM %s)' % (
Person._meta.db_table,
Person._meta.get_field('email').column,
@@ -124,12 +122,12 @@ def profile(request):
context['linked_emails'] = people
context['linkform'] = UserPersonLinkForm()
- return render_to_response('patchwork/profile.html', context)
+ return render(request, 'patchwork/profile.html', context)
@login_required
def link(request):
- context = PatchworkRequestContext(request)
+ context = {}
if request.method == 'POST':
form = UserPersonLinkForm(request.POST)
@@ -138,12 +136,13 @@ def link(request):
user=request.user,
email=form.cleaned_data['email'])
conf.save()
+
context['confirmation'] = conf
try:
send_mail('Patchwork email address confirmation',
render_to_string('patchwork/user-link.mail',
- context),
+ context, request=request),
settings.DEFAULT_FROM_EMAIL,
[form.cleaned_data['email']])
except Exception:
@@ -152,15 +151,14 @@ def link(request):
'Please try again later')
else:
form = UserPersonLinkForm()
+
context['linkform'] = form
- return render_to_response('patchwork/user-link.html', context)
+ return render(request, 'patchwork/user-link.html', context)
@login_required
def link_confirm(request, conf):
- context = PatchworkRequestContext(request)
-
try:
person = Person.objects.get(email__iexact=conf.email)
except Person.DoesNotExist:
@@ -170,9 +168,11 @@ def link_confirm(request, conf):
person.save()
conf.deactivate()
- context['person'] = person
+ context = {
+ 'person': person,
+ }
- return render_to_response('patchwork/user-link-confirm.html', context)
+ return render(request, 'patchwork/user-link-confirm.html', context)
@login_required
@@ -184,8 +184,7 @@ def unlink(request, person_id):
person.user = None
person.save()
- url = urlresolvers.reverse('user-profile')
- return HttpResponseRedirect(url)
+ return HttpResponseRedirect(urlresolvers.reverse('user-profile'))
@login_required
@@ -205,10 +204,11 @@ def todo_lists(request):
'user-todo',
kwargs={'project_id': todo_lists[0]['project'].linkname}))
- context = PatchworkRequestContext(request)
- context['todo_lists'] = todo_lists
- context.project = request.user.profile.primary_project
- return render_to_response('patchwork/todo-lists.html', context)
+ context = {
+ 'todo_lists': todo_lists,
+ }
+
+ return render(request, 'patchwork/todo-lists.html', context)
@login_required
@@ -218,6 +218,7 @@ def todo_list(request, project_id):
filter_settings = [(DelegateFilter,
{'delegate': request.user})]
+ # TODO(stephenfin): Build the context dict here
context = generic_list(request, project,
'user-todo',
view_args={'project_id': project.linkname},