Changeset 5609
- Timestamp:
- 07/04/07 07:11:04 (10 months ago)
- Files:
-
- django/trunk (modified) (1 prop)
- django/trunk/AUTHORS (modified) (2 diffs)
- django/trunk/django/bin/make-messages.py (modified) (1 diff)
- django/trunk/django/conf/global_settings.py (modified) (1 diff)
- django/trunk/django/contrib/admin/filterspecs.py (modified) (5 diffs)
- django/trunk/django/contrib/admin/media/js/urlify.js (modified) (3 diffs)
- django/trunk/django/contrib/admin/models.py (modified) (4 diffs)
- django/trunk/django/contrib/admin/templates/admin/filter.html (modified) (1 diff)
- django/trunk/django/contrib/admin/templatetags/adminapplist.py (modified) (2 diffs)
- django/trunk/django/contrib/admin/templatetags/admin_list.py (modified) (6 diffs)
- django/trunk/django/contrib/admin/templatetags/admin_modify.py (modified) (8 diffs)
- django/trunk/django/contrib/admin/views/auth.py (modified) (1 diff)
- django/trunk/django/contrib/admin/views/decorators.py (modified) (1 diff)
- django/trunk/django/contrib/admin/views/doc.py (modified) (1 diff)
- django/trunk/django/contrib/admin/views/main.py (modified) (19 diffs)
- django/trunk/django/contrib/auth/forms.py (modified) (1 diff)
- django/trunk/django/contrib/auth/management.py (modified) (2 diffs)
- django/trunk/django/contrib/auth/models.py (modified) (12 diffs)
- django/trunk/django/contrib/auth/views.py (modified) (1 diff)
- django/trunk/django/contrib/comments/feeds.py (modified) (2 diffs)
- django/trunk/django/contrib/comments/models.py (modified) (1 diff)
- django/trunk/django/contrib/comments/views/comments.py (modified) (4 diffs)
- django/trunk/django/contrib/comments/views/karma.py (modified) (1 diff)
- django/trunk/django/contrib/contenttypes/generic.py (modified) (2 diffs)
- django/trunk/django/contrib/contenttypes/management.py (modified) (2 diffs)
- django/trunk/django/contrib/contenttypes/models.py (modified) (3 diffs)
- django/trunk/django/contrib/databrowse/datastructures.py (modified) (9 diffs)
- django/trunk/django/contrib/databrowse/plugins/calendars.py (modified) (2 diffs)
- django/trunk/django/contrib/databrowse/plugins/fieldchoices.py (modified) (2 diffs)
- django/trunk/django/contrib/databrowse/sites.py (modified) (1 diff)
- django/trunk/django/contrib/databrowse/templates/databrowse/fieldchoice_list.html (modified) (1 diff)
- django/trunk/django/contrib/flatpages/models.py (modified) (2 diffs)
- django/trunk/django/contrib/humanize/templatetags/humanize.py (modified) (4 diffs)
- django/trunk/django/contrib/localflavor/au/forms.py (modified) (3 diffs)
- django/trunk/django/contrib/localflavor/br/forms.py (modified) (8 diffs)
- django/trunk/django/contrib/localflavor/ch/ch_states.py (modified) (1 diff)
- django/trunk/django/contrib/localflavor/ch/forms.py (modified) (3 diffs)
- django/trunk/django/contrib/localflavor/cl/forms.py (modified) (5 diffs)
- django/trunk/django/contrib/localflavor/de/de_states.py (modified) (1 diff)
- django/trunk/django/contrib/localflavor/de/forms.py (modified) (5 diffs)
- django/trunk/django/contrib/localflavor/fi/forms.py (modified) (4 diffs)
- django/trunk/django/contrib/localflavor/fr/forms.py (modified) (3 diffs)
- django/trunk/django/contrib/localflavor/is_/forms.py (modified) (4 diffs)
- django/trunk/django/contrib/localflavor/it/forms.py (modified) (6 diffs)
- django/trunk/django/contrib/localflavor/it/it_province.py (modified) (1 diff)
- django/trunk/django/contrib/localflavor/it/util.py (modified) (4 diffs)
- django/trunk/django/contrib/localflavor/jp/forms.py (modified) (2 diffs)
- django/trunk/django/contrib/localflavor/jp/jp_prefectures.py (modified) (1 diff)
- django/trunk/django/contrib/localflavor/no/forms.py (modified) (5 diffs)
- django/trunk/django/contrib/localflavor/no/no_municipalities.py (modified) (3 diffs)
- django/trunk/django/contrib/localflavor/uk/forms.py (modified) (2 diffs)
- django/trunk/django/contrib/localflavor/us/forms.py (modified) (6 diffs)
- django/trunk/django/contrib/markup/templatetags/markup.py (modified) (4 diffs)
- django/trunk/django/contrib/redirects/models.py (modified) (2 diffs)
- django/trunk/django/contrib/sessions/models.py (modified) (1 diff)
- django/trunk/django/contrib/sitemaps/views.py (modified) (2 diffs)
- django/trunk/django/contrib/sites/models.py (modified) (2 diffs)
- django/trunk/django/contrib/syndication/feeds.py (modified) (3 diffs)
- django/trunk/django/contrib/webdesign/lorem_ipsum.py (modified) (4 diffs)
- django/trunk/django/contrib/webdesign/templatetags/webdesign.py (modified) (1 diff)
- django/trunk/django/contrib/webdesign/tests.py (modified) (1 diff)
- django/trunk/django/core/handlers/modpython.py (modified) (3 diffs)
- django/trunk/django/core/handlers/wsgi.py (modified) (3 diffs)
- django/trunk/django/core/mail.py (modified) (6 diffs)
- django/trunk/django/core/management.py (modified) (1 diff)
- django/trunk/django/core/serializers/base.py (modified) (3 diffs)
- django/trunk/django/core/serializers/__init__.py (modified) (3 diffs)
- django/trunk/django/core/serializers/python.py (modified) (7 diffs)
- django/trunk/django/core/serializers/pyyaml.py (modified) (2 diffs)
- django/trunk/django/core/serializers/xml_serializer.py (modified) (17 diffs)
- django/trunk/django/core/urlresolvers.py (modified) (4 diffs)
- django/trunk/django/core/validators.py (modified) (32 diffs)
- django/trunk/django/db/backends/mysql/base.py (modified) (1 diff)
- django/trunk/django/db/backends/mysql_old/base.py (modified) (2 diffs)
- django/trunk/django/db/backends/oracle/base.py (modified) (6 diffs)
- django/trunk/django/db/backends/oracle/creation.py (modified) (2 diffs)
- django/trunk/django/db/backends/postgresql/base.py (modified) (9 diffs)
- django/trunk/django/db/backends/postgresql_psycopg2/base.py (modified) (3 diffs)
- django/trunk/django/db/backends/sqlite3/base.py (modified) (5 diffs)
- django/trunk/django/db/backends/util.py (modified) (4 diffs)
- django/trunk/django/db/models/base.py (modified) (4 diffs)
- django/trunk/django/db/models/fields/__init__.py (modified) (19 diffs)
- django/trunk/django/db/models/fields/related.py (modified) (4 diffs)
- django/trunk/django/db/models/manipulators.py (modified) (3 diffs)
- django/trunk/django/db/models/options.py (modified) (4 diffs)
- django/trunk/django/db/models/query.py (modified) (2 diffs)
- django/trunk/django/http/__init__.py (modified) (13 diffs)
- django/trunk/django/newforms/fields.py (modified) (21 diffs)
- django/trunk/django/newforms/forms.py (modified) (4 diffs)
- django/trunk/django/newforms/models.py (modified) (5 diffs)
- django/trunk/django/newforms/util.py (modified) (3 diffs)
- django/trunk/django/newforms/widgets.py (modified) (13 diffs)
- django/trunk/django/oldforms/__init__.py (modified) (24 diffs)
- django/trunk/django/template/defaultfilters.py (modified) (25 diffs)
- django/trunk/django/template/defaulttags.py (modified) (3 diffs)
- django/trunk/django/template/__init__.py (modified) (7 diffs)
- django/trunk/django/template/loaders/app_directories.py (modified) (1 diff)
- django/trunk/django/template/loaders/eggs.py (modified) (1 diff)
- django/trunk/django/template/loaders/filesystem.py (modified) (1 diff)
- django/trunk/django/templatetags/i18n.py (modified) (3 diffs)
- django/trunk/django/test/client.py (modified) (6 diffs)
- django/trunk/django/test/testcases.py (modified) (2 diffs)
- django/trunk/django/test/utils.py (modified) (1 diff)
- django/trunk/django/utils/cache.py (modified) (2 diffs)
- django/trunk/django/utils/dateformat.py (modified) (13 diffs)
- django/trunk/django/utils/dates.py (modified) (1 diff)
- django/trunk/django/utils/encoding.py (modified) (2 diffs)
- django/trunk/django/utils/feedgenerator.py (modified) (5 diffs)
- django/trunk/django/utils/functional.py (modified) (4 diffs)
- django/trunk/django/utils/html.py (modified) (6 diffs)
- django/trunk/django/utils/http.py (copied) (copied from django/branches/unicode/django/utils/http.py)
- django/trunk/django/utils/stopwords.py (modified) (1 diff)
- django/trunk/django/utils/text.py (modified) (12 diffs)
- django/trunk/django/utils/timesince.py (modified) (4 diffs)
- django/trunk/django/utils/translation/__init__.py (modified) (3 diffs)
- django/trunk/django/utils/translation/trans_null.py (modified) (3 diffs)
- django/trunk/django/utils/translation/trans_real.py (modified) (9 diffs)
- django/trunk/django/utils/tzinfo.py (modified) (4 diffs)
- django/trunk/django/views/debug.py (modified) (3 diffs)
- django/trunk/django/views/generic/create_update.py (modified) (4 diffs)
- django/trunk/docs/contributing.txt (modified) (1 diff)
- django/trunk/docs/db-api.txt (modified) (3 diffs)
- django/trunk/docs/forms.txt (modified) (1 diff)
- django/trunk/docs/i18n.txt (modified) (15 diffs)
- django/trunk/docs/model-api.txt (modified) (4 diffs)
- django/trunk/docs/newforms.txt (modified) (1 diff)
- django/trunk/docs/overview.txt (modified) (2 diffs)
- django/trunk/docs/settings.txt (modified) (1 diff)
- django/trunk/docs/templates.txt (modified) (1 diff)
- django/trunk/docs/tutorial01.txt (modified) (2 diffs)
- django/trunk/docs/unicode.txt (copied) (copied from django/branches/unicode/docs/unicode.txt)
- django/trunk/tests/modeltests/basic/models.py (modified) (3 diffs)
- django/trunk/tests/modeltests/choices/models.py (modified) (2 diffs)
- django/trunk/tests/modeltests/custom_columns/models.py (modified) (4 diffs)
- django/trunk/tests/modeltests/custom_managers/models.py (modified) (3 diffs)
- django/trunk/tests/modeltests/custom_methods/models.py (modified) (1 diff)
- django/trunk/tests/modeltests/custom_pk/models.py (modified) (4 diffs)
- django/trunk/tests/modeltests/field_defaults/models.py (modified) (1 diff)
- django/trunk/tests/modeltests/fixtures/models.py (modified) (5 diffs)
- django/trunk/tests/modeltests/generic_relations/models.py (modified) (7 diffs)
- django/trunk/tests/modeltests/get_latest/models.py (modified) (2 diffs)
- django/trunk/tests/modeltests/get_object_or_404/models.py (modified) (2 diffs)
- django/trunk/tests/modeltests/get_or_create/models.py (modified) (1 diff)
- django/trunk/tests/modeltests/lookup/models.py (modified) (4 diffs)
- django/trunk/tests/modeltests/m2m_and_m2o/models.py (modified) (1 diff)
- django/trunk/tests/modeltests/m2m_intermediary/models.py (modified) (3 diffs)
- django/trunk/tests/modeltests/m2m_multiple/models.py (modified) (2 diffs)
- django/trunk/tests/modeltests/m2m_recursive/models.py (modified) (1 diff)
- django/trunk/tests/modeltests/m2o_recursive2/models.py (modified) (1 diff)
- django/trunk/tests/modeltests/m2o_recursive/models.py (modified) (1 diff)
- django/trunk/tests/modeltests/manipulators/models.py (modified) (3 diffs)
- django/trunk/tests/modeltests/many_to_many/models.py (modified) (2 diffs)
- django/trunk/tests/modeltests/many_to_one/models.py (modified) (4 diffs)
- django/trunk/tests/modeltests/many_to_one_null/models.py (modified) (2 diffs)
- django/trunk/tests/modeltests/model_forms/models.py (modified) (6 diffs)
- django/trunk/tests/modeltests/model_inheritance/models.py (modified) (2 diffs)
- django/trunk/tests/modeltests/one_to_one/models.py (modified) (3 diffs)
- django/trunk/tests/modeltests/ordering/models.py (modified) (1 diff)
- django/trunk/tests/modeltests/or_lookups/models.py (modified) (2 diffs)
- django/trunk/tests/modeltests/pagination/models.py (modified) (1 diff)
- django/trunk/tests/modeltests/reserved_names/models.py (modified) (1 diff)
- django/trunk/tests/modeltests/reverse_lookup/models.py (modified) (3 diffs)
- django/trunk/tests/modeltests/save_delete_hooks/models.py (modified) (1 diff)
- django/trunk/tests/modeltests/select_related/models.py (modified) (8 diffs)
- django/trunk/tests/modeltests/serializers/models.py (modified) (4 diffs)
- django/trunk/tests/modeltests/str/models.py (modified) (3 diffs)
- django/trunk/tests/modeltests/test_client/models.py (modified) (2 diffs)
- django/trunk/tests/modeltests/test_client/views.py (modified) (1 diff)
- django/trunk/tests/modeltests/transactions/models.py (modified) (1 diff)
- django/trunk/tests/modeltests/validation/models.py (modified) (6 diffs)
- django/trunk/tests/regressiontests/dateformat/tests.py (modified) (3 diffs)
- django/trunk/tests/regressiontests/defaultfilters/tests.py (modified) (9 diffs)
- django/trunk/tests/regressiontests/fixtures_regress/models.py (modified) (1 diff)
- django/trunk/tests/regressiontests/forms/localflavor.py (modified) (3 diffs)
- django/trunk/tests/regressiontests/forms/regressions.py (modified) (1 diff)
- django/trunk/tests/regressiontests/forms/tests.py (modified) (1 diff)
- django/trunk/tests/regressiontests/httpwrappers/tests.py (modified) (15 diffs)
- django/trunk/tests/regressiontests/humanize/tests.py (modified) (3 diffs)
- django/trunk/tests/regressiontests/i18n (copied) (copied from django/branches/unicode/tests/regressiontests/i18n)
- django/trunk/tests/regressiontests/i18n/__init__.py (copied) (copied from django/branches/unicode/tests/regressiontests/i18n/__init__.py)
- django/trunk/tests/regressiontests/i18n/models.py (copied) (copied from django/branches/unicode/tests/regressiontests/i18n/models.py)
- django/trunk/tests/regressiontests/i18n/tests.py (copied) (copied from django/branches/unicode/tests/regressiontests/i18n/tests.py)
- django/trunk/tests/regressiontests/model_regress (copied) (copied from django/branches/unicode/tests/regressiontests/model_regress)
- django/trunk/tests/regressiontests/model_regress/__init__.py (copied) (copied from django/branches/unicode/tests/regressiontests/model_regress/__init__.py)
- django/trunk/tests/regressiontests/model_regress/models.py (copied) (copied from django/branches/unicode/tests/regressiontests/model_regress/models.py)
- django/trunk/tests/regressiontests/null_queries/models.py (modified) (2 diffs)
- django/trunk/tests/regressiontests/one_to_one_regress/models.py (modified) (3 diffs)
- django/trunk/tests/regressiontests/serializers_regress/tests.py (modified) (1 diff)
- django/trunk/tests/regressiontests/string_lookup/models.py (modified) (6 diffs)
- django/trunk/tests/regressiontests/templates/tests.py (modified) (4 diffs)
- django/trunk/tests/regressiontests/templates/unicode.py (copied) (copied from django/branches/unicode/tests/regressiontests/templates/unicode.py)
- django/trunk/tests/regressiontests/templates/urls.py (modified) (2 diffs)
- django/trunk/tests/regressiontests/test_client_regress/models.py (modified) (3 diffs)
- django/trunk/tests/regressiontests/test_client_regress/urls.py (modified) (1 diff)
- django/trunk/tests/regressiontests/test_client_regress/views.py (modified) (2 diffs)
- django/trunk/tests/regressiontests/text/tests.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk
- Property svnmerge-integrated set to /django/trunk:1-5600
django/trunk/AUTHORS
r5593 r5609 114 114 Owen Griffiths 115 115 Espen Grindhaug <http://grindhaug.org/> 116 Thomas GÃŒttler <hv@tbz-pariv.de> 116 117 Brian Harring <ferringb@gmail.com> 117 118 Brant Harris … … 148 149 Joseph Kocherhans 149 150 konrad@gwu.edu 151 kurtiss@meetro.com 150 152 lakin.wecker@gmail.com 151 153 Nick Lane <nick.lane.au@gmail.com> django/trunk/django/bin/make-messages.py
r5084 r5609 104 104 thefile = '%s.py' % file 105 105 if verbose: sys.stdout.write('processing file %s in %s\n' % (file, dirpath)) 106 cmd = 'xgettext %s -d %s -L Python --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy:1,2 -- from-code UTF-8 -o - "%s"' % (106 cmd = 'xgettext %s -d %s -L Python --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy:1,2 --keyword=ugettext_noop --keyword=ugettext_lazy --keyword=ungettext_lazy:1,2 --from-code UTF-8 -o - "%s"' % ( 107 107 os.path.exists(potfile) and '--omit-header' or '', domain, os.path.join(dirpath, thefile)) 108 108 (stdin, stdout, stderr) = os.popen3(cmd, 'b') django/trunk/django/conf/global_settings.py
r5523 r5609 98 98 DEFAULT_CHARSET = 'utf-8' 99 99 100 # Encoding of files read from disk (template and initial SQL files). 101 FILE_CHARSET = 'utf-8' 102 100 103 # E-mail address that error messages come from. 101 104 SERVER_EMAIL = 'root@localhost' django/trunk/django/contrib/admin/filterspecs.py
r4486 r5609 8 8 9 9 from django.db import models 10 from django.utils.encoding import smart_unicode, iri_to_uri 11 from django.utils.translation import ugettext as _ 10 12 import datetime 11 13 … … 38 40 t = [] 39 41 if self.has_output(): 40 t.append(_( '<h3>By %s:</h3>\n<ul>\n') % self.title())42 t.append(_(u'<h3>By %s:</h3>\n<ul>\n') % self.title()) 41 43 42 44 for choice in self.choices(cl): 43 t.append( '<li%s><a href="%s">%s</a></li>\n' % \45 t.append(u'<li%s><a href="%s">%s</a></li>\n' % \ 44 46 ((choice['selected'] and ' class="selected"' or ''), 45 choice['query_string'],47 iri_to_uri(choice['query_string']), 46 48 choice['display'])) 47 49 t.append('</ul>\n\n') … … 71 73 for val in self.lookup_choices: 72 74 pk_val = getattr(val, self.field.rel.to._meta.pk.attname) 73 yield {'selected': self.lookup_val == s tr(pk_val),75 yield {'selected': self.lookup_val == smart_unicode(pk_val), 74 76 'query_string': cl.get_query_string({self.lookup_kwarg: pk_val}), 75 77 'display': val} … … 88 90 'display': _('All')} 89 91 for k, v in self.field.choices: 90 yield {'selected': s tr(k) == self.lookup_val,92 yield {'selected': smart_unicode(k) == self.lookup_val, 91 93 'query_string': cl.get_query_string({self.lookup_kwarg: k}), 92 94 'display': v} … … 169 171 'display': _('All')} 170 172 for val in self.lookup_choices: 171 val = s tr(val[self.field.name])173 val = smart_unicode(val[self.field.name]) 172 174 yield {'selected': self.lookup_val == val, 173 175 'query_string': cl.get_query_string({self.field.name: val}), django/trunk/django/contrib/admin/media/js/urlify.js
r4537 r5609 1 var LATIN_MAP = 2 { 3 'Ã': 'A', 'Ã': 'A', 'Ã': 'A', 'Ã': 'A', 'Ã': 'A', 'à 4 ': 'A', 'Ã': 'AE', 'Ã': 5 'C', 'Ã': 'E', 'Ã': 'E', 'Ã': 'E', 'Ã': 'E', 'Ã': 'I', 'Ã': 'I', 'Ã': 'I', 6 'Ã': 'I', 'Ã': 'D', 'Ã': 'N', 'Ã': 'O', 'Ã': 'O', 'Ã': 'O', 'Ã': 'O', 'Ã': 7 'O', 'Ã': 'O', 'Ã': 'U', 'Ã': 'U', 'Ã': 'U', 'Ã': 'U', 'Ã': 'Y', 'Ã': 'TH', 8 'Ã': 'ss', 'à ':'a', 'á':'a', 'â': 'a', 'ã': 'a', 'À': 'a', 'Ã¥': 'a', 'Ê': 9 'ae', 'ç': 'c', 'Ú': 'e', 'é': 'e', 'ê': 'e', 'ë': 'e', 'ì': 'i', 'Ã': 'i', 10 'î': 'i', 'ï': 'i', 'ð': 'o', 'ñ': 'n', 'ò': 'o', 'ó': 'o', 'ÃŽ': 'o', 'õ': 11 'o', 'ö': 'o', 'Þ': 'o', 'ù': 'u', 'ú': 'u', 'û': 'u', 'ÃŒ': 'u', 'Ü': 'y', 12 'ß': 'th', 'ÿ': 'y', 13 } 14 var LATIN_SYMBOLS_MAP = 15 { 16 '©':'(c)', 17 } 18 var GREEK_MAP = 19 { 20 'α':'a', 'β':'b', 'γ':'g', 'ÎŽ':'d', 'ε':'e', 'ζ':'z', 'η':'h', 'Ξ':'8', 21 'ι':'i', 'κ':'k', 'λ':'l', 'ÎŒ':'m', 'Μ':'n', 'Ο':'3', 'ο':'o', 'Ï':'p', 22 'Ï':'r', 'Ï':'s', 'Ï':'t', 'Ï 23 ':'y', 'Ï':'f', 'Ï':'x', 'Ï':'ps', 'Ï':'w', 24 'ά':'a', 'Î':'e', 'ί':'i', 'Ï':'o', 'Ï':'y', 'ή':'h', 'Ï':'w', 'Ï':'s', 25 'Ï':'i', 'ΰ':'y', 'Ï':'y', 'Î':'i', 26 'Î':'A', 'Î':'B', 'Î':'G', 'Î':'D', 'Î':'E', 'Î':'Z', 'Î':'H', 'Î':'8', 27 'Î':'I', 'Î':'K', 'Î':'L', 'Î':'M', 'Î':'N', 'Î':'3', 'Î':'O', 'Î ':'P', 28 'Ρ':'R', 'Σ':'S', '΀':'T', 'Î¥':'Y', 'Ί':'F', 'Χ':'X', 'Κ':'PS', 'Ω':'W', 29 'Î':'A', 'Î':'E', 'Î':'I', 'Î':'O', 'Î':'Y', 'Î':'H', 'Î':'W', 'Ϊ':'I', 30 'Ϋ':'Y' 31 } 32 var TURKISH_MAP = { 33 'Å':'s', 'Å':'S', 'ı':'i', 'İ':'I', 'ç':'c', 'Ã':'C', 'ÃŒ':'u', 'Ã':'U', 34 'ö':'o', 'Ã':'O', 'Ä':'g', 'Ä':'G', 35 } 36 // var RUSSIAN_MAP = 37 // { 38 // } 39 40 var ALL_DOWNCODE_MAPS=new Array() 41 ALL_DOWNCODE_MAPS[0]=LATIN_MAP 42 ALL_DOWNCODE_MAPS[1]=LATIN_SYMBOLS_MAP 43 ALL_DOWNCODE_MAPS[2]=GREEK_MAP 44 ALL_DOWNCODE_MAPS[3]=TURKISH_MAP 45 //ALL_DOWNCODE_MAPS[4]=RUSSIAN_MAP 46 47 var Downcoder = new Object(); 48 Downcoder.Initialize = function() 49 { 50 if (Downcoder.map) // already made 51 return ; 52 Downcoder.map ={} 53 Downcoder.chars = '' ; 54 for(var i in ALL_DOWNCODE_MAPS) 55 { 56 var lookup = ALL_DOWNCODE_MAPS[i] 57 for (var c in lookup) 58 { 59 Downcoder.map[c] = lookup[c] ; 60 Downcoder.chars += c ; 61 } 62 } 63 Downcoder.regex = new RegExp('[' + Downcoder.chars + ']|[^' + Downcoder.chars + ']+','g') ; 64 } 65 66 downcode= function( slug ) 67 { 68 Downcoder.Initialize() ; 69 var downcoded ="" 70 var pieces = slug.match(Downcoder.regex); 71 if(pieces) 72 { 73 for (var i = 0 ; i < pieces.length ; i++) 74 { 75 if (pieces[i].length == 1) 76 { 77 var mapped = Downcoder.map[pieces[i]] ; 78 if (mapped != null) 79 { 80 downcoded+=mapped; 81 continue ; 82 } 83 } 84 downcoded+=pieces[i]; 85 } 86 } 87 else 88 { 89 downcoded = slug; 90 } 91 return downcoded; 92 } 93 94 1 95 function URLify(s, num_chars) { 2 96 // changes, e.g., "Petty theft" to "petty_theft" 3 97 // remove all these words from the string before urlifying 98 s = downcode(s); 4 99 removelist = ["a", "an", "as", "at", "before", "but", "by", "for", "from", 5 100 "is", "in", "into", "like", "of", "off", "on", "onto", "per", … … 8 103 r = new RegExp('\\b(' + removelist.join('|') + ')\\b', 'gi'); 9 104 s = s.replace(r, ''); 105 // if downcode doesn't hit, the char will be stripped here 10 106 s = s.replace(/[^-\w\s]/g, ''); // remove unneeded chars 11 107 s = s.replace(/^\s+|\s+$/g, ''); // trim leading/trailing spaces … … 14 110 return s.substring(0, num_chars);// trim to first num_chars chars 15 111 } 112 django/trunk/django/contrib/admin/models.py
r5519 r5609 2 2 from django.contrib.contenttypes.models import ContentType 3 3 from django.contrib.auth.models import User 4 from django.utils.translation import gettext_lazy as _ 4 from django.utils.translation import ugettext_lazy as _ 5 from django.utils.encoding import smart_unicode 5 6 6 7 ADDITION = 1 … … 10 11 class LogEntryManager(models.Manager): 11 12 def log_action(self, user_id, content_type_id, object_id, object_repr, action_flag, change_message=''): 12 e = self.model(None, None, user_id, content_type_id, s tr(object_id), object_repr[:200], action_flag, change_message)13 e = self.model(None, None, user_id, content_type_id, smart_unicode(object_id), object_repr[:200], action_flag, change_message) 13 14 e.save() 14 15 … … 29 30 30 31 def __repr__(self): 31 return s tr(self.action_time)32 return smart_unicode(self.action_time) 32 33 33 34 def is_addition(self): … … 49 50 This is relative to the Django admin index page. 50 51 """ 51 return "%s/%s/%s/" % (self.content_type.app_label, self.content_type.model, self.object_id)52 return u"%s/%s/%s/" % (self.content_type.app_label, self.content_type.model, self.object_id) django/trunk/django/contrib/admin/templates/admin/filter.html
r3349 r5609 4 4 {% for choice in choices %} 5 5 <li{% if choice.selected %} class="selected"{% endif %}> 6 <a href="{{ choice.query_string }}">{{ choice.display|escape }}</a></li>6 <a href="{{ choice.query_string|iriencode }}">{{ choice.display|escape }}</a></li> 7 7 {% endfor %} 8 8 </ul> django/trunk/django/contrib/admin/templatetags/adminapplist.py
r5511 r5609 1 1 from django import template 2 2 from django.db.models import get_models 3 from django.utils.encoding import force_unicode 3 4 4 5 register = template.Library() … … 37 38 if True in perms.values(): 38 39 model_list.append({ 39 'name': capfirst(m._meta.verbose_name_plural),40 'admin_url': '%s/%s/' % (app_label, m.__name__.lower()),40 'name': force_unicode(capfirst(m._meta.verbose_name_plural)), 41 'admin_url': u'%s/%s/' % (force_unicode(app_label), m.__name__.lower()), 41 42 'perms': perms, 42 43 }) django/trunk/django/contrib/admin/templatetags/admin_list.py
r5318 r5609 7 7 from django.utils.html import escape 8 8 from django.utils.text import capfirst 9 from django.utils.translation import get_date_formats, get_partial_date_formats 9 from django.utils.translation import get_date_formats, get_partial_date_formats, ugettext as _ 10 from django.utils.encoding import smart_unicode, smart_str, force_unicode 10 11 from django.template import Library 11 12 import datetime … … 17 18 def paginator_number(cl,i): 18 19 if i == DOT: 19 return '... '20 return u'... ' 20 21 elif i == cl.page_num: 21 return '<span class="this-page">%d</span> ' % (i+1)22 return u'<span class="this-page">%d</span> ' % (i+1) 22 23 else: 23 return '<a href="%s"%s>%d</a> ' % (cl.get_query_string({PAGE_VAR: i}), (i == cl.paginator.pages-1 and ' class="end"' or ''), i+1)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) 24 25 paginator_number = register.simple_tag(paginator_number) 25 26 … … 76 77 except models.FieldDoesNotExist: 77 78 # For non-field list_display values, check for the function 78 # attribute "short_description". If that doesn't exist, fall 79 # back to the method name. And __str__ is a special-case. 80 if field_name == '__str__': 81 header = lookup_opts.verbose_name 79 # attribute "short_description". If that doesn't exist, fall back 80 # to the method name. And __str__ and __unicode__ are special-cases. 81 if field_name == '__unicode__': 82 header = force_unicode(lookup_opts.verbose_name) 83 elif field_name == '__str__': 84 header = smart_str(lookup_opts.verbose_name) 82 85 else: 83 86 attr = getattr(cl.model, field_name) # Let AttributeErrors propagate. … … 115 118 def _boolean_icon(field_val): 116 119 BOOLEAN_MAPPING = {True: 'yes', False: 'no', None: 'unknown'} 117 return '<img src="%simg/admin/icon-%s.gif" alt="%s" />' % (settings.ADMIN_MEDIA_PREFIX, BOOLEAN_MAPPING[field_val], field_val)120 return u'<img src="%simg/admin/icon-%s.gif" alt="%s" />' % (settings.ADMIN_MEDIA_PREFIX, BOOLEAN_MAPPING[field_val], field_val) 118 121 119 122 def items_for_result(cl, result): … … 137 140 result_repr = _boolean_icon(attr) 138 141 else: 139 result_repr = s tr(attr)142 result_repr = smart_unicode(attr) 140 143 except (AttributeError, ObjectDoesNotExist): 141 144 result_repr = EMPTY_CHANGELIST_VALUE … … 180 183 result_repr = dict(f.choices).get(field_val, EMPTY_CHANGELIST_VALUE) 181 184 else: 182 result_repr = escape( str(field_val))183 if result_repr== '':185 result_repr = escape(field_val) 186 if force_unicode(result_repr) == '': 184 187 result_repr = ' ' 185 188 # If list_display_links not defined, add the link tag to the first field 186 if (first and not cl.lookup_opts.admin.list_display_links) or field_name in cl.lookup_opts.admin.list_display_links: 189 if (first and not cl.lookup_opts.admin.list_display_links) or field_name in cl.lookup_opts.admin.list_display_links: 187 190 table_tag = {True:'th', False:'td'}[first] 188 191 first = False 189 192 url = cl.url_for_result(result) 190 result_id = s tr(getattr(result, pk)) # str()is needed in case of 23L (long ints)191 yield ( '<%s%s><a href="%s"%s>%s</a></%s>' % \193 result_id = smart_unicode(getattr(result, pk)) # conversion to string is needed in case of 23L (long ints) 194 yield (u'<%s%s><a href="%s"%s>%s</a></%s>' % \ 192 195 (table_tag, row_class, url, (cl.is_popup and ' onclick="opener.dismissRelatedLookupPopup(window, %r); return false;"' % result_id or ''), result_repr, table_tag)) 193 196 else: 194 yield ( '<td%s>%s</td>' % (row_class, result_repr))197 yield (u'<td%s>%s</td>' % (row_class, result_repr)) 195 198 196 199 def results(cl): django/trunk/django/contrib/admin/templatetags/admin_modify.py
r5511 r5609 3 3 from django.template import loader 4 4 from django.utils.text import capfirst 5 from django.utils.encoding import force_unicode 5 6 from django.db import models 6 7 from django.db.models.fields import Field … … 15 16 16 17 def class_name_to_underscored(name): 17 return '_'.join([s.lower() for s in word_re.findall(name)[:-1]])18 return u'_'.join([s.lower() for s in word_re.findall(name)[:-1]]) 18 19 19 20 def include_admin_script(script_path): … … 32 33 if not absolute_url_re.match(script_path): 33 34 script_path = '%s%s' % (settings.ADMIN_MEDIA_PREFIX, script_path) 34 return '<script type="text/javascript" src="%s"></script>' % script_path35 return u'<script type="text/javascript" src="%s"></script>' % script_path 35 36 include_admin_script = register.simple_tag(include_admin_script) 36 37 … … 62 63 class_names.append('inline') 63 64 colon = ":" 64 &nb
