From f0b4c581f7d1ddb37bb29562ed850f5059cf6d74 Mon Sep 17 00:00:00 2001 From: Griatch Date: Sun, 20 Feb 2011 22:07:35 +0000 Subject: [PATCH] Removed the admin media files from the distribution again. Instead the server will now create the necessary symlink (Linux) or copy (Windows) of the default files in django/contrib/admin/media at initial startup. Currently only tested under Linux. If you don't want to re-run the initialization, copy/link the admin directory to ADMIN_MEDIA_PREFIX yourself. This deals with issue 124. Also added a 'remove' functionality to the migrate.py script, for easily getting back the normal syncdb operation (useful when deleting/resetting the database a lot). --- game/evennia.py | 10 +++-- game/migrate.py | 28 +++++++++++--- src/server/initial_setup.py | 37 +++++++++++++++++-- src/settings_default.py | 19 +++++----- src/web/media/admin/__init__.py | 0 src/web/media/admin/css/base.css | 1 - src/web/media/admin/css/changelists.css | 1 - src/web/media/admin/css/dashboard.css | 1 - src/web/media/admin/css/forms.css | 1 - src/web/media/admin/css/ie.css | 1 - src/web/media/admin/css/login.css | 1 - src/web/media/admin/css/rtl.css | 1 - src/web/media/admin/css/widgets.css | 1 - src/web/media/admin/img/admin/arrow-down.gif | 1 - src/web/media/admin/img/admin/arrow-up.gif | 1 - .../media/admin/img/admin/changelist-bg.gif | 1 - .../admin/img/admin/changelist-bg_rtl.gif | 1 - src/web/media/admin/img/admin/chooser-bg.gif | 1 - .../admin/img/admin/chooser_stacked-bg.gif | 1 - .../admin/img/admin/default-bg-reverse.gif | 1 - src/web/media/admin/img/admin/default-bg.gif | 1 - .../media/admin/img/admin/deleted-overlay.gif | 1 - src/web/media/admin/img/admin/icon-no.gif | 1 - .../media/admin/img/admin/icon-unknown.gif | 1 - src/web/media/admin/img/admin/icon-yes.gif | 1 - .../media/admin/img/admin/icon_addlink.gif | 1 - src/web/media/admin/img/admin/icon_alert.gif | 1 - .../media/admin/img/admin/icon_calendar.gif | 1 - .../media/admin/img/admin/icon_changelink.gif | 1 - src/web/media/admin/img/admin/icon_clock.gif | 1 - .../media/admin/img/admin/icon_deletelink.gif | 1 - src/web/media/admin/img/admin/icon_error.gif | 1 - .../media/admin/img/admin/icon_searchbox.png | 1 - .../media/admin/img/admin/icon_success.gif | 1 - .../admin/img/admin/inline-delete-8bit.png | 1 - .../media/admin/img/admin/inline-delete.png | 1 - .../admin/img/admin/inline-restore-8bit.png | 1 - .../media/admin/img/admin/inline-restore.png | 1 - .../admin/img/admin/inline-splitter-bg.gif | 1 - .../media/admin/img/admin/nav-bg-grabber.gif | 1 - .../media/admin/img/admin/nav-bg-reverse.gif | 1 - src/web/media/admin/img/admin/nav-bg.gif | 1 - .../media/admin/img/admin/selector-add.gif | 1 - .../media/admin/img/admin/selector-addall.gif | 1 - .../media/admin/img/admin/selector-remove.gif | 1 - .../admin/img/admin/selector-removeall.gif | 1 - .../media/admin/img/admin/selector-search.gif | 1 - .../admin/img/admin/selector_stacked-add.gif | 1 - .../img/admin/selector_stacked-remove.gif | 1 - src/web/media/admin/img/admin/tool-left.gif | 1 - .../media/admin/img/admin/tool-left_over.gif | 1 - src/web/media/admin/img/admin/tool-right.gif | 1 - .../media/admin/img/admin/tool-right_over.gif | 1 - src/web/media/admin/img/admin/tooltag-add.gif | 1 - .../admin/img/admin/tooltag-add_over.gif | 1 - .../admin/img/admin/tooltag-arrowright.gif | 1 - .../img/admin/tooltag-arrowright_over.gif | 1 - .../media/admin/img/gis/move_vertex_off.png | 1 - .../media/admin/img/gis/move_vertex_on.png | 1 - src/web/media/admin/js/LICENSE-JQUERY.txt | 1 - src/web/media/admin/js/SelectBox.js | 1 - src/web/media/admin/js/SelectFilter2.js | 1 - src/web/media/admin/js/__init__.py | 0 src/web/media/admin/js/actions.js | 1 - src/web/media/admin/js/actions.min.js | 1 - .../media/admin/js/admin/DateTimeShortcuts.js | 1 - .../admin/js/admin/RelatedObjectLookups.js | 1 - src/web/media/admin/js/admin/ordering.js | 1 - src/web/media/admin/js/calendar.js | 1 - src/web/media/admin/js/collapse.js | 1 - src/web/media/admin/js/collapse.min.js | 1 - src/web/media/admin/js/compress.py | 1 - src/web/media/admin/js/core.js | 1 - src/web/media/admin/js/dateparse.js | 1 - .../media/admin/js/getElementsBySelector.js | 1 - src/web/media/admin/js/inlines.js | 1 - src/web/media/admin/js/inlines.min.js | 1 - src/web/media/admin/js/jquery.init.js | 1 - src/web/media/admin/js/prepopulate.js | 1 - src/web/media/admin/js/prepopulate.min.js | 1 - src/web/media/admin/js/timeparse.js | 1 - src/web/media/admin/js/urlify.js | 1 - src/web/urls.py | 7 +--- 83 files changed, 74 insertions(+), 103 deletions(-) delete mode 100644 src/web/media/admin/__init__.py delete mode 120000 src/web/media/admin/css/base.css delete mode 120000 src/web/media/admin/css/changelists.css delete mode 120000 src/web/media/admin/css/dashboard.css delete mode 120000 src/web/media/admin/css/forms.css delete mode 120000 src/web/media/admin/css/ie.css delete mode 120000 src/web/media/admin/css/login.css delete mode 120000 src/web/media/admin/css/rtl.css delete mode 120000 src/web/media/admin/css/widgets.css delete mode 120000 src/web/media/admin/img/admin/arrow-down.gif delete mode 120000 src/web/media/admin/img/admin/arrow-up.gif delete mode 120000 src/web/media/admin/img/admin/changelist-bg.gif delete mode 120000 src/web/media/admin/img/admin/changelist-bg_rtl.gif delete mode 120000 src/web/media/admin/img/admin/chooser-bg.gif delete mode 120000 src/web/media/admin/img/admin/chooser_stacked-bg.gif delete mode 120000 src/web/media/admin/img/admin/default-bg-reverse.gif delete mode 120000 src/web/media/admin/img/admin/default-bg.gif delete mode 120000 src/web/media/admin/img/admin/deleted-overlay.gif delete mode 120000 src/web/media/admin/img/admin/icon-no.gif delete mode 120000 src/web/media/admin/img/admin/icon-unknown.gif delete mode 120000 src/web/media/admin/img/admin/icon-yes.gif delete mode 120000 src/web/media/admin/img/admin/icon_addlink.gif delete mode 120000 src/web/media/admin/img/admin/icon_alert.gif delete mode 120000 src/web/media/admin/img/admin/icon_calendar.gif delete mode 120000 src/web/media/admin/img/admin/icon_changelink.gif delete mode 120000 src/web/media/admin/img/admin/icon_clock.gif delete mode 120000 src/web/media/admin/img/admin/icon_deletelink.gif delete mode 120000 src/web/media/admin/img/admin/icon_error.gif delete mode 120000 src/web/media/admin/img/admin/icon_searchbox.png delete mode 120000 src/web/media/admin/img/admin/icon_success.gif delete mode 120000 src/web/media/admin/img/admin/inline-delete-8bit.png delete mode 120000 src/web/media/admin/img/admin/inline-delete.png delete mode 120000 src/web/media/admin/img/admin/inline-restore-8bit.png delete mode 120000 src/web/media/admin/img/admin/inline-restore.png delete mode 120000 src/web/media/admin/img/admin/inline-splitter-bg.gif delete mode 120000 src/web/media/admin/img/admin/nav-bg-grabber.gif delete mode 120000 src/web/media/admin/img/admin/nav-bg-reverse.gif delete mode 120000 src/web/media/admin/img/admin/nav-bg.gif delete mode 120000 src/web/media/admin/img/admin/selector-add.gif delete mode 120000 src/web/media/admin/img/admin/selector-addall.gif delete mode 120000 src/web/media/admin/img/admin/selector-remove.gif delete mode 120000 src/web/media/admin/img/admin/selector-removeall.gif delete mode 120000 src/web/media/admin/img/admin/selector-search.gif delete mode 120000 src/web/media/admin/img/admin/selector_stacked-add.gif delete mode 120000 src/web/media/admin/img/admin/selector_stacked-remove.gif delete mode 120000 src/web/media/admin/img/admin/tool-left.gif delete mode 120000 src/web/media/admin/img/admin/tool-left_over.gif delete mode 120000 src/web/media/admin/img/admin/tool-right.gif delete mode 120000 src/web/media/admin/img/admin/tool-right_over.gif delete mode 120000 src/web/media/admin/img/admin/tooltag-add.gif delete mode 120000 src/web/media/admin/img/admin/tooltag-add_over.gif delete mode 120000 src/web/media/admin/img/admin/tooltag-arrowright.gif delete mode 120000 src/web/media/admin/img/admin/tooltag-arrowright_over.gif delete mode 120000 src/web/media/admin/img/gis/move_vertex_off.png delete mode 120000 src/web/media/admin/img/gis/move_vertex_on.png delete mode 120000 src/web/media/admin/js/LICENSE-JQUERY.txt delete mode 120000 src/web/media/admin/js/SelectBox.js delete mode 120000 src/web/media/admin/js/SelectFilter2.js delete mode 100644 src/web/media/admin/js/__init__.py delete mode 120000 src/web/media/admin/js/actions.js delete mode 120000 src/web/media/admin/js/actions.min.js delete mode 120000 src/web/media/admin/js/admin/DateTimeShortcuts.js delete mode 120000 src/web/media/admin/js/admin/RelatedObjectLookups.js delete mode 120000 src/web/media/admin/js/admin/ordering.js delete mode 120000 src/web/media/admin/js/calendar.js delete mode 120000 src/web/media/admin/js/collapse.js delete mode 120000 src/web/media/admin/js/collapse.min.js delete mode 120000 src/web/media/admin/js/compress.py delete mode 120000 src/web/media/admin/js/core.js delete mode 120000 src/web/media/admin/js/dateparse.js delete mode 120000 src/web/media/admin/js/getElementsBySelector.js delete mode 120000 src/web/media/admin/js/inlines.js delete mode 120000 src/web/media/admin/js/inlines.min.js delete mode 120000 src/web/media/admin/js/jquery.init.js delete mode 120000 src/web/media/admin/js/prepopulate.js delete mode 120000 src/web/media/admin/js/prepopulate.min.js delete mode 120000 src/web/media/admin/js/timeparse.js delete mode 120000 src/web/media/admin/js/urlify.js diff --git a/game/evennia.py b/game/evennia.py index 727795f49d..9c358c69b0 100755 --- a/game/evennia.py +++ b/game/evennia.py @@ -133,9 +133,13 @@ def start_daemon(parser, options, args): cycle_logfile() # Start it up - Popen([TWISTED_BINARY, - '--logfile=%s' % settings.DEFAULT_LOG_FILE, - '--python=%s' % SERVER_PY_FILE]) + # Popen([TWISTED_BINARY, + # '--logfile=%s' % settings.DEFAULT_LOG_FILE, + # '--python=%s' % SERVER_PY_FILE]) + call([TWISTED_BINARY, + '--logfile=%s' % settings.DEFAULT_LOG_FILE, + '--python=%s' % SERVER_PY_FILE]) + def start_interactive(parser, options, args): """ diff --git a/game/migrate.py b/game/migrate.py index c52aa500c3..1c71a23c85 100755 --- a/game/migrate.py +++ b/game/migrate.py @@ -32,7 +32,7 @@ For more advanced migrations, there might be further instructions. import os, sys from subprocess import call - +import south # Set the Python path up so we can get to settings.py from here. sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) @@ -63,7 +63,7 @@ def run_south(mode): """ if mode == "init": for appname in APPLIST: - print "Initializing %s ..." % appname + print "Initializing %s ... (ignore missing directory tracebacks)" % appname call([sys.executable, "manage.py", "convert_to_south", appname]) print "\nInitialization complete. That's all you need to do for now." elif mode == "update": @@ -71,8 +71,21 @@ def run_south(mode): print "Updating/migrating schema for %s ..." % appname call([sys.executable, "manage.py", "schemamigration", appname, "--auto"]) call([sys.executable, "manage.py", "migrate", appname]) - print "\nUpdate complete." - + print "\nUpdate complete." + elif mode == "remove": + s = raw_input(" Warning, this cannot be undone. Continue? Y[N] > ") + if s.lower() == 'y': + from django.db.models import get_app + import shutil + for appname in APPLIST: + print "Removing migrations for %s ..." % appname + mod = get_app(appname) + path = os.path.join(os.path.dirname(mod.__file__), 'migrations') + try: + shutil.rmtree(path) + except OSError: + print "%s didn't exist/could not be deleted. Ignored.." % path + def south_ui(): """ Simple menu for handling migrations. @@ -83,7 +96,7 @@ def south_ui(): You usually don't need to use this tool unless a new version of Evennia tells you that the database scheme changed in some way, AND you don't want - to reset your database. + to reset your database. If you This tool will help you to migrate an existing database without having to manually edit your tables and fields to match the new scheme. For that @@ -104,6 +117,7 @@ def south_ui(): i - Initialize an existing/new database with migration mappings (done once) u - Update an initialized database to the changed scheme + r - Remove the migration scheme (back to normal syncdb operation) q - Quit """ @@ -111,11 +125,13 @@ def south_ui(): print string inp = str(raw_input(" Option > ")) inp = inp.lower() - if inp in ["q", "i", "u"]: + if inp in ["q", "i", "u", "r"]: if inp == 'i': run_south("init") elif inp == 'u': run_south("update") + elif inp == 'r': + run_south("remove") sys.exit() if __name__ == "__main__": diff --git a/src/server/initial_setup.py b/src/server/initial_setup.py index 00234a813a..56765c0b57 100644 --- a/src/server/initial_setup.py +++ b/src/server/initial_setup.py @@ -182,11 +182,39 @@ def start_game_time(): print " Starting in-game time ..." from src.utils import gametime gametime.init_gametime() - + +def create_admin_media_links(): + """ + This traverses to src/web/media and tries to create a symbolic + link to the django media files from within the MEDIA_ROOT. + These are files we normally don't + want to mess with (use templates to customize the admin + look). Linking is needed since the Twisted webserver otherwise has no + notion of where the default files are - and we cannot hard-code it + since the django install may be at different locations depending + on system. + """ + import django, os + dpath = os.path.join(django.__path__[0], 'contrib', 'admin', 'media') + apath = os.path.join(settings.ADMIN_MEDIA_ROOT) + if os.path.isdir(apath): + print " ADMIN_MEDIA_ROOT already exists. Ignored." + return + if os.name == 'nt': + print " Admin-media files copied to ADMIN_MEDIA_ROOT (Windows mode)." + os.mkdir(apath) + os.system('xcopy "%s" "%s" /e /q /c' % (dpath, apath)) + if os.name == 'posix': + os.symlink(dpath, apath) + print " Admin-media symlinked to ADMIN_MEDIA_ROOT." + else: + print " Admin-media files should be copied manually to ADMIN_MEDIA_ROOT." + def handle_setup(last_step): """ - Main logic for the module. It allows to restart the initialization - if one of the modules should crash. + Main logic for the module. It allows for restarting + the initialization at any point if one of the modules + should crash. """ if last_step < 0: @@ -206,7 +234,8 @@ def handle_setup(last_step): create_permission_groups, create_system_scripts, import_MUX_help_files, - start_game_time] + start_game_time, + create_admin_media_links] if not settings.IMPORT_MUX_HELP: # skip importing of the MUX helpfiles, they are diff --git a/src/settings_default.py b/src/settings_default.py index aad2a1f4b9..a6223f73e8 100644 --- a/src/settings_default.py +++ b/src/settings_default.py @@ -349,6 +349,11 @@ MANAGERS = ADMINS # Absolute path to the directory that holds media (no trailing slash). # Example: "/home/media/media.lawrence.com" MEDIA_ROOT = os.path.join(SRC_DIR, 'web', 'media') +# Absolute path to the directory that holds (usually links to) the +# django admin media files. If the target directory does not exist, it +# is created and linked by Evennia upon first start. Otherwise link it +# manually to django/contrib/admin/media. +ADMIN_MEDIA_ROOT = os.path.join(MEDIA_ROOT, 'admin') # It's safe to dis-regard this, as it's a Django feature we only half use as a # dependency, not actually what it's primarily meant for. SITE_ID = 1 @@ -367,13 +372,9 @@ SESSION_EXPIRE_AT_BROWSER_CLOSE = False # If you set this to False, Django will make some optimizations so as not # to load the internationalization machinery. USE_I18N = False -# If you'd like to serve media files via Django (strongly not recommended!), -# set SERVE_MEDIA to True. This is appropriate on a developing site, or if -# you're running Django's built-in test server. Normally you want a webserver -# that is optimized for serving static content to handle media files (apache, -# lighttpd). +# This should be turned off unless you want to do tests with Django's +# development webserver (normally Evennia runs its own server) SERVE_MEDIA = False - # The master urlconf file that contains all of the sub-branches to the # applications. ROOT_URLCONF = 'src.web.urls' @@ -386,9 +387,9 @@ LOGOUT_URL = '/accounts/login' # URL that handles the media served from MEDIA_ROOT. # Example: "http://media.lawrence.com" MEDIA_URL = '/media/' -# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a -# trailing slash. -# Examples: "http://foo.com/media/", "/media/". +# URL prefix for admin media -- CSS, JavaScript and images. Make sure +# to use a trailing slash. This should match the position defined +# by ADMIN_MEDIA_ROOT. ADMIN_MEDIA_PREFIX = '/media/admin/' # The name of the currently selected web template. This corresponds to the # directory names shown in the webtemplates directory. diff --git a/src/web/media/admin/__init__.py b/src/web/media/admin/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/web/media/admin/css/base.css b/src/web/media/admin/css/base.css deleted file mode 120000 index 3d84978d2d..0000000000 --- a/src/web/media/admin/css/base.css +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/css/base.css \ No newline at end of file diff --git a/src/web/media/admin/css/changelists.css b/src/web/media/admin/css/changelists.css deleted file mode 120000 index 944a445346..0000000000 --- a/src/web/media/admin/css/changelists.css +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/css/changelists.css \ No newline at end of file diff --git a/src/web/media/admin/css/dashboard.css b/src/web/media/admin/css/dashboard.css deleted file mode 120000 index 82b7230804..0000000000 --- a/src/web/media/admin/css/dashboard.css +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/css/dashboard.css \ No newline at end of file diff --git a/src/web/media/admin/css/forms.css b/src/web/media/admin/css/forms.css deleted file mode 120000 index 8002fcab2e..0000000000 --- a/src/web/media/admin/css/forms.css +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/css/forms.css \ No newline at end of file diff --git a/src/web/media/admin/css/ie.css b/src/web/media/admin/css/ie.css deleted file mode 120000 index 3c551ce3d3..0000000000 --- a/src/web/media/admin/css/ie.css +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/css/ie.css \ No newline at end of file diff --git a/src/web/media/admin/css/login.css b/src/web/media/admin/css/login.css deleted file mode 120000 index 948c4b3c9a..0000000000 --- a/src/web/media/admin/css/login.css +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/css/login.css \ No newline at end of file diff --git a/src/web/media/admin/css/rtl.css b/src/web/media/admin/css/rtl.css deleted file mode 120000 index 57e4acfa0c..0000000000 --- a/src/web/media/admin/css/rtl.css +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/css/rtl.css \ No newline at end of file diff --git a/src/web/media/admin/css/widgets.css b/src/web/media/admin/css/widgets.css deleted file mode 120000 index 5e4fa021b6..0000000000 --- a/src/web/media/admin/css/widgets.css +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/css/widgets.css \ No newline at end of file diff --git a/src/web/media/admin/img/admin/arrow-down.gif b/src/web/media/admin/img/admin/arrow-down.gif deleted file mode 120000 index bf39b21cf8..0000000000 --- a/src/web/media/admin/img/admin/arrow-down.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/arrow-down.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/arrow-up.gif b/src/web/media/admin/img/admin/arrow-up.gif deleted file mode 120000 index ae505a1f3b..0000000000 --- a/src/web/media/admin/img/admin/arrow-up.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/arrow-up.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/changelist-bg.gif b/src/web/media/admin/img/admin/changelist-bg.gif deleted file mode 120000 index 41fb5aa7a2..0000000000 --- a/src/web/media/admin/img/admin/changelist-bg.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/changelist-bg.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/changelist-bg_rtl.gif b/src/web/media/admin/img/admin/changelist-bg_rtl.gif deleted file mode 120000 index f1fd264f1e..0000000000 --- a/src/web/media/admin/img/admin/changelist-bg_rtl.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/changelist-bg_rtl.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/chooser-bg.gif b/src/web/media/admin/img/admin/chooser-bg.gif deleted file mode 120000 index ffc5fc657f..0000000000 --- a/src/web/media/admin/img/admin/chooser-bg.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/chooser-bg.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/chooser_stacked-bg.gif b/src/web/media/admin/img/admin/chooser_stacked-bg.gif deleted file mode 120000 index c9696db9ef..0000000000 --- a/src/web/media/admin/img/admin/chooser_stacked-bg.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/chooser_stacked-bg.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/default-bg-reverse.gif b/src/web/media/admin/img/admin/default-bg-reverse.gif deleted file mode 120000 index 1b94863223..0000000000 --- a/src/web/media/admin/img/admin/default-bg-reverse.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/default-bg-reverse.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/default-bg.gif b/src/web/media/admin/img/admin/default-bg.gif deleted file mode 120000 index 44c1c9ca0c..0000000000 --- a/src/web/media/admin/img/admin/default-bg.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/default-bg.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/deleted-overlay.gif b/src/web/media/admin/img/admin/deleted-overlay.gif deleted file mode 120000 index eb6c2f465c..0000000000 --- a/src/web/media/admin/img/admin/deleted-overlay.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/deleted-overlay.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/icon-no.gif b/src/web/media/admin/img/admin/icon-no.gif deleted file mode 120000 index e86465cac6..0000000000 --- a/src/web/media/admin/img/admin/icon-no.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/icon-no.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/icon-unknown.gif b/src/web/media/admin/img/admin/icon-unknown.gif deleted file mode 120000 index df58b43536..0000000000 --- a/src/web/media/admin/img/admin/icon-unknown.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/icon-unknown.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/icon-yes.gif b/src/web/media/admin/img/admin/icon-yes.gif deleted file mode 120000 index 9a9db8cdf6..0000000000 --- a/src/web/media/admin/img/admin/icon-yes.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/icon-yes.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/icon_addlink.gif b/src/web/media/admin/img/admin/icon_addlink.gif deleted file mode 120000 index 84d6fa140a..0000000000 --- a/src/web/media/admin/img/admin/icon_addlink.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/icon_addlink.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/icon_alert.gif b/src/web/media/admin/img/admin/icon_alert.gif deleted file mode 120000 index c28964ca97..0000000000 --- a/src/web/media/admin/img/admin/icon_alert.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/icon_alert.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/icon_calendar.gif b/src/web/media/admin/img/admin/icon_calendar.gif deleted file mode 120000 index 7ab7ef8be3..0000000000 --- a/src/web/media/admin/img/admin/icon_calendar.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/icon_calendar.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/icon_changelink.gif b/src/web/media/admin/img/admin/icon_changelink.gif deleted file mode 120000 index 3ca07e3c65..0000000000 --- a/src/web/media/admin/img/admin/icon_changelink.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/icon_changelink.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/icon_clock.gif b/src/web/media/admin/img/admin/icon_clock.gif deleted file mode 120000 index bede3c2e4b..0000000000 --- a/src/web/media/admin/img/admin/icon_clock.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/icon_clock.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/icon_deletelink.gif b/src/web/media/admin/img/admin/icon_deletelink.gif deleted file mode 120000 index 4ce9ab6c54..0000000000 --- a/src/web/media/admin/img/admin/icon_deletelink.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/icon_deletelink.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/icon_error.gif b/src/web/media/admin/img/admin/icon_error.gif deleted file mode 120000 index aefe696250..0000000000 --- a/src/web/media/admin/img/admin/icon_error.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/icon_error.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/icon_searchbox.png b/src/web/media/admin/img/admin/icon_searchbox.png deleted file mode 120000 index a881508cfd..0000000000 --- a/src/web/media/admin/img/admin/icon_searchbox.png +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/icon_searchbox.png \ No newline at end of file diff --git a/src/web/media/admin/img/admin/icon_success.gif b/src/web/media/admin/img/admin/icon_success.gif deleted file mode 120000 index 7e5c03a59d..0000000000 --- a/src/web/media/admin/img/admin/icon_success.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/icon_success.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/inline-delete-8bit.png b/src/web/media/admin/img/admin/inline-delete-8bit.png deleted file mode 120000 index 1cbd59cb86..0000000000 --- a/src/web/media/admin/img/admin/inline-delete-8bit.png +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/inline-delete-8bit.png \ No newline at end of file diff --git a/src/web/media/admin/img/admin/inline-delete.png b/src/web/media/admin/img/admin/inline-delete.png deleted file mode 120000 index c65c52a23d..0000000000 --- a/src/web/media/admin/img/admin/inline-delete.png +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/inline-delete.png \ No newline at end of file diff --git a/src/web/media/admin/img/admin/inline-restore-8bit.png b/src/web/media/admin/img/admin/inline-restore-8bit.png deleted file mode 120000 index e84fa4bfc2..0000000000 --- a/src/web/media/admin/img/admin/inline-restore-8bit.png +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/inline-restore-8bit.png \ No newline at end of file diff --git a/src/web/media/admin/img/admin/inline-restore.png b/src/web/media/admin/img/admin/inline-restore.png deleted file mode 120000 index 6fffcb3a3c..0000000000 --- a/src/web/media/admin/img/admin/inline-restore.png +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/inline-restore.png \ No newline at end of file diff --git a/src/web/media/admin/img/admin/inline-splitter-bg.gif b/src/web/media/admin/img/admin/inline-splitter-bg.gif deleted file mode 120000 index b7b36bce18..0000000000 --- a/src/web/media/admin/img/admin/inline-splitter-bg.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/inline-splitter-bg.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/nav-bg-grabber.gif b/src/web/media/admin/img/admin/nav-bg-grabber.gif deleted file mode 120000 index b25acf858d..0000000000 --- a/src/web/media/admin/img/admin/nav-bg-grabber.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/nav-bg-grabber.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/nav-bg-reverse.gif b/src/web/media/admin/img/admin/nav-bg-reverse.gif deleted file mode 120000 index 1da4c71de5..0000000000 --- a/src/web/media/admin/img/admin/nav-bg-reverse.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/nav-bg-reverse.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/nav-bg.gif b/src/web/media/admin/img/admin/nav-bg.gif deleted file mode 120000 index cb591378f1..0000000000 --- a/src/web/media/admin/img/admin/nav-bg.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/nav-bg.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/selector-add.gif b/src/web/media/admin/img/admin/selector-add.gif deleted file mode 120000 index a394f24cde..0000000000 --- a/src/web/media/admin/img/admin/selector-add.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/selector-add.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/selector-addall.gif b/src/web/media/admin/img/admin/selector-addall.gif deleted file mode 120000 index 0de6e49be5..0000000000 --- a/src/web/media/admin/img/admin/selector-addall.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/selector-addall.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/selector-remove.gif b/src/web/media/admin/img/admin/selector-remove.gif deleted file mode 120000 index 2096d6fd9d..0000000000 --- a/src/web/media/admin/img/admin/selector-remove.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/selector-remove.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/selector-removeall.gif b/src/web/media/admin/img/admin/selector-removeall.gif deleted file mode 120000 index 3f0553e656..0000000000 --- a/src/web/media/admin/img/admin/selector-removeall.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/selector-removeall.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/selector-search.gif b/src/web/media/admin/img/admin/selector-search.gif deleted file mode 120000 index a3e36fac4d..0000000000 --- a/src/web/media/admin/img/admin/selector-search.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/selector-search.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/selector_stacked-add.gif b/src/web/media/admin/img/admin/selector_stacked-add.gif deleted file mode 120000 index cdb51a4a2b..0000000000 --- a/src/web/media/admin/img/admin/selector_stacked-add.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/selector_stacked-add.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/selector_stacked-remove.gif b/src/web/media/admin/img/admin/selector_stacked-remove.gif deleted file mode 120000 index db05846439..0000000000 --- a/src/web/media/admin/img/admin/selector_stacked-remove.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/selector_stacked-remove.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/tool-left.gif b/src/web/media/admin/img/admin/tool-left.gif deleted file mode 120000 index 838e6b3bf0..0000000000 --- a/src/web/media/admin/img/admin/tool-left.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/tool-left.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/tool-left_over.gif b/src/web/media/admin/img/admin/tool-left_over.gif deleted file mode 120000 index 293c42ba36..0000000000 --- a/src/web/media/admin/img/admin/tool-left_over.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/tool-left_over.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/tool-right.gif b/src/web/media/admin/img/admin/tool-right.gif deleted file mode 120000 index a263d78c92..0000000000 --- a/src/web/media/admin/img/admin/tool-right.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/tool-right.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/tool-right_over.gif b/src/web/media/admin/img/admin/tool-right_over.gif deleted file mode 120000 index c5a37340ad..0000000000 --- a/src/web/media/admin/img/admin/tool-right_over.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/tool-right_over.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/tooltag-add.gif b/src/web/media/admin/img/admin/tooltag-add.gif deleted file mode 120000 index a4805fd414..0000000000 --- a/src/web/media/admin/img/admin/tooltag-add.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/tooltag-add.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/tooltag-add_over.gif b/src/web/media/admin/img/admin/tooltag-add_over.gif deleted file mode 120000 index e9a0899e03..0000000000 --- a/src/web/media/admin/img/admin/tooltag-add_over.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/tooltag-add_over.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/tooltag-arrowright.gif b/src/web/media/admin/img/admin/tooltag-arrowright.gif deleted file mode 120000 index 44d27fe724..0000000000 --- a/src/web/media/admin/img/admin/tooltag-arrowright.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/tooltag-arrowright.gif \ No newline at end of file diff --git a/src/web/media/admin/img/admin/tooltag-arrowright_over.gif b/src/web/media/admin/img/admin/tooltag-arrowright_over.gif deleted file mode 120000 index de9c0fbe37..0000000000 --- a/src/web/media/admin/img/admin/tooltag-arrowright_over.gif +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/admin/tooltag-arrowright_over.gif \ No newline at end of file diff --git a/src/web/media/admin/img/gis/move_vertex_off.png b/src/web/media/admin/img/gis/move_vertex_off.png deleted file mode 120000 index b4d3920f59..0000000000 --- a/src/web/media/admin/img/gis/move_vertex_off.png +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/gis/move_vertex_off.png \ No newline at end of file diff --git a/src/web/media/admin/img/gis/move_vertex_on.png b/src/web/media/admin/img/gis/move_vertex_on.png deleted file mode 120000 index 8b4ad62e9e..0000000000 --- a/src/web/media/admin/img/gis/move_vertex_on.png +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/img/gis/move_vertex_on.png \ No newline at end of file diff --git a/src/web/media/admin/js/LICENSE-JQUERY.txt b/src/web/media/admin/js/LICENSE-JQUERY.txt deleted file mode 120000 index 5c143b70fb..0000000000 --- a/src/web/media/admin/js/LICENSE-JQUERY.txt +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/LICENSE-JQUERY.txt \ No newline at end of file diff --git a/src/web/media/admin/js/SelectBox.js b/src/web/media/admin/js/SelectBox.js deleted file mode 120000 index 6df92435ac..0000000000 --- a/src/web/media/admin/js/SelectBox.js +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/SelectBox.js \ No newline at end of file diff --git a/src/web/media/admin/js/SelectFilter2.js b/src/web/media/admin/js/SelectFilter2.js deleted file mode 120000 index c3871f5be5..0000000000 --- a/src/web/media/admin/js/SelectFilter2.js +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/SelectFilter2.js \ No newline at end of file diff --git a/src/web/media/admin/js/__init__.py b/src/web/media/admin/js/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/web/media/admin/js/actions.js b/src/web/media/admin/js/actions.js deleted file mode 120000 index 92663dd62d..0000000000 --- a/src/web/media/admin/js/actions.js +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/actions.js \ No newline at end of file diff --git a/src/web/media/admin/js/actions.min.js b/src/web/media/admin/js/actions.min.js deleted file mode 120000 index 2c5304c0ff..0000000000 --- a/src/web/media/admin/js/actions.min.js +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/actions.min.js \ No newline at end of file diff --git a/src/web/media/admin/js/admin/DateTimeShortcuts.js b/src/web/media/admin/js/admin/DateTimeShortcuts.js deleted file mode 120000 index c795647cb6..0000000000 --- a/src/web/media/admin/js/admin/DateTimeShortcuts.js +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/admin/DateTimeShortcuts.js \ No newline at end of file diff --git a/src/web/media/admin/js/admin/RelatedObjectLookups.js b/src/web/media/admin/js/admin/RelatedObjectLookups.js deleted file mode 120000 index a58f4b93fc..0000000000 --- a/src/web/media/admin/js/admin/RelatedObjectLookups.js +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/admin/RelatedObjectLookups.js \ No newline at end of file diff --git a/src/web/media/admin/js/admin/ordering.js b/src/web/media/admin/js/admin/ordering.js deleted file mode 120000 index 8a3185cd70..0000000000 --- a/src/web/media/admin/js/admin/ordering.js +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/admin/ordering.js \ No newline at end of file diff --git a/src/web/media/admin/js/calendar.js b/src/web/media/admin/js/calendar.js deleted file mode 120000 index 035ce12756..0000000000 --- a/src/web/media/admin/js/calendar.js +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/calendar.js \ No newline at end of file diff --git a/src/web/media/admin/js/collapse.js b/src/web/media/admin/js/collapse.js deleted file mode 120000 index 6875eab294..0000000000 --- a/src/web/media/admin/js/collapse.js +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/collapse.js \ No newline at end of file diff --git a/src/web/media/admin/js/collapse.min.js b/src/web/media/admin/js/collapse.min.js deleted file mode 120000 index 21ab6366b2..0000000000 --- a/src/web/media/admin/js/collapse.min.js +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/collapse.min.js \ No newline at end of file diff --git a/src/web/media/admin/js/compress.py b/src/web/media/admin/js/compress.py deleted file mode 120000 index 8120dced9d..0000000000 --- a/src/web/media/admin/js/compress.py +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/compress.py \ No newline at end of file diff --git a/src/web/media/admin/js/core.js b/src/web/media/admin/js/core.js deleted file mode 120000 index 91b7ee6a5a..0000000000 --- a/src/web/media/admin/js/core.js +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/core.js \ No newline at end of file diff --git a/src/web/media/admin/js/dateparse.js b/src/web/media/admin/js/dateparse.js deleted file mode 120000 index 10a66c0ac9..0000000000 --- a/src/web/media/admin/js/dateparse.js +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/dateparse.js \ No newline at end of file diff --git a/src/web/media/admin/js/getElementsBySelector.js b/src/web/media/admin/js/getElementsBySelector.js deleted file mode 120000 index 8174d84bd4..0000000000 --- a/src/web/media/admin/js/getElementsBySelector.js +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/getElementsBySelector.js \ No newline at end of file diff --git a/src/web/media/admin/js/inlines.js b/src/web/media/admin/js/inlines.js deleted file mode 120000 index f0f6b64672..0000000000 --- a/src/web/media/admin/js/inlines.js +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/inlines.js \ No newline at end of file diff --git a/src/web/media/admin/js/inlines.min.js b/src/web/media/admin/js/inlines.min.js deleted file mode 120000 index 78180c9827..0000000000 --- a/src/web/media/admin/js/inlines.min.js +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/inlines.min.js \ No newline at end of file diff --git a/src/web/media/admin/js/jquery.init.js b/src/web/media/admin/js/jquery.init.js deleted file mode 120000 index 21bc512554..0000000000 --- a/src/web/media/admin/js/jquery.init.js +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/jquery.init.js \ No newline at end of file diff --git a/src/web/media/admin/js/prepopulate.js b/src/web/media/admin/js/prepopulate.js deleted file mode 120000 index 6cbd5dca85..0000000000 --- a/src/web/media/admin/js/prepopulate.js +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/prepopulate.js \ No newline at end of file diff --git a/src/web/media/admin/js/prepopulate.min.js b/src/web/media/admin/js/prepopulate.min.js deleted file mode 120000 index 2135ad66e2..0000000000 --- a/src/web/media/admin/js/prepopulate.min.js +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/prepopulate.min.js \ No newline at end of file diff --git a/src/web/media/admin/js/timeparse.js b/src/web/media/admin/js/timeparse.js deleted file mode 120000 index 63cca77774..0000000000 --- a/src/web/media/admin/js/timeparse.js +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/timeparse.js \ No newline at end of file diff --git a/src/web/media/admin/js/urlify.js b/src/web/media/admin/js/urlify.js deleted file mode 120000 index bd3a5aa8ca..0000000000 --- a/src/web/media/admin/js/urlify.js +++ /dev/null @@ -1 +0,0 @@ -/usr/share/pyshared/django/contrib/admin/media/js/urlify.js \ No newline at end of file diff --git a/src/web/urls.py b/src/web/urls.py index de5024788a..4393644547 100755 --- a/src/web/urls.py +++ b/src/web/urls.py @@ -41,11 +41,8 @@ urlpatterns = patterns('', url(r'^webclient/',include('src.web.webclient.urls')), ) -# If you'd like to serve media files via Django (strongly not recommended!), -# open up your settings.py file and set SERVE_MEDIA to True. This is -# appropriate on a developing site, or if you're running Django's built-in -# test server. Normally you want a webserver that is optimized for serving -# static content to handle media files (apache, lighttpd). +# This sets up the server if the user want to run the Django +# test server (this should normally not be needed). if settings.SERVE_MEDIA: urlpatterns += patterns('', (r'^media/(?P.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),