diff --git a/templates/admin/404.html b/templates/admin/404.html
new file mode 100644
index 0000000000..099466c4f1
--- /dev/null
+++ b/templates/admin/404.html
@@ -0,0 +1,11 @@
+{% extends "base_site" %}
+
+{% block title %}Page not found{% endblock %}
+
+{% block content %}
+
+
Page not found
+
+We're sorry, but the requested page could not be found.
+
+{% endblock %}
diff --git a/templates/admin/500.html b/templates/admin/500.html
new file mode 100644
index 0000000000..124e4018a9
--- /dev/null
+++ b/templates/admin/500.html
@@ -0,0 +1,11 @@
+{% extends "base_site" %}
+
+{% block breadcrumbs %}{% endblock %}
+
+{% block title %}Server error (500){% endblock %}
+
+{% block content %}
+Server Error (500)
+There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience.
+
+{% endblock %}
diff --git a/templates/admin/admin_object_history.html b/templates/admin/admin_object_history.html
new file mode 100644
index 0000000000..580d47760f
--- /dev/null
+++ b/templates/admin/admin_object_history.html
@@ -0,0 +1,42 @@
+{% extends "base_site" %}
+
+{% block breadcrumbs %}
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+{% if action_list %}
+
+
+
+
+ Date/time
+ User
+ Action
+
+
+
+ {% for action in action_list %}
+
+ {{ action.action_time|date:"N j, Y, P" }}
+ {{ action.get_user.username }}{% if action.get_user.first_name %} ({{ action.get_user.first_name }} {{ action.get_user.last_name }}){% endif %}
+ {{ action.change_message}}
+
+ {% endfor %}
+
+
+
+{% else %}
+
+
This object doesn't have a change history. It probably wasn't added via this admin site.
+
+{% endif %}
+
+
+
+
+{% endblock %}
diff --git a/templates/admin/base.html b/templates/admin/base.html
new file mode 100644
index 0000000000..a977d202e2
--- /dev/null
+++ b/templates/admin/base.html
@@ -0,0 +1,51 @@
+
+
+
+
+{% block title %}{% endblock %}
+
+{% block extrastyle %}{% endblock %}
+{% block extrahead %}{% endblock %}
+
+
+
+
+
+
+
+ {% if not is_popup %}
+
+
+
+ {% block breadcrumbs %}
Home {% if title %} › {{ title }}{% endif %}
{% endblock %}
+ {% endif %}
+
+ {% if messages %}
+
{% for message in messages %}{{ message }} {% endfor %}
+ {% endif %}
+
+
+
+ {% block pretitle %}{% endblock %}
+ {% if title %}
{{ title }} {% endif %}
+ {% block content %}{{ content }}{% endblock %}
+ {% block sidebar %}{% endblock %}
+
+
+
+
+
+
+
+
+
+
diff --git a/templates/admin/base_site.html b/templates/admin/base_site.html
new file mode 100644
index 0000000000..aec857677f
--- /dev/null
+++ b/templates/admin/base_site.html
@@ -0,0 +1,10 @@
+{% extends "base" %}
+
+{% block title %}{{ title }} | Django site admin{% endblock %}
+
+{% block branding %}
+Django administration
+
+{% endblock %}
+
+{% block nav-global %}{% endblock %}
diff --git a/templates/admin/changelist_generic.html b/templates/admin/changelist_generic.html
new file mode 100644
index 0000000000..d8f51c537b
--- /dev/null
+++ b/templates/admin/changelist_generic.html
@@ -0,0 +1,34 @@
+{% extends "base_site" %}
+
+{% block bodyclass %}change-list{% endblock %}
+
+{% block content %}
+
+{% if not hide_add_link %}
+
+{% endif %}
+
+
+
+
+ {% if toplinks %}
+
+
+ {% endif %}
+
+ {% if changelist %}
+
+ {% endif %}
+
+
+
+
+{% endblock %}
diff --git a/templates/admin/delete_confirmation_generic.html b/templates/admin/delete_confirmation_generic.html
new file mode 100644
index 0000000000..e46b611baf
--- /dev/null
+++ b/templates/admin/delete_confirmation_generic.html
@@ -0,0 +1,21 @@
+{% extends "base_site" %}
+
+{% block content %}
+
+{% if perms_lacking %}
+ Deleting the {{ object_name }} "{{ object }}" would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:
+
+ {% for obj in perms_lacking %}
+ {{ obj }}
+ {% endfor %}
+
+{% else %}
+ Are you sure you want to delete the {{ object_name }} "{{ object }}"? All of the following related items will be deleted:
+ {{ deleted_objects|unordered_list }}
+
+{% endif %}
+
+{% endblock %}
diff --git a/templates/admin/doc/bookmarklets.html b/templates/admin/doc/bookmarklets.html
new file mode 100644
index 0000000000..b9820db639
--- /dev/null
+++ b/templates/admin/doc/bookmarklets.html
@@ -0,0 +1,30 @@
+{% extends "base_site" %}
+
+{% block breadcrumbs %}{% endblock %}
+
+{% block title %}Documentation bookmarklets{% endblock %}
+
+{% block content %}
+
+To install bookmarklets, drag the link to your bookmarks
+toolbar, or right-click the link and add it to your bookmarks. Now you can
+select the bookmarklet from any page in the site. Note that some of these
+bookmarklets require you to be viewing the site from a computer designated
+as "internal" (talk to your system administrator if you aren't sure if
+your computer is "internal").
+
+
+
+
Jumps you from any page to the documentation for the view that generates that page.
+
+
+
Shows the content-type and unique ID for pages that represent a single object.
+
+
+
Jumps to the admin page for pages that represent a single object.
+
+
+
As above, but opens the admin page in a new window.
+
+
+{% endblock %}
diff --git a/templates/admin/doc/index.html b/templates/admin/doc/index.html
new file mode 100644
index 0000000000..17c65eaa58
--- /dev/null
+++ b/templates/admin/doc/index.html
@@ -0,0 +1,31 @@
+{% extends "base_site" %}
+
+{% block breadcrumbs %}{% endblock %}
+
+{% block title %}Documentation{% endblock %}
+
+{% block content %}
+
+Documentation
+
+
+
+
List of all the template tags and their functions.
+
+
+
Filters are actions which can be applied to variables in a template to alter the output.
+
+
+
Models are descriptions of all the objects in the system and their associated fields. Each model has a list of fields which can be accessed as template variables.
+
+
+
Each page on the public site is generated by a view. The view defines which template is used to generate the page and which objects are available to that template.
+
+
+
Each page on the public site is generated by a view. The view defines which template is used to generate the page and which objects are available to that template.
+
+
+
Tools for your browser to quickly access admin functionality.
+
+
+{% endblock %}
diff --git a/templates/admin/doc/missing_docutils.html b/templates/admin/doc/missing_docutils.html
new file mode 100644
index 0000000000..cd8cd69330
--- /dev/null
+++ b/templates/admin/doc/missing_docutils.html
@@ -0,0 +1,17 @@
+{% extends "base_site" %}
+
+{% block breadcrumbs %}{% endblock %}
+
+{% block title %}Please install docutils{% endblock %}
+
+{% block content %}
+
+Documentation
+
+
+
The admin documentation system requires Python's docutils library.
+
+
Please ask your administrators to install docutils .
+
+
+{% endblock %}
diff --git a/templates/admin/doc/model_detail.html b/templates/admin/doc/model_detail.html
new file mode 100644
index 0000000000..4cbba0a6ef
--- /dev/null
+++ b/templates/admin/doc/model_detail.html
@@ -0,0 +1,46 @@
+{% extends "base_site" %}
+
+{% block extrahead %}
+
+{{ block.super }}
+
+
+
+{% endblock %}
+
+{% block breadcrumbs %}{% endblock %}
+
+{% block title %}Model: {{ name }}{% endblock %}
+
+{% block content %}
+
+
{{ summary }}
+
+
+
+
+
+ Field
+ Type
+ Description
+
+
+
+{% for field in fields|dictsort:"name" %}
+
+ {{ field.name }}
+ {{ field.data_type }}
+ {{ field.verbose|default:"" }}{% if field.help_text %} - {{ field.help_text }}{% endif %}
+
+{% endfor %}
+
+
+
+
+
‹ Back to Models Documentation
+
+{% endblock %}
diff --git a/templates/admin/doc/model_index.html b/templates/admin/doc/model_index.html
new file mode 100644
index 0000000000..d3cecc244f
--- /dev/null
+++ b/templates/admin/doc/model_index.html
@@ -0,0 +1,44 @@
+{% extends "base_site" %}
+
+{% block coltype %}colSM{% endblock %}
+
+{% block breadcrumbs %}{% endblock %}
+
+{% block title %}Models{% endblock %}
+
+{% block content %}
+
+Models Documentation
+
+
+{% regroup models|dictsort:"module" by module as grouped_models %}
+{% for group in grouped_models %}
+
+
{{ group.grouper }}
+
+
+
+{% endfor %}
+
+
+{% endblock %}
+
+{% block sidebar %}
+
+{% endblock %}
diff --git a/templates/admin/doc/template_filter_index.html b/templates/admin/doc/template_filter_index.html
new file mode 100644
index 0000000000..358d9021c9
--- /dev/null
+++ b/templates/admin/doc/template_filter_index.html
@@ -0,0 +1,54 @@
+{% extends "base_site" %}
+
+
+{% block coltype %}colSM{% endblock %}
+
+
+
+{% block breadcrumbs %}{% endblock %}
+
+
+{% block title %}Template filters{% endblock %}
+
+{% block content %}
+
+Template filter documentation
+
+
+{% regroup filters|dictsort:"library" by library as filter_libraries %}
+{% for library in filter_libraries %}
+
+
{% if library.grouper %}{{ library.grouper }}{% else %}Built-in filters{% endif %}
+ {% if library.grouper %}
To use these filters, put {% templatetag openblock %} load {{ library.grouper }} {% templatetag closeblock %}
in your template before using the filter.
{% endif %}
+ {% for filter in library.list|dictsort:"name" %}
+
{{ filter.name }}
+
{{ filter.title }}
+
Usage: {% templatetag openvariable %} variable|{{ filter.name }}{% if filter.meta.AcceptsArgument %}:"arg"{% endif %} {% templatetag closevariable %}
+
{{ filter.body }}
+ {% if not forloop.last %}
{% endif %}
+ {% endfor %}
+
+{% endfor %}
+
+
+{% endblock %}
+
+{% block sidebar %}
+
+
+
+{% regroup filters|dictsort:"library" by library as filter_libraries %}
+{% for library in filter_libraries %}
+
+
{% if library.grouper %}{{ library.grouper }}{% else %}Built-in filters{% endif %}
+
+ {% for filter in library.list|dictsort:"name" %}
+ {{ filter.name }}
+ {% endfor %}
+
+
+{% endfor %}
+
+
+
+{% endblock %}
diff --git a/templates/admin/doc/template_tag_index.html b/templates/admin/doc/template_tag_index.html
new file mode 100644
index 0000000000..fc25ccd349
--- /dev/null
+++ b/templates/admin/doc/template_tag_index.html
@@ -0,0 +1,53 @@
+{% extends "base_site" %}
+
+
+{% block coltype %}colSM{% endblock %}
+
+
+
+{% block breadcrumbs %}{% endblock %}
+
+
+{% block title %}Template tags{% endblock %}
+
+{% block content %}
+
+Template tag documentation
+
+
+{% regroup tags|dictsort:"library" by library as tag_libraries %}
+{% for library in tag_libraries %}
+
+
{% if library.grouper %}{{ library.grouper }}{% else %}Built-in tags{% endif %}
+ {% if library.grouper %}
To use these tags, put {% templatetag openblock %} load {{ library.grouper }} {% templatetag closeblock %}
in your template before using the tag.
{% endif %}
+ {% for tag in library.list|dictsort:"name" %}
+
{{ tag.name }}
+
{{ tag.title }}
+
{{ tag.body }}
+ {% if not forloop.last %}
{% endif %}
+ {% endfor %}
+
+{% endfor %}
+
+
+{% endblock %}
+
+{% block sidebar %}
+
+
+
+{% regroup tags|dictsort:"library" by library as tag_libraries %}
+{% for library in tag_libraries %}
+
+
{% if library.grouper %}{{ library.grouper }}{% else %}Built-in tags{% endif %}
+
+ {% for tag in library.list|dictsort:"name" %}
+ {{ tag.name }}
+ {% endfor %}
+
+
+{% endfor %}
+
+
+
+{% endblock %}
diff --git a/templates/admin/doc/view_detail.html b/templates/admin/doc/view_detail.html
new file mode 100644
index 0000000000..54e52b6832
--- /dev/null
+++ b/templates/admin/doc/view_detail.html
@@ -0,0 +1,26 @@
+{% extends "base_site" %}
+
+{% block breadcrumbs %}{% endblock %}
+
+{% block title %}View: {{ name }}{% endblock %}
+
+{% block content %}
+
+{{ name }}
+
+{{ summary }}
+
+{{ body }}
+
+{% if meta.Context %}
+Context:
+{{ meta.Context }}
+{% endif %}
+
+{% if meta.Templates %}
+Templates:
+{{ meta.Templates }}
+{% endif %}
+
+‹ Back to Views Documentation
+{% endblock %}
diff --git a/templates/admin/doc/view_index.html b/templates/admin/doc/view_index.html
new file mode 100644
index 0000000000..7cc9bf737a
--- /dev/null
+++ b/templates/admin/doc/view_index.html
@@ -0,0 +1,52 @@
+{% extends "base_site" %}
+
+{% block coltype %}colSM{% endblock %}
+
+{% block breadcrumbs %}{% endblock %}
+
+{% block title %}Views{% endblock %}
+
+
+{% block content %}
+
+
+
+View documentation
+
+
+
+
+
+{% regroup views|dictsort:"site_id" by site as views_by_site %}
+{% for site_views in views_by_site %}
+
+
Views by URL on {{ site_views.grouper.name }}
+
+{% for view in site_views.list|dictsort:"url" %}
+
{{ view.url|escape }}
+
({{ view.module }}.{{ view.name }})
+
{{ view.title }}
+
+{% endfor %}
+
+
+{% endfor %}
+
+
+
+
+{% endblock %}
+
+{% block sidebar %}
+
+{% endblock %}
diff --git a/templates/admin/index.html b/templates/admin/index.html
new file mode 100644
index 0000000000..a4098b86d7
--- /dev/null
+++ b/templates/admin/index.html
@@ -0,0 +1,30 @@
+{% extends "base_site" %}
+
+{% block coltype %}colMS{% endblock %}
+{% block bodyclass %}dashboard{% endblock %}
+{% block breadcrumbs %}{% endblock %}
+{% block content %}
+
+
+
+{% endblock %}
+
+{% block sidebar %}
+
+
+
Recent Actions
+
My Actions
+ {% load auth.log %}
+ {% get_admin_log 10 as admin_log for_user user %}
+ {% if not admin_log %}
+
None available
+ {% else %}
+
+ {% endif %}
+
+
+{% endblock %}
diff --git a/templates/admin/logged_out.html b/templates/admin/logged_out.html
new file mode 100644
index 0000000000..3a11841248
--- /dev/null
+++ b/templates/admin/logged_out.html
@@ -0,0 +1,9 @@
+{% extends "base_site" %}
+
+{% block content %}
+
+Thanks for spending some quality time with the Web site today.
+
+Log in again
+
+{% endblock %}
diff --git a/templates/admin/login.html b/templates/admin/login.html
new file mode 100644
index 0000000000..8b15fe6254
--- /dev/null
+++ b/templates/admin/login.html
@@ -0,0 +1,31 @@
+{% extends "base_site" %}
+
+{% block breadcrumbs %}{% endblock %}
+
+{% block content %}
+
+{% if error_message %}
+{{ error_message }}
+{% endif %}
+
+{% endblock %}
diff --git a/templates/admin/template_validator.html b/templates/admin/template_validator.html
new file mode 100644
index 0000000000..ddd9775f9f
--- /dev/null
+++ b/templates/admin/template_validator.html
@@ -0,0 +1,31 @@
+{% extends "base_site" %}
+
+{% block content %}
+
+
+
+{% endblock %}