Skip to main content

Fitting Mastery and Skill Plan generator.

Project description

Fitting Mastery Plugin for Alliance Auth

aa-fitting-mastery is an Alliance Auth plugin that turns doctrine fittings into actionable skill plans.

It connects your configured doctrines and fittings from the fittings plugin with character and skill data from aa-memberaudit, then provides:

  • pilot readiness views for accessible doctrine fittings,
  • missing required and recommended skills,
  • exportable in-game skill plans,
  • configurable required and recommended skill plans per fitting,
  • leadership summary views for doctrine coverage.

release python django license pre-commit Code style: black

Contents

Overview

Fitting Mastery is designed for organizations that already manage doctrine ships in fittings and track character skills in aa-memberaudit.

The plugin adds two complementary workflows:

  1. Pilot workflow

    • members can see which of their characters can fly a doctrine fitting,
    • inspect missing required / recommended skills,
    • export missing skills in a format suitable for EVE skill plan import.
  2. Leadership workflow

    • doctrine managers can configure fitting skill plans,
    • review suggestions to blacklist or restore skills,
    • define summary groups across corporations and alliances,
    • view doctrine coverage for a selected audience.

Access to doctrines and fittings follows the visibility rules from the fittings plugin so that category restrictions are respected consistently.

Requirements

This plugin depends on the following components:

  • fittings — required
  • aa-memberaudit — required
  • django-eveonline-sde / eve_sde — required for ship mastery and dogma data
  • Alliance Auth 4.x

Important This plugin does not replace fittings or aa-memberaudit. It builds on top of both. You need both plugins installed and working before enabling mastery.

Main features

  • Generate fitting skill plans from doctrine ships and their modules
  • Merge required fitting skills with recommended ship mastery skills
  • Add manual skills, blacklist skills, or override recommended levels per fitting
  • Detect and suggest skills that can be removed from a plan
  • Export missing skills in dependency-safe order for in-game EVE import
  • Support multiple export languages for skill names
  • Show member-facing doctrine readiness based on accessible fittings only
  • Show leadership doctrine coverage across configurable corp/alliance audience groups
  • Keep fitting access aligned with the access rules configured in the fittings plugin

Screenshots

Character progress

Character progress

Fitting skill plan management

Fitting skill plans

Installation

1 - Install prerequisites

Make sure your Alliance Auth installation already has these apps installed and configured:

  • fittings
  • memberaudit
  • eve_sde

2 - Install the package

Install the plugin into your Alliance Auth virtual environment:

pip install aa-fitting-mastery

3 - Add the app to Alliance Auth

Add mastery to INSTALLED_APPS in your local.py:

INSTALLED_APPS += [
    "mastery",
]

4 - Configure the scheduled SDE mastery update task

Add the periodic task to your CELERYBEAT_SCHEDULE (every day at midnight):

from celery.schedules import crontab

CELERYBEAT_SCHEDULE["update_sde_masteries"] = {
    "task": "mastery.tasks.update_sde_masteries",
    "schedule": crontab(minute="0", hour="0"),
}

5 - Run migrations and collect static files

python manage.py migrate
python manage.py collectstatic

6 - Import mastery data

Import ship mastery and certificate data from the EVE SDE:

python manage.py import_sde_masteries

For a test run without writing to the database:

python manage.py import_sde_masteries --dry-run

7 - Restart your services

Restart your web and Celery services so the plugin and beat task are loaded.

Updating

To update an existing installation:

pip install -U aa-fitting-mastery
python manage.py migrate
python manage.py collectstatic

Then restart your web and Celery services.

Configuration

After installation, the usual setup flow is:

  1. Ensure your doctrines and fittings already exist in the fittings plugin
  2. Open Manage Skill Plans in Fitting Mastery
  3. Generate or sync doctrine skill plans
  4. Review each fitting and adjust:
    • mastery level,
    • manual skills,
    • blacklisted skills,
    • recommended level overrides,
    • skill suggestions
  5. If you want doctrine leadership views, create audience groups in Summary Group Settings
  6. Assign the appropriate permissions to members, doctrine managers and leadership roles

