Conference management site for FOSSY. Forked from Linux Australia's version at https://gitlab.com/laconfdev/symposion_app.
e546b7d814
Borrowed from the pyconau-2017 fork To explain the impact of this - without this patch, if a user has their invoice refunded, they are able to buy a new ticket; but t-shirts, dinner tickets and so on do not become available to them again because they are listed has already been in a cart for them. Applying the patch now correctly checks to see if they currently have a ticket. From 731eee0a4c42a5013ee312b1ff50548e4d89a2ff Mon Sep 17 00:00:00 2001 From: Richard Jones <r1chardj0n3s@gmail.com> Date: Sun, 4 Jun 2017 13:22:34 +1000 Subject: [PATCH] Fix query modification so that conditions are combined Previously it was checking if the user has a product from the category in a cart, and if there is no cart that is released (refunded). Not *if the user has a product in a cart that is not released*. This patch combines them. In the absence of a __ne operation in the joining syntax, a double equality check is needed. Signed-off-by: Richard Jones <r1chardj0n3s@gmail.com> |
||
---|---|---|
docker | ||
docs | ||
fixtures | ||
pinaxcon | ||
static | ||
vendor | ||
.dockerignore | ||
.gitignore | ||
.gitlab-ci.yml | ||
constraints.txt | ||
dev-env.sh | ||
LICENSE | ||
make_dev_container.sh | ||
makemigrations.sh | ||
manage.py | ||
README.rst | ||
requirements.txt | ||
tox.ini | ||
vendored_requirements.txt |
symposion_app ============= .. contents:: 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 Running a dev instance in Docker -------------------------------- Assuming you have docker installed and working on your machine:: ./make_dev_container.sh will build you a container and run through the initial setup steps. The last stage interactively creates a superuser account: you'll need to interact with this for it to finish. Once this has completed, you can hit http://localhost:28000/admin to log into the admin interface. Once you're logged in, http://localhost:28000 will take you to the dashboard. Note that when you do this you're logged in as a superuser, so what you see will be different from what a normal user will see. Making migrations ~~~~~~~~~~~~~~~~~ If you make changes to the data model, you'll need to run "manage.py makemigrations" to create a matching migration file. If you're on a mac, or a system without python3, this can be difficult. In such a case, the ``makemigrations.sh`` script takes advantaged of a docker container that's slightly modified, and runs the makemigration action on the files in your working directory. Running a dev instance in a 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. - ``python3 -m venv venv`` - ``source ./venv/bin/activate`` - ``pip install -c constraints.txt -r requirements.txt`` - ``pip install -c constraints.txt -r vendored_requirements.txt`` Once your dev instance is up and running ---------------------------------------- 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 tasks ----------- 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 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ After conference Sections have been created, this command will add Permission objects for those sections. ``./manage.py create_review_permissions``