From ca86ceec83044fbfd76d1559b6d2a7da35019c10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Uro=C5=A1=20Trebec?= Date: Mon, 14 Aug 2006 00:32:07 +0000 Subject: [PATCH] [full-history] Trunk merge from [3577] git-svn-id: http://code.djangoproject.com/svn/django/branches/full-history@3580 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- AUTHORS | 4 + django/bin/compile-messages.py | 2 +- django/conf/global_settings.py | 1 + django/conf/locale/ru/LC_MESSAGES/django.mo | Bin 31822 -> 31773 bytes django/conf/locale/ru/LC_MESSAGES/django.po | 3 +- django/conf/project_template/settings.py | 3 +- .../media/js/admin/RelatedObjectLookups.js | 2 +- .../templates/admin/auth/user/add_form.html | 28 ++++ .../admin/templates/admin/change_form.html | 2 +- .../templates/admin/edit_inline_tabular.html | 1 + django/contrib/admin/urls.py | 4 +- django/contrib/admin/views/auth.py | 39 +++++ django/contrib/admin/views/doc.py | 34 ++-- django/contrib/admin/views/main.py | 2 +- django/contrib/auth/forms.py | 22 +++ django/contrib/flatpages/README.TXT | 4 +- django/contrib/sessions/middleware.py | 3 +- django/core/management.py | 50 ++++-- django/core/servers/basehttp.py | 4 - django/core/urlresolvers.py | 50 ++++-- .../db/backends/postgresql_psycopg2/base.py | 4 + django/db/models/__init__.py | 4 +- django/db/models/base.py | 11 +- django/db/models/fields/__init__.py | 2 +- django/db/models/loading.py | 4 +- django/db/models/manipulators.py | 2 +- django/http/__init__.py | 15 +- django/template/defaultfilters.py | 4 +- django/template/loaders/filesystem.py | 2 +- django/views/generic/create_update.py | 7 +- docs/db-api.txt | 21 +-- docs/documentation.txt | 148 ++++++++++++++++++ docs/faq.txt | 9 +- docs/generic_views.txt | 2 +- docs/model-api.txt | 7 + docs/request_response.txt | 8 +- docs/sessions.txt | 11 ++ docs/settings.txt | 12 ++ docs/url_dispatch.txt | 45 ++++++ setup.py | 1 + tests/modeltests/empty/models.py | 2 + tests/modeltests/lookup/models.py | 13 +- tests/othertests/defaultfilters.py | 3 + 43 files changed, 492 insertions(+), 103 deletions(-) create mode 100644 django/contrib/admin/templates/admin/auth/user/add_form.html create mode 100644 django/contrib/admin/views/auth.py create mode 100644 docs/documentation.txt diff --git a/AUTHORS b/AUTHORS index f44bc42af0..fb00ca43fe 100644 --- a/AUTHORS +++ b/AUTHORS @@ -60,6 +60,7 @@ answer newbie questions, and generally made Django that much better: Amit Chakradeo ChaosKCW Ian Clelland + crankycoder@gmail.com Matt Croydon Jonathan Daugherty (cygnus) Jason Davies (Esaj) @@ -71,6 +72,7 @@ answer newbie questions, and generally made Django that much better: gandalf@owca.info Baishampayan Ghose martin.glueck@gmail.com + Simon Greenhill Espen Grindhaug Brant Harris hipertracker@gmail.com @@ -124,12 +126,14 @@ answer newbie questions, and generally made Django that much better: Ivan Sagalaev (Maniac) David Schein sopel + Thomas Steinacher Radek Švarz Swaroop C H Aaron Swartz Tom Tobin Tom Insam Joe Topjian + Karen Tracey Amit Upadhyay Geert Vanderkelen Milton Waddams diff --git a/django/bin/compile-messages.py b/django/bin/compile-messages.py index 5f653df95d..44a84de379 100755 --- a/django/bin/compile-messages.py +++ b/django/bin/compile-messages.py @@ -14,7 +14,7 @@ def compile_messages(): print "this script should be run from the django svn tree or your project or app tree" sys.exit(1) - for (dirpath, dirnames, filenames) in os.walk(basedir): + for dirpath, dirnames, filenames in os.walk(basedir): for f in filenames: if f.endswith('.po'): sys.stderr.write('processing file %s in %s\n' % (f, dirpath)) diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index a00e2ba4eb..4ea694d064 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -252,6 +252,7 @@ MIDDLEWARE_CLASSES = ( SESSION_COOKIE_NAME = 'sessionid' # Cookie name. This can be whatever you want. SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2 # Age of cookie, in seconds (default: 2 weeks). SESSION_COOKIE_DOMAIN = None # A string like ".lawrence.com", or None for standard domain cookie. +SESSION_COOKIE_SECURE = False # Whether the session cookie should be secure (https:// only). SESSION_SAVE_EVERY_REQUEST = False # Whether to save the session data on every request. SESSION_EXPIRE_AT_BROWSER_CLOSE = False # Whether sessions expire when a user closes his browser. diff --git a/django/conf/locale/ru/LC_MESSAGES/django.mo b/django/conf/locale/ru/LC_MESSAGES/django.mo index 562996eee5c9f601274908cf6a0a29569c6d6dd3..d45691bd30d01d7ff097b2e892217b46b901d49f 100644 GIT binary patch delta 6001 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 Y8|P~7POd$j8rZX?XI=N@)?xks4|ieBp#T5? diff --git a/django/conf/locale/ru/LC_MESSAGES/django.po b/django/conf/locale/ru/LC_MESSAGES/django.po index 024b2bfc12..4e5ff239f8 100644 --- a/django/conf/locale/ru/LC_MESSAGES/django.po +++ b/django/conf/locale/ru/LC_MESSAGES/django.po @@ -141,6 +141,7 @@ msgid "score date" msgstr "счёт времени" #: contrib/comments/models.py:237 +#, fuzzy msgid "karma score" msgstr "Карма счёт" @@ -735,7 +736,7 @@ msgstr "К сожалению, запрашиваемая вами страни #: contrib/admin/templates/admin/index.html:17 #, python-format msgid "Models available in the %(name)s application." -msgstr "Модели доступны в %(name)s приложении." +msgstr "Модели доступны в %(name) приложении." #: contrib/admin/templates/admin/index.html:28 #: contrib/admin/templates/admin/change_form.html:15 diff --git a/django/conf/project_template/settings.py b/django/conf/project_template/settings.py index 14da715db5..63e07c061a 100644 --- a/django/conf/project_template/settings.py +++ b/django/conf/project_template/settings.py @@ -60,8 +60,9 @@ MIDDLEWARE_CLASSES = ( ROOT_URLCONF = '{{ project_name }}.urls' TEMPLATE_DIRS = ( - # Put strings here, like "/home/html/django_templates". + # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". # Always use forward slashes, even on Windows. + # Don't forget to use absolute paths, not relative paths. ) INSTALLED_APPS = ( diff --git a/django/contrib/admin/media/js/admin/RelatedObjectLookups.js b/django/contrib/admin/media/js/admin/RelatedObjectLookups.js index cf57fc4dfb..db4ed1a9d1 100644 --- a/django/contrib/admin/media/js/admin/RelatedObjectLookups.js +++ b/django/contrib/admin/media/js/admin/RelatedObjectLookups.js @@ -11,7 +11,7 @@ function showRelatedObjectLookupPopup(triggeringLink) { } else { href = triggeringLink.href + '?pop=1'; } - var win = window.open(href, name, 'height=500,width=740,resizable=yes,scrollbars=yes'); + var win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes'); win.focus(); return false; } diff --git a/django/contrib/admin/templates/admin/auth/user/add_form.html b/django/contrib/admin/templates/admin/auth/user/add_form.html new file mode 100644 index 0000000000..139fa6a75e --- /dev/null +++ b/django/contrib/admin/templates/admin/auth/user/add_form.html @@ -0,0 +1,28 @@ +{% extends "admin/change_form.html" %} +{% load i18n %} + +{% block after_field_sets %} + +

