Skip to content

Latest commit

 

History

History
95 lines (59 loc) · 3.72 KB

README.md

File metadata and controls

95 lines (59 loc) · 3.72 KB

Thalia Website

Linting and Testing coverage documentation Code Style Code Climate

The latest Thalia Website built on Django.

Getting started

  1. Get at least Python 3.8 and install poetry and the Pillow requirements as per below.
  2. Clone this repository
  3. make superuser to create the first user (note that this user won't be a member!)
  4. make fixtures to generate a bunch of test data
  5. make run to run a testing server
  6. Go to the user you created and complete the profile and add a membership for full access

Testing and linting

You can use pyenv (on Unix systems) to test in different python environments.

All code has to be run through black before being committed. To black the code before committing run make fmt one the base directory of this project. If you want to integrate black with your editor look in the black docs. On linux you can find the black executable in ~/.cache/poety/virtualenvs/<your env>/bin/black.

You can run all the tests with make test, afterwards you can check the coverage with make coverage.

poetry

Install poetry per the poetry documentation. Make sure you install at least version 1.x.x.

Pillow dependencies

For Ubuntu 18.04, use:

apt-get install python3-dev gettext gcc build-essential libtiff5-dev libjpeg-turbo8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev

Or try:

apt-get build-dep python3-pil

For other operating systems, see the Pillow Documentation.

On macOS you will also need to install libmagic, using the brew package manager by running brew install libmagic.

Thabloid dependencies

To be able to generate JPGs from PDFs, we need ghostscript:

apt-get install ghostscript

Or for macOS:

brew install ghostscript

Language

Make sure to use British English.

Settings

The settings of our project are located in website/thaliawebsite/settings. This is a Python module that loads the included settings files based on the environment you are running in.

  • If DJANGO_PRODUCTION is set in the environment production.py will be included
  • If GITHUB_ACTIONS is set in the environment testing.py will be included
  • If localsettings.py exists it will be included, you can use this to override settings on your local development server without the risk of committing secrets.

settings.py contains the default included settings.

Documentation

The documentation for our code is located inside the files and is combined using Sphinx into an HTML output. The continuous integration checks if the latest Python modules are included in the Sphinx files located in the docs folder

To update these files run make apidocs

To render the docs to HTML run make docs