|
10 | 10 | from django.forms.widgets import Select
|
11 | 11 | from django.shortcuts import render_to_response
|
12 | 12 | from django.template import RequestContext
|
13 |
| -from django.utils.html import escape |
| 13 | +from django.utils.html import escape, format_html, mark_safe |
14 | 14 | from django.utils.translation import ugettext_lazy as _
|
15 | 15 |
|
16 | 16 | from celery import current_app
|
@@ -55,37 +55,41 @@ def __init__(self, *args, **kwargs):
|
55 | 55 | def colored_state(task):
|
56 | 56 | state = escape(task.state)
|
57 | 57 | color = TASK_STATE_COLORS.get(task.state, 'black')
|
58 |
| - return '<b><span style="color: {0};">{1}</span></b>'.format(color, state) |
| 58 | + return format_html( |
| 59 | + '<b><span style="color: {0};">{1}</span></b>', color, state |
| 60 | + ) |
59 | 61 |
|
60 | 62 |
|
61 | 63 | @display_field(_('state'), 'last_heartbeat')
|
62 | 64 | def node_state(node):
|
63 | 65 | state = node.is_alive() and 'ONLINE' or 'OFFLINE'
|
64 | 66 | color = NODE_STATE_COLORS[state]
|
65 |
| - return '<b><span style="color: {0};">{1}</span></b>'.format(color, state) |
| 67 | + return format_html( |
| 68 | + '<b><span style="color: {0};">{1}</span></b>', color, state |
| 69 | + ) |
66 | 70 |
|
67 | 71 |
|
68 | 72 | @display_field(_('ETA'), 'eta')
|
69 | 73 | def eta(task):
|
70 | 74 | if not task.eta:
|
71 |
| - return '<span style="color: gray;">none</span>' |
| 75 | + return mark_safe('<span style="color: gray;">none</span>') |
72 | 76 | return escape(make_aware(task.eta))
|
73 | 77 |
|
74 | 78 |
|
75 | 79 | @display_field(_('when'), 'tstamp')
|
76 | 80 | def tstamp(task):
|
77 | 81 | # convert to local timezone
|
78 | 82 | value = make_aware(task.tstamp)
|
79 |
| - return '<div title="{0}">{1}</div>'.format( |
80 |
| - escape(str(value)), escape(naturaldate(value)), |
| 83 | + return format_html( |
| 84 | + '<div title="{0}">{1}</div>', str(value), naturaldate(value) |
81 | 85 | )
|
82 | 86 |
|
83 | 87 |
|
84 | 88 | @display_field(_('name'), 'name')
|
85 | 89 | def name(task):
|
86 | 90 | short_name = abbrtask(task.name, 16)
|
87 |
| - return '<div title="{0}"><b>{1}</b></div>'.format( |
88 |
| - escape(task.name), escape(short_name), |
| 91 | + return format_html( |
| 92 | + '<div title="{0}"><b>{1}</b></div>', task.name, short_name |
89 | 93 | )
|
90 | 94 |
|
91 | 95 |
|
|
0 commit comments