Skip to content

Character & Corporation Ledger Statistics for Alliance Auth

License

Notifications You must be signed in to change notification settings

Geuthur/aa-ledger

Repository files navigation

Ledger module for AllianceAuth.

pre-commit.ci status Code style: black Tests codecov

ko-fi

Character and Corporation statistics, including detailed information on ESS, Ratting, Trading, Mining, and other activities.


Features

  • Statistics
    • Graphical Statistics
    • Yearly, Monthly, Daily, Hourly
    • Current Day
  • Character Ledger
    • Graphical Overview for each Character
      • Graphical Statistics
    • Ratting
    • Encounter Surveillance System Payouts
    • Mining
    • Trading
    • Costs
  • Corporation Ledger
    • Graphical Overview for each Member
    • Ratting Tax
    • Encounter Surveillance System Tax
  • Alliance Ledger
    • Graphical Overview for each Corporation
    • Ratting
    • Encounter Surveillance System Tax
  • Planetary Ledger
    • Graphical Overview for each Planet
    • Notification if Extractor expire
    • Switchable Notification for each Planet
    • Products Overview
  • Events Calender

Upcoming

  • Bug Fixing, Performance Optimation
  • Costs for Corporation Ledger

Installation

Note

AA Ledger needs at least Alliance Auth v4.0.0 Please make sure to update your Alliance Auth before you install this APP

Step 0 - Check dependencies are installed

Step 1 - Install the Package

Make sure you're in your virtual environment (venv) of your Alliance Auth then install the pakage.

pip install aa-ledger

Step 2 - Configure Alliance Auth

Configure your Alliance Auth settings (local.py) as follows:

  • Add 'ledger', to INSTALLED_APPS

Step 3 - Add the Scheduled Tasks

To set up the Scheduled Tasks add following code to your local.py

CELERYBEAT_SCHEDULE["ledger_character_audit_update_all"] = {
    "task": "ledger.tasks.update_all_characters",
    "schedule": crontab(minute=0, hour="*/1"),
}
CELERYBEAT_SCHEDULE["ledger_corporation_audit_update_all"] = {
    "task": "ledger.tasks.update_all_corps",
    "schedule": crontab(minute=0, hour="*/1"),
}
CELERYBEAT_SCHEDULE["ledger_check_planetary_alarms"] = {
    "task": "ledger.tasks.check_planetary_alarms",
    "schedule": crontab(minute=0, hour="*/3"),
}

Step 3.1 - (Optional) Setting up Compatibilies>

Note

If you have Member Audit installed add this to Fetch Member Audit Chars and Sync with Ledger

CELERYBEAT_SCHEDULE["ledger_character_member_audit_fetch"] = {
    "task": "ledger.tasks.create_member_audit",
    "schedule": crontab(minute=0, hour="*/1"),
}

Step 4 - Migration to AA

python manage.py collectstatic
python manage.py migrate

Step 5 - Setting up Permissions

With the Following IDs you can set up the permissions for the Ledger

Important

Character, Corporation, Alliance Ledger only show Data from User has access to advanced_access give User access to see own Corporations he is in

ID Description
basic_access Can access the Ledger module All Members with the Permission can access the Ledger.
advanced_access Can access Corporation and Alliance Ledger Can see Corporation & Alliance Ledger.
admin_access Can access the Administration tools Can Add Corporations, Alliances.
char_audit_manager Has Access to all characters for own Corp Can see all Chars from Corps he is in.
char_audit_admin_manager Has Access to all Characters Can see all Chars.
corp_audit_admin_manager Has Access to all Corporations Can see all Corps.

Step 6 - (Optional) Setting up Compatibilies

The Following Settings can be setting up in the local.py

  • LEDGER_APP_NAME: "YOURNAME" - Set the name of the APP

  • LEDGER_CORP_TAX: 15 - Set Tax Value for ESS Payout Calculation

  • LEDGER_LOGGER_USE: True / False - Set to use own Logger File

If you set up LEDGER_LOGGER_USE to True you need to add the following code below:

LOGGING_LEDGER = {
    "handlers": {
        "ledger_file": {
            "level": "INFO",
            "class": "logging.handlers.RotatingFileHandler",
            "filename": os.path.join(BASE_DIR, "log/ledger.log"),
            "formatter": "verbose",
            "maxBytes": 1024 * 1024 * 5,
            "backupCount": 5,
        },
    },
    "loggers": {
        "ledger": {
            "handlers": ["ledger_file", "console"],
            "level": "INFO",
        },
    },
}
LOGGING["handlers"].update(LOGGING_LEDGER["handlers"])
LOGGING["loggers"].update(LOGGING_LEDGER["loggers"])

Highlights

ledger1

ledger2

ledger3

ledger4

ledger5

ledger6

Note

Contributing You want to improve the project? Just Make a Pull Request with the Guidelines. We Using pre-commit