11import logging
2+ from attr import has
23from django .db .models import signals
34
5+ from purplship .server .conf import settings
46from purplship .server .core .utils import failsafe
57from purplship .server .events .serializers import EventTypes
68from purplship .server .orders .serializers .order import compute_order_status
@@ -68,16 +70,15 @@ def shipment_updated(
6870 logger .info ("shipment related order successfully updated" )
6971
7072
71- def order_updated (
72- sender , instance , created , raw , using , update_fields , * args , ** kwargs
73- ):
73+ def order_updated (sender , instance , * args , ** kwargs ):
7474 """Order related events:
7575 - order created
7676 - order status changed (in-transit, delivered or blocked)
7777 """
78- changes = update_fields or []
78+ created = kwargs .get ("created" , False )
79+ changes = kwargs .get ("update_fields" ) or []
7980
80- if created :
81+ if created or "created_at" in changes :
8182 event = EventTypes .order_created .value
8283 elif "status" not in changes :
8384 return
@@ -95,7 +96,14 @@ def order_updated(
9596 test_mode = instance .test_mode
9697 context = dict (
9798 user_id = failsafe (lambda : instance .created_by .id ),
98- org_id = getattr (getattr (instance , "org" , None ), "id" , None ),
99+ org_id = failsafe (
100+ lambda : instance .org .first ().id if hasattr (instance , "org" ) else None
101+ ),
99102 )
100103
101- tasks .notify_webhooks (event , data , event_at , context , test_mode )
104+ if settings .MULTI_ORGANIZATIONS and context ["org_id" ] is None :
105+ return
106+
107+ tasks .notify_webhooks (
108+ event , data , event_at , context , test_mode , schema = settings .schema
109+ )
0 commit comments