diff options
Diffstat (limited to 'lib/python2.7/site-packages/django/contrib/messages/storage/fallback.py')
-rw-r--r-- | lib/python2.7/site-packages/django/contrib/messages/storage/fallback.py | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/lib/python2.7/site-packages/django/contrib/messages/storage/fallback.py b/lib/python2.7/site-packages/django/contrib/messages/storage/fallback.py deleted file mode 100644 index 6c35343..0000000 --- a/lib/python2.7/site-packages/django/contrib/messages/storage/fallback.py +++ /dev/null @@ -1,54 +0,0 @@ -from django.contrib.messages.storage.base import BaseStorage -from django.contrib.messages.storage.cookie import CookieStorage -from django.contrib.messages.storage.session import SessionStorage - -class FallbackStorage(BaseStorage): - """ - Tries to store all messages in the first backend, storing any unstored - messages in each subsequent backend backend. - """ - storage_classes = (CookieStorage, SessionStorage) - - def __init__(self, *args, **kwargs): - super(FallbackStorage, self).__init__(*args, **kwargs) - self.storages = [storage_class(*args, **kwargs) - for storage_class in self.storage_classes] - self._used_storages = set() - - def _get(self, *args, **kwargs): - """ - Gets a single list of messages from all storage backends. - """ - all_messages = [] - for storage in self.storages: - messages, all_retrieved = storage._get() - # If the backend hasn't been used, no more retrieval is necessary. - if messages is None: - break - if messages: - self._used_storages.add(storage) - all_messages.extend(messages) - # If this storage class contained all the messages, no further - # retrieval is necessary - if all_retrieved: - break - return all_messages, all_retrieved - - def _store(self, messages, response, *args, **kwargs): - """ - Stores the messages, returning any unstored messages after trying all - backends. - - For each storage backend, any messages not stored are passed on to the - next backend. - """ - for storage in self.storages: - if messages: - messages = storage._store(messages, response, - remove_oldest=False) - # Even if there are no more messages, continue iterating to ensure - # storages which contained messages are flushed. - elif storage in self._used_storages: - storage._store([], response) - self._used_storages.remove(storage) - return messages |