Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
101 additions
and
29 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
{% load i18n %} | ||
|
||
{% for message in messages %} | ||
<div class="alert-box {{ message.tags }}"> | ||
<span>{{ message.text }}</span> | ||
<a href="#close-alert-box" class="close-alert-box ico-after cross white">{% trans "Masquer l’alerte" %}</a> | ||
</div> | ||
{% endfor %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
from django import template | ||
|
||
register = template.Library() | ||
|
||
""" | ||
Define a tag allowing to print properly all messages sent to the user. | ||
""" | ||
|
||
|
||
@register.inclusion_tag('messages.html', name='messages') | ||
def messages(messages): | ||
""" | ||
Define a tag allowing to print properly all messages sent to the user. | ||
:param messages: The messages list | ||
:return: dict | ||
""" | ||
|
||
simple_messages = [] | ||
for message in messages: | ||
simple_message = {'tags': str(message.tags), 'text': str(message)} | ||
if simple_message['text'].startswith('[\'') and simple_message['text'].endswith('\']'): | ||
simple_message['text'] = simple_message['text'][2:-2] | ||
simple_messages.append(simple_message) | ||
|
||
return {'messages': simple_messages} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
from django.contrib.messages.storage.base import Message | ||
from django.contrib.messages import constants, utils | ||
|
||
from django.test import SimpleTestCase | ||
|
||
from zds.utils.templatetags.messages import messages | ||
|
||
|
||
LEVEL_TAGS = utils.get_level_tags() | ||
|
||
|
||
class FunctionTests(SimpleTestCase): | ||
|
||
def test_standard_message(self): | ||
test_messages = [Message(constants.DEBUG, 'some debug message')] | ||
self.assertEqual(messages(test_messages), {'messages': [{'text': 'some debug message', 'tags': LEVEL_TAGS[constants.DEBUG]}]}) | ||
test_messages = [Message(constants.INFO, 'some info message')] | ||
self.assertEqual(messages(test_messages), {'messages': [{'text': 'some info message', 'tags': LEVEL_TAGS[constants.INFO]}]}) | ||
test_messages = [Message(constants.SUCCESS, 'some success message')] | ||
self.assertEqual(messages(test_messages), {'messages': [{'text': 'some success message', 'tags': LEVEL_TAGS[constants.SUCCESS]}]}) | ||
test_messages = [Message(constants.WARNING, 'some warning message')] | ||
self.assertEqual(messages(test_messages), {'messages': [{'text': 'some warning message', 'tags': LEVEL_TAGS[constants.WARNING]}]}) | ||
test_messages = [Message(constants.ERROR, 'some error message')] | ||
self.assertEqual(messages(test_messages), {'messages': [{'text': 'some error message', 'tags': LEVEL_TAGS[constants.ERROR]}]}) | ||
|
||
def test_no_messages(self): | ||
self.assertEqual(messages([]), {'messages': []}) | ||
|
||
def test_multiple_messages(self): | ||
test_messages = [Message(constants.DEBUG, 'some debug message'), Message(constants.INFO, 'some info message')] | ||
expected = {'messages': [ | ||
{'text': 'some debug message', 'tags': LEVEL_TAGS[constants.DEBUG]}, | ||
{'text': 'some info message', 'tags': LEVEL_TAGS[constants.INFO]} | ||
]} | ||
self.assertEqual(messages(test_messages), expected) | ||
|
||
def test_dirty_message(self): | ||
test_messages = [Message(constants.DEBUG, '[\'some debug message\']')] | ||
self.assertEqual(messages(test_messages), {'messages': [{'text': 'some debug message', 'tags': LEVEL_TAGS[constants.DEBUG]}]}) | ||
test_messages = [Message(constants.INFO, '[\'some info message\']')] | ||
self.assertEqual(messages(test_messages), {'messages': [{'text': 'some info message', 'tags': LEVEL_TAGS[constants.INFO]}]}) | ||
test_messages = [Message(constants.SUCCESS, '[\'some success message\']')] | ||
self.assertEqual(messages(test_messages), {'messages': [{'text': 'some success message', 'tags': LEVEL_TAGS[constants.SUCCESS]}]}) | ||
test_messages = [Message(constants.WARNING, '[\'some warning message\']')] | ||
self.assertEqual(messages(test_messages), {'messages': [{'text': 'some warning message', 'tags': LEVEL_TAGS[constants.WARNING]}]}) | ||
test_messages = [Message(constants.ERROR, '[\'some error message\']')] | ||
self.assertEqual(messages(test_messages), {'messages': [{'text': 'some error message', 'tags': LEVEL_TAGS[constants.ERROR]}]}) | ||
|
||
def test_multiple_dirty_message(self): | ||
test_messages = [Message(constants.DEBUG, '[\'some debug message\']'), Message(constants.INFO, '[\'some info message\']')] | ||
expected = {'messages': [ | ||
{'text': 'some debug message', 'tags': LEVEL_TAGS[constants.DEBUG]}, | ||
{'text': 'some info message', 'tags': LEVEL_TAGS[constants.INFO]} | ||
]} | ||
self.assertEqual(messages(test_messages), expected) |