Access model

For pilot-facing views, Fitting Mastery uses the same fittings visibility rules as the fittings plugin.

That means:

  • users must have access to fittings itself,
  • category restrictions remain effective,
  • doctrines and fittings that are hidden in fittings will not be exposed by Fitting Mastery.

Permissions

The plugin defines the following permissions:

Code Description
basic_access Can access the pilot-facing Fitting Mastery pages
manage_fittings Can manage doctrine/fitting skill plans
doctrine_summary Can view leadership doctrine summary pages
manage_summary_groups Can create and manage summary audience groups

Recommended usage

  • Members: basic_access
  • Doctrine / fitting managers: basic_access, manage_fittings
  • Leadership / FC / HR reviewers: basic_access, doctrine_summary
  • Admins managing summary scopes: manage_summary_groups

In practice, pilot-facing access is usually granted together with fitting visibility from the fittings plugin.

You will typically also want matching access in the fittings plugin, especially fittings.access_fittings or fittings.manage.

How it works

At a high level the plugin works like this:

  1. It reads the ship and module requirements from fitting dogma data
  2. It reads ship mastery recommendations from imported SDE mastery data
  3. It combines both into a per-fitting skill plan
  4. It lets managers refine that plan with blacklists, manual additions and level overrides
  5. It compares those plans against character skills from aa-memberaudit
  6. It presents the result in pilot and leadership views

Required vs Recommended

  • Required skills come from fitting / module requirements and their recursive prerequisites
  • Recommended skills come from ship mastery data, plus any manual adjustments you configure

Summary groups

Doctrine summary views can be scoped to configurable audience groups.

Each summary group can combine:

  • corporations,
  • alliances,
  • mixed corporation/alliance audiences.

This makes it possible to review doctrine coverage for a coalition, SIG, alliance wing or any other relevant operational scope.

Exported skill plans

When exporting missing skills for a pilot, the plugin:

  • includes all missing intermediate levels,
  • adds missing prerequisites recursively,
  • orders skills so prerequisites appear first,
  • supports multiple languages for skill labels.

Settings

The following setting can be added to your Alliance Auth local.py:

Name Description Default
MASTERY_PLAN_ESTIMATE_SP_PER_HOUR Training speed used to estimate plan duration in fitting previews 1800

Example:

MASTERY_PLAN_ESTIMATE_SP_PER_HOUR = 1800

Notes

  • If you change doctrine skill plan configuration, regenerate or sync the affected doctrine/fitting so changes are reflected in the active skill set.
  • If leadership summaries are enabled, remember to configure at least one summary audience group.
  • If no mastery data has been imported yet, recommended ship skills will be incomplete until import_sde_masteries has been run.
  • Fitting Mastery respects fitting visibility from the fittings plugin and will not intentionally expose restricted doctrines or fittings outside that access model.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aa_fitting_mastery-0.1.1.tar.gz (310.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aa_fitting_mastery-0.1.1-py3-none-any.whl (110.8 kB view details)

Uploaded Python 3

File details

Details for the file aa_fitting_mastery-0.1.1.tar.gz.

File metadata

  • Download URL: aa_fitting_mastery-0.1.1.tar.gz
  • Upload date:
  • Size: 310.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for aa_fitting_mastery-0.1.1.tar.gz
Algorithm Hash digest
SHA256 71c79bcd029e5656cbae3f25c9d3cb40f6890786eef75e70fb0dcbdd879848c5
MD5 9c0966a3f9a8864cee51b36f634141df
BLAKE2b-256 6d507ee79050784e3647e4ae08b0974c621202666d754bedb6776121df4cd36c

See more details on using hashes here.

File details

Details for the file aa_fitting_mastery-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for aa_fitting_mastery-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f9697564db1ffcd69cd6c58c08e4d1a66c34b1973e2a58c13f6d9aa3ab021d3e
MD5 132cb6de1e16c3b74c1ce3da70e8cd0b
BLAKE2b-256 3e4929054461cb704ca67f53dccfc263d04d4cb3e911185e121336c3055213d8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page