Browse Source
Teď vypadá víc jako readme, na které chceš narazit v gitee, než jako pár random tipů. Random tipy jsem přesunul do dokumentacepull/11/head
Pavel "LEdoian" Turinsky
2 years ago
1 changed files with 58 additions and 79 deletions
@ -1,79 +1,58 @@ |
|||||
**TODO: přepsat, tohle dávno neplatí!** |
Web M&M |
||||
|
====== |
||||
Basic commands for web development |
|
||||
================================== |
Tohle je repozitář s kódem M&Mího webu. Pokud zde hledáte web samotný nebo |
||||
|
informace o semináři, najdete je na <https://mam.matfyz.cz> (a upřímně nechápu, |
||||
After you clone this repository, run `make`. It will download, locally install |
jak jste se dostali k tomuhle textu :-D) |
||||
and setup virtualenv and pip, and then locally install all required packages |
|
||||
from `requirements.txt`. |
Pokud jste tu zůstali, tak vás beztak zajímá vývoj webu (a jestli ne, tak |
||||
|
budeme rádi, když začne :-)). |
||||
When working with the code, always use the binaries in `./bin/`, such as |
|
||||
`bin/pip`, `bin/python`, ... never the global python, pip, ... |
Co je M&Mweb uvnitř |
||||
Use `make` and `./manage.py` for most things. |
------ |
||||
|
Celý náš web je napsaný v [Pythonu](https://www.python.org) ve frameworku |
||||
Use git :-) |
[Django](https://www.djangoproject.com/). Web běží na serveru zvaném Gimli, |
||||
|
jako databázi používá PostgreSQL (pro lokální vývoj naopak SQLite) a všechen |
||||
Quickstart |
náš kód je uložený v [Gitu](https://git-scm.com/) na [téhle |
||||
---------- |
gitee](https://gitea.ks.matfyz.cz/). Pro dokumentaci používáme |
||||
Run the following commands: |
[Sphinx](https://www.sphinx-doc.org). |
||||
make install_venv |
|
||||
. env/bin/activate |
<!--TODO: Z odstavce výše by ideálně měla být zachována jen první věta a zbytek |
||||
make install_web |
by měl být někde v docs s podrobnějším popisem…--> |
||||
|
|
||||
Pokud install_web říká Error: pg_config executable not found. nainstaluj si libpq-dev |
Jak si web pořídit |
||||
Pokud chybová hláška obsahuje #include <Python.h>, nainstaluj si python3-dev |
------ |
||||
|
Prosím přečti si podrobnější návod v <docs/vyvoj.rst> (tady by bylo zbytečné |
||||
After finishing development, run "deactivate". |
ho duplikovat). |
||||
|
|
||||
Make commands |
Jak web vyvíjet |
||||
------------- |
---- |
||||
|
<!--TODO: Napsat obšírněji, asi zase do docs/--> |
||||
* `make install` (or `make`) - locally install and setup virtualpy, install |
|
||||
required packages. Ran again installs missing packages. Run after changing |
Na webu je mnoho věcí k dělání, některé ani nevyžadují kódění (třeba uhánění |
||||
`requirements.txt`. |
orgů, aby si psali medailonky, aktualizace fotek, …), některé se naopak týkají |
||||
|
infrastruktury pod kódem (Gitea, Gimli, …). Je proto těžké mít na to úplně |
||||
* `make clean` - remove local python packages. |
obecný návod, tak tady je zhruba návod na úpravy kódu a pokud se něco z toho |
||||
|
nedá aplikovat, tak to prostě zkus nějak udělat jinak, po svém. (Omlouvám se |
||||
* `make veryclean` - remove local packages and virtualpy enviroment and |
neinformatikům, ale líp to teď nesepíšu :-)) |
||||
binaries. |
|
||||
|
1. Nejprve si stáhni repozitář a rozběhni si lokální web u sebe (viz <docs/vyvoj.rst>). |
||||
* `make run` - runs "./manage.py runserver_plus" |
1. Najdi si problém v Kanboardu (klikni na „Issues“ na Gitee) a/nebo se domluv |
||||
|
s webaři, na čem bys tak mohl/a pracovat. |
||||
* `make push_test` - pushes the last commited version to test location. |
1. Najdi místo, kde se to dá opravit a zkus to tam opravit. Uznávám, že tenhle |
||||
Only git-commited changes are pushed! Rest is re-generated from scratch. |
bod je otravně obecný, pokud tápeš, zkus se zeptat zkušenějších webařů nebo |
||||
At test server, the media data and database are kept the same. |
podívat do dokumentace. |
||||
Everything else not in .gitignore is deleted/overwritten on the test server. |
1. Vyzkoušej, že ti to lokálně funguje tak, jak má. |
||||
|
1. Zvládneš-li a máš-li čas, zkus to i zdokumentovat a/nebo napsat testy (TODO: chybí návod) |
||||
* `make schema` - generates graph of seminar and all schemas as PDF. Supercool! |
1. Po dohodě s webaři to vyzkoušej na testwebu |
||||
|
1. Pošli pull-request a případně zkus reagovat na komentáře |
||||
* `make sync_prod_flatpages` - downloads and applies static/flat pages from mamweb-prod |
1. Až se změna začlení do hlavní větve (`master`) a nasadí se web na produkci, |
||||
|
můžeš mít radost, že se web bude používat lépe Tobě i ostatním orgům :-) |
||||
./manage.py commands |
|
||||
-------------------- |
### Proč pull-requesty? |
||||
|
<!--FIXME: Tohle ale už úplně patří do docs a ne sem, jen je zatím nemám prozkoumané…--> |
||||
* `./manage.py migrate` - update the database schema, initialise the database. |
|
||||
You need to run this in the beginning. |
Účelů pull-requestů je několik. Jednak doufáme, že pomůže webařům se orientovat |
||||
|
v kódu, jednak tím umožňujeme dělat experimenty a dávat si zpětnou vazbu. V |
||||
* `./manage.py runserver_plus` - run a debugging server for the web. Slightly |
neposlední řadě pomáhají držet aspoň trochu konzistentní kód, což má pomoci |
||||
enhanced compared to `./manage.py runserver`. |
pohodě při programování… (A asi jsem na něco zapomněl :-)) |
||||
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`. |
|
||||
|
|
||||
|
|
||||
|
Loading…
Reference in new issue