Go to file
Thomas Steen Rasmussen 039af44a92 new content submission flow monster commit of doom. fixes a large part of #191. Split out /program/ urls into a seperate program/urls.py file in the program: URL namespace. Change call for speakers to call for participation everywhere (I think). Add boolean fields call_for_participation_open and call_for_sponsors_open to Camp model. Switch to font-awesome 5.0.13 and update <i> tags everywhere accordingly. Introduce Tracks so all Events belong to a Track, which in turn belongs to a Camp. Add seperate forms for submitting SpeakerProposals and EventProposals so we can set labels and help_text according to EventType, and remove fields we dont need. Remove Pictures from Speaker and SpeakerProposals, it was almost never used, and was a lot of code/complexity. Remove a few PROPOSAL_STATUS namely DRAFT and MODIFIED_AFTER_APPROVAL to simplify the workflow for submitters. Add description, icon and host_title fields to EventType. Add a CombinedProposalSubmitView which allows users to submit a SpeakerProposal and EventProposal from the same page, introducing a new requirements.txt dependency for django-betterforms==1.1.4. Update bootstrap-devsite to match the new reality. 2018-05-20 18:16:20 +02:00
schedule Fix too long event titles in day view. 2017-08-21 08:45:05 +02:00
scripts Merge teamcomms branch. Refactor team app and add events app. 2018-04-09 23:11:05 +02:00
src new content submission flow monster commit of doom. fixes a large part of #191. Split out /program/ urls into a seperate program/urls.py file in the program: URL namespace. Change call for speakers to call for participation everywhere (I think). Add boolean fields call_for_participation_open and call_for_sponsors_open to Camp model. Switch to font-awesome 5.0.13 and update <i> tags everywhere accordingly. Introduce Tracks so all Events belong to a Track, which in turn belongs to a Camp. Add seperate forms for submitting SpeakerProposals and EventProposals so we can set labels and help_text according to EventType, and remove fields we dont need. Remove Pictures from Speaker and SpeakerProposals, it was almost never used, and was a lot of code/complexity. Remove a few PROPOSAL_STATUS namely DRAFT and MODIFIED_AFTER_APPROVAL to simplify the workflow for submitters. Add description, icon and host_title fields to EventType. Add a CombinedProposalSubmitView which allows users to submit a SpeakerProposal and EventProposal from the same page, introducing a new requirements.txt dependency for django-betterforms==1.1.4. Update bootstrap-devsite to match the new reality. 2018-05-20 18:16:20 +02:00
.gitignore Initial work on the schedule written in elm. 2017-08-16 18:26:49 +02:00
.gitmodules readd submodule with the correct branch 2017-04-02 20:21:12 +02:00
LICENSE Add BSD 3-clause LICENSE file 2018-03-04 15:41:07 +01:00
README.md Make contrbutors a list 2018-03-04 15:55:18 +01:00

README.md

Bornhack

Django project to power Bornhack. Features include news, villages, webshop, and more.

Setup

Clone the repo

Clone with --recursive to include submodules:

git clone --recursive https://github.com/bornhack/bornhack-website

If you already cloned the repository, you can add the submodules like this:

git submodule update --init --recursive

Virtualenv

Create a Python 3 virtual environment and activate it:

$ virtualenv venv -p python3
$ source venv/bin/activate

System libraries

Install system dependencies (method depends on OS):

  • postgresql headers (for psycopg2):
    • Debian: libpq-dev
    • FreeBSD: databases/postgresql93-client
  • libjpeg (for pdf generation)
    • Debian: libjpeg-dev
    • FreeBSD: graphics/jpeg-turbo
  • wkhtmltopdf (also for pdf generation):
    • Debian: wkhtmltopdf
    • FreeBSD: converters/wkhtmltopdf
  • fonts
    • Debian: ?
    • FreeBSD: x11-fonts/webfonts

Python packages

Install pip packages:

    (venv) $ pip install -r src/requirements.txt

Configuration file

Copy environment settings file and change settings as needed:

    (venv) $ cp src/bornhack/environment_settings.py.dist src/bornhack/environment_settings.py

Edit the configuration file, replacing all the {{ placeholder }} patterns (intended for Ansible).

Database

Is this a new installation? Initialize the database:

    (venv) $ src/manage.py migrate

Is this for local development? Bootstrap the database with dummy data and users:

    (venv) $ src/manage.py bootstrap-devsite

Deploy camps+program test data

Run this command to create a bunch of nice test data:

    (venv) $ src/manage.py bootstrap-devsite

Done

Is this for local development? Start the Django devserver:

    (venv) $ src/manage.py runserver

Otherwise start uwsgi or similar to serve the application.

Enjoy!

Notes

Add a camp

Add a new camp by running:

    (venv) $ src/manage.py createcamp {camp-slug}

Then go to the admin interface to edit the camp details, adding the same slug that you just used and some current dates.

You can also specify details like:

  • A sponsors page, {camp-slug}_sponsors.html, to sponsors/templates.
  • A frontpage, {camp-slug}_camp_detail.html, to camps/templates.
  • A call for speakers page, {camp-slug}_call_for_speakers.html, to program/templates.
  • A static_src/img/{camp-slug}/logo and add two logos:
    • {camp-slug}-logo-large.png
    • {camp-slug}-logo-small.png

Contributors