@receiver(pre_save, sender=Patch)
-def patch_change_callback(sender, instance, **kwargs):
+def patch_change_callback(sender, instance, raw, **kwargs):
# we only want notification of modified patches
- if instance.pk is None:
+ if raw or instance.pk is None:
return
if instance.project is None or not instance.project.send_notifications:
@receiver(post_save, sender=CoverLetter)
-def create_cover_created_event(sender, instance, created, **kwargs):
+def create_cover_created_event(sender, instance, created, raw, **kwargs):
def create_event(cover):
return Event.objects.create(
cover=cover,
category=Event.CATEGORY_COVER_CREATED)
- if not created:
+ # don't trigger for items loaded from fixtures or new items
+ if raw or not created:
return
create_event(instance)
@receiver(post_save, sender=Patch)
-def create_patch_created_event(sender, instance, created, **kwargs):
+def create_patch_created_event(sender, instance, created, raw, **kwargs):
def create_event(patch):
return Event.objects.create(
patch=patch,
category=Event.CATEGORY_PATCH_CREATED)
- if not created:
+ # don't trigger for items loaded from fixtures or new items
+ if raw or not created:
return
create_event(instance)
@receiver(pre_save, sender=Patch)
-def create_patch_state_changed_event(sender, instance, **kwargs):
+def create_patch_state_changed_event(sender, instance, raw, **kwargs):
def create_event(patch, before, after):
return Event.objects.create(
previous_state=before,
current_state=after)
- # only trigger on updated items
- if not instance.pk:
+ # don't trigger for items loaded from fixtures or new items
+ if raw or not instance.pk:
return
orig_patch = Patch.objects.get(pk=instance.pk)
@receiver(pre_save, sender=Patch)
-def create_patch_delegated_event(sender, instance, **kwargs):
+def create_patch_delegated_event(sender, instance, raw, **kwargs):
def create_event(patch, before, after):
return Event.objects.create(
previous_delegate=before,
current_delegate=after)
- # only trigger on updated items
- if not instance.pk:
+ # don't trigger for items loaded from fixtures or new items
+ if raw or not instance.pk:
return
orig_patch = Patch.objects.get(pk=instance.pk)
@receiver(post_save, sender=SeriesPatch)
-def create_patch_completed_event(sender, instance, created, **kwargs):
+def create_patch_completed_event(sender, instance, created, raw, **kwargs):
"""Create patch completed event for patches with series."""
def create_event(patch, series):
series=series,
category=Event.CATEGORY_PATCH_COMPLETED)
- if not created:
+ # don't trigger for items loaded from fixtures or existing items
+ if raw or not created:
return
# if dependencies not met, don't raise event. There's also no point raising
@receiver(post_save, sender=Check)
-def create_check_created_event(sender, instance, created, **kwargs):
+def create_check_created_event(sender, instance, created, raw, **kwargs):
def create_event(check):
# TODO(stephenfin): It might make sense to add a 'project' field to
created_check=check,
category=Event.CATEGORY_CHECK_CREATED)
- if not created:
+ # don't trigger for items loaded from fixtures or existing items
+ if raw or not created:
return
create_event(instance)
@receiver(post_save, sender=Series)
-def create_series_created_event(sender, instance, created, **kwargs):
+def create_series_created_event(sender, instance, created, raw, **kwargs):
def create_event(series):
return Event.objects.create(
series=series,
category=Event.CATEGORY_SERIES_CREATED)
- if not created:
+ # don't trigger for items loaded from fixtures or existing items
+ if raw or not created:
return
create_event(instance)
@receiver(post_save, sender=SeriesPatch)
-def create_series_completed_event(sender, instance, created, **kwargs):
+def create_series_completed_event(sender, instance, created, raw, **kwargs):
# NOTE(stephenfin): We subscribe to the SeriesPatch.post_save signal
# instead of Series.m2m_changed to minimize the amount of times this is
series=series,
category=Event.CATEGORY_SERIES_COMPLETED)
- if not created:
+ # don't trigger for items loaded from fixtures or existing items
+ if raw or not created:
return
if instance.series.received_all: