# Fet 2020 Django Project Diese Webseite ist im Jahr 2020 entwickelt worden. Wir haben dazu einige Designentscheidungen getroffen: 1. Zunächst auf die externen Kernfunktionen fokussieren 2. 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 3. Als Kernfunktionen festgelegt wurden anfangs: * Neuigkeiten posten * FET Sitzungen ankündigen * Etherpad für Agenda und Protokoll * Informationen zu Mitgliedern anzeigen 4. 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: ```bash 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: ```bash python manage.py createsuperuser ``` ### Python version View all python versions: ```bash uv python list ``` Installing Python executables: ```bash 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: ```bash python fet2020/manage.py makemigrations blackboard core finance gallery members posts rental ``` ```bash python fet2020/manage.py makemigrations intern ``` Add all static files to the assets: ```bash python fet2020/manage.py collectstatic ``` Check if the project is for deployment: ```bash python fet2020/manage.py check --deploy ``` Build the docker image of django project: ```bash docker build -t django-image -f fet2020/Dockerfile ./fet2020 ``` ### Docker image for nginx Build the docker image of nginx: ```bash docker build -t django-nginx-image -f nginx/Dockerfile ./nginx ``` ### Start docker container Build the docker containers: ```bash docker compose -f docker-compose.yml up -d ``` Remove all unused docker images older than 24 hours: ```bash docker image prune -a --filter "until=24h" ``` ## Other Useful Commands Please use the command carefully! Remove all unused docker volumes: ```bash docker volume prune -a ``` Rebuilds all search indexes: ```bash python3 fet2020/manage.py rebuild_index ``` Updates all search indexes: ```bash 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