Catalog PyPI
Back to packageRELEASE DETAILS

1.0.0

PyPI

aa-kanban

Kanban Plugin for Alliance Auth

aa_kanbanallianceauth
Published16 Oct 2026
Direct dependencies2
Transitive dependenciesNot calculated

README

Version 1.0.0 documentation

AA Kanban

PyPI version Python versions Tests

Alliance Auth plugin for native Kanban boards.

Features

  • Native Kanban boards with an intuitive drag-and-drop interface for cards and columns, complete with default columns (Backlog, To Do, In Progress, Review/Testing, Done). Columns can be rearranged dynamically via drag-and-drop, and newly created columns are immediately usable without a page refresh.
  • Summary View displaying all accessible boards across standardized status columns.
  • Rich Card & Ticket Descriptions: Markdown formatting with safe, sanitized rendering. Add images by pasting (Ctrl+V), dragging-and-dropping, or using the upload button, with a live [Write] / [Preview] toggle and a fullscreen lightbox for viewing.
  • Global Labels & Card Colors: Flexibly categorize cards using global labels and individual background colors, with automatic text-contrast adjustment.
  • Member Ticket System: Allows regular members to submit tickets (cards). Tickets are automatically routed to the correct board based on the selected target team. Boards can be individually designated as ticket boards. When a Discord ticket thread is created, members of the assigned team are automatically invited to the thread.
  • Permission management: Manage read-only and write groups globally and per board directly from the frontend UI. Easily authorize large numbers of members by linking Django Auth Groups directly to Kanban groups. Board/settings management access can also be granted per Kanban Group (can_manage_boards) entirely from the frontend, without needing Django admin access.
  • Discord Integrations: Receive notifications via Webhooks when boards are created or cards are moved. Ticket threads are automatically generated in configured channels, and Discord DM notifications are sent directly to users when they are assigned to cards (requires the aadiscordbot app).
  • Multilingual Support: Fully supports English and Dutch language interfaces.

Documentation

For a comprehensive guide covering all features, workflows, and frontend administration with screenshots, please see the User & Administration Manual.

Installation

pip install aa-kanban

Add the app to your local.py:

INSTALLED_APPS += [
    "aa_kanban",
]

Run the database migrations:

python manage.py migrate

Gather static files:

python manage.py collectstatic

Restart your supervisor services to load the new code (e.g., gunicorn and celery).

Discord Webhooks Configuration

To receive updates in your Discord channels, you can configure webhooks in the Django Admin panel:

  1. Global Board Creation Webhook:
    • Go to Admin > Kanban Settings > Global Kanban Settings.
    • Fill in the Board creation webhook field with your Discord Webhook URL. You will receive a message whenever a new board is created.
  2. Board-Specific Card Movement Webhooks:
    • Go to Admin > Boards and edit a specific board.
    • Fill in the Discord webhook cards field. Any card movements between lists on this board will be posted to this webhook.
  3. Board-Specific Ticket Channel:
    • Go to Admin > Boards and edit a specific board.
    • Fill in the Discord Ticket Channel ID field. New tickets submitted to this board will automatically create a thread in this channel. If the ticket is assigned to a KanbanTeam, all team members will be automatically invited to the thread.

Settings

You can customize the application by adding the following settings to your local.py:

# Change the name of the app in the Alliance Auth sidebar menu (default: "Kanban")
AA_KANBAN_APP_NAME = "Ticket System" 

Periodic Tasks (Celery Beat)

To enable automatic hourly alerts for stale/inactive cards on boards that have stale_card_alert_hours configured, add the following task to your local.py:

CELERYBEAT_SCHEDULE["aa_kanban_check_stale_cards"] = {
    "task": "aa_kanban.tasks.check_stale_cards",
    "schedule": crontab(minute="0", hour="*"),
}

To enable daily auto-archiving of cards that have sat in a board's last list past its configured archive_after_days, add:

CELERYBEAT_SCHEDULE["aa_kanban_archive_done_cards"] = {
    "task": "aa_kanban.tasks.archive_done_cards",
    "schedule": crontab(minute="0", hour="3"),
}

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 2

Native requirements
2 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
allianceauth
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "<3.14,>=3.10",
  "evaluation": "NOT_EVALUATED"
}
allianceauth>=5runtime
markdown
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "<3.14,>=3.10",
  "evaluation": "NOT_EVALUATED"
}
markdown>=3.4runtime

Distribution files

2 collected
aa_kanban-1.0.0-py3-none-any.whl

bdist_wheel · 180.36 KB · Python py3

Source file
aa_kanban-1.0.0.tar.gz

sdist · 127.23 KB · Python source

Source file

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 16:57 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:48cfba91d4292355cf1c8afe3ff60e6e63ea8f1031156daf7abb4bfa759efc11

Other collected versions

View all collected versions →