12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- from datetime import timedelta
- from django.utils import timezone
- from misago.core.utils import slugify
- from misago.threads.models import Thread, Post
- def post_thread(category, title='Test thread', poster='Tester',
- is_pinned=False, is_moderated=False, is_hidden=False,
- is_closed=False, started_on=None):
- started_on = started_on or timezone.now()
- kwargs = {
- 'category': category,
- 'title': title,
- 'slug': slugify(title),
- 'started_on': started_on,
- 'last_post_on': started_on,
- 'is_pinned': is_pinned,
- 'is_moderated': is_moderated,
- 'is_hidden': is_hidden,
- 'is_closed': is_closed,
- }
- try:
- kwargs.update({
- 'starter': poster,
- 'starter_name': poster.username,
- 'starter_slug': poster.slug,
- 'last_poster': poster,
- 'last_poster_name': poster.username,
- 'last_poster_slug': poster.slug,
- })
- except AttributeError:
- kwargs.update({
- 'starter_name': poster,
- 'starter_slug': slugify(poster),
- 'last_poster_name': poster,
- 'last_poster_slug': slugify(poster),
- })
- thread = Thread.objects.create(**kwargs)
- reply_thread(thread,
- poster=poster,
- posted_on=thread.last_post_on,
- is_moderated=is_moderated
- )
- return thread
- def reply_thread(thread, poster="Tester", message='I am test message',
- is_moderated=False, is_hidden=False, has_reports=False,
- has_open_reports=False,posted_on=None, poster_ip='127.0.0.1'):
- posted_on = posted_on or thread.last_post_on + timedelta(minutes=5)
- kwargs = {
- 'category': thread.category,
- 'thread': thread,
- 'original': message,
- 'parsed': message,
- 'checksum': 'nope',
- 'poster_ip': poster_ip,
- 'posted_on': posted_on,
- 'updated_on': posted_on,
- 'is_moderated': is_moderated,
- 'is_hidden': is_hidden,
- 'has_reports': has_reports,
- 'has_open_reports': has_open_reports,
- }
- try:
- kwargs.update({'poster': poster, 'poster_name': poster.username})
- except AttributeError:
- kwargs.update({'poster_name': poster})
- post = Post.objects.create(**kwargs)
- thread.synchronize()
- thread.save()
- thread.category.synchronize()
- thread.category.save()
- return post
|