{"id":24989022,"url":"https://github.com/engineervix/wagtail-branching-workflows","last_synced_at":"2025-04-12T00:20:29.623Z","repository":{"id":41885042,"uuid":"414001992","full_name":"engineervix/wagtail-branching-workflows","owner":"engineervix","description":"Wagtail Branching Workflows based on value of specified Page field. See https://stackoverflow.com/questions/69028083/","archived":false,"fork":false,"pushed_at":"2025-04-03T20:32:12.000Z","size":772,"stargazers_count":1,"open_issues_count":12,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-03T21:29:47.326Z","etag":null,"topics":["wagtail"],"latest_commit_sha":null,"homepage":"https://importthis.tech/wagtail-branching-workflows","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/engineervix.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-05T22:54:46.000Z","updated_at":"2024-05-29T08:57:22.000Z","dependencies_parsed_at":"2023-09-25T01:57:34.481Z","dependency_job_id":"23a7664f-bdf4-46c0-aa18-41262dabc8ac","html_url":"https://github.com/engineervix/wagtail-branching-workflows","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Fwagtail-branching-workflows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Fwagtail-branching-workflows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Fwagtail-branching-workflows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Fwagtail-branching-workflows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/engineervix","download_url":"https://codeload.github.com/engineervix/wagtail-branching-workflows/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248498062,"owners_count":21114031,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["wagtail"],"created_at":"2025-02-04T12:12:14.944Z","updated_at":"2025-04-12T00:20:29.591Z","avatar_url":"https://github.com/engineervix.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Branching Workflows in Wagtail\n\n\u003e Branching Workflows based on value of specified Page field.\n\u003e\n\u003e Stack Overflow Question: \u003chttps://stackoverflow.com/questions/69028083/\u003e\n\u003e\n\u003e Blog Post: \u003chttps://importthis.tech/wagtail-branching-workflows\u003e\n\u003e\n\u003e Video Demo: \u003chttps://youtu.be/qx1LOqJkt9Y\u003e\n\n[![Continuous Integration](https://github.com/engineervix/wagtail-branching-workflows/actions/workflows/main.yml/badge.svg)](https://github.com/engineervix/wagtail-branching-workflows/actions/workflows/main.yml)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n\n- [Features ✨](#features-)\n- [Development 💻](#development-)\n  - [First things first](#first-things-first)\n  - [Getting Started](#getting-started)\n  - [Tests](#tests)\n  - [Code Formatting](#code-formatting)\n  - [Contributing 🤝](#contributing-)\n- [Credits 👏](#credits-)\n- [Video Demo](#video-demo)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## Features ✨\n\n- This is a [Python](https://www.python.org/) project built using [Wagtail](https://wagtail.io/) – a powerful [Django](https://www.djangoproject.com/) Content Management System.\n- As with most web projects, the frontend dependencies, tasks, etc. are managed using [Node.js](https://nodejs.org/). This project uses [Yarn](https://yarnpkg.com/) and [Gulp](https://gulpjs.com/)\n- [PostgreSQL](https://www.postgresql.org/)/[PostGIS](https://postgis.net/) Database\n  \u003c!-- - [Celery](https://docs.celeryproject.org/en/stable/) Tasks --\u003e\n  \u003c!-- - [Redis](https://redis.io/) as a fast, persistent cache and Celery backend --\u003e\n- [Sendgrid](https://sendgrid.com/) for transactional email\n- [Sentry](https://sentry.io) for error tracking in production\n- [Memcached](http://memcached.org/) for caching image renditions in production\n- [Frontend-cache invalidation](https://docs.wagtail.io/en/stable/reference/contrib/frontendcache.html#frontend-cache-invalidator) using [Cloudflare](https://www.cloudflare.com/)\n- Tests via [pytest](https://pytest.org/)\n- Linting using [Black](https://black.readthedocs.io/), [Flake8](https://flake8.pycqa.org/) and [isort](https://pycqa.github.io/isort/)\n- Task execution and automation using [`invoke`](http://www.pyinvoke.org/).\n- [Continuous integration (CI)](https://www.atlassian.com/continuous-delivery/continuous-integration) via [GitHub Actions](https://github.com/features/actions).\n- Automatic dependency management via [Renovate](https://github.com/marketplace/renovate)\n\n## Development 💻\n\n### First things first\n\nStart by ensuring that you have Docker and Docker Compose:\n\n```sh\n# check that you have docker on your machine\ndocker -v\n\n# check that you have docker-compose on your machine\ndocker-compose -v\n```\n\n### Getting Started\n\nUpon cloning this repository (or forking + cloning your fork), navigate to the cloned project directory: `cd wagtail-branching-workflows`\n\nThen create the required `.env` files:\n\n```sh\ncp -v app/.envs/.dev.env.sample app/.envs/.dev.env\ncp -v app/.envs/.test.env.sample app/.envs/.test.env\n```\n\nBuild the images and spin up the containers:\n\n```sh\ndocker-compose up -d --build\n```\n\nYou'll have to wait a few seconds for some processes to initialize / run (postgres, database migrations, browser-sync, Django server, etc.). You can check the status via\n\n```sh\ndocker-compose logs web\n```\n\nWhen all set, you should see something like this:\n\n```txt\nweb_1  | Performing system checks...\nweb_1  |\nweb_1  | [Browsersync] Proxying: http://127.0.0.1:8000\nweb_1  | [Browsersync] Access URLs:\nweb_1  |  -----------------------------------\nweb_1  |        Local: http://localhost:3000\nweb_1  |     External: http://172.19.0.3:3000\nweb_1  |  -----------------------------------\nweb_1  |           UI: http://localhost:3001\nweb_1  |  UI External: http://localhost:3001\nweb_1  |  -----------------------------------\nweb_1  | [Browsersync] Watching files...\nweb_1  | System check identified no issues (0 silenced).\nweb_1  |\nweb_1  | Django version 3.2.8, using settings 'config.settings.dev'\nweb_1  | Development server is running at http://0.0.0.0:8000/\nweb_1  | Using the Werkzeug debugger (http://werkzeug.pocoo.org/)\nweb_1  | Quit the server with CONTROL-C.\nweb_1  | [Browsersync] Reloading Browsers... (buffered 2 events)\nweb_1  |  * Debugger is active!\nweb_1  |  * Debugger PIN: 104-102-219\n```\n\nYou can now proceed to create a superuser:\n\n```sh\ndocker-compose exec web ./manage.py createsuperuser\n```\n\nLoad initial data:\n\n```sh\ndocker-compose exec web ./manage.py load_initial_data\n```\n\nThis initial data includes 6 users with the following details:\n\n| No. | Email Address              | Password           | Group      | First Name | Last Name  |\n| --- | -------------------------- | ------------------ | ---------- | ---------- | ---------- |\n| 1   | john.doe@example.com       | WriterPassword1    | Writers    | John       | Doe        |\n| 2   | jane.doe@example.com       | WriterPassword2    | Writers    | Jane       | Doe        |\n| 3   | another.writer@example.com | WriterPassword3    | Writers    | Another    | Writer     |\n| 4   | moderator.one@example.org  | ModeratorPassword1 | Moderators | Gina       | Stephenson |\n| 5   | moderator.two@example.org  | ModeratorPassword2 | Moderators | George     | Benson     |\n| 6   | chief@example.org          | ApproverPassword0  | Approvers  | Connie     | Montgomery |\n\nYou can access the dev server at \u003chttp://127.0.0.1:3009\u003e. This project uses [MailDev](https://github.com/maildev/maildev) for viewing and testing emails generated during development. The MailDev server is accessible at \u003chttp://localhost:1089\u003e.\n\n### Tests\n\n```sh\ndocker-compose exec web yarn test\n```\n\n### Code Formatting\n\n- Run `docker-compose exec web invoke lint` to run [`flake8`](https://flake8.pycqa.org/en/latest/), [`black`](https://black.readthedocs.io/en/stable/), [`isort`](https://pycqa.github.io/isort/) on the code.\n- If you get any errors from `black` and/or `isort`, run `docker-compose exec web invoke lint --fix` or `docker-compose exec web invoke lint -f` so that black and isort can format your files.\u003c!-- If this still doesn't work, don't worry, there's a bunch of pre-commit hooks that that have been set up to deal with this. Take a look at [.pre-commit-config.yaml](.pre-commit-config.yaml).--\u003e\n\n### Contributing 🤝\n\nContributions of any kind welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on how to contribute. In addition, please note the following:\n\n- if you're making code contributions, please try and write some tests to accompany your code, and ensure that the tests pass. Also, were necessary, update the docs so that they reflect your changes.\n- commit your changes via `git commit`. Follow the prompts. When you're done, `pre-commit` will be invoked to ensure that your contributions and commits follow defined conventions. See `pre-commit-config.yaml` for more details.\n- your commit messages should follow the conventions described [here](https://www.conventionalcommits.org/en/v1.0.0/). Write your commit message in the imperative: \"Fix bug\" and not \"Fixed bug\" or \"Fixes bug.\" This convention matches up with commit messages generated by commands like `git merge` and `git revert`.\n  Once you are done, please create a [pull request](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request).\n\n## Credits 👏\n\nThis project's structure is based on the [`engineervix/cookiecutter-wagtail-vix`](https://github.com/engineervix/cookiecutter-wagtail-vix) project template.\n\n## Video Demo\n\n[![Watch the video](https://img.youtube.com/vi/qx1LOqJkt9Y/maxresdefault.jpg)](https://youtu.be/qx1LOqJkt9Y)\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fengineervix%2Fwagtail-branching-workflows","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fengineervix%2Fwagtail-branching-workflows","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fengineervix%2Fwagtail-branching-workflows/lists"}