From 2fde4f4d83bd07d2cd15c2e62e4b97f09064cd62 Mon Sep 17 00:00:00 2001 From: Camilo Nova Date: Tue, 31 Jan 2017 10:41:55 -0500 Subject: [PATCH] Added the old value to the config_updated signal --- constance/backends/database/__init__.py | 3 ++- constance/backends/redisd.py | 3 ++- constance/signals.py | 2 +- docs/index.rst | 4 ++-- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/constance/backends/database/__init__.py b/constance/backends/database/__init__.py index 822531d..97768ba 100644 --- a/constance/backends/database/__init__.py +++ b/constance/backends/database/__init__.py @@ -77,6 +77,7 @@ class DatabaseBackend(Backend): return value def set(self, key, value): + old_value = self.get(key) constance, created = self._model._default_manager.get_or_create( key=self.add_prefix(key), defaults={'value': value} ) @@ -87,7 +88,7 @@ class DatabaseBackend(Backend): self._cache.set(key, value) signals.config_updated.send( - sender=config, updated_key=key, new_value=value + sender=config, key=key, old_value=old_value, new_value=value ) def clear(self, sender, instance, created, **kwargs): diff --git a/constance/backends/redisd.py b/constance/backends/redisd.py index dbb2045..c7d522e 100644 --- a/constance/backends/redisd.py +++ b/constance/backends/redisd.py @@ -48,7 +48,8 @@ class RedisBackend(Backend): yield key, loads(value) def set(self, key, value): + old_value = self.get(key) self._rd.set(self.add_prefix(key), dumps(value)) signals.config_updated.send( - sender=config, updated_key=key, new_value=value + sender=config, key=key, old_value=old_value, new_value=value ) diff --git a/constance/signals.py b/constance/signals.py index fad8198..f0c9796 100644 --- a/constance/signals.py +++ b/constance/signals.py @@ -1,5 +1,5 @@ import django.dispatch config_updated = django.dispatch.Signal( - providing_args=['updated_key', 'new_value'] + providing_args=['key', 'old_value', 'new_value'] ) diff --git a/docs/index.rst b/docs/index.rst index 4fd6645..e5a5a3a 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -81,8 +81,8 @@ You can use it as: from constance.signals import config_updated @receiver(config_updated) - def constance_updated(sender, updated_key, new_value, **kwargs): - print(sender, updated_key, new_value) + def constance_updated(sender, key, old_value, new_value, **kwargs): + print(sender, key, old_value, new_value) The sender is the ``config`` object, and the ``updated_key`` and ``new_value`` are the ones just changed.