Metadata-Version: 2.1
Name: aa-metenox
Version: 0.1.10
Summary: Metenox app config
Author-email: T'rahk Rokym <trahk.rokym@gmail.com>
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Framework :: Django :: 4.0
Classifier: Framework :: Django :: 4.2
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Requires-Dist: allianceauth>=4
Requires-Dist: aa-moonmining>=1.11
Requires-Dist: allianceauth-app-utils>=1.25.0
Requires-Dist: django-datatables-view>=1.20.0
Project-URL: Changelog, https://gitlab.com/r0kym/aa-metenox/-/blob/main/CHANGELOG.md
Project-URL: Homepage, https://gitlab.com/r0kym/aa-metenox
Project-URL: Source, https://gitlab.com/r0kym/aa-metenox
Project-URL: Tracker, https://gitlab.com/r0kym/aa-metenox/-/issues

# Metenox

AA module for Metenox management.

This module is still under active development and might have breaking changes

## Feature roadmap:
- [x] Estimate the value of moons by importing the [aa-moonmining](https://gitlab.com/ErikKalkoken/aa-moonmining) database
  - [x] Displays the exact hourly pull of the moon
- [x] Import Metenoxes from a corp
  - [x] Estimate corp monthly revenue
  - [ ] Notifications when low reagent/fuel
- [x] Manager overview of corporations

### What this app won't do:
- Estimate moon price for athanor.
  Use [aa-moonmining](https://gitlab.com/ErikKalkoken/aa-moonmining)
- Ping when metenox are being reffed
  Use [aa-structures](https://gitlab.com/ErikKalkoken/aa-structures)

This module aims to be specific for Metenox management.

## Installation

### Step 1 - Check prerequisites

1. Metenox is a plugin for Alliance Auth. If you don't have Alliance Auth running already, please install it first before proceeding. (see the official [AA installation guide](https://allianceauth.readthedocs.io/en/latest/installation/auth/allianceauth/) for details)

2. Metenox requires the Alliance Auth module [aa-moonmining](https://gitlab.com/ErikKalkoken/aa-moonmining) to function.
  The moon database and other utilities is imported from this module.

### Step 2 - Install app

Make sure you are in the virtual environment (venv) of your Alliance Auth installation. Then install the newest release from PyPI:

```bash
pip install aa-metenox
```

### Step 3 - Configure Auth settings

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

- Add `'metenox'` to `INSTALLED_APPS`
- Add below lines to your settings file:

```python
CELERYBEAT_SCHEDULE['metenox_update_moon_prices'] = {
    'task': 'metenox.tasks.update_moon_prices',
    'schedule': crontab(minute='0', hour='*/12'),
}
CELERYBEAT_SCHEDULE['metenox_update_moons_from_moonminin'] = {
    'task': 'metenox.tasks.update_moons_from_moonmining',
    'schedule': crontab(minute='*/5'),
}
```

Optional: Alter the application settings.
The list can be found in [Settings](#settings)

### Step 4 - Finalize App installation

Run migrations & copy static files

```bash
python manage.py migrate
python manage.py collectstatic --noinput
```

Restart your supervisor services for Auth.

### Setp 5 - Load Goo from ESI

Run the following management command to load all moon goos from ESI.
This only has to be ran once.

```bash
python manage.py metenox_load_eve
```

Wait until the command is finished before continuing.

### Step 5 - Load data

First load the data from the moonmining module using
```bash
python manage.py metenox_update_moons_from_moonmining
```

Once it's done update their prices with

```bash
python manage.py metenox_update_all_prices
```

## Settings

List of settings that can be modified for the application.
You can alter them by adding them in your `local.py` file.

| Name                                 | Description                                                                                                    | Default |
|--------------------------------------|----------------------------------------------------------------------------------------------------------------|---------|
| 'METENOX_ADMIN_NOTIFICATIONS_ENABLE' | Whether admins will get notifications about important events like when someone adds a new owner.               | True    |
| 'METENOX_MOON_MATERIAL_BAY_CAPACITY' | Volume of the Metenox's Moon material Output Bay. Used to calculate how long a metenox takes before being full | 500_000 |
| 'METENOX_HOURLY_HARVEST_VOLUME '     | Hourly volume in m3 that a metenox will harvest. This value shouldn't be edited                                | 30_000  |
| 'METENOX_HARVEST_REPROCESS_YIELD '   | Yield at which the metenox reprocess the harvested materials. This value shouldn't be edited                   | 0.40    |


## Commands

The following commands can be used when running the module:

| Name                                   | Description                                                               |
|----------------------------------------|---------------------------------------------------------------------------|
| `metenox_load_eve`                     | Loads up the data from `eveuniverse` this command should only be ran once |
| `metenox_update_all_owners`            | Updates all owners known in the database and adds the new metenoxes       |
| `metenox_update_all_prices`            | Fetches new prices from fuzzwork and update the price of all known moons  |
| `metenox_update_moons_from_moonmining` | Checks the moonmining application and adds all missing moons              |

