Loading django/contrib/messages/constants.py +8 −0 Original line number Diff line number Diff line Loading @@ -11,3 +11,11 @@ DEFAULT_TAGS = { WARNING: 'warning', ERROR: 'error', } DEFAULT_LEVELS = { 'DEBUG': DEBUG, 'INFO': INFO, 'SUCCESS': SUCCESS, 'WARNING': WARNING, 'ERROR': ERROR, } django/contrib/messages/context_processors.py +5 −1 Original line number Diff line number Diff line from django.contrib.messages.api import get_messages from django.contrib.messages.constants import DEFAULT_LEVELS def messages(request): """ Returns a lazy 'messages' context variable. """ return {'messages': get_messages(request)} return { 'messages': get_messages(request), 'DEFAULT_MESSAGE_LEVELS': DEFAULT_LEVELS, } django/contrib/messages/tests/base.py +8 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ from django import http from django.conf import settings, global_settings from django.contrib.messages import constants, utils, get_level, set_level from django.contrib.messages.api import MessageFailure from django.contrib.messages.constants import DEFAULT_LEVELS from django.contrib.messages.storage import default_storage, base from django.contrib.messages.storage.base import Message from django.core.urlresolvers import reverse Loading Loading @@ -189,6 +190,13 @@ class BaseTests(object): for msg in data['messages']: self.assertNotContains(response, msg) def test_context_processor_message_levels(self): show_url = reverse('django.contrib.messages.tests.urls.show_template_response') response = self.client.get(show_url) self.assertTrue('DEFAULT_MESSAGE_LEVELS' in response.context) self.assertEqual(response.context['DEFAULT_MESSAGE_LEVELS'], DEFAULT_LEVELS) @override_settings(MESSAGE_LEVEL=constants.DEBUG) def test_multiple_posts(self): """ Loading docs/ref/contrib/messages.txt +16 −0 Original line number Diff line number Diff line Loading @@ -196,6 +196,22 @@ Even if you know there is only just one message, you should still iterate over the ``messages`` sequence, because otherwise the message storage will not be cleared for the next request. .. versionadded:: 1.7 The context processor also provides a ``DEFAULT_MESSAGE_LEVELS`` variable which is a mapping of the message level names to their numeric value:: {% if messages %} <ul class="messages"> {% for message in messages %} <li{% if message.tags %} class="{{ message.tags }}"{% endif %}> {% if message.level == DEFAULT_MESSAGE_LEVELS.ERROR %}Important: {% endif %} {{ message }} </li> {% endfor %} </ul> {% endif %} Creating custom message levels ------------------------------ Loading docs/releases/1.7.txt +3 −0 Original line number Diff line number Diff line Loading @@ -203,6 +203,9 @@ Minor features follow the :setting:`SESSION_COOKIE_SECURE` and :setting:`SESSION_COOKIE_HTTPONLY` settings. * The :ref:`messages context processor <message-displaying>` now adds a dictionary of default levels under the name ``DEFAULT_MESSAGE_LEVELS``. :mod:`django.contrib.redirects` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Loading Loading
django/contrib/messages/constants.py +8 −0 Original line number Diff line number Diff line Loading @@ -11,3 +11,11 @@ DEFAULT_TAGS = { WARNING: 'warning', ERROR: 'error', } DEFAULT_LEVELS = { 'DEBUG': DEBUG, 'INFO': INFO, 'SUCCESS': SUCCESS, 'WARNING': WARNING, 'ERROR': ERROR, }
django/contrib/messages/context_processors.py +5 −1 Original line number Diff line number Diff line from django.contrib.messages.api import get_messages from django.contrib.messages.constants import DEFAULT_LEVELS def messages(request): """ Returns a lazy 'messages' context variable. """ return {'messages': get_messages(request)} return { 'messages': get_messages(request), 'DEFAULT_MESSAGE_LEVELS': DEFAULT_LEVELS, }
django/contrib/messages/tests/base.py +8 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ from django import http from django.conf import settings, global_settings from django.contrib.messages import constants, utils, get_level, set_level from django.contrib.messages.api import MessageFailure from django.contrib.messages.constants import DEFAULT_LEVELS from django.contrib.messages.storage import default_storage, base from django.contrib.messages.storage.base import Message from django.core.urlresolvers import reverse Loading Loading @@ -189,6 +190,13 @@ class BaseTests(object): for msg in data['messages']: self.assertNotContains(response, msg) def test_context_processor_message_levels(self): show_url = reverse('django.contrib.messages.tests.urls.show_template_response') response = self.client.get(show_url) self.assertTrue('DEFAULT_MESSAGE_LEVELS' in response.context) self.assertEqual(response.context['DEFAULT_MESSAGE_LEVELS'], DEFAULT_LEVELS) @override_settings(MESSAGE_LEVEL=constants.DEBUG) def test_multiple_posts(self): """ Loading
docs/ref/contrib/messages.txt +16 −0 Original line number Diff line number Diff line Loading @@ -196,6 +196,22 @@ Even if you know there is only just one message, you should still iterate over the ``messages`` sequence, because otherwise the message storage will not be cleared for the next request. .. versionadded:: 1.7 The context processor also provides a ``DEFAULT_MESSAGE_LEVELS`` variable which is a mapping of the message level names to their numeric value:: {% if messages %} <ul class="messages"> {% for message in messages %} <li{% if message.tags %} class="{{ message.tags }}"{% endif %}> {% if message.level == DEFAULT_MESSAGE_LEVELS.ERROR %}Important: {% endif %} {{ message }} </li> {% endfor %} </ul> {% endif %} Creating custom message levels ------------------------------ Loading
docs/releases/1.7.txt +3 −0 Original line number Diff line number Diff line Loading @@ -203,6 +203,9 @@ Minor features follow the :setting:`SESSION_COOKIE_SECURE` and :setting:`SESSION_COOKIE_HTTPONLY` settings. * The :ref:`messages context processor <message-displaying>` now adds a dictionary of default levels under the name ``DEFAULT_MESSAGE_LEVELS``. :mod:`django.contrib.redirects` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Loading