159 lines
3.0 KiB
Markdown
159 lines
3.0 KiB
Markdown
# 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
|
|
|
|
Add email password for 'Verleih' account to EMAIL_HOST_PASSWORD in the docker compose file!
|
|
|
|
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.1
|
|
|
|
* Fix rental (view, pdf file, sending mail)
|
|
|
|
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
|