Find a file
Oliver Davies 56f3434c4a Automatically order events when a talk is saved
To ensure that the event dates for a talk are always in the correct
order, and to make the editing experience easier, this change
automatically re-orders the events on a talk node to be based on the
event date.

Fixes #74
2020-05-31 20:56:28 +01:00
.dependabot Add dependabot config 2020-05-30 15:26:32 +01:00
.github/workflows Run CI on push to master and PRs 2020-05-15 12:25:54 +01:00
.idea Add core config patch 2020-05-15 11:43:09 +01:00
bin Remove start and stop scripts 2020-05-20 20:57:46 +01:00
config Remove default migration group 2020-05-29 22:48:57 +01:00
tools/ansible Remove reference to old deploy key 2020-05-27 08:38:48 +01:00
web Automatically order events when a talk is saved 2020-05-31 20:56:28 +01:00
.gitignore Add download database playbook 2020-05-23 14:43:13 +01:00
.php-version Use Symfony server for local development 2020-04-10 10:48:35 +01:00
ansible.cfg Set project specific path for Ansible roles 2020-05-09 23:35:25 +01:00
composer.json Remove migrate contrib modules 2020-05-29 22:48:57 +01:00
composer.lock Remove migrate contrib modules 2020-05-29 22:48:57 +01:00
docker-compose.yaml Use Symfony server for local development 2020-04-10 10:48:35 +01:00
Makefile Commit the Makefile 2020-05-20 21:06:48 +01:00
php.ini Use Symfony server for local development 2020-04-10 10:48:35 +01:00
phpstan.neon Add and use a custom Node class 2020-05-09 22:31:35 +01:00
phpunit.xml.dist Use an in-memory sqlite database for testing 2020-05-15 11:53:50 +01:00
README.md Add a note about talks ordering 2020-05-13 15:22:22 +01:00

oliverdavies.uk

Hosting

This site is hosted on a DigitalOcean droplet, which was created using Ansible (see tools/ansible/digitalocean.yml).

Provisioning

To re-provision the server:

# Download the required roles
ansible-galaxy install -r tools/ansible/requirements.yml --force

# Run the provision playbook
ansible-playbook tools/ansible/provision.yml

Deploying

Deployments for this site for managed with Ansible and Ansistrano. Ansible Vault is used to manage sensitive information like database passwords.

Deployments are triggered automatically when changes are pushed to GitHub, and are performed via CircleCI.

To run a deployment manually, run ansible-playbook tools/ansible/deploy.yml --ask-vault-pass. The Vault password is stored in LastPass.

Migrating data into the website

To view the status of all the migrations:

bin/drush.sh migrate:status

To run all the migrations:

bin/drush.sh migrate:import --all

To run all the migrations and update the existing migrated content:

bin/drush.sh migrate:import --all --update

Talks ordering

In order to keep the talks page in the correct order, based on when the next time a talk is being given, the created date for the talk node is automatically updated on each save to match the date of the most future event for that talk.

The view is then sorting the talk nodes based on their created date.