Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time



Official udata theme of the Open Data Portal of Luxembourg


Install the theme package in you udata environement:

pip install gouvlu

Then, define the installed theme as current in you udata.cfg:

THEME = 'gouvlu'

configuration parameters

Some features are optionnal and can be enabled with the following udata.cfg parameters

  • GOUVLU_GOVBAR = True/False: Toggle the govbar


There is a docker-compose configuration to get started fast. Just run:

docker-compose up

Then go to http://localhost:7000 to connect to the development server with live reload.

Local setup

If you want to execute some development tasks like extracting the translations or running the test suite, you need to install the dependencies localy (in a virtualenv).

virtualenv venv
source venv/bin/activate
pip install -r requirements/develop.pip

If you want to build assets, you also need node.js. The prefered way is with nvm:

nvm use
npm install
inv assets_build

Ok, you are ready, you can now execute some Development commands.

inv -l
Available tasks:

  all            Run tests, reports and packaging
  assets-build   Build static assets
  assets-watch   Build assets on change
  clean          Cleanup all build artifacts
  cover          Run tests suite with coverage
  dist           Package for distribution
  i18n           Extract translatable strings
  i18nc          Compile translations
  pydist         Perform python packaging (without compiling assets)
  qa             Run a quality report
  test           Run tests suite

Let's execute an entire build:



This project is translated on crowdin.

To update the source string, you need to extract them with the inv i18n command and push the result on this repository. Crowding will detect the new string as soon as they are available on the master branch.

Crowdin will submit a pull-request each time some translation is submitted by the contributors.


gouvlu uses bumpr to perform release. Simply execute:

# Install bumpr if not already installed
pip install bumpr
# Dry run to preview changes
bumpr -dv
# Perform release

Bumpr will execute test, package everything, update changelog, handle tagging and push to upstream repository... You just have to wait for the build to succeed and your release is available.

You can’t perform that action at this time.