Websiden er skrevet i Django med Bootstrap 3 som frontend framework. Den meste funktionalitet kan findes i apps.
tkweb/apps/galleryindeholder galleriet inklusiv upload fuktionalitet,tkweb/apps/calendarhenter et icalendar feed og viser det som HTML,tkweb/apps/jubiindeholder jubilæumssiderne som flatpages og de tilhørende statiske filer,tkweb/apps/tkbrander en lille HTML kopi af LaTeX pakkentket.stytil at skrive TÅGEKAMMERET med hoppe-danse-skrift,tkweb/apps/redirecttager sig af vidrestilling af URLer fra den gamle PHP-side.tkweb/apps/idmer en ikke-offentlig app til at ændre persondata og maillister.tkweb/apps/evaler en ikke-offentlig wiki til evalueringer.tkweb/apps/regnskabtager sig af krydslisteregnskabet. Den er afhængig aftkweb/apps/idm,tkweb/apps/krydslisteogtkweb/apps/uniprint.tkweb/apps/krydslistetager sig af opsætning og udskrivning af fysiske krydslister.tkweb/apps/uniprinter en webapplikation til at printe på A2 printeren gennem CUPS.tkweb/apps/drinksgiver et GUI til SEKR TeX, samt tilføjer muligheden for at gemme drinks og barkort til databasen.tkweb/apps/barplaner en GUI som SEKR kan bruge til at lave en barplan.
Under templates findes Django HTML-templates som er det der
bliver vist til brugeren.
De 'statiske' sider (Om TK, Arrangementer, BEST/FU osv.) ligger i databasen som flatpages og kan nemt ændres fra admin-interfacet.
static-src indeholder statiske filer (grafik, css, js) samt
Bootstrap 3 som et git submodule.
tkweb/settings indeholder konfigurationen. Den er delt op i
flere moduler der nedarver fra hinanden. Se også under
Udviklingsmiljø.
Det er en forudsætning at maskinen har en fungerende python installation med pip.
En mysql installation er også påkrævet så mysql_client er tilgængelig, f.eks. skal man installere pakken libmysqlclient-dev på Ubuntu/Debian.
Brug nedenstående til at klone git-repoet, sættet et python [3.3, 3.7) virtualenv op, installere alle pakker og oprette en database.
git clone --recursive https://github.com/TK-IT/web.git
cd web
python3 -m venv .venv && .venv/bin/pip install -r requirements.txt
. .venv/bin/activate
./manage.py migrate --settings=tkweb.settings.dev
./manage.py createsuperuser --settings=tkweb.settings.devKonfigurationen er delt i flere moduler. manage.py bruger enten
miljøvariabelen DJANGO_SETTINGS_MODULE eller en parameter til at bestemme
hvilken konfiguration der skal bruges. Man skal explicit sætte en af disse. For
at køre udviklingsserveren med udviklingskonfigurationen skriv:
./manage.py runserver --settings=tkweb.settings.devFor ikke at have node.js som dependency på serveren er det nødvendigt at have en
compilet CSS version af alle LESS filerne i git. Det er indeholdt i
static-src/style.min.css og
static-src/style.min.css.map.
For at compile dette kræver det LESS og node.js. Med en fungerende node.js installation kan LESS og en CSS-minifier installeres med
npm install -g less less-plugin-clean-cssFor at genere nye CSS filer køres
cd static-src
lessc --clean-css --source-map style.less style.min.cssI tkweb/apps/regnskab er der en fil,
regnskab.es6x,
der bruger ECMAScript 6 features og JSX.
Denne oversættes vha. følgende kommando til en JavaScript-fil der kan køre i browseren:
tools/babel-compile.py tkweb/apps/regnskab/static/regnskab/regnskab.es6xDet kræver at dukpy er installeret
(vha. .venv/bin/pip install dukpy).
Desuden er der JavaScript tests i
tkweb/apps/regnskab/tests.js
som køres af manage.py test når dukpy er installeret.
I tkweb/apps/barplan er der et
TypeScript+React projekt som skal bygges i en Docker container.
For at generere tkweb/apps/barplan/static/barplan.min.js,
skal du installére Docker og køre følgende script i roden af tkweb-repositoriet:
./build.shFor informationer om siden på prodekanus se readme-prodekanus.md.