Changeset 6776
- Timestamp:
- 11/29/07 23:50:44 (9 months ago)
- Files:
-
- django/branches/newforms-admin (modified) (1 prop)
- django/branches/newforms-admin/django/contrib/admindocs/utils.py (modified) (2 diffs)
- django/branches/newforms-admin/django/contrib/admindocs/views.py (modified) (2 diffs)
- django/branches/newforms-admin/django/contrib/admin/filterspecs.py (modified) (3 diffs)
- django/branches/newforms-admin/django/contrib/admin/models.py (modified) (2 diffs)
- django/branches/newforms-admin/django/contrib/admin/options.py (modified) (3 diffs)
- django/branches/newforms-admin/django/contrib/admin/sites.py (modified) (2 diffs)
- django/branches/newforms-admin/django/contrib/admin/templates/admin/base_site.html (modified) (1 diff)
- django/branches/newforms-admin/django/contrib/admin/templates/admin/change_form.html (modified) (1 diff)
- django/branches/newforms-admin/django/contrib/admin/templates/admin/date_hierarchy.html (modified) (1 diff)
- django/branches/newforms-admin/django/contrib/admin/templates/admin/delete_confirmation.html (modified) (2 diffs)
- django/branches/newforms-admin/django/contrib/admin/templates/admin_doc/model_detail.html (modified) (1 diff)
- django/branches/newforms-admin/django/contrib/admin/templates/admin/index.html (modified) (2 diffs)
- django/branches/newforms-admin/django/contrib/admin/templates/admin/invalid_setup.html (modified) (1 diff)
- django/branches/newforms-admin/django/contrib/admin/templates/admin/object_history.html (modified) (2 diffs)
- django/branches/newforms-admin/django/contrib/admin/templates/admin/pagination.html (modified) (1 diff)
- django/branches/newforms-admin/django/contrib/admin/templatetags/admin_list.py (modified) (5 diffs)
- django/branches/newforms-admin/django/contrib/admin/util.py (modified) (4 diffs)
- django/branches/newforms-admin/django/contrib/admin/views/decorators.py (modified) (2 diffs)
- django/branches/newforms-admin/django/contrib/admin/views/main.py (modified) (1 diff)
- django/branches/newforms-admin/django/contrib/csrf/middleware.py (modified) (2 diffs)
- django/branches/newforms-admin/django/contrib/databrowse/datastructures.py (modified) (6 diffs)
- django/branches/newforms-admin/django/contrib/databrowse/plugins/calendars.py (modified) (2 diffs)
- django/branches/newforms-admin/django/contrib/databrowse/plugins/fieldchoices.py (modified) (2 diffs)
- django/branches/newforms-admin/django/contrib/databrowse/sites.py (modified) (2 diffs)
- django/branches/newforms-admin/django/contrib/flatpages/views.py (modified) (2 diffs)
- django/branches/newforms-admin/django/contrib/humanize/templatetags/humanize.py (modified) (4 diffs)
- django/branches/newforms-admin/django/contrib/markup/templatetags/markup.py (modified) (4 diffs)
- django/branches/newforms-admin/django/contrib/markup/tests.py (modified) (2 diffs)
- django/branches/newforms-admin/django/contrib/sitemaps/templates/sitemap_index.xml (modified) (1 diff)
- django/branches/newforms-admin/django/contrib/sitemaps/templates/sitemap.xml (modified) (2 diffs)
- django/branches/newforms-admin/django/newforms/forms.py (modified) (4 diffs)
- django/branches/newforms-admin/django/newforms/util.py (modified) (3 diffs)
- django/branches/newforms-admin/django/newforms/widgets.py (modified) (14 diffs)
- django/branches/newforms-admin/django/oldforms/__init__.py (modified) (13 diffs)
- django/branches/newforms-admin/django/template/context.py (modified) (2 diffs)
- django/branches/newforms-admin/django/template/defaultfilters.py (modified) (48 diffs)
- django/branches/newforms-admin/django/template/defaulttags.py (modified) (4 diffs)
- django/branches/newforms-admin/django/template/__init__.py (modified) (11 diffs)
- django/branches/newforms-admin/django/utils/encoding.py (modified) (2 diffs)
- django/branches/newforms-admin/django/utils/html.py (modified) (5 diffs)
- django/branches/newforms-admin/django/utils/safestring.py (copied) (copied from django/trunk/django/utils/safestring.py)
- django/branches/newforms-admin/django/views/debug.py (modified) (14 diffs)
- django/branches/newforms-admin/docs/templates_python.txt (modified) (7 diffs)
- django/branches/newforms-admin/docs/templates.txt (modified) (7 diffs)
- django/branches/newforms-admin/tests/regressiontests/defaultfilters/tests.py (modified) (1 diff)
- django/branches/newforms-admin/tests/regressiontests/forms/forms.py (modified) (1 diff)
- django/branches/newforms-admin/tests/regressiontests/forms/tests.py (modified) (1 diff)
- django/branches/newforms-admin/tests/regressiontests/humanize/tests.py (modified) (2 diffs)
- django/branches/newforms-admin/tests/regressiontests/templates/filters.py (copied) (copied from django/trunk/tests/regressiontests/templates/filters.py)
- django/branches/newforms-admin/tests/regressiontests/templates/tests.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/newforms-admin
- Property svnmerge-integrated changed from /django/trunk:1-4345,4350-4357,4359-4365,4371-4372,4374-4377,4380-4386,4388,4390-4391,4400-4402,4404-4408,4410,4412-4419,4426-4427,4430-4432,4434,4441,4443-4444,4446-4447,4450,4452-4453,4455-4458,4476,4503,4546,4564-4569,4580-4586,4617,4630,4641-6390,6392-6655,6658-6670 to /django/trunk:1-4345,4350-4357,4359-4365,4371-4372,4374-4377,4380-4386,4388,4390-4391,4400-4402,4404-4408,4410,4412-4419,4426-4427,4430-4432,4434,4441,4443-4444,4446-4447,4450,4452-4453,4455-4458,4476,4503,4546,4564-4569,4580-4586,4617,4630,4641-6390,6392-6655,6658-6671
django/branches/newforms-admin/django/contrib/admindocs/utils.py
r5570 r6776 4 4 from email.Parser import HeaderParser 5 5 from email.Errors import HeaderParseError 6 from django.utils.safestring import mark_safe 6 7 try: 7 8 import docutils.core … … 67 68 destination_path=None, writer_name='html', 68 69 settings_overrides=overrides) 69 return parts['fragment']70 return mark_safe(parts['fragment']) 70 71 71 72 # django/branches/newforms-admin/django/contrib/admindocs/views.py
r6319 r6776 11 11 from django.contrib.sites.models import Site 12 12 from django.utils.translation import ugettext as _ 13 from django.utils.safestring import mark_safe 13 14 import inspect, os, re 14 15 … … 30 31 admin_root = request.path[:-len('doc/bookmarklets/')] 31 32 return render_to_response('admin_doc/bookmarklets.html', { 32 'admin_url': "%s://%s%s" % (request.is_secure() and 'https' or 'http', get_host(request), admin_root),33 'admin_url': mark_safe("%s://%s%s" % (request.is_secure() and 'https' or 'http', request.get_host(), admin_root)), 33 34 }, context_instance=RequestContext(request)) 34 35 bookmarklets = staff_member_required(bookmarklets) django/branches/newforms-admin/django/contrib/admin/filterspecs.py
r6216 r6776 10 10 from django.utils.encoding import smart_unicode, iri_to_uri 11 11 from django.utils.translation import ugettext as _ 12 from django.utils.html import escape 13 from django.utils.safestring import mark_safe 12 14 import datetime 13 15 … … 40 42 t = [] 41 43 if self.has_output(): 42 t.append(_(u'<h3>By %s:</h3>\n<ul>\n') % self.title())44 t.append(_(u'<h3>By %s:</h3>\n<ul>\n') % escape(self.title())) 43 45 44 46 for choice in self.choices(cl): … … 48 50 choice['display'])) 49 51 t.append('</ul>\n\n') 50 return "".join(t)52 return mark_safe("".join(t)) 51 53 52 54 class RelatedFilterSpec(FilterSpec): django/branches/newforms-admin/django/contrib/admin/models.py
r5828 r6776 4 4 from django.utils.translation import ugettext_lazy as _ 5 5 from django.utils.encoding import smart_unicode 6 from django.utils.safestring import mark_safe 6 7 7 8 ADDITION = 1 … … 50 51 This is relative to the Django admin index page. 51 52 """ 52 return u"%s/%s/%s/" % (self.content_type.app_label, self.content_type.model, self.object_id)53 return mark_safe(u"%s/%s/%s/" % (self.content_type.app_label, self.content_type.model, self.object_id)) django/branches/newforms-admin/django/contrib/admin/options.py
r6657 r6776 10 10 from django.shortcuts import get_object_or_404, render_to_response 11 11 from django.utils.html import escape 12 from django.utils.safestring import mark_safe 12 13 from django.utils.text import capfirst, get_text_list 13 14 from django.utils.translation import ugettext as _ … … 463 464 'has_absolute_url': hasattr(model, 'get_absolute_url'), 464 465 'ordered_objects': ordered_objects, 465 'form_url': form_url,466 'form_url': mark_safe(form_url), 466 467 'opts': opts, 467 468 'content_type_id': ContentType.objects.get_for_model(model).id, … … 653 654 # Populate deleted_objects, a data structure of all related objects that 654 655 # will also be deleted. 655 deleted_objects = [ u'%s: <a href="../../%s/">%s</a>' % (force_unicode(capfirst(opts.verbose_name)), object_id, escape(str(obj))), []]656 deleted_objects = [mark_safe(u'%s: <a href="../../%s/">%s</a>' % (escape(force_unicode(capfirst(opts.verbose_name))), force_unicode(object_id), escape(obj))), []] 656 657 perms_needed = sets.Set() 657 658 get_deleted_objects(deleted_objects, perms_needed, request.user, obj, opts, 1, self.admin_site) django/branches/newforms-admin/django/contrib/admin/sites.py
r6207 r6776 4 4 from django.db.models.base import ModelBase 5 5 from django.shortcuts import render_to_response 6 from django.utils.safestring import mark_safe 6 7 from django.utils.text import capfirst 7 8 from django.utils.translation import ugettext_lazy, ugettext as _ … … 273 274 model_dict = { 274 275 'name': capfirst(model._meta.verbose_name_plural), 275 'admin_url': '%s/%s/' % (app_label, model.__name__.lower()),276 'admin_url': mark_safe('%s/%s/' % (app_label, model.__name__.lower())), 276 277 'perms': perms, 277 278 } django/branches/newforms-admin/django/contrib/admin/templates/admin/base_site.html
r3349 r6776 2 2 {% load i18n %} 3 3 4 {% block title %}{{ title |escape}} | {% trans 'Django site admin' %}{% endblock %}4 {% block title %}{{ title }} | {% trans 'Django site admin' %}{% endblock %} 5 5 6 6 {% block branding %} django/branches/newforms-admin/django/contrib/admin/templates/admin/change_form.html
r6122 r6776 18 18 <div class="breadcrumbs"> 19 19 <a href="../../../">{% trans "Home" %}</a> › 20 <a href="../">{{ opts.verbose_name_plural|capfirst |escape}}</a> ›21 {% if add %}{% trans "Add" %} {{ opts.verbose_name |escape }}{% else %}{{ original|truncatewords:"18"|escape}}{% endif %}20 <a href="../">{{ opts.verbose_name_plural|capfirst }}</a> › 21 {% if add %}{% trans "Add" %} {{ opts.verbose_name }}{% else %}{{ original|truncatewords:"18" }}{% endif %} 22 22 </div> 23 23 {% endif %}{% endblock %} django/branches/newforms-admin/django/contrib/admin/templates/admin/date_hierarchy.html
r3349 r6776 2 2 <div class="xfull"> 3 3 <ul class="toplinks"> 4 {% if back %}<li class="date-back"><a href="{{ back.link }}">‹ {{ back.title |escape}}</a></li>{% endif %}4 {% if back %}<li class="date-back"><a href="{{ back.link }}">‹ {{ back.title }}</a></li>{% endif %} 5 5 {% for choice in choices %} 6 <li> {% if choice.link %}<a href="{{ choice.link }}">{% endif %}{{ choice.title |escape}}{% if choice.link %}</a>{% endif %}</li>6 <li> {% if choice.link %}<a href="{{ choice.link }}">{% endif %}{{ choice.title }}{% if choice.link %}</a>{% endif %}</li> 7 7 {% endfor %} 8 8 </ul><br class="clear" /> django/branches/newforms-admin/django/contrib/admin/templates/admin/delete_confirmation.html
r4351 r6776 7 7 <div class="breadcrumbs"> 8 8 <a href="../../../../">{% trans "Home" %}</a> › 9 <a href="../../">{{ opts.verbose_name_plural|capfirst |escape}}</a> ›9 <a href="../../">{{ opts.verbose_name_plural|capfirst }}</a> › 10 10 <a href="../">{{ object|escape|truncatewords:"18" }}</a> › 11 11 {% trans 'Delete' %} … … 18 18 <ul> 19 19 {% for obj in perms_lacking %} 20 <li>{{ obj |escape}}</li>20 <li>{{ obj }}</li> 21 21 {% endfor %} 22 22 </ul> django/branches/newforms-admin/django/contrib/admin/templates/admin_doc/model_detail.html
r3642 r6776 10 10 {% endblock %} 11 11 12 {% block breadcrumbs %}<div class="breadcrumbs"><a href="../../../">Home</a> › <a href="../../">Documentation</a> › <a href="../">Models</a> › {{ name |escape}}</div>{% endblock %}12 {% block breadcrumbs %}<div class="breadcrumbs"><a href="../../../">Home</a> › <a href="../../">Documentation</a> › <a href="../">Models</a> › {{ name }}</div>{% endblock %} 13 13 14 {% block title %}Model: {{ name |escape}}{% endblock %}14 {% block title %}Model: {{ name }}{% endblock %} 15 15 16 16 {% block content %} 17 17 <div id="content-main"> 18 <h1>{{ summary |escape}}</h1>18 <h1>{{ summary }}</h1> 19 19 20 20 {% if description %} 21 <p>{% filter escape|linebreaksbr %}{% trans description %}{% endfilter %}</p>21 <p>{% filter linebreaksbr %}{% trans description %}{% endfilter %}</p> 22 22 {% endif %} 23 23 django/branches/newforms-admin/django/contrib/admin/templates/admin/index.html
r5984 r6776 21 21 <tr> 22 22 {% if model.perms.change %} 23 <th scope="row"><a href="{{ model.admin_url }}">{{ model.name |escape}}</a></th>23 <th scope="row"><a href="{{ model.admin_url }}">{{ model.name }}</a></th> 24 24 {% else %} 25 <th scope="row">{{ model.name |escape}}</th>25 <th scope="row">{{ model.name }}</th> 26 26 {% endif %} 27 27 … … 60 60 <ul class="actionlist"> 61 61 {% for entry in admin_log %} 62 <li class="{% if entry.is_addition %}addlink{% endif %}{% if entry.is_change %}changelink{% endif %}{% if entry.is_deletion %}deletelink{% endif %}">{% if not entry.is_deletion %}<a href="{{ entry.get_admin_url }}">{% endif %}{{ entry.object_repr|escape }}{% if not entry.is_deletion %}</a>{% endif %}<br /><span class="mini quiet">{% filter capfirst |escape%}{% trans entry.content_type.name %}{% endfilter %}</span></li>62 <li class="{% if entry.is_addition %}addlink{% endif %}{% if entry.is_change %}changelink{% endif %}{% if entry.is_deletion %}deletelink{% endif %}">{% if not entry.is_deletion %}<a href="{{ entry.get_admin_url }}">{% endif %}{{ entry.object_repr|escape }}{% if not entry.is_deletion %}</a>{% endif %}<br /><span class="mini quiet">{% filter capfirst %}{% trans entry.content_type.name %}{% endfilter %}</span></li> 63 63 {% endfor %} 64 64 </ul> django/branches/newforms-admin/django/contrib/admin/templates/admin/invalid_setup.html
r4351 r6776 2 2 {% load i18n %} 3 3 4 {% block breadcrumbs %}<div class="breadcrumbs"><a href="../../">{% trans 'Home' %}</a> › {{ title |escape}}</div>{% endblock %}4 {% block breadcrumbs %}<div class="breadcrumbs"><a href="../../">{% trans 'Home' %}</a> › {{ title }}</div>{% endblock %} 5 5 6 6 {% block content %} django/branches/newforms-admin/django/contrib/admin/templates/admin/object_history.html
r4351 r6776 5 5 6 6 {% block breadcrumbs %} 7 <div class="breadcrumbs"><a href="../../../../">{% trans 'Home' %}</a> › <a href="../../">{{ module_name |escape }}</a> › <a href="../">{{ object|escape|truncatewords:"18" }}</a> › {% trans 'History' %}</div>7 <div class="breadcrumbs"><a href="../../../../">{% trans 'Home' %}</a> › <a href="../../">{{ module_name }}</a> › <a href="../">{{ object|truncatewords:"18" }}</a> › {% trans 'History' %}</div> 8 8 {% endblock %} 9 9 … … 25 25 <tr> 26 26 <th scope="row">{{ action.action_time|date:_("DATE_WITH_TIME_FULL") }}</th> 27 <td>{{ action.user.username }}{% if action.user.first_name %} ({{ action.user.first_name |escape }} {{ action.user.last_name|escape }}){% endif %}</td>28 <td>{{ action.change_message |escape}}</td>27 <td>{{ action.user.username }}{% if action.user.first_name %} ({{ action.user.first_name }} {{ action.user.last_name }}){% endif %}</td> 28 <td>{{ action.change_message }}</td> 29 29 </tr> 30 30 {% endfor %} django/branches/newforms-admin/django/contrib/admin/templates/admin/pagination.html
r3349 r6776 7 7 {% endfor %} 8 8 {% endif %} 9 {{ cl.result_count }} {% ifequal cl.result_count 1 %}{{ cl.opts.verbose_name|escape }}{% else %}{{ cl.opts.verbose_name_plural |escape}}{% endifequal %}9 {{ cl.result_count }} {% ifequal cl.result_count 1 %}{{ cl.opts.verbose_name|escape }}{% else %}{{ cl.opts.verbose_name_plural }}{% endifequal %} 10 10 {% if show_all_url %} <a href="{{ show_all_url }}" class="showall">{% trans 'Show all' %}</a>{% endif %} 11 11 </p> django/branches/newforms-admin/django/contrib/admin/templatetags/admin_list.py
r6158 r6776 5 5 from django.db import models 6 6 from django.utils import dateformat 7 from django.utils.html import escape 7 from django.utils.html import escape, conditional_escape 8 8 from django.utils.text import capfirst 9 from django.utils.safestring import mark_safe 9 10 from django.utils.translation import get_date_formats, get_partial_date_formats, ugettext as _ 10 11 from django.utils.encoding import smart_unicode, smart_str, force_unicode … … 20 21 return u'... ' 21 22 elif i == cl.page_num: 22 return u'<span class="this-page">%d</span> ' % (i+1)23 return mark_safe(u'<span class="this-page">%d</span> ' % (i+1)) 23 24 else: 24 return u'<a href="%s"%s>%d</a> ' % (cl.get_query_string({PAGE_VAR: i}), (i == cl.paginator.pages-1 and ' class="end"' or ''), i+1)25 return mark_safe(u'<a href="%s"%s>%d</a> ' % (cl.get_query_string({PAGE_VAR: i}), (i == cl.paginator.pages-1 and ' class="end"' or ''), i+1)) 25 26 paginator_number = register.simple_tag(paginator_number) 26 27 … … 118 119 def _boolean_icon(field_val): 119 120 BOOLEAN_MAPPING = {True: 'yes', False: 'no', None: 'unknown'} 120 return u'<img src="%simg/admin/icon-%s.gif" alt="%s" />' % (settings.ADMIN_MEDIA_PREFIX, BOOLEAN_MAPPING[field_val], field_val)121 return mark_safe(u'<img src="%simg/admin/icon-%s.gif" alt="%s" />' % (settings.ADMIN_MEDIA_PREFIX, BOOLEAN_MAPPING[field_val], field_val)) 121 122 122 123 def items_for_result(cl, result): … … 194 195 # Problem cases are long ints (23L) and non-ASCII strings. 195 196 result_id = repr(force_unicode(getattr(result, pk)))[1:] 196 yield (u'<%s%s><a href="%s"%s>%s</a></%s>' % \197 (table_tag, row_class, url, (cl.is_popup and ' onclick="opener.dismissRelatedLookupPopup(window, %s); return false;"' % result_id or ''), result_repr, table_tag))198 else: 199 yield (u'<td%s>%s</td>' % (row_class, result_repr))197 yield mark_safe(u'<%s%s><a href="%s"%s>%s</a></%s>' % \ 198 (table_tag, row_class, url, (cl.is_popup and ' onclick="opener.dismissRelatedLookupPopup(window, %s); return false;"' % result_id or ''), conditional_escape(result_repr), table_tag)) 199 else: 200 yield mark_safe(u'<td%s>%s</td>' % (row_class, conditional_escape(result_repr))) 200 201 201 202 def results(cl): … … 221 222 year_month_format, month_day_format = get_partial_date_formats() 222 223 223 link = lambda d: cl.get_query_string(d, [field_generic])224 link = lambda d: mark_safe(cl.get_query_string(d, [field_generic])) 224 225 225 226 if year_lookup and month_lookup and day_lookup: django/branches/newforms-admin/django/contrib/admin/util.py
r6325 r6776 2 2 from django.db import models 3 3 from django.utils.html import escape 4 from django.utils.safestring import mark_safe 4 5 from django.utils.text import capfirst 5 6 from django.utils.encoding import force_unicode … … 38 39 # Don't display link to edit, because it either has no 39 40 # admin or is edited inline. 40 nh(deleted_objects, current_depth, [ u'%s: %s' % (force_unicode(capfirst(related.opts.verbose_name)), sub_obj), []])41 nh(deleted_objects, current_depth, [mark_safe(u'%s: %s' % (force_unicode(capfirst(related.opts.verbose_name)), sub_obj)), []]) 41 42 else: 42 43 # Display a link to the admin page. 43 nh(deleted_objects, current_depth, [u'%s: <a href="../../../../%s/%s/%s/">%s</a>' % \ 44 (force_unicode(capfirst(related.opts.verbose_name)), related.opts.app_label, related.opts.object_name.lower(), 45 sub_obj._get_pk_val(), sub_obj), []]) 44 nh(deleted_objects, current_depth, [mark_safe(u'%s: <a href="../../../../%s/%s/%s/">%s</a>' % 45 (escape(force_unicode(capfirst(related.opts.verbose_name))), 46 related.opts.app_label, 47 related.opts.object_name.lower(), 48 sub_obj._get_pk_val(), sub_obj)), []]) 46 49 get_deleted_objects(deleted_objects, perms_needed, user, sub_obj, related.opts, current_depth+2, admin_site) 47 50 else: … … 55 58 else: 56 59 # Display a link to the admin page. 57 nh(deleted_objects, current_depth, [ u'%s: <a href="../../../../%s/%s/%s/">%s</a>' % \58 ( force_unicode(capfirst(related.opts.verbose_name)), related.opts.app_label, related.opts.object_name.lower(), sub_obj._get_pk_val(), escape(sub_obj)), []])60 nh(deleted_objects, current_depth, [mark_safe(u'%s: <a href="../../../../%s/%s/%s/">%s</a>' % \ 61 (escape(force_unicode(capfirst(related.opts.verbose_name))), related.opts.app_label, related.opts.object_name.lower(), sub_obj._get_pk_val(), escape(sub_obj))), []]) 59 62 get_deleted_objects(deleted_objects, perms_needed, user, sub_obj, related.opts, current_depth+2, admin_site) 60 63 # If there were related objects, and the user doesn't have … … 88 91 # Display a link to the admin page. 89 92 nh(deleted_objects, current_depth, [ 90 (_('One or more %(fieldname)s in %(name)s:') % {'fieldname': force_unicode(related.field.verbose_name), 'name': force_unicode(related.opts.verbose_name)}) + \93 mark_safe((_('One or more %(fieldname)s in %(name)s:') % {'fieldname': escape(force_unicode(related.field.verbose_name)), 'name': escape(force_unicode(related.opts.verbose_name))}) + \ 91 94 (u' <a href="../../../../%s/%s/%s/">%s</a>' % \ 92 (related.opts.app_label, related.opts.module_name, sub_obj._get_pk_val(), escape(sub_obj))) , []])95 (related.opts.app_label, related.opts.module_name, sub_obj._get_pk_val(), escape(sub_obj)))), []]) 93 96 # If there were related objects, and the user doesn't have 94 97 # permission to change them, add the missing perm to perms_needed. django/branches/newforms-admin/django/contrib/admin/views/decorators.py
r5627 r6776 5 5 from django.shortcuts import render_to_response 6 6 from django.utils.translation import ugettext_lazy, ugettext as _ 7 from django.utils.safestring import mark_safe 7 8 import base64, datetime, md5 8 9 import cPickle as pickle … … 23 24 return render_to_response('admin/login.html', { 24 25 'title': _('Log in'), 25 'app_path': request.path,26 'app_path': mark_safe(request.path), 26 27 'post_data': post_data, 27 28 'error_message': error_message django/branches/newforms-admin/django/contrib/admin/views/main.py
r6470 r6776 174 174 elif v is not None: 175 175 p[k] = v 176 return '?' + '&'.join([u'%s=%s' % (k, v) for k, v in p.items()]).replace(' ', '%20')176 return mark_safe('?' + '&'.join([u'%s=%s' % (k, v) for k, v in p.items()]).replace(' ', '%20')) 177 177 178 178 def get_results(self, request): django/branches/newforms-admin/django/contrib/csrf/middleware.py
r6051 r6776 8 8 from django.conf import settings 9 9 from django.http import HttpResponseForbidden 10 from django.utils.safestring import mark_safe 10 11 import md5 11 12 import re 12 13 import itertools 13 14 14 _ERROR_MSG = '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><body><h1>403 Forbidden</h1><p>Cross Site Request Forgery detected. Request aborted.</p></body></html>'15 _ERROR_MSG = mark_safe('<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><body><h1>403 Forbidden</h1><p>Cross Site Request Forgery detected. Request aborted.</p></body></html>') 15 16 16 17 _POST_FORM_RE = \ … … 83 84 def add_csrf_field(match): 84 85 """Returns the matched <form> tag plus the added <input> element""" 85 return ma tch.group() + "<div style='display:none;'>" + \86 return mark_safe(match.group() + "<div style='display:none;'>" + \ 86 87 "<input type='hidden' " + idattributes.next() + \ 87 88 " name='csrfmiddlewaretoken' value='" + csrf_token + \ 88 "' /></div>" 89 "' /></div>") 89 90 90 91 # Modify any POST forms django/branches/newforms-admin/django/contrib/databrowse/datastructures.py
r5984 r6776 9 9 from django.utils.translation import get_date_formats 10 10 from django.utils.encoding import smart_unicode, smart_str, iri_to_uri 11 from django.utils.safestring import mark_safe 11 12 from django.db.models.query import QuerySet 12 13 … … 29 30 30 31 def url(self): 31 return '%s%s/%s/' % (self.site.root_url, self.model._meta.app_label, self.model._meta.module_name)32 return mark_safe('%s%s/%s/' % (self.site.root_url, self.model._meta.app_label, self.model._meta.module_name)) 32 33 33 34 def objects(self, **kwargs): … … 69 70 def url(self): 70 71 if self.field.choices: 71 return '%s%s/%s/%s/' % (self.model.site.root_url, self.model.model._meta.app_label, self.model.model._meta.module_name, self.field.name)72 return mark_safe('%s%s/%s/%s/' % (self.model.site.root_url, self.model.model._meta.app_label, self.model.model._meta.module_name, self.field.name)) 72 73 elif self.field.rel: 73 return '%s%s/%s/' % (self.model.site.root_url, self.model.model._meta.app_label, self.model.model._meta.module_name)74 return mark_safe('%s%s/%s/' % (self.model.site.root_url, self.model.model._meta.app_label, self.model.model._meta.module_name)) 74 75 75 76 class EasyChoice(object): … … 82 83 83 84 def url(self): 84 return '%s%s/%s/%s/%s/' % (self.model.site.root_url, self.model.model._meta.app_label, self.model.model._meta.module_name, self.field.field.name, iri_to_uri(self.value))85 return mark_safe('%s%s/%s/%s/%s/' % (self.model.site.root_url, self.model.model._meta.app_label, self.model.model._meta.module_name, self.field.field.name, iri_to_uri(self.value))) 85 86 86 87 class EasyInstance(object): … … 185 186 lst = [] 186 187 for value in self.values(): 187 url = '%s%s/%s/objects/%s/' % (self.model.site.root_url, m.model._meta.app_label, m.model._meta.module_name, iri_to_uri(value._get_pk_val()))188 url = mark_safe('%s%s/%s/objects/%s/' % (self.model.site.root_url, m.model._meta.app_label, m.model._meta.module_name, iri_to_uri(value._get_pk_val()))) 188 189 lst.append((smart_unicode(value), url)) 189 190 else: … … 192 193 lst = [] 193 194 for value in self.values(): 194 url = '%s%s/%s/fields/%s/%s/' % (self.model.site.root_url, self.model.model._meta.app_label, self.model.model._meta.module_name, self.field.name, iri_to_uri(self.raw_value))195 url = mark_safe('%s%s/%s/fields/%s/%s/' % (self.model.site.root_url, self.model.model._meta.app_label, self.model.model._meta.module_name, self.field.name, iri_to_uri(self.raw_value))) 195 196 lst.append((value, url)) 196 197 elif isinstance(self.field, models.URLField): django/branches/newforms-admin/django/contrib/databrowse/plugins/calendars.py
r5984 r6776 6 6 from django.utils.text import capfirst 7 7 from django.utils.translation import get_date_formats 8 from django.utils.encoding import force_unicode 9 from django.utils.safestring import mark_safe 8 10 from django.views.generic import date_based 9 from django.utils.encoding import force_unicode10 11 import datetime 11 12 import time … … 30 31 if not fields: 31 32 return u'' 32 return u'<p class="filter"><strong>View calendar by:</strong> %s</p>' % \33 u', '.join(['<a href="calendars/%s/">%s</a>' % (f.name, force_unicode(capfirst(f.verbose_name))) for f in fields.values()]) 33 return mark_safe(u'<p class="filter"><strong>View calendar by:</strong> %s</p>' % \ 34 u', '.join(['<a href="calendars/%s/">%s</a>' % (f.name, force_unicode(capfirst(f.verbose_name))) for f in fields.values()])) 34 35 35 36 def urls(self, plugin_name, easy_instance_field): 36 37 if isinstance(easy_instance_field.field, models.DateField): 37 return [u'%s%s/%s/%s/%s/%s/' % (easy_instance_field.model.url(), 38 return [mark_safe(u'%s%s/%s/%s/%s/%s/' % ( 39 easy_instance_field.model.url(), 38 40 plugin_name, easy_instance_field.field.name, 39 41 easy_instance_field.raw_value.year, 40 42 easy_instance_field.raw_value.strftime('%b').lower(), 41 easy_instance_field.raw_value.day) ]43 easy_instance_field.raw_value.day))] 42 44 43 45 def model_view(self, request, model_databrowse, url): django/branches/newforms-admin/django/contrib/databrowse/plugins/fieldchoices.py
r5918 r6776 6 6 from django.utils.text import capfirst 7 7 from django.utils.encoding import smart_str, force_unicode 8 from django.utils.safestring import mark_safe 8 9 from django.views.generic import date_based 9 10 import datetime … … 33 34 if not fields: 34 35 return u'' 35 return u'<p class="filter"><strong>View by:</strong> %s</p>' % \36 u', '.join(['<a href="fields/%s/">%s</a>' % (f.name, force_unicode(capfirst(f.verbose_name))) for f in fields.values()]) 36 return mark_safe(u'<p class="filter"><strong>View by:</strong> %s</p>' % \ 37 u', '.join(['<a href="fields/%s/">%s</a>' % (f.name, force_unicode(capfirst(f.verbose_name))) for f in fields.values()])) 37 38 38 39 def urls(self, plugin_name, easy_instance_field): 39 40 if easy_instance_field.field in self.field_dict(easy_instance_field.model.model).values(): 40 41 field_value = smart_str(easy_instance_field.raw_value) 41 return [u'%s%s/%s/%s/' % (easy_instance_field.model.url(), 42 return [mark_safe(u'%s%s/%s/%s/' % ( 43 easy_instance_field.model.url(), 42 44 plugin_name, easy_instance_field.field.name, 43 urllib.quote(field_value, safe='')) ]45 urllib.quote(field_value, safe='')))] 44 46 45 47 def model_view(self, request, model_databrowse, url): django/branches/newforms-admin/django/contrib/databrowse/sites.py
r5918 r6776 3 3 from django.contrib.databrowse.datastructures import EasyModel, EasyChoice 4 4 from django.shortcuts import render_to_response 5 from django.utils.safestring import mark_safe 5 6 6 7 class AlreadyRegistered(Exception): … … 61 62 def main_view(self, request): 62 63 easy_model = EasyModel(self.site, self.model) 63 html_snippets = u'\n'.join([p.model_index_html(request, self.model, self.site) for p in self.plugins.values()])64 html_snippets = mark_safe(u'\n'.join([p.model_index_html(request, self.model, self.site) for p in self.plugins.values()])) 64 65 return render_to_response('databrowse/model_detail.html', { 65 66 'model': easy_model, django/branches/newforms-admin/django/contrib/flatpages/views.py
r4265 r6776 5 5 from django.conf import settings 6 6 from django.core.xheaders import populate_xheaders 7 from django.utils.safestring import mark_safe 7 8 8 9 DEFAULT_TEMPLATE = 'flatpages/default.html' … … 31 32 else: 32 33 t = loader.get_template(DEFAULT_TEMPLATE) 34 35 # To avoid having to always use the "|safe" filter in flatpage templates, 36 # mark the title and content as already safe (since they are raw HTML 37 # content in the first place). 38 f.title = mark_safe(f.title) 39 f.content = mark_safe(f.content) 40 33 41 c = RequestContext(request, { 34 42 'flatpage': f, django/branches/newforms-admin/django/contrib/humanize/templatetags/humanize.py
r6014 r6776 22 22 return u"%d%s" % (value, t[0]) 23 23 return u'%d%s' % (value, t[value % 10]) 24 ordinal.is_safe = True 24 25 register.filter(ordinal) 25 26 … … 35 36 else: 36 37 return intcomma(new) 38 intcomma.is_safe = True 37 39 register.filter(intcomma) 38 40 … … 56 58 return ungettext('%(value).1f trillion', '%(value).1f trillion', new_value) % {'value': new_value} 57 59 return value 60 intword.is_safe = False 58 61 register.filter(intword) 59 62 … … 70 73 return value 71 74 return (_('one'), _('two'), _('three'), _('four'), _('five'), _('six'), _('seven'), _('eight'), _('nine'))[value-1] 75 apnumber.is_safe = True 72 76 register.filter(apnumber) 73 77 django/branches/newforms-admin/django/contrib/markup/templatetags/markup.py
r5627 r6776 18 18 from django.conf import settings 19 19 from django.utils.encoding import smart_str, force_unicode 20 from django.utils.safestring import mark_safe 20 21 21 22 register = template.Library() … … 29 30 return force_unicode(value) 30 31 else: 31 return force_unicode(textile.textile(smart_str(value), encoding='utf-8', output='utf-8')) 32 return mark_safe(force_unicode(textile.textile(smart_str(value), encoding='utf-8', output='utf-8'))) 33 textile.is_safe = True 32 34 33 35 def markdown(value): … … 39 41 return force_unicode(value) 40 42 else: 41 return force_unicode(markdown.markdown(smart_str(value))) 43 return mark_safe(force_unicode(markdown.markdown(smart_str(value)))) 44 markdown.is_safe = True 42 45 43 46 def restructuredtext(value): … … 51 54 docutils_settings = getattr(settings, "RESTRUCTUREDTEXT_FILTER_SETTINGS", {}) 52 55 parts = publish_parts(source=smart_str(value), writer_name="html4css1", settings_overrides=docutils_settings)&nb
