Registr smluv
Aplikace pro transparentní evidenci smluv a informací s nimi spojených.
Struktura projektu
.
├── registry = Nastavení projektu, URLs.
├── shared = Sdílené modely, templaty a statické soubory pro všechny ostatní aplikace.
├── contracts = Aplikace pro samotné smlouvy.
├── users = Aplikace pro uživatele.
├── static_src = Zdrojové CSS a JS, které příkazem 'make build' buildujeme.
├── requirements = Pythonové závislosti z PyPI.
└── env.example = Příklad .env souboru.
Konfigurace
Je třeba definovat minimálně následující environment proměnné:
proměnná | popis |
---|---|
DATABASE_URL |
URL pro připojení k databázi ve formátu postgresql://username:password@host:5432/database_name
|
SECRET_KEY |
Tajný klíč např. pro šifrování |
OIDC_RP_REALM_URL |
OpenID server realm URL (např. http://localhost:8080/auth/realms/master/ ) |
OIDC_RP_CLIENT_ID |
OpenID client ID |
OIDC_RP_CLIENT_SECRET |
OpenID Client Secret |
DEFAULT_COUNTRY |
Defaultní země podepisujících stran, např. Česká republika
|
DEFAULT_CONTRACTEE_NAME |
Defaultní jméno naší podepisující strany |
DEFAULT_CONTRACTEE_STREET |
Defaultní ulice a č.p. naší podepisující strany |
DEFAULT_CONTRACTEE_ZIP |
Defaultní PSČ naší podepisující strany |
DEFAULT_CONTRACTEE_DISTRICT |
Defaultní obec naší podepisující strany |
DEFAULT_CONTRACTEE_ICO_NUMBER |
Defaultní IČO naší podepisující strany |
DEFAULT_STAFF_GROUP |
Defaultní skupina pro přihlášené uživatele, která bude mít přístup k vytváření smluv |
V produkci je potřeba:
proměnná | popis |
---|---|
ALLOWED_HOSTS |
Seznam domén, skrz které se na server lze připojovat. Více info |
SENTRY_DSN |
Pokud je zadáno, pády se reportují do Sentry. |
Vývoj
V produkci používáme Docker. Při vývoji se hodí přiložený Makefile
, pro automatizování často prováděných akcí. Pro nápovědu zavolej:
$ make help
Lokální setup
Požadavky:
- Python 3.9+
- Linuxové prostředí, na Windows netestováno
Zkopíruj env.example
do .env
, nastav potřebné proměnné.
Vytvoř virtualenv:
$ make venv
Vytvoří virtualenv ve složce .venv
. Předpokládá že výchozí python
v terminálu
je Python 3. Pokud tomu tak není, použij třeba Pyenv
pro instalaci více verzí Pythonu bez rizika rozbití systému.
Aktivace virtualenvu
Před prací na projektu je třeba aktivovat virtualenv. To bohužel nejde dělat
pomocí nástroje make
. Je třeba zavolat příkaz:
$ source .venv/bin/activate
Pro shell lze vytvořit alias. Do ~/.bash_profile
, ~/.zshrc
nebo jiného
konfiguračního souboru dle tvého shellu přidej:
$ alias senv='source .venv/bin/activate'
A pak můžeš virtualenv aktivovat pouze jednoduchým voláním:
$ senv
Pro sofistikovanější řešení, které aktivuje virtualenv při změně adresáře na adresář s projektem, slouží nástroj direnv.
Deaktivace virtualenv se dělá příkazem:
$ deactivate
Instalace závislostí
Spusť:
$ make install
Tím se nainstalují Pythonové závislosti a virtuální Node.js 19x nutné k buildu statických souborů.
Build statických souborů
Spusť:
$ make build
Tím se vytvoří CSS a JS soubory, které se dají použít v prohlížečovém prostředí.
Spuštění development serveru
Django development server na portu 8012
se spustí příkazem:
$ make run
Poté můžeš web otevřít na adrese http://localhost:8012.
Code quality
K formátování kódu se používá black. Doporučujeme ho nainstalovat do tvého editoru, aby soubory přeformátoval po uložení.
Přeformátování kódu nástrojem black
je součástí pre-commit
hooks (viz níže).
Součástí pre-commit
hooků je také automatické seřazení importů v Pythonních
souborech nástrojem isort.
Pre-commit hooky
Použivá se pre-commit framework pro management git pre-commit hooks.
Máš-li pre-commit framework nainstalovaný, spusť příkaz:
$ make install-hooks
Ten naisntaluje hooky pro projekt. A poté při každém commitu dojde k požadovaným akcím na změněných souborech.
Ručně se dají hooky na všechny soubory spustit příkazem:
$ make hooks