search.py 732 B

12345678910111213141516171819202122232425
  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. request = args[0]
  8. if not request.acl.reports.can_handle():
  9. return error404()
  10. return f(*args, **kwargs)
  11. return decorator
  12. @block_crawlers
  13. @allow_search
  14. def search_reports(request):
  15. queryset = Post.objects.filter(forum=Forum.objects.special_pk('reports'))
  16. return do_search(request, queryset, 'reports')
  17. @block_crawlers
  18. @allow_search
  19. def show_reports_results(request, page=0):
  20. return results(request, page, 'reports')