fsr-de / myHPI

Django/Wagtail page serving myhpi.de

Home Page:https://myhpi.de

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

myHPI

tests Coverage Status

This tool is used to manage the student representative website at https://myhpi.de. It is a CMS based on Wagtail/Django and adds several functionalities like polls.

Development setup

For a quick start, use the dev container, e.g. by installing the Dev Containers extension in Visual Studio Code or using the built-in feature in JetBrains IDEs. This automatically installs all dependencies in a container. After starting the container, setup your local data by following the Manual Setup from step 9 (creating a superuser).

Manual setup

To set up a development version on your local machine, you need to execute the following steps:

  1. Check out repository and cd to it
  2. Set up a virtualenv for the project with Python >=3.11 and activate it (e.g., python3 -m venv venv and source venv/bin/activate)
  3. Install poetry (if not already installed): curl -sSL https://install.python-poetry.org/ | python -
  4. Install dependencies with poetry install
  5. Create env file by copying the .env.example file to .env, e.g. cp .env.example .env (Notice that for some functionality like OIDC some settings must be changed)
  6. Migrate the database with python manage.py migrate
  7. Install bootstrap with python tools/install_bootstrap.py
  8. Optionally: Compile translations with python manage.py compilemessages (does not work on Windows, recommended to skip this step or see docs)
  9. Optionally: Create test data with python manage.py create_test_data
  10. Create a local superuser with python manage.py createsuperuser
  11. Start the development server with python manage.py runserver
  12. Open your web browser, visit http://localhost:8000/admin and log in with the user you just created

Tests

Test the code with python manage.py test myhpi.tests.

Code style

We recommend installing a pre-commit hook with pre-commit install. That will (look at .pre-commit-config.yaml) before every commit

  • run autoflake with a couple of flags to remove unused imports,
  • run isort . to sort imports,
  • run black . to format the code. You can also check out the IDE integration

If you want to do that manually, run pre-commit run --all-files. Next to that, we also run pylint myhpi to check for semantic issues in the code.

Tips

  • To create translations, run python manage.py makemessages -l de -i venv.

Reset database

  1. Delete db.sqlite3
  2. Conduct development setup steps 7+

About

Django/Wagtail page serving myhpi.de

https://myhpi.de


Languages

Language:Python 68.8%Language:HTML 15.4%Language:JavaScript 10.4%Language:SCSS 4.6%Language:Dockerfile 0.4%Language:CSS 0.3%Language:Shell 0.2%