Files
hossein-por-shop/backend/order/signals.py
T

43 lines
1.3 KiB
Python

from django.db.models.signals import pre_save
from django.dispatch import receiver
from .models import OrderModel
from account.models import PushSubscription, UserAddressModel
import ghasedak_sms
from .tasks import send_change_status_notif, send_change_status_sms
@receiver(pre_save, sender=OrderModel)
def order_status_changed(sender, instance, **kwargs):
if instance.pk:
previous = OrderModel.objects.get(pk=instance.pk)
if previous.status != instance.status:
new_status = instance.get_status_display()
# send_change_status_notif.delay(instance.pk, new_status)
# send_change_status_sms.delay(instance.pk, new_status)
if previous.status == 'CART' and instance.status == 'ADMIN_PENDING':
# update_cart_price_fields()
# update_sell_data()
# update_quantity()
pass
@receiver(pre_save, sender=OrderModel)
def set_default_address(sender, instance, **kwargs):
if instance.address is None and instance.user:
default_address = UserAddressModel.objects.filter(user=instance.user, is_main=True).first()
if default_address:
instance.address = default_address
# def update_cart_price_fields(order):
# pass
def update_sell_data(order):
pass
def update_quantity(order):
pass