From 458c89d8cb6991775a7d680e61867fa84ec6627d Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Thu, 19 Sep 2013 16:33:54 +0200 Subject: [PATCH] rename django-static/ into the standard plain static/ remove the urls.py-defined static/ redirection that is not needed completely drop the old make-based all-static/ business updated README and server-loop.sh --- Makefile | 159 ++++++++++++++++++++++--------------------- README | 15 ++-- devel/server-loop.sh | 1 + myslice/settings.py | 4 +- myslice/urls.py | 2 - 5 files changed, 90 insertions(+), 91 deletions(-) diff --git a/Makefile b/Makefile index d011fe41..bb7da6d9 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,8 @@ bindir := /usr/bin PWD := $(shell pwd) -build: static templates +# as of sept. 2013, we collect static files using manage.py +build: templates python setup.py build install: @@ -52,72 +53,72 @@ debian.clean: find . -name '*.pyc' -delete -#################### third-party layout is kind of special -# because we have differents versions, and also we -# try to preserve the file structure from upstream -# so let's handle this manually -THIRD-PARTY-RESOURCES = -# ignore variants, use the main symlink third-party/bootstrap -THIRD-PARTY-RESOURCES += $(shell ls third-party/bootstrap/*/*) -# just the single js as identified with a symlink -THIRD-PARTY-RESOURCES += $(shell ls third-party/datatables/js/dataTables.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/datatables/js/dataTables.bootstrap.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/datatables/css/dataTables.bootstrap.css) -# likewise -THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery/js/jquery.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery/js/jquery.min.js) -# for storing the visible status of plugins -THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-html5storage/jquery.html5storage.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-html5storage/jquery.html5storage.min.js) -# creating queries uuids on the fly -THIRD-PARTY-RESOURCES += $(shell ls third-party/uuid/Math.uuid.js) -# spin comes in plain or min, + the jquery plugin, and our own settings -THIRD-PARTY-RESOURCES += $(shell ls third-party/spin/*.js) -# used in QueryCode -THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/scripts/shCore.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/scripts/shAutoloader.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/scripts/shBrushPython.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/scripts/shBrushRuby.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/styles/shCore.css) -THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/styles/shCoreDefault.css) -THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/styles/shThemeDefault.css) -# wizard plugin -THIRD-PARTY-RESOURCES += $(shell ls third-party/smartwizard-1636c86/js/jquery.smartWizard-2.0.js) -#THIRD-PARTY-RESOURCES += $(shell ls third-party/smartwizard-1636c86/js/jquery.smartWizard-2.0.min.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/smartwizard-1636c86/styles/smart_wizard.css) -# jquery.notify -THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-notify/jquery.notify.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-notify/jquery.notify.min.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-notify/ui.notify.css) -# CodeMirror -THIRD-PARTY-RESOURCES += $(shell ls third-party/codemirror-3.15/lib/codemirror.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/codemirror-3.15/lib/codemirror.css) -THIRD-PARTY-RESOURCES += $(shell ls third-party/codemirror-3.15/mode/sql/sql.js) -# Mustache.js -THIRD-PARTY-RESOURCES += $(shell ls third-party/mustache/mustache.js) -# markerclustererplus for the googlemap plugin -THIRD-PARTY-RESOURCES += $(shell ls third-party/markerclusterer/markerclusterer.js) -THIRD-PARTY-RESOURCES += $(shell ls third-party/markerclusterer/markerclusterer_packed.js) - -thirdparty-js: - @find $(THIRD-PARTY-RESOURCES) -name '*.js' -thirdparty-css: - @find $(THIRD-PARTY-RESOURCES) -name '*.css' -thirdparty-img: - @find $(THIRD-PARTY-RESOURCES) -name '*.png' -o -name '*.ico' - -# we might have any of these as templates - e.g. ./unfold/templates/plugin-init.js -# so if there's a /templates/ in the path ignore the file -local-js: force - @find . -type f -name '*.js' | egrep -v '/all-(static|templates)/|/third-party/|/templates/' -local-css: force - @find . -type f -name '*.css' | egrep -v 'all-(static|templates)/|/third-party/|/templates/' -local-img: force - @find . -type f -name '*.png' -o -name '*.ico' | egrep -v 'all-(static|templates)/|/third-party/|/templates/' - -list-js: thirdparty-js local-js -list-css: thirdparty-css local-css -list-img: thirdparty-img local-img +### #################### third-party layout is kind of special +### # because we have differents versions, and also we +### # try to preserve the file structure from upstream +### # so let's handle this manually +### THIRD-PARTY-RESOURCES = +### # ignore variants, use the main symlink third-party/bootstrap +### THIRD-PARTY-RESOURCES += $(shell ls third-party/bootstrap/*/*) +### # just the single js as identified with a symlink +### THIRD-PARTY-RESOURCES += $(shell ls third-party/datatables/js/dataTables.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/datatables/js/dataTables.bootstrap.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/datatables/css/dataTables.bootstrap.css) +### # likewise +### THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery/js/jquery.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery/js/jquery.min.js) +### # for storing the visible status of plugins +### THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-html5storage/jquery.html5storage.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-html5storage/jquery.html5storage.min.js) +### # creating queries uuids on the fly +### THIRD-PARTY-RESOURCES += $(shell ls third-party/uuid/Math.uuid.js) +### # spin comes in plain or min, + the jquery plugin, and our own settings +### THIRD-PARTY-RESOURCES += $(shell ls third-party/spin/*.js) +### # used in QueryCode +### THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/scripts/shCore.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/scripts/shAutoloader.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/scripts/shBrushPython.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/scripts/shBrushRuby.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/styles/shCore.css) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/styles/shCoreDefault.css) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/syntaxhighlighter/styles/shThemeDefault.css) +### # wizard plugin +### THIRD-PARTY-RESOURCES += $(shell ls third-party/smartwizard-1636c86/js/jquery.smartWizard-2.0.js) +### #THIRD-PARTY-RESOURCES += $(shell ls third-party/smartwizard-1636c86/js/jquery.smartWizard-2.0.min.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/smartwizard-1636c86/styles/smart_wizard.css) +### # jquery.notify +### THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-notify/jquery.notify.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-notify/jquery.notify.min.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-notify/ui.notify.css) +### # CodeMirror +### THIRD-PARTY-RESOURCES += $(shell ls third-party/codemirror-3.15/lib/codemirror.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/codemirror-3.15/lib/codemirror.css) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/codemirror-3.15/mode/sql/sql.js) +### # Mustache.js +### THIRD-PARTY-RESOURCES += $(shell ls third-party/mustache/mustache.js) +### # markerclustererplus for the googlemap plugin +### THIRD-PARTY-RESOURCES += $(shell ls third-party/markerclusterer/markerclusterer.js) +### THIRD-PARTY-RESOURCES += $(shell ls third-party/markerclusterer/markerclusterer_packed.js) +### +### thirdparty-js: +### @find $(THIRD-PARTY-RESOURCES) -name '*.js' +### thirdparty-css: +### @find $(THIRD-PARTY-RESOURCES) -name '*.css' +### thirdparty-img: +### @find $(THIRD-PARTY-RESOURCES) -name '*.png' -o -name '*.ico' +### +### # we might have any of these as templates - e.g. ./unfold/templates/plugin-init.js +### # so if there's a /templates/ in the path ignore the file +### local-js: force +### @find . -type f -name '*.js' | egrep -v '/all-(static|templates)/|/third-party/|/templates/' +### local-css: force +### @find . -type f -name '*.css' | egrep -v 'all-(static|templates)/|/third-party/|/templates/' +### local-img: force +### @find . -type f -name '*.png' -o -name '*.ico' | egrep -v 'all-(static|templates)/|/third-party/|/templates/' +### +### list-js: thirdparty-js local-js +### list-css: thirdparty-css local-css +### list-img: thirdparty-img local-img # having templates in a templates/ subdir is fine most of the time except for plugins plugins-templates: force @@ -127,17 +128,17 @@ local-templates: force list-templates: plugins-templates local-templates -#################### manage static contents (extract from all the modules into the single all-static location) -static run-static static-run: force - mkdir -p ./all-static/js all-static/css all-static/img - ln -sf $(foreach x,$(shell $(MAKE-SILENT) list-js),../../$(x)) ./all-static/js - ln -sf $(foreach x,$(shell $(MAKE-SILENT) list-css),../../$(x)) ./all-static/css - ln -sf $(foreach x,$(shell $(MAKE-SILENT) list-img),../../$(x)) ./all-static/img - -clean-static static-clean: force - rm -rf ./all-static - -all-static: clean-static run-static +### #################### manage static contents (extract from all the modules into the single all-static location) +### static run-static static-run: force +### mkdir -p ./all-static/js all-static/css all-static/img +### ln -sf $(foreach x,$(shell $(MAKE-SILENT) list-js),../../$(x)) ./all-static/js +### ln -sf $(foreach x,$(shell $(MAKE-SILENT) list-css),../../$(x)) ./all-static/css +### ln -sf $(foreach x,$(shell $(MAKE-SILENT) list-img),../../$(x)) ./all-static/img +### +### clean-static static-clean: force +### rm -rf ./all-static +### +### all-static: clean-static run-static #################### manage templates for the plugin area templates run-templates templates-run: force @@ -150,7 +151,7 @@ clean-templates templates-clean: force all-templates: clean-templates run-templates #################### -list-all list-resources: list-templates list-js list-css list-img +### list-all list-resources: list-templates list-js list-css list-img #################### compute emacs tags # list files under git but exclude third-party stuff like bootstrap and jquery diff --git a/README b/README index f2ec7efd..2b129de6 100644 --- a/README +++ b/README @@ -24,7 +24,11 @@ $ ./manage.py migrate $ ./manage.py collectstatic (formerly, we used make static, which is deprecated) -- or -- $ ./manage.py collectstatic --noinput -$ make + +* gather templates files + for now we still seem to rely on a make-based templates-collection process + that creates all-templates/ +$ make templates * run a local server: $ manage.py runserver 0.0.0.0:8000 @@ -131,13 +135,10 @@ package is published) ========== automatically generated -* all-static: (generated, no need to source-control) - this is where 'make static' will gather all your static contents if you run a local server - make has convenience targets to refresh this area - $ make static - $ make clean-static +* static/: (generated by collectstatic, see above, do not source-control) + $ manage.py [ --noinput ] collectstatic -* django-static +* all-templates/ * myslice.sqlite3 this is where django stores its own stuff, as per settings.py diff --git a/devel/server-loop.sh b/devel/server-loop.sh index 4ff84bf1..06a56eec 100755 --- a/devel/server-loop.sh +++ b/devel/server-loop.sh @@ -8,6 +8,7 @@ hostname | grep -q '^z' && port=8080 || port=80 while true; do ./manage.py collectstatic --noinput + make all-templates ./manage.py runserver 0.0.0.0:$port sleep 1 done diff --git a/myslice/settings.py b/myslice/settings.py index 25c2a26e..01d8f532 100644 --- a/myslice/settings.py +++ b/myslice/settings.py @@ -84,11 +84,10 @@ MEDIA_URL = '' # Don't put anything in this directory yourself; store your static files # in apps' "static/" subdirectories and in STATICFILES_DIRS. # Example: "/home/media/media.lawrence.com/static/" -STATIC_ROOT = os.path.join(ROOT,'django-static') +STATIC_ROOT = os.path.join(ROOT,'static') # URL prefix for static files. # Example: "http://media.lawrence.com/static/" -# thierry STATIC_URL = '/all-static/' STATIC_URL = '/static/' # Additional locations of static files @@ -96,7 +95,6 @@ STATICFILES_DIRS = ( # Put strings here, like "/home/html/static" or "C:/www/django/static". # Always use forward slashes, even on Windows. # Don't forget to use absolute paths, not relative paths. - # thierry os.path.join(ROOT,'all-static'), ('js', os.path.join(ROOT,'manifold/js')), ('css', os.path.join(ROOT,'manifold/css')), ('js', os.path.join(ROOT,'unfold/js')), diff --git a/myslice/urls.py b/myslice/urls.py index 6d22803f..2745f952 100644 --- a/myslice/urls.py +++ b/myslice/urls.py @@ -60,8 +60,6 @@ urlpatterns = patterns( url(r'^sample/', include('sample.urls')), # Debug url(r'^debug/', include('debug_platform.urls')), - # Static files - (r'^static/(?P.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}), # # various trash views - bound to go away # -- 2.43.0