The Blender event of the year. https://conference.blender.org
Go to file
2024-10-29 18:13:44 +01:00
assets_shared@c6cc2d73f8 Chore: Updpate git submodule web-assets to v2.0.0-alpha.43 2024-10-29 11:25:00 +01:00
conference Update convenience redirects 2024-10-21 12:59:09 +02:00
conference_main Fix: Header link Latest Photos when there are multiple photo albums 2024-10-29 16:00:28 +01:00
emails Email: Update feedback form to 2024 2024-10-29 18:13:44 +01:00
playbooks Playbooks: update to latest shared 2024-09-06 13:43:20 +02:00
templates/admin/tickets CSV report for attendees 2022-10-03 13:22:26 +02:00
tickets Add waiting list text 2024-10-02 12:45:53 +02:00
.arcconfig Make master the new default development branch 2019-10-16 10:29:18 +02:00
.env.example Env example: add OAUTHLIB_INSECURE_TRANSPORT 2024-06-17 13:59:08 +02:00
.eslintrc.yml Tickets checkout and transactional emails 2022-06-10 16:50:43 +02:00
.gitignore Git: Ignore .DS_Store files 2024-06-06 15:28:56 +02:00
.gitmodules UI: Conference website web-assets v2 upgrade 2024-09-23 12:34:41 +02:00
.pre-commit-config.yaml Hooks: update flake8 URL (the old one is no more) 2023-12-12 12:47:13 +01:00
customjsmin.py Tickets checkout and transactional emails 2022-06-10 16:50:43 +02:00
deploy.sh Update deploy.sh to support --force 2024-09-27 13:02:59 +02:00
manage.py Fix type errors 2019-09-27 09:28:45 +02:00
mypy.ini Add Mypy and Black as dependencies 2019-09-27 09:28:45 +02:00
Procfile Add worker task to Procfile 2024-01-31 22:45:34 +01:00
pyproject.toml Replace poetry with requirements{,_dev,_prod}.txt 2024-07-01 20:28:10 +02:00
README.md Docs: PostgreSQL no longer required 2024-09-12 17:15:30 +02:00
requirements_dev.txt Replace poetry with requirements{,_dev,_prod}.txt 2024-07-01 20:28:10 +02:00
requirements_prod.txt Replace poetry with requirements{,_dev,_prod}.txt 2024-07-01 20:28:10 +02:00
requirements.txt Upgrade qrcode library to fix crash 2024-10-16 15:42:07 +02:00
runtime.txt Add Python runtime for Heroku 2024-01-29 00:14:30 +01:00
test.sh Replace poetry with requirements{,_dev,_prod}.txt 2024-07-01 20:28:10 +02:00

Table of Contents

Blender Conference

Requirements

Development

Setup

Create and activate a virtual environment using your favourite method, e.g.

python3.10 -m venv .venv
source .venv/bin/activate

Install required packages:

pip install -r requirements_dev.txt

Make a copy of example .env:

cp .env.example .env

Initialise submodules included into this repo:

git submodule update --init

Create the database tables:

./manage.py migrate

Create a superuser account to be able to login and access /admin/:

./manage.py createsuperuser

Update /etc/hosts to point to conference.local, e.g.:

127.0.0.1	conference.local

Run development server

./manage.py runserver 8009

Now http://conference.local:8009 should be ready to work with and it should be possible to log into http://conference.local:8009/admin/ with the username and password you've used during ./manage.py createsuperuser.

Blender ID

For development, Blender ID's code contains a fixture with an OAuth app that should work without any changes to default configuration. To load this fixture, go to your development Blender ID and run the following:

./manage.py loaddata blender_conference_devserver

Create system user

Conference uses a special system user to log various changes via admin LogEntry.

In order for this to work locally, SYSTEM_USER_ID must be set in the .env. The following will create a user and print out its ID, which you can then copy-paste into your .env:

echo "from django.contrib.auth import get_user_model; User = get_user_model(); print(User.objects.create_user('system', 'system@blender.org', 'password').id)" | ./manage.py shell

Running tests

Tests can be run by issuing ./test.sh in the repository root directory.

Update BWA (assets_shared/)

For updating the base styling provided by Blender Web Assets, navigate to assets_shared/ and pull latest changes:

cd assets_shared/
git checkout main && git pull
cd ..

N.B.: because project's static assets depend on BWA SASS modules, and "compiling" those can fail due to, e.g., incorrect font paths or missing files, always check that collectstatic works before committing this kind of update:

./manage.py collectstatic  --noinput

After making sure everything looks as expected, commit the updated submodule reference:

git add assets_shared
# add and commit the rest of the changes

Panel setup

  • The panel is available at /<edition>/panel

Media and Static Files configuration

By default, we use Django's default static files configuration. However, in case of deployment to platforms that do not support serving static files, it is possible to configure S3 compatible storage for media, and enable WhiteNoise to serve static assets.

This can be done by adding declaring the following env variables:

AWS_STORAGE_BUCKET_NAME=''
AWS_S3_REGION_NAME=''
AWS_S3_ENDPOINT_URL=''
AWS_ACCESS_KEY_ID=''
AWS_SECRET_ACCESS_KEY=''

MEDIA_ROOT='media'
MEDIA_URL='${AWS_S3_ENDPOINT_URL}/'
STORAGE_DEFAULT='storages.backends.s3.S3Storage'

USE_WHITENOISE=True

Custom Looks

Use the HAS_OVERRIDES_APP=True setting to register an optional 'overrides' app which whill override templates and static (useful to fully customize the look of the website).

Deploy

See playbooks.