Fet 2020 Django Project
Diese Webseite ist im Jahr 2020 entwickelt worden. Wir haben dazu einige Designentscheidungen getroffen:
- Zunächst auf die externen Kernfunktionen fokussieren
- Python + Django nutzen weil:
- wir Python mögen
- das Framework uns die Freiheit gibt, zB die Mitglieder Daten entsprechend abzubilden
- das Design unabhängig von der Funktion bleibt
- und einiges mehr
- Als Kernfunktionen festgelegt wurden anfangs:
- Neuigkeiten posten
- FET Sitzungen ankündigen
- Etherpad für Agenda und Protokoll
- Informationen zu Mitgliedern anzeigen
- Unter dem Eindruck eines Jahres des Lockdown wurde zusätzlich hinzugefügt
- Ein virtuelles Schwarzesbrett
Development
The main branch is hosted on the FET git server. Clone the repository using the following command:
git clone https://git.fet.at/bofh/fet2020
Debug
If you are developing on Windows, install Visual Studio Code and Docker Desktop.
Add a local user/member for login because the project is not connected to FET LDAP in dev mode:
python manage.py createsuperuser
Python version
View all python versions:
uv python list
Installing Python executables:
uv python install $(.python-version) --default
Update the following files if the python version is increased:
- .python-version
- pyproject.toml
- run-pre-commit.sh
Deployment
Docker image for django
Makemigrations:
python fet2020/manage.py makemigrations blackboard core finance gallery members posts rental
python fet2020/manage.py makemigrations intern
Add all static files to the assets:
python fet2020/manage.py collectstatic
Check if the project is for deployment:
python fet2020/manage.py check --deploy
Build the docker image of django project:
docker build -t django-image -f fet2020/Dockerfile ./fet2020
Docker image for nginx
Build the docker image of nginx:
docker build -t django-nginx-image -f nginx/Dockerfile ./nginx
Start docker container
Add email password for 'Verleih' account to EMAIL_HOST_PASSWORD in the docker compose file!
Build the docker containers:
docker compose -f docker-compose.yml up -d
Remove all unused docker images older than 24 hours:
docker image prune -a --filter "until=24h"
Other Useful Commands
Please use the command carefully! Remove all unused docker volumes:
docker volume prune -a
Rebuilds all search indexes:
python3 fet2020/manage.py rebuild_index
Updates all search indexes:
python3 fet2020/manage.py update_index
TODO
ckeditor -> django-prose-editor
Version History
2.2.0
- Add rental
2.1.0
- Add finance system
2.0.0
- Update the homepage design
- Add intern
1.0.0
- First release of the new homepage