events.py 924 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. from django.utils import timezone
  2. from misago.readtracker import poststracker
  3. from .models import Post
  4. def record_event(request, thread, event_type, context=None, commit=True):
  5. time_now = timezone.now()
  6. event = Post.objects.create(
  7. category=thread.category,
  8. thread=thread,
  9. poster=request.user,
  10. poster_name=request.user.username,
  11. poster_ip=request.user_ip,
  12. original='-',
  13. parsed='-',
  14. posted_on=time_now,
  15. updated_on=time_now,
  16. is_event=True,
  17. event_type=event_type,
  18. event_context=context,
  19. )
  20. thread.has_events = True
  21. thread.set_last_post(event)
  22. if commit:
  23. thread.save()
  24. if not (thread.is_hidden and thread.is_unapproved):
  25. thread.category.set_last_thread(thread)
  26. if commit:
  27. thread.category.save()
  28. poststracker.save_read(request.user, event)
  29. return event