123456789101112131415161718192021222324252627282930313233343536 |
- from django.core.exceptions import PermissionDenied
- from django.http import Http404
- from django.shortcuts import redirect, render
- from django.utils.translation import gettext as _
- from .searchproviders import searchproviders
- def landing(request):
- allowed_providers = searchproviders.get_allowed_providers(request)
- if not request.user_acl["can_search"] or not allowed_providers:
- raise PermissionDenied(_("You don't have permission to search site."))
- default_provider = allowed_providers[0]
- return redirect("misago:search", search_provider=default_provider.url)
- def search(request, search_provider):
- all_providers = searchproviders.get_providers(request)
- if not request.user_acl["can_search"] or not all_providers:
- raise PermissionDenied(_("You don't have permission to search site."))
- for provider in all_providers:
- if provider.url == search_provider:
- provider.allow_search()
- break
- else:
- raise Http404()
- if "q" in request.GET:
- search_query = request.GET.get("q").strip()
- request.frontend_context["SEARCH_QUERY"] = search_query
- else:
- search_query = ""
- return render(request, "misago/search.html", {"search_query": search_query})
|