{% trans "First, enter a username and password. Then, you'll be able to edit more user options." %}

+ +
+ +
+ {{ form.username.html_error_list }} + {{ form.username }} +

{{ username_help_text }}

+
+ +
+ {{ form.password1.html_error_list }} + {{ form.password1 }} +
+ +
+ {{ form.password2.html_error_list }} + {{ form.password2 }} +

{% trans 'Enter the same password as above, for verification.' %}

+
+ +
+{% endblock %} diff --git a/django/contrib/admin/templates/admin/change_form.html b/django/contrib/admin/templates/admin/change_form.html index e61eb5513b..b1fdc5ebdb 100644 --- a/django/contrib/admin/templates/admin/change_form.html +++ b/django/contrib/admin/templates/admin/change_form.html @@ -21,7 +21,7 @@ {% if has_absolute_url %}
  • {% trans "View on site" %}
  • {% endif%} {% endif %}{% endif %} -
    {% block form_top %}{% endblock %} +{% block form_top %}{% endblock %}
    {% if is_popup %}{% endif %} {% if opts.admin.save_on_top %}{% submit_row %}{% endif %} diff --git a/django/contrib/admin/templates/admin/edit_inline_tabular.html b/django/contrib/admin/templates/admin/edit_inline_tabular.html index 13d528331b..3d059c8b3d 100644 --- a/django/contrib/admin/templates/admin/edit_inline_tabular.html +++ b/django/contrib/admin/templates/admin/edit_inline_tabular.html @@ -7,6 +7,7 @@ {{ fw.field.verbose_name|capfirst|escape }} {% endif %} {% endfor %} + {% for fcw in bound_related_object.form_field_collection_wrappers %} {% if change %}{% if original_row_needed %} {% if fcw.obj.original %} diff --git a/django/contrib/admin/urls.py b/django/contrib/admin/urls.py index bd894d8de1..aaf9841e45 100644 --- a/django/contrib/admin/urls.py +++ b/django/contrib/admin/urls.py @@ -21,13 +21,15 @@ urlpatterns = patterns('', ('^doc/tags/$', 'django.contrib.admin.views.doc.template_tag_index'), ('^doc/filters/$', 'django.contrib.admin.views.doc.template_filter_index'), ('^doc/views/$', 'django.contrib.admin.views.doc.view_index'), - ('^doc/views/jump/$', 'django.contrib.admin.views.doc.jump_to_view'), ('^doc/views/(?P[^/]+)/$', 'django.contrib.admin.views.doc.view_detail'), ('^doc/models/$', 'django.contrib.admin.views.doc.model_index'), ('^doc/models/(?P[^\.]+)\.(?P[^/]+)/$', 'django.contrib.admin.views.doc.model_detail'), # ('^doc/templates/$', 'django.views.admin.doc.template_index'), ('^doc/templates/(?P