def rename_user_handler(sender, **kwargs): sender.attachment_set.update( user_name=sender.username, user_name_slug=sender.username_slug, ) rename_user.connect(rename_user_handler, dispatch_uid="rename_user_attachments") def delete_user_content_handler(sender, **kwargs): for attachment in sender.attachment_set.iterator(): if attachment.post_id: attachment.delete_from_post() attachment.delete() delete_user_content.connect(delete_user_content_handler, dispatch_uid="delete_user_attachments") def move_forum_content_handler(sender, **kwargs): sender.attachment_set.update(forum=kwargs['move_to']) move_forum_content.connect(move_forum_content_handler, dispatch_uid="move_forum_attachments") def move_thread_handler(sender, **kwargs): sender.attachment_set.update(forum=kwargs['move_to']) move_thread.connect(move_thread_handler, dispatch_uid="move_thread_attachments") def move_post_handler(sender, **kwargs):
def delete_user_content_handler(sender, **kwargs): from misago.models import Thread threads = [] for post in sender.post_set.distinct().values("thread_id").iterator(): if not post["thread_id"] in threads: threads.append(post["thread_id"]) sender.post_set.all().delete() for thread in Thread.objects.filter(id__in=threads).iterator(): thread.sync() thread.save(force_update=True) delete_user_content.connect(delete_user_content_handler, dispatch_uid="delete_user_posts") def move_forum_content_handler(sender, **kwargs): Post.objects.filter(forum=sender).update(forum=kwargs["move_to"]) move_forum_content.connect(move_forum_content_handler, dispatch_uid="move_forum_posts") def move_thread_handler(sender, **kwargs): Post.objects.filter(thread=sender).update(forum=kwargs["move_to"]) move_thread.connect(move_thread_handler, dispatch_uid="move_thread_posts")
reported_post.reports = None reported_post.save(force_update=True) reported_post.thread.replies_reported -= 1 reported_post.thread.save(force_update=True) pre_delete.connect(report_delete_handler, dispatch_uid="sync_post_reports_on_delete") def delete_user_content_handler(sender, **kwargs): for thread in Thread.objects.filter(start_poster=sender): thread.delete() delete_user_content.connect(delete_user_content_handler, dispatch_uid="delete_user_threads") def move_forum_content_handler(sender, **kwargs): Thread.objects.filter(forum=sender).update(forum=kwargs['move_to']) move_forum_content.connect(move_forum_content_handler, dispatch_uid="move_forum_threads") def delete_user_handler(sender, instance, using, **kwargs): from misago.models import User if sender == User: for thread in instance.private_thread_set.all(): thread.participants.remove(instance)
def delete_user_content_handler(sender, **kwargs): from misago.models import Thread threads = [] for post in sender.post_set.distinct().values('thread_id').iterator(): if not post['thread_id'] in threads: threads.append(post['thread_id']) sender.post_set.all().delete() for thread in Thread.objects.filter(id__in=threads): thread.sync() thread.save(force_update=True) delete_user_content.connect(delete_user_content_handler, dispatch_uid="delete_user_posts") def move_forum_content_handler(sender, **kwargs): Post.objects.filter(forum=sender).update(forum=kwargs['move_to']) move_forum_content.connect(move_forum_content_handler, dispatch_uid="move_forum_posts") def move_thread_handler(sender, **kwargs): Post.objects.filter(thread=sender).update(forum=kwargs['move_to']) move_thread.connect(move_thread_handler, dispatch_uid="move_thread_posts")
reported_post = thread.report_for if reported_post.reported: reported_post.reported = False reported_post.reports = None reported_post.save(force_update=True) reported_post.thread.replies_reported -= 1 reported_post.thread.save(force_update=True) pre_delete.connect(report_delete_handler, dispatch_uid="sync_post_reports_on_delete") def delete_user_content_handler(sender, **kwargs): for thread in Thread.objects.filter(start_poster=sender): thread.delete() delete_user_content.connect(delete_user_content_handler, dispatch_uid="delete_user_threads") def move_forum_content_handler(sender, **kwargs): Thread.objects.filter(forum=sender).update(forum=kwargs['move_to']) move_forum_content.connect(move_forum_content_handler, dispatch_uid="move_forum_threads") def delete_user_handler(sender, instance, using, **kwargs): from misago.models import User if sender == User: for thread in instance.private_thread_set.all(): thread.participants.remove(instance) if not thread.participants.count(): thread.delete()
user_name_slug=sender.username_slug, ) rename_user.connect(rename_user_handler, dispatch_uid="rename_user_attachments") def delete_user_content_handler(sender, **kwargs): for attachment in sender.attachment_set.iterator(): if attachment.post_id: attachment.delete_from_post() attachment.delete() delete_user_content.connect(delete_user_content_handler, dispatch_uid="delete_user_attachments") def move_forum_content_handler(sender, **kwargs): sender.attachment_set.update(forum=kwargs['move_to']) move_forum_content.connect(move_forum_content_handler, dispatch_uid="move_forum_attachments") def move_thread_handler(sender, **kwargs): sender.attachment_set.update(forum=kwargs['move_to']) move_thread.connect(move_thread_handler,