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
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'],
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:
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)
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,
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)
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:
'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:
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
person.user = None
person.save()
- url = urlresolvers.reverse('user-profile')
- return HttpResponseRedirect(url)
+ return HttpResponseRedirect(urlresolvers.reverse('user-profile'))
@login_required
'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
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},