search.py 691 B

123456789101112131415161718192021222324
  1. from misago.decorators import block_crawlers
  2. from misago.models import Forum, Post
  3. from misago.apps.errors import error404
  4. from misago.apps.search.views import do_search, results
  5. def allow_search(f):
  6. def decorator(*args, **kwargs):
  7. if not request.acl.reports.can_handle():
  8. return error404()
  9. return f(*args, **kwargs)
  10. return decorator
  11. @block_crawlers
  12. @allow_search
  13. def search_reports(request):
  14. queryset = Post.objects.filter(forum=Forum.objects.special_pk('reports'))
  15. return do_search(request, queryset, 'reports')
  16. @block_crawlers
  17. @allow_search
  18. def show_reports_results(request):
  19. return results(request, 'reports')