From 365f4b869800469ba786919f11422c73b3ec9fbb Mon Sep 17 00:00:00 2001 From: Derek Anderson Date: Fri, 20 Jul 2007 20:49:49 +0000 Subject: [PATCH] schema-evolution: merged trunk:HEAD into schema-evolution branch git-svn-id: http://code.djangoproject.com/svn/django/branches/schema-evolution@5734 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- AUTHORS | 134 +- MANIFEST.in | 15 +- django/__init__.py | 9 +- django/bin/compile-messages.py | 21 +- django/bin/daily_cleanup.py | 12 +- django/bin/make-messages.py | 14 +- django/bin/profiling/gather_profile_stats.py | 2 +- django/conf/__init__.py | 13 +- django/conf/global_settings.py | 46 +- django/conf/locale/bg/LC_MESSAGES/django.mo | Bin 0 -> 51713 bytes django/conf/locale/bg/LC_MESSAGES/django.po | 2670 +++++++++++ django/conf/locale/bg/LC_MESSAGES/djangojs.mo | Bin 0 -> 1727 bytes django/conf/locale/bg/LC_MESSAGES/djangojs.po | 106 + django/conf/locale/bn/LC_MESSAGES/djangojs.mo | Bin 0 -> 367 bytes django/conf/locale/bn/LC_MESSAGES/djangojs.po | 118 + django/conf/locale/ca/LC_MESSAGES/django.mo | Bin 0 -> 49588 bytes django/conf/locale/ca/LC_MESSAGES/django.po | 3027 ++++++++++++ django/conf/locale/ca/LC_MESSAGES/djangojs.mo | Bin 0 -> 1654 bytes django/conf/locale/ca/LC_MESSAGES/djangojs.po | 119 + django/conf/locale/cs/LC_MESSAGES/django.mo | Bin 37754 -> 41797 bytes django/conf/locale/cs/LC_MESSAGES/django.po | 3662 ++++++++------ django/conf/locale/cs/LC_MESSAGES/djangojs.mo | Bin 1458 -> 1555 bytes django/conf/locale/cs/LC_MESSAGES/djangojs.po | 82 +- django/conf/locale/da/LC_MESSAGES/djangojs.mo | Bin 0 -> 367 bytes django/conf/locale/da/LC_MESSAGES/djangojs.po | 118 + django/conf/locale/de/LC_MESSAGES/django.mo | Bin 37729 -> 44039 bytes django/conf/locale/de/LC_MESSAGES/django.po | 3891 ++++++++------- django/conf/locale/de/LC_MESSAGES/djangojs.mo | Bin 1460 -> 1571 bytes django/conf/locale/de/LC_MESSAGES/djangojs.po | 30 +- django/conf/locale/el/LC_MESSAGES/django.mo | Bin 8187 -> 15638 bytes django/conf/locale/el/LC_MESSAGES/django.po | 268 +- django/conf/locale/el/LC_MESSAGES/djangojs.mo | Bin 0 -> 1810 bytes django/conf/locale/el/LC_MESSAGES/djangojs.po | 109 + django/conf/locale/en/LC_MESSAGES/django.mo | Bin 627 -> 627 bytes django/conf/locale/en/LC_MESSAGES/django.po | 3490 ++++++++------ django/conf/locale/es/LC_MESSAGES/django.mo | Bin 28941 -> 49337 bytes django/conf/locale/es/LC_MESSAGES/django.po | 4217 ++++++++++------- django/conf/locale/es/LC_MESSAGES/djangojs.mo | Bin 1427 -> 1561 bytes django/conf/locale/es/LC_MESSAGES/djangojs.po | 83 +- .../conf/locale/es_AR/LC_MESSAGES/django.mo | Bin 36332 -> 49719 bytes .../conf/locale/es_AR/LC_MESSAGES/django.po | 3366 ++++++++----- .../conf/locale/es_AR/LC_MESSAGES/djangojs.mo | Bin 1566 -> 1633 bytes .../conf/locale/es_AR/LC_MESSAGES/djangojs.po | 53 +- django/conf/locale/fa/LC_MESSAGES/django.mo | Bin 0 -> 10803 bytes django/conf/locale/fa/LC_MESSAGES/django.po | 2854 +++++++++++ django/conf/locale/fa/LC_MESSAGES/djangojs.mo | Bin 0 -> 367 bytes django/conf/locale/fa/LC_MESSAGES/djangojs.po | 118 + django/conf/locale/fi/LC_MESSAGES/django.mo | Bin 33598 -> 34867 bytes django/conf/locale/fi/LC_MESSAGES/django.po | 67 +- django/conf/locale/fr/LC_MESSAGES/django.mo | Bin 32919 -> 49591 bytes django/conf/locale/fr/LC_MESSAGES/django.po | 3264 ++++++++----- django/conf/locale/fr/LC_MESSAGES/djangojs.mo | Bin 1533 -> 1533 bytes django/conf/locale/fr/LC_MESSAGES/djangojs.po | 14 +- django/conf/locale/gl/LC_MESSAGES/django.mo | Bin 32192 -> 49175 bytes django/conf/locale/gl/LC_MESSAGES/django.po | 3858 +++++++++------ django/conf/locale/he/LC_MESSAGES/django.mo | Bin 36826 -> 48281 bytes django/conf/locale/he/LC_MESSAGES/django.po | 2988 ++++++++---- django/conf/locale/he/LC_MESSAGES/djangojs.mo | Bin 1626 -> 1716 bytes django/conf/locale/he/LC_MESSAGES/djangojs.po | 65 +- django/conf/locale/it/LC_MESSAGES/django.mo | Bin 32320 -> 40774 bytes django/conf/locale/it/LC_MESSAGES/django.po | 3766 +++++++++------ django/conf/locale/it/LC_MESSAGES/djangojs.mo | Bin 1613 -> 1643 bytes django/conf/locale/it/LC_MESSAGES/djangojs.po | 96 +- django/conf/locale/ja/LC_MESSAGES/django.mo | Bin 41208 -> 53143 bytes django/conf/locale/ja/LC_MESSAGES/django.po | 1252 ++++- django/conf/locale/ja/LC_MESSAGES/djangojs.mo | Bin 1604 -> 1601 bytes django/conf/locale/ja/LC_MESSAGES/djangojs.po | 14 +- django/conf/locale/kn/LC_MESSAGES/django.mo | Bin 0 -> 57878 bytes django/conf/locale/kn/LC_MESSAGES/django.po | 2533 ++++++++++ django/conf/locale/kn/LC_MESSAGES/djangojs.mo | Bin 0 -> 2205 bytes django/conf/locale/kn/LC_MESSAGES/djangojs.po | 116 + django/conf/locale/ko/LC_MESSAGES/django.mo | Bin 0 -> 42603 bytes django/conf/locale/ko/LC_MESSAGES/django.po | 2797 +++++++++++ django/conf/locale/ko/LC_MESSAGES/djangojs.mo | Bin 0 -> 1577 bytes django/conf/locale/ko/LC_MESSAGES/djangojs.po | 118 + django/conf/locale/lv/LC_MESSAGES/django.mo | Bin 0 -> 38363 bytes django/conf/locale/lv/LC_MESSAGES/django.po | 2865 +++++++++++ django/conf/locale/lv/LC_MESSAGES/djangojs.mo | Bin 0 -> 1587 bytes django/conf/locale/lv/LC_MESSAGES/djangojs.po | 119 + django/conf/locale/mk/LC_MESSAGES/django.mo | Bin 0 -> 57210 bytes django/conf/locale/mk/LC_MESSAGES/django.po | 2755 +++++++++++ django/conf/locale/mk/LC_MESSAGES/djangojs.mo | Bin 0 -> 1921 bytes django/conf/locale/mk/LC_MESSAGES/djangojs.po | 119 + django/conf/locale/nl/LC_MESSAGES/django.mo | Bin 32146 -> 38003 bytes django/conf/locale/nl/LC_MESSAGES/django.po | 783 ++- django/conf/locale/no/LC_MESSAGES/django.mo | Bin 27469 -> 31943 bytes django/conf/locale/no/LC_MESSAGES/django.po | 231 +- django/conf/locale/no/LC_MESSAGES/djangojs.mo | Bin 1492 -> 1540 bytes django/conf/locale/no/LC_MESSAGES/djangojs.po | 15 +- django/conf/locale/pl/LC_MESSAGES/django.mo | Bin 28373 -> 44528 bytes django/conf/locale/pl/LC_MESSAGES/django.po | 2871 +++++++---- django/conf/locale/pl/LC_MESSAGES/djangojs.mo | Bin 0 -> 1645 bytes django/conf/locale/pl/LC_MESSAGES/djangojs.po | 111 + django/conf/locale/pt/LC_MESSAGES/django.mo | Bin 0 -> 37681 bytes django/conf/locale/pt/LC_MESSAGES/django.po | 2125 +++++++++ django/conf/locale/pt/LC_MESSAGES/djangojs.mo | Bin 0 -> 1514 bytes django/conf/locale/pt/LC_MESSAGES/djangojs.po | 108 + .../conf/locale/pt_BR/LC_MESSAGES/django.mo | Bin 27702 -> 30723 bytes .../conf/locale/pt_BR/LC_MESSAGES/django.po | 2528 ++++++---- .../conf/locale/pt_BR/LC_MESSAGES/djangojs.mo | Bin 1530 -> 1537 bytes .../conf/locale/pt_BR/LC_MESSAGES/djangojs.po | 12 +- django/conf/locale/ro/LC_MESSAGES/django.mo | Bin 16327 -> 21716 bytes django/conf/locale/ro/LC_MESSAGES/django.po | 222 +- django/conf/locale/ro/LC_MESSAGES/djangojs.mo | Bin 0 -> 367 bytes django/conf/locale/ro/LC_MESSAGES/djangojs.po | 118 + django/conf/locale/ru/LC_MESSAGES/django.mo | Bin 42820 -> 56778 bytes django/conf/locale/ru/LC_MESSAGES/django.po | 2853 +++++++---- django/conf/locale/sk/LC_MESSAGES/django.mo | Bin 32375 -> 44089 bytes django/conf/locale/sk/LC_MESSAGES/django.po | 2881 +++++++---- django/conf/locale/sk/LC_MESSAGES/djangojs.mo | Bin 1492 -> 1539 bytes django/conf/locale/sk/LC_MESSAGES/djangojs.po | 77 +- django/conf/locale/sl/LC_MESSAGES/django.mo | Bin 33224 -> 49385 bytes django/conf/locale/sl/LC_MESSAGES/django.po | 3801 +++++++++------ django/conf/locale/sl/LC_MESSAGES/djangojs.mo | Bin 0 -> 1612 bytes django/conf/locale/sl/LC_MESSAGES/djangojs.po | 116 + django/conf/locale/sr/LC_MESSAGES/django.mo | Bin 29583 -> 32246 bytes django/conf/locale/sr/LC_MESSAGES/django.po | 693 ++- django/conf/locale/sr/LC_MESSAGES/djangojs.mo | Bin 1699 -> 1669 bytes django/conf/locale/sr/LC_MESSAGES/djangojs.po | 13 +- django/conf/locale/sv/LC_MESSAGES/django.mo | Bin 29118 -> 47968 bytes django/conf/locale/sv/LC_MESSAGES/django.po | 3149 +++++++----- django/conf/locale/sv/LC_MESSAGES/djangojs.mo | Bin 905 -> 1680 bytes django/conf/locale/sv/LC_MESSAGES/djangojs.po | 86 +- django/conf/locale/ta/LC_MESSAGES/django.mo | Bin 52050 -> 60022 bytes django/conf/locale/ta/LC_MESSAGES/django.po | 1185 ++--- django/conf/locale/ta/LC_MESSAGES/djangojs.mo | Bin 0 -> 2336 bytes django/conf/locale/ta/LC_MESSAGES/djangojs.po | 112 + django/conf/locale/te/LC_MESSAGES/django.mo | Bin 0 -> 35163 bytes django/conf/locale/te/LC_MESSAGES/django.po | 2109 +++++++++ django/conf/locale/te/LC_MESSAGES/djangojs.mo | Bin 0 -> 2206 bytes django/conf/locale/te/LC_MESSAGES/djangojs.po | 110 + django/conf/locale/tr/LC_MESSAGES/django.mo | Bin 37149 -> 38712 bytes django/conf/locale/tr/LC_MESSAGES/django.po | 1605 ++++--- django/conf/locale/uk/LC_MESSAGES/djangojs.mo | Bin 0 -> 367 bytes django/conf/locale/uk/LC_MESSAGES/djangojs.po | 118 + .../conf/locale/zh_CN/LC_MESSAGES/django.mo | Bin 30798 -> 41991 bytes .../conf/locale/zh_CN/LC_MESSAGES/django.po | 3398 +++++++------ .../conf/locale/zh_CN/LC_MESSAGES/djangojs.mo | Bin 1505 -> 1498 bytes .../conf/locale/zh_CN/LC_MESSAGES/djangojs.po | 2 +- .../conf/locale/zh_TW/LC_MESSAGES/djangojs.mo | Bin 0 -> 367 bytes .../conf/locale/zh_TW/LC_MESSAGES/djangojs.po | 118 + django/conf/project_template/settings.py | 15 +- django/conf/project_template/urls.py | 2 +- django/conf/urls/admin_password_reset.py | 6 - django/conf/urls/defaults.py | 31 +- django/conf/urls/registration.py | 19 - django/contrib/admin/filterspecs.py | 14 +- django/contrib/admin/media/css/forms.css | 4 +- .../admin/media/js/admin/DateTimeShortcuts.js | 10 +- .../media/js/admin/RelatedObjectLookups.js | 8 +- django/contrib/admin/media/js/core.js | 8 + django/contrib/admin/media/js/dateparse.js | 2 +- django/contrib/admin/media/js/urlify.js | 103 +- django/contrib/admin/models.py | 9 +- .../admin/auth/user/change_password.html | 52 + .../contrib/admin/templates/admin/base.html | 5 +- .../admin/templates/admin/change_form.html | 2 + .../admin/templates/admin/change_list.html | 2 + .../contrib/admin/templates/admin/filter.html | 2 +- .../admin/templates/admin/search_form.html | 2 +- .../contrib/admin/templatetags/admin_list.py | 86 +- .../admin/templatetags/admin_modify.py | 39 +- .../admin/templatetags/adminapplist.py | 5 +- django/contrib/admin/templatetags/log.py | 9 +- django/contrib/admin/urls.py | 2 + django/contrib/admin/views/auth.py | 46 +- django/contrib/admin/views/decorators.py | 16 +- django/contrib/admin/views/doc.py | 18 +- django/contrib/admin/views/main.py | 162 +- django/contrib/admin/views/template.py | 12 +- django/contrib/auth/__init__.py | 13 +- django/contrib/auth/decorators.py | 9 +- django/contrib/auth/forms.py | 86 +- django/contrib/auth/management.py | 4 +- django/contrib/auth/models.py | 59 +- django/contrib/auth/views.py | 24 +- django/contrib/comments/feeds.py | 13 +- django/contrib/comments/models.py | 6 +- .../comments/templates/comments/form.html | 2 +- .../contrib/comments/templatetags/comments.py | 6 +- django/contrib/comments/views/comments.py | 53 +- django/contrib/comments/views/karma.py | 1 + .../contenttypes}/generic.py | 11 +- django/contrib/contenttypes/management.py | 15 +- django/contrib/contenttypes/models.py | 29 +- django/contrib/csrf/middleware.py | 2 +- django/contrib/databrowse/__init__.py | 1 + django/contrib/databrowse/datastructures.py | 196 + .../contrib/databrowse/plugins}/__init__.py | 0 .../contrib/databrowse/plugins/calendars.py | 85 + .../databrowse/plugins/fieldchoices.py | 74 + django/contrib/databrowse/plugins/objects.py | 14 + django/contrib/databrowse/sites.py | 148 + .../databrowse/templates/databrowse/base.html | 58 + .../templates/databrowse/calendar_day.html | 17 + .../databrowse/calendar_homepage.html | 17 + .../templates/databrowse/calendar_main.html | 17 + .../templates/databrowse/calendar_month.html | 17 + .../templates/databrowse/calendar_year.html | 17 + .../templates/databrowse/choice_detail.html | 17 + .../templates/databrowse/choice_list.html | 17 + .../databrowse/fieldchoice_detail.html | 17 + .../databrowse/fieldchoice_homepage.html | 17 + .../databrowse/fieldchoice_list.html | 17 + .../templates/databrowse/homepage.html | 21 + .../templates/databrowse/model_detail.html | 19 + .../templates/databrowse/object_detail.html | 41 + django/contrib/databrowse/urls.py | 20 + django/contrib/databrowse/views.py | 23 + django/contrib/flatpages/models.py | 8 +- .../contrib/formtools}/__init__.py | 0 django/contrib/formtools/preview.py | 168 + .../formtools/templates/formtools/form.html | 15 + .../templates/formtools/preview.html | 36 + .../contrib/humanize/templatetags/humanize.py | 23 +- .../contrib/localflavor}/__init__.py | 0 .../contrib/localflavor/au}/__init__.py | 0 django/contrib/localflavor/au/au_states.py | 17 + django/contrib/localflavor/au/forms.py | 43 + .../contrib/localflavor/br}/__init__.py | 0 django/contrib/localflavor/br/br_states.py | 37 + django/contrib/localflavor/br/forms.py | 119 + .../contrib/localflavor/ch}/__init__.py | 0 django/contrib/localflavor/ch/ch_states.py | 31 + django/contrib/localflavor/ch/forms.py | 109 + .../contrib/localflavor/cl}/__init__.py | 0 django/contrib/localflavor/cl/cl_regions.py | 25 + django/contrib/localflavor/cl/forms.py | 89 + .../contrib/localflavor/de/__init__.py | 0 django/contrib/localflavor/de/de_states.py | 21 + django/contrib/localflavor/de/forms.py | 79 + django/contrib/localflavor/fi/__init__.py | 0 .../localflavor/fi/fi_municipalities.py | 427 ++ django/contrib/localflavor/fi/forms.py | 45 + django/contrib/localflavor/fr/__init__.py | 0 django/contrib/localflavor/fr/forms.py | 44 + .../contrib/localflavor/fr/fr_department.py | 112 + django/contrib/localflavor/is_/__init__.py | 0 django/contrib/localflavor/is_/forms.py | 78 + .../contrib/localflavor/is_/is_postalcodes.py | 151 + django/contrib/localflavor/it/__init__.py | 0 django/contrib/localflavor/it/forms.py | 77 + django/contrib/localflavor/it/it_province.py | 114 + django/contrib/localflavor/it/it_region.py | 24 + django/contrib/localflavor/it/util.py | 44 + django/contrib/localflavor/jp/__init__.py | 0 django/contrib/localflavor/jp/forms.py | 38 + .../contrib/localflavor/jp/jp_prefectures.py | 51 + django/contrib/localflavor/no/__init__.py | 0 django/contrib/localflavor/no/forms.py | 76 + .../localflavor/no/no_municipalities.py | 32 + django/contrib/localflavor/sk/__init__.py | 0 django/contrib/localflavor/sk/forms.py | 41 + django/contrib/localflavor/sk/sk_districts.py | 87 + django/contrib/localflavor/sk/sk_regions.py | 16 + django/contrib/localflavor/uk/__init__.py | 0 django/contrib/localflavor/uk/forms.py | 19 + django/contrib/localflavor/us/__init__.py | 0 django/contrib/localflavor/us/forms.py | 99 + django/contrib/localflavor/us/us_states.py | 240 + django/contrib/markup/models.py | 0 django/contrib/markup/templatetags/markup.py | 15 +- .../contrib}/markup/tests.py | 0 django/contrib/redirects/middleware.py | 2 +- django/contrib/redirects/models.py | 6 +- django/contrib/sessions/middleware.py | 28 +- django/contrib/sessions/models.py | 25 +- django/contrib/sessions/tests.py | 35 + django/contrib/sitemaps/__init__.py | 4 +- django/contrib/sitemaps/templates/sitemap.xml | 2 +- .../sitemaps/templates/sitemap_index.xml | 2 +- django/contrib/sitemaps/views.py | 5 +- django/contrib/sites/models.py | 28 +- django/contrib/syndication/feeds.py | 34 +- django/contrib/syndication/views.py | 2 +- django/contrib/webdesign/__init__.py | 0 django/contrib/webdesign/lorem_ipsum.py | 101 + django/contrib/webdesign/models.py | 0 .../webdesign/templatetags/__init__.py | 0 .../webdesign/templatetags/webdesign.py | 67 + django/contrib/webdesign/tests.py | 17 + django/core/cache/__init__.py | 2 +- django/core/cache/backends/base.py | 3 + django/core/cache/backends/dummy.py | 6 +- django/core/cache/backends/filebased.py | 5 +- django/core/cache/backends/locmem.py | 17 +- django/core/cache/backends/memcached.py | 23 +- django/core/cache/backends/simple.py | 2 +- django/core/context_processors.py | 7 + django/core/handlers/base.py | 13 +- django/core/handlers/modpython.py | 13 +- django/core/handlers/wsgi.py | 23 +- django/core/mail.py | 365 +- django/core/management.py | 904 ++-- django/core/paginator.py | 75 +- django/core/serializers/__init__.py | 28 +- django/core/serializers/base.py | 44 +- django/core/serializers/json.py | 34 +- django/core/serializers/python.py | 67 +- django/core/serializers/pyyaml.py | 38 + django/core/serializers/xml_serializer.py | 134 +- django/core/servers/basehttp.py | 25 +- django/core/servers/fastcgi.py | 43 +- django/core/urlresolvers.py | 145 +- django/core/validators.py | 216 +- django/core/xheaders.py | 2 +- django/db/__init__.py | 15 +- django/db/backends/ado_mssql/base.py | 51 +- django/db/backends/ado_mssql/creation.py | 5 +- django/db/backends/dummy/base.py | 21 +- django/db/backends/mysql/base.py | 179 +- django/db/backends/mysql/client.py | 29 +- django/db/backends/mysql/creation.py | 5 +- django/db/backends/mysql/introspection.py | 41 +- django/db/backends/mysql_old/__init__.py | 0 django/db/backends/mysql_old/base.py | 275 ++ django/db/backends/mysql_old/client.py | 14 + django/db/backends/mysql_old/creation.py | 29 + django/db/backends/mysql_old/introspection.py | 95 + django/db/backends/oracle/base.py | 500 +- django/db/backends/oracle/client.py | 11 +- django/db/backends/oracle/creation.py | 325 +- django/db/backends/oracle/introspection.py | 82 +- django/db/backends/postgresql/base.py | 215 +- django/db/backends/postgresql/creation.py | 5 +- .../db/backends/postgresql/introspection.py | 55 +- .../db/backends/postgresql_psycopg2/base.py | 132 +- .../postgresql_psycopg2/introspection.py | 10 +- django/db/backends/sqlite3/base.py | 140 +- django/db/backends/sqlite3/creation.py | 5 +- django/db/backends/sqlite3/introspection.py | 37 - django/db/backends/util.py | 47 +- django/db/models/__init__.py | 39 +- django/db/models/base.py | 156 +- django/db/models/fields/__init__.py | 361 +- django/db/models/fields/related.py | 178 +- django/db/models/loading.py | 4 +- django/db/models/manager.py | 8 +- django/db/models/manipulators.py | 28 +- django/db/models/options.py | 47 +- django/db/models/query.py | 320 +- django/db/models/related.py | 17 +- django/db/transaction.py | 12 +- django/dispatch/dispatcher.py | 118 +- django/forms/__init__.py | 1004 +--- django/http/__init__.py | 157 +- django/middleware/cache.py | 2 +- django/middleware/common.py | 18 +- django/middleware/gzip.py | 1 + django/middleware/http.py | 5 +- django/newforms/__init__.py | 17 + django/newforms/extras/__init__.py | 1 + django/newforms/extras/widgets.py | 60 + django/newforms/fields.py | 564 +++ django/newforms/forms.py | 322 ++ django/newforms/models.py | 200 + django/newforms/util.py | 59 + django/newforms/widgets.py | 391 ++ django/oldforms/__init__.py | 1046 ++++ django/shortcuts/__init__.py | 19 +- django/template/__init__.py | 154 +- django/template/context.py | 11 +- django/template/defaultfilters.py | 218 +- django/template/defaulttags.py | 310 +- django/template/loader_tags.py | 2 +- django/template/loaders/app_directories.py | 6 +- django/template/loaders/eggs.py | 2 +- django/template/loaders/filesystem.py | 2 +- django/templatetags/__init__.py | 2 +- django/templatetags/i18n.py | 8 +- django/test/__init__.py | 6 + django/test/{doctest.py => _doctest.py} | 5 + django/test/client.py | 139 +- django/test/simple.py | 66 +- django/test/testcases.py | 127 +- django/test/utils.py | 78 +- django/utils/_decimal.py | 3079 ++++++++++++ django/utils/cache.py | 22 +- django/utils/datastructures.py | 33 +- django/utils/dateformat.py | 75 +- django/utils/dates.py | 6 +- django/utils/decorators.py | 26 +- django/utils/encoding.py | 84 + django/utils/feedgenerator.py | 68 +- django/utils/functional.py | 74 +- django/utils/html.py | 87 +- django/utils/http.py | 35 + django/utils/itercompat.py | 30 +- django/utils/simplejson/LICENSE.txt | 2 +- django/utils/simplejson/__init__.py | 47 +- django/utils/simplejson/decoder.py | 6 +- django/utils/simplejson/encoder.py | 98 +- django/utils/simplejson/jsonfilter.py | 40 + django/utils/simplejson/scanner.py | 3 +- django/utils/stopwords.py | 2 +- django/utils/synch.py | 15 +- django/utils/text.py | 140 +- django/utils/timesince.py | 24 +- django/utils/translation/__init__.py | 114 +- django/utils/translation/trans_null.py | 26 +- django/utils/translation/trans_real.py | 102 +- django/utils/tzinfo.py | 13 +- django/views/debug.py | 81 +- django/views/defaults.py | 9 +- django/views/generic/create_update.py | 14 +- django/views/generic/list_detail.py | 10 +- django/views/generic/simple.py | 16 +- django/views/i18n.py | 12 +- docs/add_ons.txt | 81 +- docs/apache_auth.txt | 4 +- docs/api_stability.txt | 46 +- docs/authentication.txt | 223 +- docs/cache.txt | 21 +- docs/contributing.txt | 370 +- docs/csrf.txt | 37 +- docs/databases.txt | 165 + docs/databrowse.txt | 60 + docs/db-api.txt | 270 +- docs/design_philosophies.txt | 2 +- docs/distributions.txt | 92 + docs/django-admin.txt | 207 +- docs/documentation.txt | 42 +- docs/email.txt | 199 +- docs/faq.txt | 38 +- docs/fastcgi.txt | 55 +- docs/flatpages.txt | 14 +- docs/forms.txt | 119 +- docs/generic_views.txt | 78 +- docs/i18n.txt | 215 +- docs/install.txt | 109 +- docs/legacy_databases.txt | 28 +- docs/man/django-admin.1 | 162 + docs/middleware.txt | 25 +- docs/model-api.txt | 428 +- docs/modpython.txt | 80 +- docs/newforms.txt | 1652 +++++++ docs/outputting_csv.txt | 6 +- docs/outputting_pdf.txt | 4 +- docs/overview.txt | 14 +- docs/redirects.txt | 16 +- docs/release_notes_0.96.txt | 264 ++ docs/request_response.txt | 125 +- docs/serialization.txt | 30 +- docs/sessions.txt | 29 +- docs/settings.txt | 332 +- docs/sitemaps.txt | 41 +- docs/sites.txt | 30 +- docs/static_files.txt | 18 +- docs/syndication_feeds.txt | 143 +- docs/templates.txt | 304 +- docs/templates_python.txt | 144 +- docs/testing.txt | 460 +- docs/tutorial01.txt | 79 +- docs/tutorial02.txt | 16 +- docs/tutorial03.txt | 24 +- docs/tutorial04.txt | 70 +- docs/unicode.txt | 364 ++ docs/url_dispatch.txt | 140 +- docs/webdesign.txt | 53 + extras/django_bash_completion | 68 +- scripts/rpm-install.sh | 28 + setup.cfg | 3 +- setup.py | 41 +- .../evolvedbtests/case01_add_field/models.py | 1 - .../case01_add_field/models.py.post | 23 - .../case01_add_field/models.py.pre | 16 - tests/evolvedbtests/case01_add_field/views.py | 1 - .../case02_rename_field/models.py | 1 - .../case02_rename_field/models.py.post | 17 - .../case02_rename_field/models.py.pre | 17 - .../case02_rename_field/views.py | 1 - .../case03_rename_model/models.py | 1 - .../case03_rename_model/models.py.post | 18 - .../case03_rename_model/models.py.pre | 18 - .../case03_rename_model/views.py | 1 - .../case04_change_flag/models.py | 1 - .../case04_change_flag/models.py.post | 26 - .../case04_change_flag/models.py.pre | 25 - .../evolvedbtests/case04_change_flag/views.py | 1 - .../case05_remove_field/models.py | 1 - .../case05_remove_field/models.py.post | 16 - .../case05_remove_field/models.py.pre | 15 - .../case05_remove_field/views.py | 1 - tests/evolvedbtests/manage.py | 11 - tests/evolvedbtests/reset_all_to_post | 6 - tests/evolvedbtests/reset_all_to_pre | 6 - tests/evolvedbtests/settings.py | 91 - tests/evolvedbtests/urls.py | 9 - tests/modeltests/basic/models.py | 34 +- tests/modeltests/choices/models.py | 6 +- tests/modeltests/custom_columns/models.py | 102 +- tests/modeltests/custom_managers/models.py | 8 +- tests/modeltests/custom_methods/models.py | 2 +- tests/modeltests/custom_pk/models.py | 10 +- tests/modeltests/empty/models.py | 2 +- tests/modeltests/field_defaults/models.py | 4 +- tests/modeltests/fixtures/__init__.py | 2 + .../fixtures/fixtures/fixture1.json | 18 + .../fixtures/fixtures/fixture2.json | 18 + .../modeltests/fixtures/fixtures/fixture2.xml | 11 + .../modeltests/fixtures/fixtures/fixture3.xml | 11 + .../fixtures/fixtures/initial_data.json | 10 + tests/modeltests/fixtures/models.py | 88 + tests/modeltests/generic_relations/models.py | 51 +- tests/modeltests/get_latest/models.py | 4 +- .../modeltests/get_object_or_404/__init__.py | 0 tests/modeltests/get_object_or_404/models.py | 86 + tests/modeltests/get_or_create/models.py | 6 +- tests/modeltests/invalid_models/models.py | 20 +- tests/modeltests/lookup/models.py | 189 +- tests/modeltests/m2m_and_m2o/models.py | 6 +- tests/modeltests/m2m_intermediary/models.py | 10 +- tests/modeltests/m2m_multiple/models.py | 4 +- tests/modeltests/m2m_recursive/models.py | 4 +- tests/modeltests/m2o_recursive/models.py | 2 +- tests/modeltests/m2o_recursive2/models.py | 2 +- tests/modeltests/manipulators/models.py | 18 +- tests/modeltests/many_to_many/models.py | 30 +- tests/modeltests/many_to_one/models.py | 19 +- tests/modeltests/many_to_one_null/models.py | 4 +- tests/modeltests/model_forms/__init__.py | 0 tests/modeltests/model_forms/models.py | 529 +++ tests/modeltests/model_inheritance/models.py | 12 +- tests/modeltests/one_to_one/models.py | 12 +- tests/modeltests/or_lookups/models.py | 19 +- tests/modeltests/ordering/models.py | 2 +- tests/modeltests/pagination/models.py | 17 +- tests/modeltests/reserved_names/models.py | 2 +- tests/modeltests/reverse_lookup/models.py | 8 +- tests/modeltests/save_delete_hooks/models.py | 4 +- tests/modeltests/select_related/__init__.py | 0 tests/modeltests/select_related/models.py | 152 + tests/modeltests/serializers/models.py | 53 +- tests/modeltests/str/models.py | 35 +- .../test_client/fixtures/testdata.json | 38 + tests/modeltests/test_client/management.py | 10 - tests/modeltests/test_client/models.py | 237 +- tests/modeltests/test_client/tests.py | 20 + tests/modeltests/test_client/urls.py | 11 + tests/modeltests/test_client/views.py | 137 +- tests/modeltests/transactions/models.py | 6 +- tests/modeltests/validation/models.py | 18 +- tests/regressiontests/bug639/__init__.py | 0 tests/regressiontests/bug639/models.py | 16 + tests/regressiontests/bug639/test.jpg | Bin 0 -> 1780 bytes tests/regressiontests/bug639/tests.py | 42 + tests/regressiontests/cache/tests.py | 38 +- .../datastructures/__init__.py | 0 .../regressiontests/datastructures/models.py | 0 tests/regressiontests/datastructures/tests.py | 67 + tests/regressiontests/datatypes/__init__.py | 0 tests/regressiontests/datatypes/models.py | 59 + tests/regressiontests/dateformat/tests.py | 46 +- tests/regressiontests/defaultfilters/tests.py | 446 +- tests/regressiontests/dispatch/__init__.py | 2 + tests/regressiontests/dispatch/models.py | 0 .../dispatch/tests/__init__.py | 7 + .../dispatch/tests/test_dispatcher.py | 144 + .../dispatch/tests/test_robustapply.py | 34 + .../dispatch/tests/test_saferef.py | 79 + .../fixtures_regress/__init__.py | 0 .../fixtures_regress/fixtures/pretty.xml | 11 + .../fixtures_regress/fixtures/sequence.json | 10 + .../fixtures_regress/models.py | 46 + tests/regressiontests/forms/__init__.py | 0 tests/regressiontests/forms/localflavor.py | 1394 ++++++ tests/regressiontests/forms/models.py | 0 tests/regressiontests/forms/regressions.py | 90 + tests/regressiontests/forms/tests.py | 3707 +++++++++++++++ tests/regressiontests/httpwrappers/tests.py | 108 +- tests/regressiontests/humanize/__init__.py | 0 tests/regressiontests/humanize/models.py | 0 tests/regressiontests/humanize/tests.py | 54 + tests/regressiontests/i18n/__init__.py | 0 tests/regressiontests/i18n/models.py | 0 tests/regressiontests/i18n/tests.py | 33 + .../invalid_admin_options/__init__.py | 0 .../invalid_admin_options/models.py | 337 ++ .../many_to_one_regress/models.py | 29 +- .../regressiontests/model_regress/__init__.py | 0 tests/regressiontests/model_regress/models.py | 34 + tests/regressiontests/null_queries/models.py | 10 +- .../one_to_one_regress/models.py | 12 +- .../serializers_regress/__init__.py | 0 .../serializers_regress/models.py | 226 + .../serializers_regress/tests.py | 345 ++ tests/regressiontests/string_lookup/models.py | 38 +- tests/regressiontests/templates/tests.py | 198 +- tests/regressiontests/templates/unicode.py | 33 + tests/regressiontests/templates/urls.py | 15 + tests/regressiontests/templates/views.py | 10 + .../test_client_regress/__init__.py | 0 .../test_client_regress/models.py | 204 + .../test_client_regress/urls.py | 7 + .../test_client_regress/views.py | 20 + tests/regressiontests/text/__init__.py | 0 tests/regressiontests/text/models.py | 0 tests/regressiontests/text/tests.py | 38 + tests/regressiontests/utils/__init__.py | 0 tests/regressiontests/utils/models.py | 1 + tests/regressiontests/utils/tests.py | 115 + tests/runtests.py | 72 +- tests/templates/base.html | 8 + tests/templates/form_view.html | 15 + tests/templates/login.html | 10 +- tests/urls.py | 6 +- 606 files changed, 97268 insertions(+), 28188 deletions(-) create mode 100644 django/conf/locale/bg/LC_MESSAGES/django.mo create mode 100644 django/conf/locale/bg/LC_MESSAGES/django.po create mode 100644 django/conf/locale/bg/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/bg/LC_MESSAGES/djangojs.po create mode 100644 django/conf/locale/bn/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/bn/LC_MESSAGES/djangojs.po create mode 100644 django/conf/locale/ca/LC_MESSAGES/django.mo create mode 100644 django/conf/locale/ca/LC_MESSAGES/django.po create mode 100644 django/conf/locale/ca/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/ca/LC_MESSAGES/djangojs.po create mode 100644 django/conf/locale/da/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/da/LC_MESSAGES/djangojs.po create mode 100644 django/conf/locale/el/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/el/LC_MESSAGES/djangojs.po create mode 100644 django/conf/locale/fa/LC_MESSAGES/django.mo create mode 100644 django/conf/locale/fa/LC_MESSAGES/django.po create mode 100644 django/conf/locale/fa/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/fa/LC_MESSAGES/djangojs.po create mode 100644 django/conf/locale/kn/LC_MESSAGES/django.mo create mode 100644 django/conf/locale/kn/LC_MESSAGES/django.po create mode 100644 django/conf/locale/kn/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/kn/LC_MESSAGES/djangojs.po create mode 100644 django/conf/locale/ko/LC_MESSAGES/django.mo create mode 100644 django/conf/locale/ko/LC_MESSAGES/django.po create mode 100644 django/conf/locale/ko/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/ko/LC_MESSAGES/djangojs.po create mode 100644 django/conf/locale/lv/LC_MESSAGES/django.mo create mode 100644 django/conf/locale/lv/LC_MESSAGES/django.po create mode 100644 django/conf/locale/lv/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/lv/LC_MESSAGES/djangojs.po create mode 100644 django/conf/locale/mk/LC_MESSAGES/django.mo create mode 100644 django/conf/locale/mk/LC_MESSAGES/django.po create mode 100644 django/conf/locale/mk/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/mk/LC_MESSAGES/djangojs.po create mode 100644 django/conf/locale/pl/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/pl/LC_MESSAGES/djangojs.po create mode 100644 django/conf/locale/pt/LC_MESSAGES/django.mo create mode 100644 django/conf/locale/pt/LC_MESSAGES/django.po create mode 100644 django/conf/locale/pt/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/pt/LC_MESSAGES/djangojs.po create mode 100644 django/conf/locale/ro/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/ro/LC_MESSAGES/djangojs.po create mode 100644 django/conf/locale/sl/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/sl/LC_MESSAGES/djangojs.po create mode 100644 django/conf/locale/ta/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/ta/LC_MESSAGES/djangojs.po create mode 100644 django/conf/locale/te/LC_MESSAGES/django.mo create mode 100644 django/conf/locale/te/LC_MESSAGES/django.po create mode 100644 django/conf/locale/te/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/te/LC_MESSAGES/djangojs.po create mode 100644 django/conf/locale/uk/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/uk/LC_MESSAGES/djangojs.po create mode 100644 django/conf/locale/zh_TW/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/zh_TW/LC_MESSAGES/djangojs.po delete mode 100644 django/conf/urls/admin_password_reset.py delete mode 100644 django/conf/urls/registration.py create mode 100644 django/contrib/admin/templates/admin/auth/user/change_password.html rename django/{db/models/fields => contrib/contenttypes}/generic.py (96%) create mode 100644 django/contrib/databrowse/__init__.py create mode 100644 django/contrib/databrowse/datastructures.py rename {tests/evolvedbtests => django/contrib/databrowse/plugins}/__init__.py (100%) create mode 100644 django/contrib/databrowse/plugins/calendars.py create mode 100644 django/contrib/databrowse/plugins/fieldchoices.py create mode 100644 django/contrib/databrowse/plugins/objects.py create mode 100644 django/contrib/databrowse/sites.py create mode 100644 django/contrib/databrowse/templates/databrowse/base.html create mode 100644 django/contrib/databrowse/templates/databrowse/calendar_day.html create mode 100644 django/contrib/databrowse/templates/databrowse/calendar_homepage.html create mode 100644 django/contrib/databrowse/templates/databrowse/calendar_main.html create mode 100644 django/contrib/databrowse/templates/databrowse/calendar_month.html create mode 100644 django/contrib/databrowse/templates/databrowse/calendar_year.html create mode 100644 django/contrib/databrowse/templates/databrowse/choice_detail.html create mode 100644 django/contrib/databrowse/templates/databrowse/choice_list.html create mode 100644 django/contrib/databrowse/templates/databrowse/fieldchoice_detail.html create mode 100644 django/contrib/databrowse/templates/databrowse/fieldchoice_homepage.html create mode 100644 django/contrib/databrowse/templates/databrowse/fieldchoice_list.html create mode 100644 django/contrib/databrowse/templates/databrowse/homepage.html create mode 100644 django/contrib/databrowse/templates/databrowse/model_detail.html create mode 100644 django/contrib/databrowse/templates/databrowse/object_detail.html create mode 100644 django/contrib/databrowse/urls.py create mode 100644 django/contrib/databrowse/views.py rename {tests/evolvedbtests/case01_add_field => django/contrib/formtools}/__init__.py (100%) create mode 100644 django/contrib/formtools/preview.py create mode 100644 django/contrib/formtools/templates/formtools/form.html create mode 100644 django/contrib/formtools/templates/formtools/preview.html rename {tests/evolvedbtests/case02_rename_field => django/contrib/localflavor}/__init__.py (100%) rename {tests/evolvedbtests/case03_rename_model => django/contrib/localflavor/au}/__init__.py (100%) create mode 100644 django/contrib/localflavor/au/au_states.py create mode 100644 django/contrib/localflavor/au/forms.py rename {tests/evolvedbtests/case04_change_flag => django/contrib/localflavor/br}/__init__.py (100%) create mode 100644 django/contrib/localflavor/br/br_states.py create mode 100644 django/contrib/localflavor/br/forms.py rename {tests/evolvedbtests/case05_remove_field => django/contrib/localflavor/ch}/__init__.py (100%) create mode 100644 django/contrib/localflavor/ch/ch_states.py create mode 100644 django/contrib/localflavor/ch/forms.py rename {tests/regressiontests/markup => django/contrib/localflavor/cl}/__init__.py (100%) create mode 100644 django/contrib/localflavor/cl/cl_regions.py create mode 100644 django/contrib/localflavor/cl/forms.py rename tests/regressiontests/markup/models.py => django/contrib/localflavor/de/__init__.py (100%) create mode 100644 django/contrib/localflavor/de/de_states.py create mode 100644 django/contrib/localflavor/de/forms.py create mode 100644 django/contrib/localflavor/fi/__init__.py create mode 100644 django/contrib/localflavor/fi/fi_municipalities.py create mode 100644 django/contrib/localflavor/fi/forms.py create mode 100644 django/contrib/localflavor/fr/__init__.py create mode 100644 django/contrib/localflavor/fr/forms.py create mode 100644 django/contrib/localflavor/fr/fr_department.py create mode 100644 django/contrib/localflavor/is_/__init__.py create mode 100644 django/contrib/localflavor/is_/forms.py create mode 100644 django/contrib/localflavor/is_/is_postalcodes.py create mode 100644 django/contrib/localflavor/it/__init__.py create mode 100644 django/contrib/localflavor/it/forms.py create mode 100644 django/contrib/localflavor/it/it_province.py create mode 100644 django/contrib/localflavor/it/it_region.py create mode 100644 django/contrib/localflavor/it/util.py create mode 100644 django/contrib/localflavor/jp/__init__.py create mode 100644 django/contrib/localflavor/jp/forms.py create mode 100644 django/contrib/localflavor/jp/jp_prefectures.py create mode 100644 django/contrib/localflavor/no/__init__.py create mode 100644 django/contrib/localflavor/no/forms.py create mode 100644 django/contrib/localflavor/no/no_municipalities.py create mode 100644 django/contrib/localflavor/sk/__init__.py create mode 100644 django/contrib/localflavor/sk/forms.py create mode 100644 django/contrib/localflavor/sk/sk_districts.py create mode 100644 django/contrib/localflavor/sk/sk_regions.py create mode 100644 django/contrib/localflavor/uk/__init__.py create mode 100644 django/contrib/localflavor/uk/forms.py create mode 100644 django/contrib/localflavor/us/__init__.py create mode 100644 django/contrib/localflavor/us/forms.py create mode 100644 django/contrib/localflavor/us/us_states.py create mode 100644 django/contrib/markup/models.py rename {tests/regressiontests => django/contrib}/markup/tests.py (100%) create mode 100644 django/contrib/sessions/tests.py create mode 100644 django/contrib/webdesign/__init__.py create mode 100644 django/contrib/webdesign/lorem_ipsum.py create mode 100644 django/contrib/webdesign/models.py create mode 100644 django/contrib/webdesign/templatetags/__init__.py create mode 100644 django/contrib/webdesign/templatetags/webdesign.py create mode 100644 django/contrib/webdesign/tests.py create mode 100644 django/core/serializers/pyyaml.py create mode 100644 django/db/backends/mysql_old/__init__.py create mode 100644 django/db/backends/mysql_old/base.py create mode 100644 django/db/backends/mysql_old/client.py create mode 100644 django/db/backends/mysql_old/creation.py create mode 100644 django/db/backends/mysql_old/introspection.py create mode 100644 django/newforms/__init__.py create mode 100644 django/newforms/extras/__init__.py create mode 100644 django/newforms/extras/widgets.py create mode 100644 django/newforms/fields.py create mode 100644 django/newforms/forms.py create mode 100644 django/newforms/models.py create mode 100644 django/newforms/util.py create mode 100644 django/newforms/widgets.py create mode 100644 django/oldforms/__init__.py rename django/test/{doctest.py => _doctest.py} (99%) create mode 100644 django/utils/_decimal.py create mode 100644 django/utils/encoding.py create mode 100644 django/utils/http.py create mode 100644 django/utils/simplejson/jsonfilter.py create mode 100644 docs/databases.txt create mode 100644 docs/databrowse.txt create mode 100644 docs/distributions.txt create mode 100644 docs/man/django-admin.1 create mode 100644 docs/newforms.txt create mode 100644 docs/release_notes_0.96.txt create mode 100644 docs/unicode.txt create mode 100644 docs/webdesign.txt create mode 100644 scripts/rpm-install.sh delete mode 120000 tests/evolvedbtests/case01_add_field/models.py delete mode 100644 tests/evolvedbtests/case01_add_field/models.py.post delete mode 100644 tests/evolvedbtests/case01_add_field/models.py.pre delete mode 100644 tests/evolvedbtests/case01_add_field/views.py delete mode 120000 tests/evolvedbtests/case02_rename_field/models.py delete mode 100644 tests/evolvedbtests/case02_rename_field/models.py.post delete mode 100644 tests/evolvedbtests/case02_rename_field/models.py.pre delete mode 100644 tests/evolvedbtests/case02_rename_field/views.py delete mode 120000 tests/evolvedbtests/case03_rename_model/models.py delete mode 100644 tests/evolvedbtests/case03_rename_model/models.py.post delete mode 100644 tests/evolvedbtests/case03_rename_model/models.py.pre delete mode 100644 tests/evolvedbtests/case03_rename_model/views.py delete mode 120000 tests/evolvedbtests/case04_change_flag/models.py delete mode 100644 tests/evolvedbtests/case04_change_flag/models.py.post delete mode 100644 tests/evolvedbtests/case04_change_flag/models.py.pre delete mode 100644 tests/evolvedbtests/case04_change_flag/views.py delete mode 120000 tests/evolvedbtests/case05_remove_field/models.py delete mode 100644 tests/evolvedbtests/case05_remove_field/models.py.post delete mode 100644 tests/evolvedbtests/case05_remove_field/models.py.pre delete mode 100644 tests/evolvedbtests/case05_remove_field/views.py delete mode 100755 tests/evolvedbtests/manage.py delete mode 100755 tests/evolvedbtests/reset_all_to_post delete mode 100755 tests/evolvedbtests/reset_all_to_pre delete mode 100644 tests/evolvedbtests/settings.py delete mode 100644 tests/evolvedbtests/urls.py create mode 100644 tests/modeltests/fixtures/__init__.py create mode 100644 tests/modeltests/fixtures/fixtures/fixture1.json create mode 100644 tests/modeltests/fixtures/fixtures/fixture2.json create mode 100644 tests/modeltests/fixtures/fixtures/fixture2.xml create mode 100644 tests/modeltests/fixtures/fixtures/fixture3.xml create mode 100644 tests/modeltests/fixtures/fixtures/initial_data.json create mode 100644 tests/modeltests/fixtures/models.py create mode 100644 tests/modeltests/get_object_or_404/__init__.py create mode 100644 tests/modeltests/get_object_or_404/models.py create mode 100644 tests/modeltests/model_forms/__init__.py create mode 100644 tests/modeltests/model_forms/models.py create mode 100644 tests/modeltests/select_related/__init__.py create mode 100644 tests/modeltests/select_related/models.py create mode 100644 tests/modeltests/test_client/fixtures/testdata.json delete mode 100644 tests/modeltests/test_client/management.py create mode 100644 tests/modeltests/test_client/tests.py create mode 100644 tests/regressiontests/bug639/__init__.py create mode 100644 tests/regressiontests/bug639/models.py create mode 100644 tests/regressiontests/bug639/test.jpg create mode 100644 tests/regressiontests/bug639/tests.py create mode 100644 tests/regressiontests/datastructures/__init__.py create mode 100644 tests/regressiontests/datastructures/models.py create mode 100644 tests/regressiontests/datastructures/tests.py create mode 100644 tests/regressiontests/datatypes/__init__.py create mode 100644 tests/regressiontests/datatypes/models.py create mode 100644 tests/regressiontests/dispatch/__init__.py create mode 100644 tests/regressiontests/dispatch/models.py create mode 100644 tests/regressiontests/dispatch/tests/__init__.py create mode 100644 tests/regressiontests/dispatch/tests/test_dispatcher.py create mode 100644 tests/regressiontests/dispatch/tests/test_robustapply.py create mode 100644 tests/regressiontests/dispatch/tests/test_saferef.py create mode 100644 tests/regressiontests/fixtures_regress/__init__.py create mode 100644 tests/regressiontests/fixtures_regress/fixtures/pretty.xml create mode 100644 tests/regressiontests/fixtures_regress/fixtures/sequence.json create mode 100644 tests/regressiontests/fixtures_regress/models.py create mode 100644 tests/regressiontests/forms/__init__.py create mode 100644 tests/regressiontests/forms/localflavor.py create mode 100644 tests/regressiontests/forms/models.py create mode 100644 tests/regressiontests/forms/regressions.py create mode 100644 tests/regressiontests/forms/tests.py create mode 100644 tests/regressiontests/humanize/__init__.py create mode 100644 tests/regressiontests/humanize/models.py create mode 100644 tests/regressiontests/humanize/tests.py create mode 100644 tests/regressiontests/i18n/__init__.py create mode 100644 tests/regressiontests/i18n/models.py create mode 100644 tests/regressiontests/i18n/tests.py create mode 100644 tests/regressiontests/invalid_admin_options/__init__.py create mode 100644 tests/regressiontests/invalid_admin_options/models.py create mode 100644 tests/regressiontests/model_regress/__init__.py create mode 100644 tests/regressiontests/model_regress/models.py create mode 100644 tests/regressiontests/serializers_regress/__init__.py create mode 100644 tests/regressiontests/serializers_regress/models.py create mode 100644 tests/regressiontests/serializers_regress/tests.py create mode 100644 tests/regressiontests/templates/unicode.py create mode 100644 tests/regressiontests/templates/urls.py create mode 100644 tests/regressiontests/templates/views.py create mode 100644 tests/regressiontests/test_client_regress/__init__.py create mode 100644 tests/regressiontests/test_client_regress/models.py create mode 100644 tests/regressiontests/test_client_regress/urls.py create mode 100644 tests/regressiontests/test_client_regress/views.py create mode 100644 tests/regressiontests/text/__init__.py create mode 100644 tests/regressiontests/text/models.py create mode 100644 tests/regressiontests/text/tests.py create mode 100644 tests/regressiontests/utils/__init__.py create mode 100644 tests/regressiontests/utils/models.py create mode 100644 tests/regressiontests/utils/tests.py create mode 100644 tests/templates/base.html create mode 100644 tests/templates/form_view.html diff --git a/AUTHORS b/AUTHORS index 52d4950e4e..905cccc7ed 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,7 +1,6 @@ Django was originally created in late 2003 at World Online, the Web division of the Lawrence Journal-World newspaper in Lawrence, Kansas. - The PRIMARY AUTHORS are (and/or have been): Adrian Holovaty , who originally created Django with @@ -42,129 +41,240 @@ And here is an inevitably incomplete list of MUCH-APPRECIATED CONTRIBUTORS -- people who have submitted patches, reported bugs, added translations, helped answer newbie questions, and generally made Django that much better: - adurdin@gmail.com - akaihola + alang@bright-green.com + Marty Alchin + Daniel Alves Barbosa de Oliveira Vaz + AgarFu Andreas + andy@jadedplanet.net + Fabrice Aneche ant9000@netwise.it David Ascher + david@kazserve.org Arthur + axiak@mit.edu Jiri Barton Ned Batchelder Shannon -jj Behrens + Esdras Beleza + Chris Bennett James Bennett + Ben Paul Bissex Simon Blanchard + Matt Boersma + boobsd@gmail.com Andrew Brehaut - andy@jadedplanet.net + brut.alll@gmail.com + Jonathan Buchanan + Ricardo Javier Cárdenes Medina Antonio Cavedoni C8E Chris Chamberlin Amit Chakradeo ChaosKCW + ivan.chelubeev@gmail.com + Bryan Chow + Michal Chruszcz Ian Clelland crankycoder@gmail.com + Pete Crosier Matt Croydon + flavio.curella@gmail.com + Jure Cuhalev dackze+django@gmail.com + David Danier + Dirk Datzert Jonathan Daugherty (cygnus) + dave@thebarproject.com Jason Davies (Esaj) Alex Dedul deric@monowerks.com + Max Derkachev + Jordan Dimov dne@mayonnaise.net Maximillian Dornseif - dummy@habmalnefrage.de Jeremy Dunck + Andrew Durdin Andy Dustman Clint Ecker + enlight Enrico + A. Murat Eren + Ludvig Ericson + Dirk Eschler + Marc Fargas favo@exoweb.net + Bill Fenner + Stefane Fermgier + Afonso Fernández Nogueira + Matthew Flanagan + Eric Floehr + Jorge Gajon gandalf@owca.info + Marc Garcia Baishampayan Ghose + glin@seznam.cz martin.glueck@gmail.com + GomoX + Mario Gonzalez Simon Greenhill + Owen Griffiths Espen Grindhaug + Thomas Güttler + Brian Harring Brant Harris Hawkeye - heckj@mac.com + Joe Heck Joel Heenan hipertracker@gmail.com Ian Holsman Kieran Holland + Sung-Jin Hong + Richard House Robert Rock Howard Jason Huggins + Hyun Mi Ae + Tom Insam + Baurzhan Ismagulov jcrasta@gmail.com + Zak Johnson Michael Josephson jpellerin@gmail.com junzhang.jn@gmail.com + Antti Kaihola + Ben Dean Kawamura + Ian G. Kelly + Ben Khoo Garth Kidd kilian Sune Kirkeby + Bastian Kleineidam Cameron Knight (ckknight) + Nena Kojadin + Igor Kolar + Gasper Koren + Martin Kosír Meir Kriheli Bruce Kroeze + krzysiek.pawlik@silvermedia.pl Joseph Kocherhans konrad@gwu.edu + kurtiss@meetro.com lakin.wecker@gmail.com + Nick Lane Stuart Langridge + Nicola Larosa Eugene Lazutkin - Jeong-Min Lee + Jeong-Min Lee + Jannis Leidel Christopher Lenz lerouxb@gmail.com + Waylan Limberg limodou - mattmcc + Philip Lindborg + Matt McClanahan Martin Maney + masonsimon+django@gmail.com Manuzhai - Petar Marić + Petar Marić + Nuno Mariz + Marijn Vriens mark@junklight.com + Yasushi Masuda mattycakes@gmail.com Jason McBrayer mccutchen@gmail.com michael.mcewan@gmail.com + mikko@sorl.net + mitakummaa@gmail.com mmarshall + Andreas Mock + Reza Mohammadi Eric Moritz + mrmachine Robin Munn + Robert Myers Nebojša Dorđević + Gopal Narayanan Fraser Nevett Sam Newman Neal Norwitz oggie rob Jay Parlar + pavithran s + Barry Pederson + petr.marhoun@gmail.com pgross@thoughtworks.com phaedo phil@produxion.net + phil.h.smith@gmail.com Gustavo Picon Luke Plant plisk Daniel Poelzleithner + polpak@yahoo.com J. Rademaker Michael Radziej - ramiro + Ramiro Morales + Massimiliano Ravelli Brian Ray + remco@diji.biz rhettg@gmail.com + Henrique Romano + Armin Ronacher + Brian Rosner Oliver Rutherfurd Ivan Sagalaev (Maniac) + Vinay Sajip David Schein + scott@staplefish.com serbaut@gmail.com + John Shaffer Pete Shinners + Jozko Skrablin SmileyChris + smurf@smurf.noris.de sopel - Thomas Steinacher + Wiliam Alves de Souza + Georgi Stanojevski + Vasiliy Stavenko + Thomas Steinacher + nowell strite + Sundance Radek Švarz Swaroop C H Aaron Swartz + Ville Säävuori Tyson Tate + Frank Tegtmeyer + thebjorn + Zach Thompson + tibimicu@gmax.net Tom Tobin - Tom Insam Joe Topjian + torne-django@wolfpuppy.org.uk Karen Tracey + tstromberg@google.com + Makoto Tsuyuki + tt@gurgle.no Amit Upadhyay Geert Vanderkelen + viestards.lists@gmail.com + Vlado Milton Waddams + wam-djangobug@wamber.net + wangchun Dan Watson + Chris Wesseling + James Wheare + charly.wilhelm@gmail.com Rachel Willmer Gary Wilson wojtek ye7cakf02@sneakemail.com ymasuda@ethercube.com + Jarek Zgoda Cheng Zhang A big THANK YOU goes to: diff --git a/MANIFEST.in b/MANIFEST.in index b5fbb3cb90..06a6021a95 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,8 +1,15 @@ +include README include AUTHORS include INSTALL include LICENSE +include MANIFEST.in +recursive-include docs * +recursive-include scripts * +recursive-include examples * +recursive-include extras * recursive-include django/conf/locale * -recursive-include django/contrib/admin/templates -recursive-include django/contrib/admin/media -recursive-include django/contrib/comments/templates -recursive-include django/contrib/sitemaps/templates +recursive-include django/contrib/admin/templates * +recursive-include django/contrib/admin/media * +recursive-include django/contrib/comments/templates * +recursive-include django/contrib/databrowse/templates * +recursive-include django/contrib/sitemaps/templates * diff --git a/django/__init__.py b/django/__init__.py index 5d5461c867..17d8c519cc 100644 --- a/django/__init__.py +++ b/django/__init__.py @@ -1 +1,8 @@ -VERSION = (0, 96, 'pre') +VERSION = (0, 97, 'pre') + +def get_version(): + "Returns the version as a human-format string." + v = '.'.join([str(i) for i in VERSION[:-1]]) + if VERSION[-1]: + v += '-' + VERSION[-1] + return v diff --git a/django/bin/compile-messages.py b/django/bin/compile-messages.py index 0137ec8dd4..2e1e908bbf 100755 --- a/django/bin/compile-messages.py +++ b/django/bin/compile-messages.py @@ -1,9 +1,10 @@ #!/usr/bin/env python +import optparse import os import sys -def compile_messages(): +def compile_messages(locale=None): basedir = None if os.path.isdir(os.path.join('conf', 'locale')): @@ -14,6 +15,9 @@ def compile_messages(): print "This script should be run from the Django SVN tree or your project or app tree." sys.exit(1) + if locale is not None: + basedir = os.path.join(basedir, locale, 'LC_MESSAGES') + for dirpath, dirnames, filenames in os.walk(basedir): for f in filenames: if f.endswith('.po'): @@ -27,10 +31,19 @@ def compile_messages(): os.environ['djangocompilemo'] = pf + '.mo' os.environ['djangocompilepo'] = pf + '.po' if sys.platform == 'win32': # Different shell-variable syntax - cmd = 'msgfmt -o "%djangocompilemo%" "%djangocompilepo%"' + cmd = 'msgfmt --check-format -o "%djangocompilemo%" "%djangocompilepo%"' else: - cmd = 'msgfmt -o "$djangocompilemo" "$djangocompilepo"' + cmd = 'msgfmt --check-format -o "$djangocompilemo" "$djangocompilepo"' os.system(cmd) +def main(): + parser = optparse.OptionParser() + parser.add_option('-l', '--locale', dest='locale', + help="The locale to process. Default is to process all.") + options, args = parser.parse_args() + if len(args): + parser.error("This program takes no arguments") + compile_messages(options.locale) + if __name__ == "__main__": - compile_messages() + main() diff --git a/django/bin/daily_cleanup.py b/django/bin/daily_cleanup.py index 667e0f16c6..c87be1e4c3 100644 --- a/django/bin/daily_cleanup.py +++ b/django/bin/daily_cleanup.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python + """ Daily cleanup job. @@ -5,13 +7,13 @@ Can be run as a cronjob to clean out old data from the database (only expired sessions at the moment). """ -from django.db import backend, connection, transaction +import datetime +from django.db import transaction +from django.contrib.sessions.models import Session def clean_up(): - # Clean up old database records - cursor = connection.cursor() - cursor.execute("DELETE FROM %s WHERE %s < NOW()" % \ - (backend.quote_name('django_session'), backend.quote_name('expire_date'))) + """Clean up expired sessions.""" + Session.objects.filter(expire_date__lt=datetime.datetime.now()).delete() transaction.commit_unless_managed() if __name__ == "__main__": diff --git a/django/bin/make-messages.py b/django/bin/make-messages.py index 557cb5eeec..e824611ca3 100755 --- a/django/bin/make-messages.py +++ b/django/bin/make-messages.py @@ -9,6 +9,7 @@ import re import os import sys import getopt +from itertools import dropwhile pythonize_re = re.compile(r'\n\s*//') @@ -81,7 +82,7 @@ def make_messages(): src = pythonize_re.sub('\n#', src) open(os.path.join(dirpath, '%s.py' % file), "wb").write(src) thefile = '%s.py' % file - cmd = 'xgettext %s -d %s -L Perl --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy -o - "%s"' % ( + cmd = 'xgettext %s -d %s -L Perl --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy:1,2 --from-code UTF-8 -o - "%s"' % ( os.path.exists(potfile) and '--omit-header' or '', domain, os.path.join(dirpath, thefile)) (stdin, stdout, stderr) = os.popen3(cmd, 'b') msgs = stdout.read() @@ -103,8 +104,8 @@ def make_messages(): open(os.path.join(dirpath, '%s.py' % file), "wb").write(templatize(src)) thefile = '%s.py' % file if verbose: sys.stdout.write('processing file %s in %s\n' % (file, dirpath)) - cmd = 'xgettext %s -d %s -L Python --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy -o - "%s"' % ( - os.path.exists(potfile) and '--omit-header' or '', domain, os.path.join(dirpath, thefile)) + cmd = 'xgettext -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"' % ( + domain, os.path.join(dirpath, thefile)) (stdin, stdout, stderr) = os.popen3(cmd, 'b') msgs = stdout.read() errors = stderr.read() @@ -116,13 +117,18 @@ def make_messages(): old = '#: '+os.path.join(dirpath, thefile)[2:] new = '#: '+os.path.join(dirpath, file)[2:] msgs = msgs.replace(old, new) + if os.path.exists(potfile): + # Strip the header + msgs = '\n'.join(dropwhile(len, msgs.split('\n'))) + else: + msgs = msgs.replace('charset=CHARSET', 'charset=UTF-8') if msgs: open(potfile, 'ab').write(msgs) if thefile != file: os.unlink(os.path.join(dirpath, thefile)) if os.path.exists(potfile): - (stdin, stdout, stderr) = os.popen3('msguniq "%s"' % potfile, 'b') + (stdin, stdout, stderr) = os.popen3('msguniq --to-code=utf-8 "%s"' % potfile, 'b') msgs = stdout.read() errors = stderr.read() if errors: diff --git a/django/bin/profiling/gather_profile_stats.py b/django/bin/profiling/gather_profile_stats.py index 852f16229d..c0844930e9 100644 --- a/django/bin/profiling/gather_profile_stats.py +++ b/django/bin/profiling/gather_profile_stats.py @@ -22,7 +22,7 @@ def gather_stats(p): else: continue print "Processing %s" % f - if profiles.has_key(path): + if path in profiles: profiles[path].add(prof) else: profiles[path] = prof diff --git a/django/conf/__init__.py b/django/conf/__init__.py index 1a04bbfb02..f28da2d764 100644 --- a/django/conf/__init__.py +++ b/django/conf/__init__.py @@ -7,6 +7,7 @@ a list of all possible variables. """ import os +import time # Needed for Windows from django.conf import global_settings ENVIRONMENT_VARIABLE = "DJANGO_SETTINGS_MODULE" @@ -36,6 +37,8 @@ class LazySettings(object): # __setattr__(), which would be an infinite loop. self.__dict__['_target'] = value else: + if self._target is None: + self._import_settings() setattr(self._target, name, value) def _import_settings(self): @@ -77,7 +80,7 @@ class Settings(object): self.SETTINGS_MODULE = settings_module try: - mod = __import__(self.SETTINGS_MODULE, '', '', ['']) + mod = __import__(self.SETTINGS_MODULE, {}, {}, ['']) except ImportError, e: raise EnvironmentError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e) @@ -97,7 +100,7 @@ class Settings(object): new_installed_apps = [] for app in self.INSTALLED_APPS: if app.endswith('.*'): - appdir = os.path.dirname(__import__(app[:-2], '', '', ['']).__file__) + appdir = os.path.dirname(__import__(app[:-2], {}, {}, ['']).__file__) for d in os.listdir(appdir): if d.isalpha() and os.path.isdir(os.path.join(appdir, d)): new_installed_apps.append('%s.%s' % (app[:-2], d)) @@ -105,8 +108,10 @@ class Settings(object): new_installed_apps.append(app) self.INSTALLED_APPS = new_installed_apps - # move the time zone info into os.environ - os.environ['TZ'] = self.TIME_ZONE + if hasattr(time, 'tzset'): + # Move the time zone info into os.environ. See ticket #2315 for why + # we don't do this unconditionally (breaks Windows). + os.environ['TZ'] = self.TIME_ZONE def get_all_members(self): return dir(self) diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index 69c775cdec..33f7aebb6b 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -25,12 +25,11 @@ ADMINS = () INTERNAL_IPS = () # Local time zone for this installation. All choices can be found here: -# http://www.postgresql.org/docs/current/static/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE +# http://www.postgresql.org/docs/8.1/static/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE TIME_ZONE = 'America/Chicago' # Language code for this installation. All choices can be found here: # http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes -# http://blogs.law.harvard.edu/tech/stories/storyReader$15 LANGUAGE_CODE = 'en-us' # Languages we provide translations for, out of the box. The language name @@ -38,6 +37,8 @@ LANGUAGE_CODE = 'en-us' LANGUAGES = ( ('ar', gettext_noop('Arabic')), ('bn', gettext_noop('Bengali')), + ('bg', gettext_noop('Bulgarian')), + ('ca', gettext_noop('Catalan')), ('cs', gettext_noop('Czech')), ('cy', gettext_noop('Welsh')), ('da', gettext_noop('Danish')), @@ -46,6 +47,7 @@ LANGUAGES = ( ('en', gettext_noop('English')), ('es', gettext_noop('Spanish')), ('es_AR', gettext_noop('Argentinean Spanish')), + ('fa', gettext_noop('Persian')), ('fi', gettext_noop('Finnish')), ('fr', gettext_noop('French')), ('gl', gettext_noop('Galician')), @@ -54,9 +56,14 @@ LANGUAGES = ( ('is', gettext_noop('Icelandic')), ('it', gettext_noop('Italian')), ('ja', gettext_noop('Japanese')), + ('ko', gettext_noop('Korean')), + ('kn', gettext_noop('Kannada')), + ('lv', gettext_noop('Latvian')), + ('mk', gettext_noop('Macedonian')), ('nl', gettext_noop('Dutch')), ('no', gettext_noop('Norwegian')), ('pl', gettext_noop('Polish')), + ('pt', gettext_noop('Portugese')), ('pt-br', gettext_noop('Brazilian')), ('ro', gettext_noop('Romanian')), ('ru', gettext_noop('Russian')), @@ -65,6 +72,7 @@ LANGUAGES = ( ('sr', gettext_noop('Serbian')), ('sv', gettext_noop('Swedish')), ('ta', gettext_noop('Tamil')), + ('te', gettext_noop('Telugu')), ('tr', gettext_noop('Turkish')), ('uk', gettext_noop('Ukrainian')), ('zh-cn', gettext_noop('Simplified Chinese')), @@ -88,6 +96,9 @@ MANAGERS = ADMINS DEFAULT_CONTENT_TYPE = 'text/html' DEFAULT_CHARSET = 'utf-8' +# Encoding of files read from disk (template and initial SQL files). +FILE_CHARSET = 'utf-8' + # E-mail address that error messages come from. SERVER_EMAIL = 'root@localhost' @@ -95,12 +106,13 @@ SERVER_EMAIL = 'root@localhost' SEND_BROKEN_LINK_EMAILS = False # Database connection info. -DATABASE_ENGINE = '' # 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'. +DATABASE_ENGINE = '' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'. DATABASE_NAME = '' # Or path to database file if using sqlite3. DATABASE_USER = '' # Not used with sqlite3. DATABASE_PASSWORD = '' # Not used with sqlite3. DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3. DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3. +DATABASE_OPTIONS = {} # Set to empty dictionary for default. # Host for sending e-mail. EMAIL_HOST = 'localhost' @@ -111,6 +123,7 @@ EMAIL_PORT = 25 # Optional SMTP authentication information for EMAIL_HOST. EMAIL_HOST_USER = '' EMAIL_HOST_PASSWORD = '' +EMAIL_USE_TLS = False # List of strings representing installed apps. INSTALLED_APPS = () @@ -134,6 +147,7 @@ TEMPLATE_CONTEXT_PROCESSORS = ( 'django.core.context_processors.auth', 'django.core.context_processors.debug', 'django.core.context_processors.i18n', + 'django.core.context_processors.media', # 'django.core.context_processors.request', ) @@ -228,6 +242,11 @@ MONTH_DAY_FORMAT = 'F j' # Hint: you really don't! TRANSACTIONS_MANAGED = False +# The User-Agent string to use when checking for URL validity through the +# isExistingURL validator. +from django import get_version +URL_VALIDATOR_USER_AGENT = "Django/%s (http://www.djangoproject.com)" % get_version() + ############## # MIDDLEWARE # ############## @@ -263,6 +282,7 @@ SESSION_EXPIRE_AT_BROWSER_CLOSE = False # Whether sessions expire when a user # possible values. CACHE_BACKEND = 'simple://' CACHE_MIDDLEWARE_KEY_PREFIX = '' +CACHE_MIDDLEWARE_SECONDS = 600 #################### # COMMENTS # @@ -300,6 +320,12 @@ BANNED_IPS = () AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend',) +LOGIN_URL = '/accounts/login/' + +LOGOUT_URL = '/accounts/logout/' + +LOGIN_REDIRECT_URL = '/accounts/profile/' + ########### # TESTING # ########### @@ -310,3 +336,17 @@ TEST_RUNNER = 'django.test.simple.run_tests' # The name of the database to use for testing purposes. # If None, a name of 'test_' + DATABASE_NAME will be assumed TEST_DATABASE_NAME = None + +# Strings used to set the character set and collation order for the test +# database. These values are passed literally to the server, so they are +# backend-dependent. If None, no special settings are sent (system defaults are +# used). +TEST_DATABASE_CHARSET = None +TEST_DATABASE_COLLATION = None + +############ +# FIXTURES # +############ + +# The list of directories to search for fixtures +FIXTURE_DIRS = () diff --git a/django/conf/locale/bg/LC_MESSAGES/django.mo b/django/conf/locale/bg/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..bfa09dcc23d10683bcf359c3723fcd8f469b6e51 GIT binary patch literal 51713 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 literal 0 HcmV?d00001 diff --git a/django/conf/locale/bg/LC_MESSAGES/django.po b/django/conf/locale/bg/LC_MESSAGES/django.po new file mode 100644 index 0000000000..9c1030685e --- /dev/null +++ b/django/conf/locale/bg/LC_MESSAGES/django.po @@ -0,0 +1,2670 @@ +# translation of django.po to Bulgarian +# +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-04-05 01:32+1000\n" +"PO-Revision-Date: 2007-05-12 17:45+0300\n" +"Last-Translator: Jordan Dimov \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: db/models/manipulators.py:307 +#, python-format +msgid "%(object)s with this %(type)s already exists for the given %(field)s." +msgstr "%(object)s с този %(type)s вече съществува за зададеното %(field)s.s" + +#: db/models/manipulators.py:308 contrib/admin/views/main.py:335 +#: contrib/admin/views/main.py:337 contrib/admin/views/main.py:339 +msgid "and" +msgstr "и" + +#: db/models/fields/related.py:53 +#, python-format +msgid "Please enter a valid %s." +msgstr "Въведете валиден %s." + +#: db/models/fields/related.py:642 +msgid "Separate multiple IDs with commas." +msgstr "Множество ID-та се разделят с запетайки" + +#: db/models/fields/related.py:644 +msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "Задръжте натиснат клавиша \"Control\" (или \"Command\" на Mac-а) за да направите повече от един избор. " + +#: db/models/fields/related.py:691 +#, python-format +msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." +msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid." +msgstr[0] "Въведете валидни %(self)s ID-та. Стойността %(value)r не е валидна." +msgstr[1] "" + +#: db/models/fields/__init__.py:42 +#, python-format +msgid "%(optname)s with this %(fieldname)s already exists." +msgstr "%(optname)s с този %(fieldname)s вече съществува." + +#: db/models/fields/__init__.py:117 db/models/fields/__init__.py:274 +#: db/models/fields/__init__.py:610 db/models/fields/__init__.py:621 +#: oldforms/__init__.py:357 newforms/fields.py:80 newforms/fields.py:376 +#: newforms/fields.py:452 newforms/fields.py:463 newforms/models.py:178 +msgid "This field is required." +msgstr "Това поле е задължително." + +#: db/models/fields/__init__.py:367 +msgid "This value must be an integer." +msgstr "Тази стойност трябва да бъде цяло число" + +#: db/models/fields/__init__.py:402 +msgid "This value must be either True or False." +msgstr "Тази стойност трябва да бъде True или False." + +#: db/models/fields/__init__.py:423 +msgid "This field cannot be null." +msgstr "Това поле не може да има празна стойност." + +#: db/models/fields/__init__.py:457 core/validators.py:148 +msgid "Enter a valid date in YYYY-MM-DD format." +msgstr "Въведете валидна дата в формат ГГГГ-ММ-ДД." + +#: db/models/fields/__init__.py:526 core/validators.py:157 +msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." +msgstr "Въведете валидна дата и час в формат ГГГГ-ММ-ДД ЧЧ:ММ." + +#: db/models/fields/__init__.py:630 +msgid "Enter a valid filename." +msgstr "Въведете валидно име на файл." + +#: db/models/fields/__init__.py:751 +msgid "This value must be either None, True or False." +msgstr "Тази стойност трябва да бъде None, True, или False." + +#: conf/global_settings.py:39 +msgid "Arabic" +msgstr "арабски" + +#: conf/global_settings.py:40 +msgid "Bengali" +msgstr "бенгалски" + +#: conf/global_settings.py:41 +msgid "Catalan" +msgstr "каталонски" + +#: conf/global_settings.py:42 +msgid "Czech" +msgstr "чешки" + +#: conf/global_settings.py:43 +msgid "Welsh" +msgstr "уелски" + +#: conf/global_settings.py:44 +msgid "Danish" +msgstr "датски" + +#: conf/global_settings.py:45 +msgid "German" +msgstr "немски" + +#: conf/global_settings.py:46 +msgid "Greek" +msgstr "гръцки" + +#: conf/global_settings.py:47 +msgid "English" +msgstr "английски" + +#: conf/global_settings.py:48 +msgid "Spanish" +msgstr "испански" + +#: conf/global_settings.py:49 +msgid "Argentinean Spanish" +msgstr "аржентински испански" + +#: conf/global_settings.py:50 +msgid "Finnish" +msgstr "финландски" + +#: conf/global_settings.py:51 +msgid "French" +msgstr "френски" + +#: conf/global_settings.py:52 +msgid "Galician" +msgstr "галицейски" + +#: conf/global_settings.py:53 +msgid "Hungarian" +msgstr "унгарски" + +#: conf/global_settings.py:54 +msgid "Hebrew" +msgstr "еврит" + +#: conf/global_settings.py:55 +msgid "Icelandic" +msgstr "исландски" + +#: conf/global_settings.py:56 +msgid "Italian" +msgstr "италиански" + +#: conf/global_settings.py:57 +msgid "Japanese" +msgstr "японски" + +#: conf/global_settings.py:58 +msgid "Kannada" +msgstr "каннада (индийски)" + +#: conf/global_settings.py:59 +msgid "Latvian" +msgstr "латвийски" + +#: conf/global_settings.py:60 +msgid "Macedonian" +msgstr "македонски" + +#: conf/global_settings.py:61 +msgid "Dutch" +msgstr "холандски" + +#: conf/global_settings.py:62 +msgid "Norwegian" +msgstr "норвежки" + +#: conf/global_settings.py:63 +msgid "Polish" +msgstr "полски" + +#: conf/global_settings.py:64 +msgid "Portugese" +msgstr "португалски" + +#: conf/global_settings.py:65 +msgid "Brazilian" +msgstr "бразилски" + +#: conf/global_settings.py:66 +msgid "Romanian" +msgstr "ромънски" + +#: conf/global_settings.py:67 +msgid "Russian" +msgstr "руски" + +#: conf/global_settings.py:68 +msgid "Slovak" +msgstr "словашки" + +#: conf/global_settings.py:69 +msgid "Slovenian" +msgstr "словенски" + +#: conf/global_settings.py:70 +msgid "Serbian" +msgstr "сръбски" + +#: conf/global_settings.py:71 +msgid "Swedish" +msgstr "шведски" + +#: conf/global_settings.py:72 +msgid "Tamil" +msgstr "тамил (индийски)" + +#: conf/global_settings.py:73 +msgid "Telugu" +msgstr "телугу (индийски)" + +#: conf/global_settings.py:74 +msgid "Turkish" +msgstr "турски" + +#: conf/global_settings.py:75 +msgid "Ukrainian" +msgstr "украински" + +#: conf/global_settings.py:76 +msgid "Simplified Chinese" +msgstr "китайски" + +#: conf/global_settings.py:77 +msgid "Traditional Chinese" +msgstr "традиционен китайски" + +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "година" +msgstr[1] "години" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "месец" +msgstr[1] "месеци" + +#: utils/timesince.py:14 +msgid "week" +msgid_plural "weeks" +msgstr[0] "седмица" +msgstr[1] "седмици" + +#: utils/timesince.py:15 +msgid "day" +msgid_plural "days" +msgstr[0] "ден" +msgstr[1] "дни" + +#: utils/timesince.py:16 +msgid "hour" +msgid_plural "hours" +msgstr[0] "час" +msgstr[1] "часа" + +#: utils/timesince.py:17 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "минута" +msgstr[1] "минути" + +#: utils/dates.py:6 +msgid "Monday" +msgstr "понеделник" + +#: utils/dates.py:6 +msgid "Tuesday" +msgstr "вторник" + +#: utils/dates.py:6 +msgid "Wednesday" +msgstr "сряда" + +#: utils/dates.py:6 +msgid "Thursday" +msgstr "четвъртък" + +#: utils/dates.py:6 +msgid "Friday" +msgstr "петък" + +#: utils/dates.py:7 +msgid "Saturday" +msgstr "събота" + +#: utils/dates.py:7 +msgid "Sunday" +msgstr "неделя" + +#: utils/dates.py:14 +msgid "January" +msgstr "Януари" + +#: utils/dates.py:14 +msgid "February" +msgstr "Февруари" + +#: utils/dates.py:14 utils/dates.py:27 +msgid "March" +msgstr "Март" + +#: utils/dates.py:14 utils/dates.py:27 +msgid "April" +msgstr "Април" + +#: utils/dates.py:14 utils/dates.py:27 +msgid "May" +msgstr "Май" + +#: utils/dates.py:14 utils/dates.py:27 +msgid "June" +msgstr "Юни" + +#: utils/dates.py:15 utils/dates.py:27 +msgid "July" +msgstr "Юли" + +#: utils/dates.py:15 +msgid "August" +msgstr "Август" + +#: utils/dates.py:15 +msgid "September" +msgstr "Септември" + +#: utils/dates.py:15 +msgid "October" +msgstr "Октомври" + +#: utils/dates.py:15 +msgid "November" +msgstr "Ноември" + +#: utils/dates.py:16 +msgid "December" +msgstr "Декември" + +#: utils/dates.py:19 +msgid "jan" +msgstr "яну" + +#: utils/dates.py:19 +msgid "feb" +msgstr "фев" + +#: utils/dates.py:19 +msgid "mar" +msgstr "мар" + +#: utils/dates.py:19 +msgid "apr" +msgstr "апр" + +#: utils/dates.py:19 +msgid "may" +msgstr "май" + +#: utils/dates.py:19 +msgid "jun" +msgstr "юни" + +#: utils/dates.py:20 +msgid "jul" +msgstr "юли" + +#: utils/dates.py:20 +msgid "aug" +msgstr "авг" + +#: utils/dates.py:20 +msgid "sep" +msgstr "сеп" + +#: utils/dates.py:20 +msgid "oct" +msgstr "окт" + +#: utils/dates.py:20 +msgid "nov" +msgstr "ное" + +#: utils/dates.py:20 +msgid "dec" +msgstr "дек" + +#: utils/dates.py:27 +msgid "Jan." +msgstr "Яну." + +#: utils/dates.py:27 +msgid "Feb." +msgstr "Фев." + +#: utils/dates.py:28 +msgid "Aug." +msgstr "Авг." + +#: utils/dates.py:28 +msgid "Sept." +msgstr "Септ." + +#: utils/dates.py:28 +msgid "Oct." +msgstr "Окт." + +#: utils/dates.py:28 +msgid "Nov." +msgstr "Ное." + +#: utils/dates.py:28 +msgid "Dec." +msgstr "Дек." + +#: utils/dateformat.py:40 +msgid "p.m." +msgstr "p.m." + +#: utils/dateformat.py:41 +msgid "a.m." +msgstr "a.m." + +#: utils/dateformat.py:46 +msgid "PM" +msgstr "PM" + +#: utils/dateformat.py:47 +msgid "AM" +msgstr "AM" + +#: utils/dateformat.py:95 +msgid "midnight" +msgstr "полунощ" + +#: utils/dateformat.py:97 +msgid "noon" +msgstr "обяд" + +#: utils/translation/trans_real.py:358 +msgid "DATE_FORMAT" +msgstr "j N, Y" + +#: utils/translation/trans_real.py:359 +msgid "DATETIME_FORMAT" +msgstr "j N, Y, P" + +#: utils/translation/trans_real.py:360 +msgid "TIME_FORMAT" +msgstr "P" + +#: utils/translation/trans_real.py:376 +msgid "YEAR_MONTH_FORMAT" +msgstr "F Y" + +#: utils/translation/trans_real.py:377 +msgid "MONTH_DAY_FORMAT" +msgstr "j F" + +#: oldforms/__init__.py:392 +#, python-format +msgid "Ensure your text is less than %s character." +msgid_plural "Ensure your text is less than %s characters." +msgstr[0] "Въведеният текст не трябва да надвишава %s символа." +msgstr[1] "" + +#: oldforms/__init__.py:397 +msgid "Line breaks are not allowed here." +msgstr "Тук не се допускат нови редове." + +#: oldforms/__init__.py:498 oldforms/__init__.py:571 oldforms/__init__.py:610 +#, python-format +msgid "Select a valid choice; '%(data)s' is not in %(choices)s." +msgstr "Направете валиден избор; '%(data)s' не е сред %(choices)s." + +#: oldforms/__init__.py:577 contrib/admin/filterspecs.py:150 +#: newforms/widgets.py:174 +msgid "Unknown" +msgstr "Неизвестно" + +#: oldforms/__init__.py:577 contrib/admin/filterspecs.py:143 +#: newforms/widgets.py:174 +msgid "Yes" +msgstr "Да" + +#: oldforms/__init__.py:577 contrib/admin/filterspecs.py:143 +#: newforms/widgets.py:174 +msgid "No" +msgstr "Не" + +#: oldforms/__init__.py:672 core/validators.py:174 core/validators.py:445 +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Не е получен файл. Проверете типът кодиране на формата. " + +#: oldforms/__init__.py:674 +msgid "The submitted file is empty." +msgstr "Каченият файл е празен. " + +#: oldforms/__init__.py:730 +msgid "Enter a whole number between -32,768 and 32,767." +msgstr "Въведете цяло число между -32768 и 32767." + +#: oldforms/__init__.py:740 +msgid "Enter a positive number." +msgstr "Въведете положително число. " + +#: oldforms/__init__.py:750 +msgid "Enter a whole number between 0 and 32,767." +msgstr "Въведете цяло число между 0 и 32767." + +#: contrib/localflavor/no/forms.py:15 +msgid "Enter a zip code in the format XXXX." +msgstr "Въведете пощенски код в формат XXXX." + +#: contrib/localflavor/no/forms.py:36 +msgid "Enter a valid Norwegian social security number." +msgstr "Въведете валиден норвежки номер на социалната осигуровка." + +#: contrib/localflavor/it/forms.py:14 contrib/localflavor/fr/forms.py:17 +#: contrib/localflavor/fi/forms.py:14 contrib/localflavor/de/forms.py:16 +msgid "Enter a zip code in the format XXXXX." +msgstr "Въведете пощенски код в формат XXXXX." + +#: contrib/localflavor/jp/forms.py:21 +msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." +msgstr "Въведете пощенски код в формат XXXXXXX или XXX-XXXX." + +#: contrib/localflavor/jp/jp_prefectures.py:4 +msgid "Hokkaido" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:5 +msgid "Aomori" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:6 +msgid "Iwate" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:7 +msgid "Miyagi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:8 +msgid "Akita" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:9 +msgid "Yamagata" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:10 +msgid "Fukushima" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:11 +msgid "Ibaraki" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:12 +msgid "Tochigi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:13 +msgid "Gunma" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:14 +msgid "Saitama" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:15 +msgid "Chiba" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:16 +msgid "Tokyo" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:17 +msgid "Kanagawa" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:18 +msgid "Yamanashi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:19 +msgid "Nagano" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:20 +msgid "Niigata" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:21 +msgid "Toyama" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:22 +msgid "Ishikawa" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:23 +msgid "Fukui" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:24 +msgid "Gifu" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:25 +msgid "Shizuoka" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:26 +msgid "Aichi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:27 +msgid "Mie" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:28 +msgid "Shiga" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:29 +msgid "Kyoto" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:30 +msgid "Osaka" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:31 +msgid "Hyogo" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:32 +msgid "Nara" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:33 +msgid "Wakayama" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:34 +msgid "Tottori" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:35 +msgid "Shimane" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:36 +msgid "Okayama" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:37 +msgid "Hiroshima" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:38 +msgid "Yamaguchi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:39 +msgid "Tokushima" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:40 +msgid "Kagawa" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:41 +msgid "Ehime" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:42 +msgid "Kochi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:43 +msgid "Fukuoka" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:44 +msgid "Saga" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:45 +msgid "Nagasaki" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:46 +msgid "Kumamoto" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:47 +msgid "Oita" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:48 +msgid "Miyazaki" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:49 +msgid "Kagoshima" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:50 +msgid "Okinawa" +msgstr "" + +#: contrib/localflavor/br/forms.py:18 +msgid "Enter a zip code in the format XXXXX-XXX." +msgstr "Въведете пощенски код в формат XXXXX-XXX." + +#: contrib/localflavor/br/forms.py:30 +msgid "Phone numbers must be in XX-XXXX-XXXX format." +msgstr "Телефонните номера трябва да бъдат в формат XX-XXXX-XXXX. " + +#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:46 +msgid "Enter a valid Finnish social security number." +msgstr "Въведете валиден финландски номер на социалната осигуровка." + +#: contrib/localflavor/uk/forms.py:18 +msgid "Enter a postcode. A space is required between the two postcode parts." +msgstr "Въведете пощенски код. Между двете части на пощенския код трябва да има разстояние. " + +#: contrib/localflavor/de/forms.py:63 +msgid "" +"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " +"format" +msgstr "Въведете валиден номер на германска лична карта в формат XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." + +#: contrib/localflavor/de/de_states.py:5 +msgid "Baden-Wuerttemberg" +msgstr "" + +#: contrib/localflavor/de/de_states.py:6 +msgid "Bavaria" +msgstr "" + +#: contrib/localflavor/de/de_states.py:7 +msgid "Berlin" +msgstr "" + +#: contrib/localflavor/de/de_states.py:8 +msgid "Brandenburg" +msgstr "" + +#: contrib/localflavor/de/de_states.py:9 +msgid "Bremen" +msgstr "" + +#: contrib/localflavor/de/de_states.py:10 +msgid "Hamburg" +msgstr "" + +#: contrib/localflavor/de/de_states.py:11 +msgid "Hessen" +msgstr "" + +#: contrib/localflavor/de/de_states.py:12 +msgid "Mecklenburg-Western Pomerania" +msgstr "" + +#: contrib/localflavor/de/de_states.py:13 +msgid "Lower Saxony" +msgstr "" + +#: contrib/localflavor/de/de_states.py:14 +msgid "North Rhine-Westphalia" +msgstr "" + +#: contrib/localflavor/de/de_states.py:15 +msgid "Rhineland-Palatinate" +msgstr "" + +#: contrib/localflavor/de/de_states.py:16 +msgid "Saarland" +msgstr "" + +#: contrib/localflavor/de/de_states.py:17 +msgid "Saxony" +msgstr "" + +#: contrib/localflavor/de/de_states.py:18 +msgid "Saxony-Anhalt" +msgstr "" + +#: contrib/localflavor/de/de_states.py:19 +msgid "Schleswig-Holstein" +msgstr "" + +#: contrib/localflavor/de/de_states.py:20 +msgid "Thuringia" +msgstr "" + +#: contrib/localflavor/usa/forms.py:18 +msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." +msgstr "Въведете zip код в формат XXXXX или XXXXX-XXXX." + +#: contrib/localflavor/usa/forms.py:51 +msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." +msgstr "Въведете валиден номер на социалната осигуровка в формат XXX-XX-XXXX." + +#: contrib/sessions/models.py:68 +msgid "session key" +msgstr "ключ на сесията" + +#: contrib/sessions/models.py:69 +msgid "session data" +msgstr "данни от сесията" + +#: contrib/sessions/models.py:70 +msgid "expire date" +msgstr "дата на валидност" + +#: contrib/sessions/models.py:74 +msgid "session" +msgstr "сесия" + +#: contrib/sessions/models.py:75 +msgid "sessions" +msgstr "сесии" + +#: contrib/auth/forms.py:17 contrib/auth/forms.py:138 +msgid "The two password fields didn't match." +msgstr "Двете полета за паролата не съвпадат. " + +#: contrib/auth/forms.py:25 +msgid "A user with that username already exists." +msgstr "Потребител с това потребителско име вече съществува. " + +#: contrib/auth/forms.py:53 +msgid "" +"Your Web browser doesn't appear to have cookies enabled. Cookies are " +"required for logging in." +msgstr "Браузерът, който използвате не поддържа cookies, а те са необходими за да можете да се логнете. " + +#: contrib/auth/forms.py:60 contrib/admin/views/decorators.py:10 +msgid "" +"Please enter a correct username and password. Note that both fields are case-" +"sensitive." +msgstr "Въведете правилно потребителско име и парола. И двете полета правят разлика между малки и големи букви!" + +#: contrib/auth/forms.py:62 +msgid "This account is inactive." +msgstr "Този акаунт е деактивиран." + +#: contrib/auth/forms.py:85 +msgid "" +"That e-mail address doesn't have an associated user account. Are you sure " +"you've registered?" +msgstr "С този email адрес няма обвързан потребителски акаунт. Сигурни ли сте, че сте се регистрирали?" + +#: contrib/auth/forms.py:117 +msgid "The two 'new password' fields didn't match." +msgstr "Двете полета за нова парола не съвпадат. " + +#: contrib/auth/forms.py:124 +msgid "Your old password was entered incorrectly. Please enter it again." +msgstr "Въвели сте погрешна стара парола. Въведете я пак. " + +#: contrib/auth/views.py:39 +msgid "Logged out" +msgstr "Извън системата" + +#: contrib/auth/models.py:38 contrib/auth/models.py:57 +msgid "name" +msgstr "име" + +#: contrib/auth/models.py:40 +msgid "codename" +msgstr "код" + +#: contrib/auth/models.py:42 +msgid "permission" +msgstr "право" + +#: contrib/auth/models.py:43 contrib/auth/models.py:58 +msgid "permissions" +msgstr "права" + +#: contrib/auth/models.py:60 +msgid "group" +msgstr "група" + +#: contrib/auth/models.py:61 contrib/auth/models.py:100 +msgid "groups" +msgstr "групи" + +#: contrib/auth/models.py:90 +msgid "username" +msgstr "потребител" + +#: contrib/auth/models.py:90 +msgid "" +"Required. 30 characters or fewer. Alphanumeric characters only (letters, " +"digits and underscores)." +msgstr "Въведете не-повече от 30 символа (само букви, цифри, и подчертавка)" + +#: contrib/auth/models.py:91 +msgid "first name" +msgstr "собствено име" + +#: contrib/auth/models.py:92 +msgid "last name" +msgstr "фамилно име" + +#: contrib/auth/models.py:93 +msgid "e-mail address" +msgstr "e-mail адрес" + +#: contrib/auth/models.py:94 +msgid "password" +msgstr "парола" + +#: contrib/auth/models.py:94 +msgid "" +"Use '[algo]$[salt]$[hexdigest]' or use the change " +"password form." +msgstr "Въведете '[algo]$[salt]$[hexdigest]' или използвайте формата за смяна на парола." + +#: contrib/auth/models.py:95 +msgid "staff status" +msgstr "персонал" + +#: contrib/auth/models.py:95 +msgid "Designates whether the user can log into this admin site." +msgstr "Указва дали този потребител има достъп до административния панел." + +#: contrib/auth/models.py:96 +msgid "active" +msgstr "активен" + +#: contrib/auth/models.py:96 +msgid "" +"Designates whether this user can log into the Django admin. Unselect this " +"instead of deleting accounts." +msgstr "Указва дали този потребител може да влезе в административния панел . Премахнете тази маркировка вместо да изтривате акаунти. " + +#: contrib/auth/models.py:97 +msgid "superuser status" +msgstr "статут на супер-потребител" + +#: contrib/auth/models.py:97 +msgid "" +"Designates that this user has all permissions without explicitly assigning " +"them." +msgstr "Указва, че този потребител има всички права (без да има нужда да се указват изрично)." + +#: contrib/auth/models.py:98 +msgid "last login" +msgstr "последен логин" + +#: contrib/auth/models.py:99 +msgid "date joined" +msgstr "дата на регистриране" + +#: contrib/auth/models.py:101 +msgid "" +"In addition to the permissions manually assigned, this user will also get " +"all permissions granted to each group he/she is in." +msgstr "Освен ръчно указаните права, този потребител също ще получи правата на всяка група, към която принадлежи. " + +#: contrib/auth/models.py:102 +msgid "user permissions" +msgstr "потребителски права" + +#: contrib/auth/models.py:105 +msgid "user" +msgstr "потребител" + +#: contrib/auth/models.py:106 +msgid "users" +msgstr "потребители" + +#: contrib/auth/models.py:111 +msgid "Personal info" +msgstr "Лична информация" + +#: contrib/auth/models.py:112 +msgid "Permissions" +msgstr "Права" + +#: contrib/auth/models.py:113 +msgid "Important dates" +msgstr "Важни дати" + +#: contrib/auth/models.py:114 +msgid "Groups" +msgstr "Групи" + +#: contrib/auth/models.py:258 +msgid "message" +msgstr "съобщение" + +#: contrib/humanize/templatetags/humanize.py:17 +msgid "th" +msgstr "и" + +#: contrib/humanize/templatetags/humanize.py:17 +msgid "st" +msgstr "ви" + +#: contrib/humanize/templatetags/humanize.py:17 +msgid "nd" +msgstr "ри" + +#: contrib/humanize/templatetags/humanize.py:17 +msgid "rd" +msgstr "ти" + +#: contrib/humanize/templatetags/humanize.py:47 +#, python-format +msgid "%(value).1f million" +msgid_plural "%(value).1f million" +msgstr[0] "%(value).1f милион" +msgstr[1] "%(value).1f милиона" + +#: contrib/humanize/templatetags/humanize.py:50 +#, python-format +msgid "%(value).1f billion" +msgid_plural "%(value).1f billion" +msgstr[0] "%(value).1f милиард" +msgstr[1] "%(value).1f милиарда" + +#: contrib/humanize/templatetags/humanize.py:53 +#, python-format +msgid "%(value).1f trillion" +msgid_plural "%(value).1f trillion" +msgstr[0] "%(value).1f трилион" +msgstr[1] "%(value).1f трилионаn" + +#: contrib/humanize/templatetags/humanize.py:68 +msgid "one" +msgstr "един" + +#: contrib/humanize/templatetags/humanize.py:68 +msgid "two" +msgstr "два" + +#: contrib/humanize/templatetags/humanize.py:68 +msgid "three" +msgstr "три" + +#: contrib/humanize/templatetags/humanize.py:68 +msgid "four" +msgstr "четири" + +#: contrib/humanize/templatetags/humanize.py:68 +msgid "five" +msgstr "пет" + +#: contrib/humanize/templatetags/humanize.py:68 +msgid "six" +msgstr "шест" + +#: contrib/humanize/templatetags/humanize.py:68 +msgid "seven" +msgstr "седем" + +#: contrib/humanize/templatetags/humanize.py:68 +msgid "eight" +msgstr "осем" + +#: contrib/humanize/templatetags/humanize.py:68 +msgid "nine" +msgstr "девет" + +#: contrib/contenttypes/models.py:36 +msgid "python model class name" +msgstr "има на класа на модела в Python" + +#: contrib/contenttypes/models.py:39 +msgid "content type" +msgstr "тип на съдържанието" + +#: contrib/contenttypes/models.py:40 +msgid "content types" +msgstr "типове съдържание" + +#: contrib/redirects/models.py:7 +msgid "redirect from" +msgstr "препратка от" + +#: contrib/redirects/models.py:8 +msgid "" +"This should be an absolute path, excluding the domain name. Example: '/" +"events/search/'." +msgstr "Това трябва да бъде абсолютен път, без името на домейна. Пример: '/events/search/'." + +#: contrib/redirects/models.py:9 +msgid "redirect to" +msgstr "препратка към" + +#: contrib/redirects/models.py:10 +msgid "" +"This can be either an absolute path (as above) or a full URL starting with " +"'http://'." +msgstr "Това може да бъде или абсолютен път (като горното) или пълен URL, започващ с 'http://'." + +#: contrib/redirects/models.py:13 +msgid "redirect" +msgstr "препратка" + +#: contrib/redirects/models.py:14 +msgid "redirects" +msgstr "препратки" + +#: contrib/flatpages/models.py:7 contrib/admin/views/doc.py:315 +msgid "URL" +msgstr "URL" + +#: contrib/flatpages/models.py:8 +msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes." +msgstr "Пример: '/about/contact/'. Началната и крайната наклонена чертичка са задължителни. " + +#: contrib/flatpages/models.py:9 +msgid "title" +msgstr "заглавие" + +#: contrib/flatpages/models.py:10 +msgid "content" +msgstr "съдържание" + +#: contrib/flatpages/models.py:11 +msgid "enable comments" +msgstr "позволяване на коментари" + +#: contrib/flatpages/models.py:12 +msgid "template name" +msgstr "име на шаблон" + +#: contrib/flatpages/models.py:13 +msgid "" +"Example: 'flatpages/contact_page.html'. If this isn't provided, the system " +"will use 'flatpages/default.html'." +msgstr "Пример: 'flatpages/contact_page.html'. Ако това не е указано, системата ще използва 'flatpages/default.html'. " + +#: contrib/flatpages/models.py:14 +msgid "registration required" +msgstr "изисква се регистрация" + +#: contrib/flatpages/models.py:14 +msgid "If this is checked, only logged-in users will be able to view the page." +msgstr "Ако това е чекнато, само логнати потребители ще могат да виждат страницата. " + +#: contrib/flatpages/models.py:18 +msgid "flat page" +msgstr "информативна страница" + +#: contrib/flatpages/models.py:19 +msgid "flat pages" +msgstr "информативни страници" + +#: contrib/comments/models.py:67 contrib/comments/models.py:166 +msgid "object ID" +msgstr "ID на обекта" + +#: contrib/comments/models.py:68 +msgid "headline" +msgstr "заглавие" + +#: contrib/comments/models.py:69 contrib/comments/models.py:90 +#: contrib/comments/models.py:167 +msgid "comment" +msgstr "коментар" + +#: contrib/comments/models.py:70 +msgid "rating #1" +msgstr "рейтинг #1" + +#: contrib/comments/models.py:71 +msgid "rating #2" +msgstr "рейтинг #2" + +#: contrib/comments/models.py:72 +msgid "rating #3" +msgstr "рейтинг #3" + +#: contrib/comments/models.py:73 +msgid "rating #4" +msgstr "рейтинг #4" + +#: contrib/comments/models.py:74 +msgid "rating #5" +msgstr "рейтинг #5" + +#: contrib/comments/models.py:75 +msgid "rating #6" +msgstr "рейтинг #6" + +#: contrib/comments/models.py:76 +msgid "rating #7" +msgstr "рейтинг #7" + +#: contrib/comments/models.py:77 +msgid "rating #8" +msgstr "рейтинг #8" + +#: contrib/comments/models.py:82 +msgid "is valid rating" +msgstr "е валиден рейтинг" + +#: contrib/comments/models.py:83 contrib/comments/models.py:169 +msgid "date/time submitted" +msgstr "дата и час на подаване" + +#: contrib/comments/models.py:84 contrib/comments/models.py:170 +msgid "is public" +msgstr "е публичен" + +#: contrib/comments/models.py:85 contrib/admin/views/doc.py:304 +msgid "IP address" +msgstr "IP адрес" + +#: contrib/comments/models.py:86 +msgid "is removed" +msgstr "е премахнат" + +#: contrib/comments/models.py:86 +msgid "" +"Check this box if the comment is inappropriate. A \"This comment has been " +"removed\" message will be displayed instead." +msgstr "Щтракнете тази кутийка ако коментарът е неподходящ. Вместо съдържанието на коментара, ще се покаже надписът \"Този коментар бе премахнат.\"" + +#: contrib/comments/models.py:91 +msgid "comments" +msgstr "коментари" + +#: contrib/comments/models.py:131 contrib/comments/models.py:207 +msgid "Content object" +msgstr "Content обект" + +#: contrib/comments/models.py:159 +#, python-format +msgid "" +"Posted by %(user)s at %(date)s\n" +"\n" +"%(comment)s\n" +"\n" +"http://%(domain)s%(url)s" +msgstr "" +"Пуснат от %(user)s на %(date)s\n" +"\n" +"%(comment)s\n" +"\n" +"http://%(domain)s%(url)s" + +#: contrib/comments/models.py:168 +msgid "person's name" +msgstr "име на човека" + +#: contrib/comments/models.py:171 +msgid "ip address" +msgstr "ip адрес" + +#: contrib/comments/models.py:173 +msgid "approved by staff" +msgstr "одобрен от персонала" + +#: contrib/comments/models.py:176 +msgid "free comment" +msgstr "свободен коментар" + +#: contrib/comments/models.py:177 +msgid "free comments" +msgstr "свободни коментари" + +#: contrib/comments/models.py:233 +msgid "score" +msgstr "точки" + +#: contrib/comments/models.py:234 +msgid "score date" +msgstr "дата на точкуване" + +#: contrib/comments/models.py:237 +msgid "karma score" +msgstr "кармична точка" + +#: contrib/comments/models.py:238 +msgid "karma scores" +msgstr "кармични точки" + +#: contrib/comments/models.py:242 +#, python-format +msgid "%(score)d rating by %(user)s" +msgstr "%(score)d рейтинг от %(user)s" + +#: contrib/comments/models.py:258 +#, python-format +msgid "" +"This comment was flagged by %(user)s:\n" +"\n" +"%(text)s" +msgstr "" +"Този коментар бе флагнат от %(user)s:\n" +"\n" +"%(text)s" + +#: contrib/comments/models.py:265 +msgid "flag date" +msgstr "дата на флагване" + +#: contrib/comments/models.py:268 +msgid "user flag" +msgstr "потребителски флаг" + +#: contrib/comments/models.py:269 +msgid "user flags" +msgstr "потребителски флагове" + +#: contrib/comments/models.py:273 +#, python-format +msgid "Flag by %r" +msgstr "Флаг от %r" + +#: contrib/comments/models.py:278 +msgid "deletion date" +msgstr "дата на изтриване" + +#: contrib/comments/models.py:280 +msgid "moderator deletion" +msgstr "изтриване от модератор" + +#: contrib/comments/models.py:281 +msgid "moderator deletions" +msgstr "изтривания от модератор" + +#: contrib/comments/models.py:285 +#, python-format +msgid "Moderator deletion by %r" +msgstr "Изтриване от модератор %r" + +#: contrib/comments/templates/comments/form.html:6 +#: contrib/comments/templates/comments/form.html:8 +#: contrib/admin/templates/admin/login.html:17 +msgid "Username:" +msgstr "Потребител:" + +#: contrib/comments/templates/comments/form.html:6 +#: contrib/admin/templates/admin_doc/bookmarklets.html:4 +#: contrib/admin/templates/admin_doc/missing_docutils.html:4 +#: contrib/admin/templates/admin_doc/view_detail.html:4 +#: contrib/admin/templates/admin_doc/template_filter_index.html:5 +#: contrib/admin/templates/admin_doc/view_index.html:5 +#: contrib/admin/templates/admin_doc/template_tag_index.html:5 +#: contrib/admin/templates/admin_doc/model_detail.html:3 +#: contrib/admin/templates/admin_doc/model_index.html:5 +#: contrib/admin/templates/admin_doc/index.html:4 +#: contrib/admin/templates/admin_doc/template_detail.html:4 +#: contrib/admin/templates/admin/object_history.html:3 +#: contrib/admin/templates/admin/delete_confirmation.html:3 +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/change_form.html:10 +#: contrib/admin/templates/admin/base.html:25 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_done.html:3 +msgid "Log out" +msgstr "Изход" + +#: contrib/comments/templates/comments/form.html:8 +#: contrib/admin/templates/admin/login.html:20 +msgid "Password:" +msgstr "Парола:" + +#: contrib/comments/templates/comments/form.html:8 +msgid "Forgotten your password?" +msgstr "Забравена парола?" + +#: contrib/comments/templates/comments/form.html:12 +msgid "Ratings" +msgstr "Рейтинги" + +#: contrib/comments/templates/comments/form.html:12 +#: contrib/comments/templates/comments/form.html:23 +msgid "Required" +msgstr "Задължително" + +#: contrib/comments/templates/comments/form.html:12 +#: contrib/comments/templates/comments/form.html:23 +msgid "Optional" +msgstr "Не-задължително" + +#: contrib/comments/templates/comments/form.html:23 +msgid "Post a photo" +msgstr "Качете снимка" + +#: contrib/comments/templates/comments/form.html:28 +#: contrib/comments/templates/comments/freeform.html:5 +msgid "Comment:" +msgstr "Коментар:" + +#: contrib/comments/templates/comments/form.html:35 +#: contrib/comments/templates/comments/freeform.html:10 +msgid "Preview comment" +msgstr "Преглед на коментара" + +#: contrib/comments/templates/comments/freeform.html:4 +msgid "Your name:" +msgstr "Вашето име:" + +#: contrib/comments/views/karma.py:19 +msgid "Anonymous users cannot vote" +msgstr "Анонимните потребители не могат да гласуват" + +#: contrib/comments/views/karma.py:23 +msgid "Invalid comment ID" +msgstr "Невалидно ID на коментар" + +#: contrib/comments/views/karma.py:25 +msgid "No voting for yourself" +msgstr "Не можете да гласувате за себе си" + +#: contrib/comments/views/comments.py:27 +msgid "This rating is required because you've entered at least one other rating." +msgstr "Този рейтинг е задължителен, понеже сте въвели поне един друг рейтинг. " + +#: contrib/comments/views/comments.py:111 +#, python-format +msgid "" +"This comment was posted by a user who has posted fewer than %(count)s " +"comment:\n" +"\n" +"%(text)s" +msgid_plural "" +"This comment was posted by a user who has posted fewer than %(count)s " +"comments:\n" +"\n" +"%(text)s" +msgstr[0] "" +"Този коментар е от потребител, който има по-малко от %(count)s " +"коментар:\n" +"\n" +"%(text)s" +msgstr[1] "" +"Този коментар е от потребител, който има по-малко от %(count)s " +"коментара:\n" +"\n" +"%(text)s" + +#: contrib/comments/views/comments.py:116 +#, python-format +msgid "" +"This comment was posted by a sketchy user:\n" +"\n" +"%(text)s" +msgstr "" +"Този коментар е от съмнителен потребител:\n" +"\n" +"%(text)s" + +#: contrib/comments/views/comments.py:188 +#: contrib/comments/views/comments.py:280 +msgid "Only POSTs are allowed" +msgstr "Само POST заявките са позволени" + +#: contrib/comments/views/comments.py:192 +#: contrib/comments/views/comments.py:284 +msgid "One or more of the required fields wasn't submitted" +msgstr "Едно или повече от задължителните полета липсва" + +#: contrib/comments/views/comments.py:196 +#: contrib/comments/views/comments.py:286 +msgid "Somebody tampered with the comment form (security violation)" +msgstr "Някой е променял формата за коментари (нарушение на сигурността)" + +#: contrib/comments/views/comments.py:206 +#: contrib/comments/views/comments.py:292 +msgid "" +"The comment form had an invalid 'target' parameter -- the object ID was " +"invalid" +msgstr "Формата за коментарите има невалиден параметър 'target' -- ID-то на обекта е невалидно" + +#: contrib/comments/views/comments.py:257 +#: contrib/comments/views/comments.py:321 +msgid "The comment form didn't provide either 'preview' or 'post'" +msgstr "Формата за коментарите не предоставя нито преглед нито постване. " + +#: contrib/sites/models.py:10 +msgid "domain name" +msgstr "име на домейна" + +#: contrib/sites/models.py:11 +msgid "display name" +msgstr "наименование" + +#: contrib/sites/models.py:15 +msgid "site" +msgstr "сайт" + +#: contrib/sites/models.py:16 +msgid "sites" +msgstr "сайтове" + +#: contrib/admin/filterspecs.py:40 +#, python-format +msgid "" +"

By %s:

\n" +"