The Czech Pirate Party's public contract registry website.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Tomáš Valenta 2344e73db8 fix env variable 1 week ago
contracts integrate new Nastenka API 1 week ago
media wip - contract table 7 months ago
media_server stop using custom groups, use DEFAULT_STAFF_GROUP 6 months ago
oidc chobotnice group sync 3 months ago
registry fix env variable 1 week ago
requirements chobotnice group sync 3 months ago
shared fix contractee / signee ordering 3 months ago
static_src add person responsible for shredding etc. 4 months ago
users fix contractee / signee ordering 3 months ago
.gitignore add sync tool (wip) 5 months ago
.gitlab-ci.yml add test deploy to CI 6 months ago
.pre-commit-config.yaml implementing new requirements - manytomany subtypes, multiple intent URLs, shared notes 8 months ago
Dockerfile add new env var 3 months ago
Dockerfile.nginx add test CI 7 months ago
LICENSE add license 8 months ago
Makefile add sync management command 5 months ago
README.md update readme 4 months ago
env.example chobotnice group sync 3 months ago
gunicorn.conf.py add gunicorn conf 6 months ago
manage.py add pre-commit hooks, wip readme, run hooks 8 months ago
model-desc.md finish admin interface, for the time being 8 months ago
nginx.conf serve media files through app 6 months ago
package-lock.json integrate new Nastenka API 1 week ago
package.json alter contract types 6 months ago
run.sh stop using custom groups, use DEFAULT_STAFF_GROUP 6 months ago
tailwind.config.js fix contractee / signee ordering 3 months ago
webpack.config.js WIP - ARES Integration 7 months ago

README.md

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