Conference management site for FOSSY. Forked from Linux Australia's version at https://gitlab.com/laconfdev/symposion_app.
Find a file
James Polley fb5d0b8941 Create a dev docker container for makemigrations
* Adds a laptop-mode-env file which docker can read env variables from
* Adds a Dockerfile.makemigrations; mostly identical to the main
  Dockerfile. Important difference: instead of the source being copied
  into the docker image at build time, it's mounted from the local
  machine at run time.
* Adds a makemigrations shell script which builds an imagine using the
  Dockefile.makemigrations and then uses it to run makemigrations
* Because the source is mounted from the local machine, any new
  migrations created are dumped in the developer's git checkout ready
  for adding to git.

Rename .env -> docker/laptop-mode-env
2017-08-28 16:54:34 +10:00
docker Create a dev docker container for makemigrations 2017-08-28 16:54:34 +10:00
fixtures Update testing fixtures to add admin users 2017-08-16 14:51:29 +10:00
pinaxcon Merge branch 'fix_speaker_Addittion_Template' into 'master' 2017-08-07 01:53:24 +00:00
static Merge branch 'addfavicon' into 'master' 2017-07-04 09:13:37 +00:00
vendor Make review changes atomic 2017-08-09 12:27:41 +10:00
.dockerignore Autodeploy the new sqlite database 2017-05-07 18:40:55 +10:00
.gitignore Kludge tox to run flake8 2017-03-31 11:54:46 +11:00
.gitlab-ci.yml Build dev container for ticket testing 2017-08-16 13:44:23 +10:00
constraints.txt Deps for registripe 2017-05-27 21:14:08 +10:00
dev-env.sh DATABASE_URL as ENV_VAR 2017-06-24 15:59:46 +10:00
LICENSE added MIT license 2016-04-26 17:18:28 +08:00
make_dev_container.sh Create a dev docker container for makemigrations 2017-08-28 16:54:34 +10:00
makemigrations.sh Create a dev docker container for makemigrations 2017-08-28 16:54:34 +10:00
manage.py Initial commit of the PinaxCon demo site 2015-10-16 12:53:02 -05:00
README.rst Update testing fixtures to add admin users 2017-08-16 14:51:29 +10:00
requirements.txt Double requirement 2017-06-24 16:47:02 +10:00
tox.ini Use full imports not . 2017-04-29 14:28:48 +10:00

symposion_app
===============

At this time, considerations have not been made to have the django project run
without additional infrastructure.

This can be configured in the future by switching the default
DEFAULT_FILE_STORAGE django default, and properly configuring django to load
subsequent configuration to switch this back to GCS on run in our testing
and production environments.

Login is a bit more complicated, the default flow redirects you out to a SAML
server, you can probably work something out with testshib.   But if you go to
/admin and log in, that will persist into /dashboard.


Required Configuration
----------------------

GCS
~~~

1. Set the bucket in settings.py
1. Store your Service Account JSON in a file
1. Set GOOGLE_APPLICATION_CREDENTIALS to your account file
1. Set GCS_BUCKET to your bucket name

SAML2
~~~~~

Please familiarise yourself with Shibboleth configuration and the general
flow of how to register a SP with an IDP.

If you send the SP metadata statically, validity time must be removed.

You will also need to register your IDP metadata here either statically or
remotely updated.

You may consider testing with testshib.

Configure signing and encryption keys, and configure them in the settings.py

VirtualEnv
~~~~~~~~~~

Not all things are lovely, so we use constraints to force the versions we
we wish for without having to do anything ugly.  This may require a newer
version of pip than is packaged with distros virtualenv.

Note that this application is python 3 only so you must create your virtualenv
with a python3 interpreter.

- ``virtualenv -p `which python3` venv``
- ``source ./venv/bin/activate``
- ``pip install -c constraints.txt -r requirements.txt``

Pre-post-start configuration
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Now that we are ready to start the app, we need to do initial setup, start
it, perform voodoo string magic, run more database jingling voodoo, and then
we can start it up and start looking around and customising the application.

``./manage.py migrate``
``./manage.py runserver``

Now we hit up the admin interface, find `symposion_proposals` `proposalkind`
and add `Talk` slug `talk`, `Tutorial`:`tutorial`, and `Miniconf`:`miniconf`.

Shut down and now run:
``./manage.py populate_inventory``

Now you can run the system and see how it goes.

Admin Credentials
~~~~~~~~~~~~~~~~~

To create a local administrator account run:

``./manage.py createsuperuser``

and enter your username, email and password. This can then be used to login to: (http://localhost:8000/admin).

Base Data
~~~~~~~~~

On initial creation and whenever you reset the database you must reload the
basic data. This data is stored in the /fixtures directory. You can load this with:

``./manage.py loaddata ./fixtures/{conference,proposal_base,sites,sitetree}.json``

And to load the base admin users:

``./manage.py loaddata ./fixtures/admin_users.json``

admin1:Inq4JVQyQvWnqXDI

admin2:w0jYMJsM4S+1zHds

admin3:XzynbNH9Sw3pLPXe

Creating review permissions objects
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Some more voodoo magic that needs to be manually run because that's just how symposion works.
This creates the permission that needs to be applied to a user/group/team to be able to see the review sections of the site.

``./manage.py create_review_permissions``