This repository has been archived on 2026-02-24. You can view files and clone it. You cannot open issues or pull requests or push a commit.
giles 154f968296 feat: decouple events from shared_lib, add app-owned models
Phase 1-3 of decoupling:
- path_setup.py adds project root to sys.path
- Events-owned models in events/models/ (calendars with all related models)
- All imports updated: shared.infrastructure, shared.db, shared.browser, etc.
- Calendar uses container_type/container_id instead of post_id FK
- CalendarEntryPost uses content_type/content_id (generic content refs)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 12:46:36 +00:00

Events App

Calendar and event booking service for the Rose Ash cooperative platform.

Overview

The events app provides calendar-based event booking with flexible slot management. It runs as a standalone Quart microservice, part of the multi-app coop architecture.

Structure

app.py              # Application factory and entry point
events_api.py       # Internal JSON API (server-to-server, CSRF-exempt)
bp/                 # Blueprints
  calendars/        # Calendar listing
  calendar/         # Single calendar view and admin
  calendar_entries/ # Calendar entries listing
  calendar_entry/   # Single entry view and admin
  day/              # Day view and admin
  slots/            # Slot listing
  slot/             # Single slot management
  ticket_types/     # Ticket type listing
  ticket_type/      # Single ticket type management
templates/          # Jinja2 templates
  _types/           # Feature-specific templates

Running

# Set required environment variables (see .env.example)
export APP_MODULE=app:app
hypercorn app:app --bind 0.0.0.0:8000

Docker

docker build -t events .
docker run -p 8000:8000 --env-file .env events

Notes

  • This app does not run Alembic migrations. Database schema is managed by the blog app.
  • Internal API endpoints under /internal/events/ are used by the cart app for cross-service communication.
  • Depends on shared packages (shared/, models/, config/) from the main coop monorepo.
Description
No description provided
Readme 578 KiB
Languages
HTML 51%
Python 48.4%
Shell 0.3%
Dockerfile 0.3%