Fixed #21421 -- Added level_tag attribute on messages.

Exposing the level name (e.g. "info") makes it possible to prepend
something to the class name. For example, Twitter Bootstrap has
an alert-info class. This class can now be added to the message
using `class="alert-{{ message.level_tag }}".
Because the level_tag was on the end of the `tags` property, it
could not be used in this fashion when extra_tags were given.
This commit is contained in:
Sjoerd Langkemper 2013-11-07 16:50:51 +01:00 committed by Baptiste Mispelon
parent f67cce0434
commit d87127655f
4 changed files with 47 additions and 6 deletions

View file

@ -212,6 +212,32 @@ is a mapping of the message level names to their numeric value::
</ul>
{% endif %}
The ``Message`` class
---------------------
.. class:: storage.base.Message
When you loop over the list of messages in a template, what you get are
instances of the ``Message`` class. It's quite a simple object, with only a
few attributes:
* ``message``: The actual text of the message.
* ``level``: An integer describing the type of the message (see the
`message levels`_ section above).
* ``tags``: A string combining all the message's tags (``extra_tags`` and
``level_tag``) separated by spaces.
* ``extra_tags``: A string containing custom tags for this message,
separated by spaces. It's empty by default.
.. versionadded:: 1.7
* ``level_tag``: The string representation of the level. By default, it's
the lowercase version of the name of the associated constant, but this
can be changed if you need by using the :setting:`MESSAGE_TAGS` setting.
Creating custom message levels
------------------------------