X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fcore%2Fmodels%2Fplcorebase.py;h=8d657a7b0230ef0de27689b1a5153f9902099258;hb=893a9d4f787dacfd9c397ae6e069a39c88688e49;hp=d461c9de1a36e922455ae54613ca3338254265f3;hpb=843249bb14e5aa99215dc61ee3afdc99d2ae81b3;p=plstackapi.git diff --git a/planetstack/core/models/plcorebase.py b/planetstack/core/models/plcorebase.py index d461c9d..8d657a7 100644 --- a/planetstack/core/models/plcorebase.py +++ b/planetstack/core/models/plcorebase.py @@ -69,6 +69,7 @@ class PlCoreBase(models.Model): def __init__(self, *args, **kwargs): super(PlCoreBase, self).__init__(*args, **kwargs) self.__initial = self._dict + self.silent = False @property def diff(self): @@ -98,25 +99,31 @@ class PlCoreBase(models.Model): def delete(self, *args, **kwds): # so we have something to give the observer purge = kwds.get('purge',False) + silent = kwds.get('silent',False) try: purge = purge or observer_disabled except NameError: pass - + if (purge): del kwds['purge'] super(PlCoreBase, self).delete(*args, **kwds) else: self.deleted = True self.enacted=None - self.save(update_fields=['enacted','deleted']) - + self.save(update_fields=['enacted','deleted'], silent=silent) def save(self, *args, **kwargs): + # let the user specify silence as either a kwarg or an instance varible + silent = self.silent + if "silent" in kwargs: + silent=silent or kwargs.pop("silent") + super(PlCoreBase, self).save(*args, **kwargs) # This is a no-op if observer_disabled is set - notify_observer() + if not silent: + notify_observer() self.__initial = self._dict