Files
offline-db/users/signals.py
0cac63320b Fix Badge System Tests and Improve Coverage (#343)
* test: achieve 100% coverage for badge system and resolve db IDOR

Co-authored-by: barkeser2002 <45911502+barkeser2002@users.noreply.github.com>

* fix: include legacy ChatMessage stats in chat badge checks

Co-authored-by: barkeser2002 <45911502+barkeser2002@users.noreply.github.com>

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-04-20 00:15:47 +03:00

37 lines
1.2 KiB
Python

from django.db.models.signals import post_save
from django.dispatch import receiver
from .models import WatchLog
from content.models import Subscription, Review, VideoFile
from apps.watchparty.models import Room, Message
from .services import check_badges, check_chat_badges
@receiver(post_save, sender=VideoFile)
def check_badges_on_video_upload(sender, instance, created, **kwargs):
if created and instance.uploader:
check_badges(instance.uploader)
@receiver(post_save, sender=Review)
def check_badges_on_review(sender, instance, created, **kwargs):
if created:
check_badges(instance.user)
@receiver(post_save, sender=Subscription)
def check_badges_on_subscribe(sender, instance, created, **kwargs):
if created:
check_badges(instance.user)
@receiver(post_save, sender=WatchLog)
def check_badges_on_watch(sender, instance, created, **kwargs):
if created:
check_badges(instance.user)
@receiver(post_save, sender=Message)
def check_badges_on_chat(sender, instance, created, **kwargs):
if created and instance.sender:
check_chat_badges(instance.sender)
@receiver(post_save, sender=Room)
def check_badges_on_watch_party(sender, instance, created, **kwargs):
if created:
check_badges(instance.host)