goats_setup/

This Django app bootstraps a new GOATS installation by configuring project settings, URLs, and ASGI routing. It is invoked by the CLI’s goats install command and defines a Django management command to perform this setup non-interactively.

Main Responsibilities

  • Provides the goats_setup management command.

  • Modifies settings.py, urls.py, and asgi.py using Jinja2-based templates.

  • Registers required GOATS and TOMToolkit apps.

  • Configures Redis, Channels, and static/media directories for GOATS projects.

Files

  • apps.py Django app registry file for goats_setup.

  • management/commands/goats_setup.py Custom Django management command used by goats install. Applies settings modifications using the provided templates. Supports CLI options like --media-dir, --ci, and --redis-addrport.

  • templates/goats_setup/ Jinja2-compatible templates rendered into the generated project.

    • settings.tmpl Used to produce a modified settings.py with required installed apps and middleware.

    • urls.tmpl Used to generate a urls.py pre-configured with GOATS and TOMToolkit routes.

    • asgi.tmpl Used to configure Channels and Redis for asynchronous features.