from django.contrib.auth.decorators import login_required
from patchwork.requestcontext import PatchworkRequestContext
from django.shortcuts import render_to_response, get_object_or_404
-from django.contrib import auth
-from django.http import HttpResponse, HttpResponseRedirect
-from patchwork.models import Project, Patch, Bundle, Person, UserProfile, \
- UserPersonConfirmation, State
-from patchwork.forms import MultiplePatchForm, UserProfileForm, \
- UserPersonLinkForm
-from patchwork.utils import Order, get_patch_ids
+from django.http import HttpResponseRedirect
+from patchwork.models import Project, Bundle, Person, EmailConfirmation, State
+from patchwork.forms import UserProfileForm, UserPersonLinkForm
from patchwork.filters import DelegateFilter
-from patchwork.paginator import Paginator
from patchwork.views import generic_list
from django.template.loader import render_to_string
-from django.template import Context
from django.conf import settings
from django.core.mail import send_mail
import django.core.urlresolvers
def link(request):
context = PatchworkRequestContext(request)
- form = UserPersonLinkForm(request.POST)
if request.method == 'POST':
form = UserPersonLinkForm(request.POST)
if form.is_valid():
- conf = UserPersonConfirmation(user = request.user,
+ conf = EmailConfirmation(type = 'userperson',
+ user = request.user,
email = form.cleaned_data['email'])
+ conf.save()
context['confirmation'] = conf
try:
context),
settings.DEFAULT_FROM_EMAIL,
[form.cleaned_data['email']])
- conf.save()
- except Exception, ex:
+ except Exception:
context['confirmation'] = None
context['error'] = 'An error occurred during confirmation. ' + \
'Please try again later'
+ else:
+ form = UserPersonLinkForm()
context['linkform'] = form
return render_to_response('patchwork/user-link.html', context)
@login_required
-def link_confirm(request, key):
+def link_confirm(request, conf):
context = PatchworkRequestContext(request)
- confirmation = get_object_or_404(UserPersonConfirmation, key = key)
- errors = confirmation.confirm()
- if errors:
- context['errors'] = errors
- else:
- context['person'] = Person.objects.get(email = confirmation.email)
+ try:
+ person = Person.objects.get(email__iexact = conf.email)
+ except Person.DoesNotExist:
+ person = Person(email = conf.email)
+
+ person.link_to_user(conf.user)
+ person.save()
+ conf.deactivate()
+
+ context['person'] = person
return render_to_response('patchwork/user-link-confirm.html', context)
@login_required
def unlink(request, person_id):
- context = PatchworkRequestContext(request)
person = get_object_or_404(Person, id = person_id)
if request.method == 'POST':