X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=apps%2Fpatchwork%2Fviews%2Fbase.py;h=6d7dd13a67db3e6735ce08c9262a58fbd5e48701;hb=04e6689193c778fcfbff192e8d34af1dadf6560e;hp=1539472e06505a3d05eab6ed88572068e4289804;hpb=56e2243f3be7e859666ce0e4e1a8b8b94444f8d4;p=patchwork diff --git a/apps/patchwork/views/base.py b/apps/patchwork/views/base.py index 1539472..6d7dd13 100644 --- a/apps/patchwork/views/base.py +++ b/apps/patchwork/views/base.py @@ -25,6 +25,7 @@ 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) @@ -42,26 +43,29 @@ def pwclientrc(request, project_id): project = get_object_or_404(Project, linkname = project_id) context = PatchworkRequestContext(request) context.project = project - if request.is_secure(): + if settings.FORCE_HTTPS_LINKS or request.is_secure(): context['scheme'] = 'https' else: context['scheme'] = 'http' - response = HttpResponse(mimetype = "text/plain") + response = HttpResponse(content_type = "text/plain") response['Content-Disposition'] = 'attachment; filename=.pwclientrc' response.write(render_to_string('patchwork/pwclientrc', context)) return response def pwclient(request): context = PatchworkRequestContext(request) - response = HttpResponse(mimetype = "text/x-python") + response = HttpResponse(content_type = "text/x-python") response['Content-Disposition'] = 'attachment; filename=pwclient' response.write(render_to_string('patchwork/pwclient', context)) return response def confirm(request, key): - import patchwork.views.user + 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) @@ -82,11 +86,25 @@ def confirm(request, key): 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) - json_serializer = serializers.get_serializer("json")() - json_serializer.serialize(queryset, ensure_ascii=False, stream=response) + limit = request.GET.get('l', None) + response = HttpResponse(content_type = "text/plain") + + if len(search) <= 3: + return response + + queryset = Person.objects.filter(Q(name__icontains = search) | + Q(email__icontains = search)) + if limit is not None: + try: + limit = int(limit) + except ValueError: + limit = None + + if limit is not None and limit > 0: + queryset = queryset[:limit] + + json_serializer = serializers.get_serializer("json")() + json_serializer.serialize(queryset, ensure_ascii=False, stream=response) return response help_pages = {'': 'index.html',