21 lines
927 B
Python
21 lines
927 B
Python
"""
|
|
گیرندهی سیگنال ثبتنام (accounts.signals.user_registered). accounts هیچوقت
|
|
از وجود discount/Offer خبر نداره؛ این فایل فقط توی apps.py همین اپ (discount)
|
|
connect میشه. برای تغییر منطق «کدوم آفر به کی تعلق بگیره»، فقط همینجا و
|
|
discount/services.py رو لمس کنید — دقیقاً همون چیزی که سینیور خواسته بود.
|
|
"""
|
|
from accounts.signals import user_registered
|
|
|
|
from .models import Offer
|
|
from .services import apply_offer
|
|
|
|
|
|
def _assign_signup_offers(sender, **kwargs):
|
|
user_id = kwargs['user_id']
|
|
offers = Offer.objects.filter(auto_assign_on_signup=True, is_active=True)
|
|
for offer in offers:
|
|
apply_offer(user_id=user_id, offer=offer, source='signup_auto')
|
|
|
|
|
|
user_registered.connect(_assign_signup_offers, dispatch_uid='discount_assign_signup_offers')
|