reports.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from misago.markup import parse
  2. from misago.threads.checksums import update_report_checksum
  3. from misago.threads.models import Report
  4. def user_has_reported_post(user, post):
  5. if not post.has_reports:
  6. return False
  7. # todo: do exists in the post reports set
  8. def report_post(request, post, message):
  9. if message:
  10. message = parse(message, request, request.user)['parsed_text']
  11. report = Report.objects.create(
  12. forum=post.forum,
  13. thread=post.thread,
  14. post=post,
  15. reported_by=post.user,
  16. reported_by_name=post.user.username,
  17. reported_by_slug=post.user.slug,
  18. reported_by_ip=post.user.ip,
  19. message=message,
  20. checksum=''
  21. )
  22. if message:
  23. update_report_checksum(report.checksum)
  24. report.save(update_fields=['checksum'])
  25. post.thread.has_reported_posts = True
  26. post.thread.has_open_reports = True
  27. post.thread.save(update_fields=['has_reported_posts', 'has_open_reports'])
  28. post.has_reports = True
  29. post.has_open_reports = True
  30. post.thread.save(update_fields=['has_reports', 'has_open_reports'])
  31. return report