* edit myslice/config.py and enter the details of your manifold backend
* init django
-$ manage.py syncdb
+$ ./manage.py syncdb
+$ ./manage.py migrate
* gather static files
-$ ./manage.py collectstatic (formerly, we used make static, which is deprecated)
+$ ./manage.py collectstatic
-- or --
$ ./manage.py collectstatic --noinput
-$ make
+-- or --
+$ make static (which is a shorthand for cleaning up and run manage collectstatic --noinput)
+
+* gather templates files
+ for now we still seem to rely on a make-based templates-collection process
+ that creates templates/
+$ make templates [$ make redo (each time when you pull, do that and restart the server)]
* run a local server:
$ manage.py runserver 0.0.0.0:8000
========== 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
+* templates/
* myslice.sqlite3
this is where django stores its own stuff, as per settings.py
. second, when you do use it for developement purposes, please be aware that:
-.. the recommended layout for the various files and pieces (py, html, js and css) with django is
- IMHO really painful; we *SHOULD* use e.g.
- plugins/quickfilter/quickfilter.py,
- plugins/quickfilter/templates/quickfilter.html,
- plugins/quickfilter/static/js/quickfilter.js
- plugins/quickfilter/static/css/quickfilter.css
- which I have tried doing for a while but I found myself just hopping around in the file tree all
- day long, wasting cycles big time
-
-.. as that does not make sense IMHO, I've rewritten the tool for gathering these pieces (this is in
- the Makefile). Bottom line is we can essentially store this wherever we want.
- The only restriction being that if you have a template that is *not* html, then it *has to* sit
- in a templates/ directory, otherwise it gets shipped as a static file.
-
-.. as a result, we can now store all the files building a plugin in a single (git) directory; like e.g.
- plugins/quickfilter/quickfilter.py
- plugins/quickfilter/quickfilter.html
- plugins/quickfilter/quickfilter.js
- plugins/quickfilter/quickfilter.css
-
- Of course it's a completely different matter once the service is packaged and installed, these
- files of course get properly separated.
-
-.. as a result it is a little bit less convenient to use the development server when you change the
- layout of your static and template files, you might need to re-run 'make static', so it is
- recommended to use devel/server-loop.sh instead
-
-
-All this being said, here are our current conventions for storing templates and static files
-
-* templates:
- we store this under templates/ within the corresponding app, e.g.
- auth/templates/login.html
- for now this is mostly about html, but the engine can be used for rendering anything
- including js(on) or whatever (in which case, as stated above, this *must* have /templates/ in its path.
-
-* static files:
- we chose to have all static files (images, but also javascript and stylesheets) in the various
- proj or app where they belong, with a layout like:
- where-it-belongs/
- img/
- css/
- js/
- Honestly it's not yet very clear sometimes what 'where-it-belongs' should be sometimes, and it
- does not matter too much anyway, given that the code doesn't need to change when we move things
- around. So in particular it's fuzzy between myslice/ (where the logo could fit e.g.) views/ and
- even trash/
-
-Makefile has a few convenience targets to list all kinds of stuff; the 2 major targets are
-
-$ make static templates
-
-that would reset all-static/ and all-templates/ for you from the other contents
-
-* third-party
- please note that the set of files that actually get exposed in all-static from third-party is
- hand-coded in Makefile because we tried to preserve the original codebase layout from mainstream,
- and there's only so much in common between 2 differents js libraries at this point.
-
+NOTE. this whole business is being changed
+basically we come back to the way django has it by default...
+
+==changing== .. the recommended layout for the various files and pieces (py, html, js and css) with django is
+==changing== IMHO really painful; we *SHOULD* use e.g.
+==changing== plugins/quickfilter/quickfilter.py,
+==changing== plugins/quickfilter/templates/quickfilter.html,
+==changing== plugins/quickfilter/static/js/quickfilter.js
+==changing== plugins/quickfilter/static/css/quickfilter.css
+==changing== which I have tried doing for a while but I found myself just hopping around in the file tree all
+==changing== day long, wasting cycles big time
+==changing==
+==changing== .. as that does not make sense IMHO, I've rewritten the tool for gathering these pieces (this is in
+==changing== the Makefile). Bottom line is we can essentially store this wherever we want.
+==changing== The only restriction being that if you have a template that is *not* html, then it *has to* sit
+==changing== in a templates/ directory, otherwise it gets shipped as a static file.
+==changing==
+==changing== .. as a result, we can now store all the files building a plugin in a single (git) directory; like e.g.
+==changing== plugins/quickfilter/quickfilter.py
+==changing== plugins/quickfilter/quickfilter.html
+==changing== plugins/quickfilter/quickfilter.js
+==changing== plugins/quickfilter/quickfilter.css
+==changing==
+==changing== Of course it's a completely different matter once the service is packaged and installed, these
+==changing== files of course get properly separated.
+==changing==
+==changing== .. as a result it is a little bit less convenient to use the development server when you change the
+==changing== layout of your static and template files, you might need to re-run 'make static', so it is
+==changing== recommended to use devel/server-loop.sh instead
+==changing==
+==changing==
+==changing== All this being said, here are our current conventions for storing templates and static files
+==changing==
+==changing== * templates:
+==changing== we store this under templates/ within the corresponding app, e.g.
+==changing== auth/templates/login.html
+==changing== for now this is mostly about html, but the engine can be used for rendering anything
+==changing== including js(on) or whatever (in which case, as stated above, this *must* have /templates/ in its path.
+==changing==
+==changing== * static files:
+==changing== we chose to have all static files (images, but also javascript and stylesheets) in the various
+==changing== proj or app where they belong, with a layout like:
+==changing== where-it-belongs/
+==changing== img/
+==changing== css/
+==changing== js/
+==changing== Honestly it's not yet very clear sometimes what 'where-it-belongs' should be sometimes, and it
+==changing== does not matter too much anyway, given that the code doesn't need to change when we move things
+==changing== around. So in particular it's fuzzy between myslice/ (where the logo could fit e.g.) views/ and
+==changing== even trash/
+==changing==
+==changing== Makefile has a few convenience targets to list all kinds of stuff; the 2 major targets are
+==changing==
+==changing== $ make static templates
+==changing==
+==changing== that would reset static/ and templates/ for you from the other contents
+==changing==
+==changing== * third-party
+==changing== please note that the set of files that actually get exposed in all-static from third-party is
+==changing== hand-coded in Makefile because we tried to preserve the original codebase layout from mainstream,
+==changing== and there's only so much in common between 2 differents js libraries at this point.
+==changing==
======== update django database to reflect changes in existing models without any migration system (e.g., south) =========