|
|
|
Basic commands for web development
|
|
|
|
==================================
|
|
|
|
|
|
|
|
After you clone this repository, run `make`. It will download, locally install
|
|
|
|
and setup virtualenv and pip, and then locally install all required packages
|
|
|
|
from `requirements.txt`.
|
|
|
|
|
|
|
|
When working with the code, always use the binaries in `./bin/`, such as
|
|
|
|
`bin/pip`, `bin/python`, ... never the global python, pip, ...
|
|
|
|
Use `make` and `./manage.py` for most things.
|
|
|
|
|
|
|
|
Use git :-)
|
|
|
|
|
|
|
|
Quickstart
|
|
|
|
----------
|
|
|
|
Run the following commands:
|
|
|
|
make install_venv
|
|
|
|
. env/bin/activate
|
|
|
|
make install_web
|
|
|
|
|
|
|
|
After finishing development, run "deactivate".
|
|
|
|
|
|
|
|
Make commands
|
|
|
|
-------------
|
|
|
|
|
|
|
|
* `make install` (or `make`) - locally install and setup virtualpy, install
|
|
|
|
required packages. Ran again installs missing packages. Run after changing
|
|
|
|
`requirements.txt`.
|
|
|
|
|
|
|
|
* `make clean` - remove local python packages.
|
|
|
|
|
|
|
|
* `make veryclean` - remove local packages and virtualpy enviroment and
|
|
|
|
binaries.
|
|
|
|
|
|
|
|
* `make run` - runs "./manage.py runserver_plus"
|
|
|
|
|
|
|
|
* `make push_test` - pushes the last commited version to test location.
|
|
|
|
Only git-commited changes are pushed! Rest is re-generated from scratch.
|
|
|
|
At test server, the media data and database are kept the same.
|
|
|
|
Everything else not in .gitignore is deleted/overwritten on the test server.
|
|
|
|
|
|
|
|
* `make schema` - generates graph of seminar and all schemas as PDF. Supercool!
|
|
|
|
|
|
|
|
* `make sync_prod_flatpages` - downloads current flat/static pages from production version
|
|
|
|
|
|
|
|
./manage.py commands
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
* `./manage.py migrate` - update the database schema, initialise the database.
|
|
|
|
You need to run this in the beginning.
|
|
|
|
|
|
|
|
* `./manage.py runserver_plus` - run a debugging server for the web. Slightly
|
|
|
|
enhanced compared to `./manage.py runserver`.
|
|
|
|
Open [127.0.0.1:8000](127.0.0.1:8000).
|
|
|
|
|
|
|
|
* `./manage.py testdata` - create pseudo-random seminar data and admin/admin
|
|
|
|
user.
|
|
|
|
|
|
|
|
* `./manage.py test` - run the tests.
|
|
|
|
|
|
|
|
* `./manage.py shell` - run commands, list elemements of database, check syntax
|
|
|
|
by importing files, etc.
|
|
|
|
|
|
|
|
Configurations
|
|
|
|
--------------
|
|
|
|
|
|
|
|
* `mamweb/settings_common.py` contains most configuration options.
|
|
|
|
* `mamweb/settings.py` is used only for local development.
|
|
|
|
* `mamweb/settings_test.py` is used for testing on atrey.
|
|
|
|
* `mamweb/settings_prod.py` is used in production deployment.
|
|
|
|
|
|
|
|
These are automatically switched by `make`.
|
|
|
|
|
|
|
|
|