This application manages commitfests for the PostgreSQL community.
A commitfest is a collection of patches and reviews for a project and is part of the PostgreSQL development process.
This is a Django 3.2 application backed by PostgreSQL and running on Python 3.x.
First, prepare your development environment by installing pip, virtualenv, and postgresql-server-dev-X.Y.
$ sudo apt install python-pip postgresql-server-dev-14
$ pip install virtualenv
Next, configure your local environment with virtualenv and install local dependencies.
$ virtualenv env
$ source env/bin/activate
$ pip install -r requirements.txt
Now prepare the application to run locally.
Configure the app to match your local installation by creating a
local_settings.py
with the following content in the pgcommitfest
directory.
Change the values for the database connection adequately.
# Enable more debugging information
DEBUG = True
# Prevent logging to try to send emails to postgresql.org admins.
# Use the default Django logging settings instead.
LOGGING = None
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'pgcommitfest',
'USER': 'postgres',
'PASSWORD': 'postgres',
'HOST': '0.0.0.0',
}
}
# Disables the PostgreSQL.ORG authentication.
# Use the default built-in Django authentication module.
AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend']
Provided that you created a database matching the above settings, you can now create the required tables. Note that a password must be provided.
$ python manage.py migrate
You'll need either a database dump of the actual server's data or else to create a superuser:
$ python manage.py createsuperuser
Finally, you're ready to start the application:
$ python manage.py runserver
To authenticate you'll first have to remove the customized login template. Remember not to commit this modification.
$ find . -type f -name login.html
$ rm -f global_templates/admin/login.html
Then open http://localhost:8000/admin to log in. Once redirected to the Django admin interface, go back to the main interface. You're now logged in.