X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=apps%2Fpatchwork%2Fviews%2Fbase.py;h=634e383084817afe6403dda31378dad0e60c4017;hb=df1abefaaa678cedc4ce0293fd84bb4164c9852d;hp=c0e68ed409034b6ed16715b2702f4927a77f3b3d;hpb=a7bbbeba8f1dd2e859767c4873f584ea87afd77d;p=patchwork diff --git a/apps/patchwork/views/base.py b/apps/patchwork/views/base.py index c0e68ed..634e383 100644 --- a/apps/patchwork/views/base.py +++ b/apps/patchwork/views/base.py @@ -18,13 +18,14 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -from patchwork.models import Patch, Project, Person +from patchwork.models import Patch, Project, Person, EmailConfirmation from django.shortcuts import render_to_response, get_object_or_404 from django.http import HttpResponse, HttpResponseRedirect, Http404 from patchwork.requestcontext import PatchworkRequestContext from django.core import serializers, urlresolvers from django.template.loader import render_to_string from django.conf import settings +from django.db.models import Q def projects(request): context = PatchworkRequestContext(request) @@ -58,11 +59,37 @@ def pwclient(request): response.write(render_to_string('patchwork/pwclient', context)) return response +def confirm(request, key): + import patchwork.views.user, patchwork.views.mail + views = { + 'userperson': patchwork.views.user.link_confirm, + 'registration': patchwork.views.user.register_confirm, + 'optout': patchwork.views.mail.optout_confirm, + 'optin': patchwork.views.mail.optin_confirm, + } + + conf = get_object_or_404(EmailConfirmation, key = key) + if conf.type not in views: + raise Http404 + + if conf.active and conf.is_valid(): + return views[conf.type](request, conf) + + context = PatchworkRequestContext(request) + context['conf'] = conf + if not conf.active: + context['error'] = 'inactive' + elif not conf.is_valid(): + context['error'] = 'expired' + + return render_to_response('patchwork/confirm-error.html', context) + def submitter_complete(request): search = request.GET.get('q', '') response = HttpResponse(mimetype = "text/plain") if len(search) > 3: - queryset = Person.objects.filter(name__icontains = search) + queryset = Person.objects.filter(Q(name__icontains = search) | + Q(email__icontains = search)) json_serializer = serializers.get_serializer("json")() json_serializer.serialize(queryset, ensure_ascii=False, stream=response) return response