Skip to content

Libraries

Patrick Forringer edited this page Jan 20, 2019 · 7 revisions

These libraries are used throughout toolhub and are linked here for reference.

Versions are not linked here, consult the pyproject.toml for installed versions

Python

The main web framework used in the project.

Django Class Based Views mixins and helpers

Model tagging and taxonomies

Misc utilities, abstract models, commands to help with Django app development

markdown preview and saving model fields

Color model fields, stored a hex color to be used in interfaces.

jinja2 and django-jinja

Jinja2 is a templating engine for python applications with many modern features. To learn about jinja2 syntax and semantics visit the template designer documentation:

http://jinja.pocoo.org/docs/2.10/templates/

We use the django-jinja package to help interface Django's existing template tags and filters with the Jinja2 environment. When developing or editing templates for toolhub it is very useful to be aware of what is available.

Helps generate forms with support for Bootstrap 4

Automated form generation for queryset filtering. Can be used in many places. Currently used to filter the tool list pages.

QR code generator, used to make links to tool detail pages.

Flexible enums

Finite state machine we use to handle tool borrowing state. Can be used to handle state on other models as well.