20 lines
800 B
Python
20 lines
800 B
Python
from django.db.models.signals import post_save
|
|
from django.dispatch import receiver
|
|
|
|
from .models import UserAnswer, UserLessonCompletion
|
|
from .services import touch_node_progress_on_answer, update_node_progress_on_lesson_completion
|
|
|
|
|
|
@receiver(post_save, sender=UserAnswer, dispatch_uid='content_touch_node_progress_on_answer')
|
|
def _on_user_answer_created(sender, instance, created, **kwargs):
|
|
if not created:
|
|
return
|
|
touch_node_progress_on_answer(instance.user_id, instance.question)
|
|
|
|
|
|
@receiver(post_save, sender=UserLessonCompletion, dispatch_uid='content_update_node_progress_on_completion')
|
|
def _on_lesson_completion_created(sender, instance, created, **kwargs):
|
|
if not created:
|
|
return
|
|
update_node_progress_on_lesson_completion(instance.user_id, instance.lesson)
|