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 and applies static/flat pages from mamweb-prod ./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`.