Fixed #20610: Added a message level dict to contrib.message context processor.
This commit is contained in:
parent
e9a356a695
commit
9fde42a69a
|
@ -11,3 +11,11 @@ DEFAULT_TAGS = {
|
||||||
WARNING: 'warning',
|
WARNING: 'warning',
|
||||||
ERROR: 'error',
|
ERROR: 'error',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DEFAULT_LEVELS = {
|
||||||
|
'DEBUG': DEBUG,
|
||||||
|
'INFO': INFO,
|
||||||
|
'SUCCESS': SUCCESS,
|
||||||
|
'WARNING': WARNING,
|
||||||
|
'ERROR': ERROR,
|
||||||
|
}
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
from django.contrib.messages.api import get_messages
|
from django.contrib.messages.api import get_messages
|
||||||
|
from django.contrib.messages.constants import DEFAULT_LEVELS
|
||||||
|
|
||||||
|
|
||||||
def messages(request):
|
def messages(request):
|
||||||
"""
|
"""
|
||||||
Returns a lazy 'messages' context variable.
|
Returns a lazy 'messages' context variable.
|
||||||
"""
|
"""
|
||||||
return {'messages': get_messages(request)}
|
return {
|
||||||
|
'messages': get_messages(request),
|
||||||
|
'DEFAULT_MESSAGE_LEVELS': DEFAULT_LEVELS,
|
||||||
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ from django import http
|
||||||
from django.conf import settings, global_settings
|
from django.conf import settings, global_settings
|
||||||
from django.contrib.messages import constants, utils, get_level, set_level
|
from django.contrib.messages import constants, utils, get_level, set_level
|
||||||
from django.contrib.messages.api import MessageFailure
|
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 import default_storage, base
|
||||||
from django.contrib.messages.storage.base import Message
|
from django.contrib.messages.storage.base import Message
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
|
@ -189,6 +190,13 @@ class BaseTests(object):
|
||||||
for msg in data['messages']:
|
for msg in data['messages']:
|
||||||
self.assertNotContains(response, msg)
|
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)
|
@override_settings(MESSAGE_LEVEL=constants.DEBUG)
|
||||||
def test_multiple_posts(self):
|
def test_multiple_posts(self):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -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
|
the ``messages`` sequence, because otherwise the message storage will not be cleared
|
||||||
for the next request.
|
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
|
Creating custom message levels
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
|
|
|
@ -203,6 +203,9 @@ Minor features
|
||||||
follow the :setting:`SESSION_COOKIE_SECURE` and
|
follow the :setting:`SESSION_COOKIE_SECURE` and
|
||||||
:setting:`SESSION_COOKIE_HTTPONLY` settings.
|
: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`
|
:mod:`django.contrib.redirects`
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue