1234567891011121314151617181920212223242526272829303132333435363738394041 |
- from misago.markup import parse
- from misago.threads.checksums import update_report_checksum
- from misago.threads.models import Report
- def user_has_reported_post(user, post):
- if not post.has_reports:
- return False
- # todo: do exists in the post reports set
- def report_post(request, post, message):
- if message:
- message = parse(message, request, request.user)['parsed_text']
- report = Report.objects.create(
- forum=post.forum,
- thread=post.thread,
- post=post,
- reported_by=post.user,
- reported_by_name=post.user.username,
- reported_by_slug=post.user.slug,
- reported_by_ip=post.user.ip,
- message=message,
- checksum=''
- )
- if message:
- update_report_checksum(report.checksum)
- report.save(update_fields=['checksum'])
- post.thread.has_reported_posts = True
- post.thread.has_open_reports = True
- post.thread.save(update_fields=['has_reported_posts', 'has_open_reports'])
- post.has_reports = True
- post.has_open_reports = True
- post.thread.save(update_fields=['has_reports', 'has_open_reports'])
- return report
|