All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Switch to
django-solo
to provide the singleton for the settings model, instead of the custom implementation
- EVE-KILL to the list of valid killboards for posting kill mails in SRP requests
- Dependencies updated
allianceauth
>=4.3.1
- French translation improved
- German translation improved
- Korean translation improved
- Russian translation improved
- Lingua codes updated to match Alliance Auth v4.3.1
- Prepared Czech translation for when Alliance Auth supports it
- Request form being sent multiple times when clicked multiple times
- French translation updated
- German translation updated
- Japanese translation updated
- Bootstrap tooltips
- "View all/active" button now is only shown when in the SRP links view
- Chinese translation updated
- French translation updated
- Japanese translation updated
- Korean translation updated
- SRP payout not editable in translated views
- Support for Python 3.8 and Python 3.9
- SRP request status now shows its translated value in the SRP request detail modal
- German translation updated
- Integrity hashes to CSS and JS files to prevent tampering
- Kill mail detection from zKillboard's API response.
Under certain circumstances, the zKillboard API returns more than one kill mail in the response, which caused an error in the SRP request form. This has been fixed now.
- "View all" button now switches between "View all" and "View active" to make it more obvious what it does
- Better navigation item names
- Top navigation improved
- Translations updated
- Use Bootstrap 5 CSS and JS for Datatables in the SRP request view
- Re-add the tooltip to SRP payout value field in the SRP request view
Note
This version needs at least Alliance Auth v4.0.0!
Please make sure to update your Alliance Auth instance before you install this version, otherwise, an update to Alliance Auth will be pulled in unsupervised.
- Compatibility to Alliance Auth v4
- Bootstrap 5
- Django 4.2
- Native lazy loading support for images
- JS modernized
- CSS modernizes
- Templates changed to Bootstrap 5
- Translations improved
- General code cleanup and modernization
- Compatibility to Alliance Auth v3
Note
This version needs at least Alliance Auth v4.0.0b1!
Please make sure to update your Alliance Auth instance before you install this version, otherwise, an update to Alliance Auth will be pulled in unsupervised.
- Project classifier in
pyproject.toml
Note
This version needs at least Alliance Auth v4.0.0b1!
Please make sure to update your Alliance Auth instance before you install this version, otherwise, an update to Alliance Auth will be pulled in unsupervised.
- Compatibility to Alliance Auth v4
- Bootstrap 5
- Django 4.2
- Native lazy loading support for images
- JS modernized
- CSS modernizes
- Templates changed to Bootstrap 5
- Translations improved
- General code cleanup and modernization
- Compatibility to Alliance Auth v3
Note
This is the last version compatible with Alliance Auth v3.
- Setting for the loss value source [#153]
- Pluralisation in a template string
- German translation updated
- Capitalization for translatable strings
- Use
clean_setting
function fromallianceauth-app-utils
instead of reinventing the wheel and have our own - Translations updated
- Test suite updated
- Exception: 'NoneType' object has no attribute 'character_name' when opening the Dashboard view, and in one of the displayed SRP links is a fleet commander who doesn't exist anymore.
- Catch
AttributeError
exception on migration from the AA built-in SRP module - Don't create SRP requests for non-existent users on migration from AA built-in SRP module
- Spanish translation improved
- Korean translation improved
- Discord notification handling moved to its own module
- Message generation for the SRP Team message simplified
- Using
SITE_URL
fromlocal.py
- Korean translation improved
- Spanish translation improved
- Bootstrap CSS fix
- TypeError: getattr() takes no keyword arguments
- TypeError: str.replace() takes no keyword arguments
- Footer template to make it easier for translators
- Footer to promote help with the app translation
- Ukrainian translation improved
- Minor code refactoring
This release includes all the changes from v1.20.0-alpha.1 as well as the following:
If you by any chance installed v1.20.0-alpha.1 you have to reset the migrations before updating to this version. This release contains multiple migrations from the development process that have been combined.
To reset the migration from the Alpha version, run:
python manage.py migrate aasrp 0009
If you are unsure, you can check which migrations are applied with:
python manage.py showmigrations aasrp
If the last line does not say [X] 0010_change_model_names_and_verobose_names
,
you are good to go. (And yes, I know, there is a typo in that migration name.)
This version has quite some changes to its database models, so please make sure to back up your database before you update.
These database changes mean that apps which use any of this app's DB tables (e.g.: Grafana Dashboards if you use them or AA Fleet Pings) will break and will need to be updated as well. For AA Fleet Pings there will be a release alongside this one.
Once you have your database backed up, run the following:
pip install aa-srp==1.20.0
python manage.py migrate aasrp
After that, update all other apps that need to be updated following the usual process.
- Hardcoded category ID and using the constant from
django-eveuniverse
directly
- Moved settings from
local.py
to the database - Existing translations improved
- Minimum requirements
- allianceauth>=3.0.0
- allianceauth-app-utils>=1.19.0
- django-eveuniverse>=1.2.0
AttributeError: 'NoneType' object has no attribute 'character_name'
forSrpRequest
model- SRP code in discord channel message
- German translation improved
- Renamed (Giving various things a saner name):
- Models including their verbose names
- Form classes
- Admin classes
- Manager
- Views split into their respective files, makes it easier to maintain
- Moved the build process to PEP 621 / pyproject.toml
- Text labels consistency (#100)
- Russian translation
- German translation updated
- Label in AAR Form
- Translation strings (#94)
- German translation updated
- Alliance Character view their SRP request detail error (#81)
- SRP link name to request form
- Optimized code to check if an SRP link exists when requesting SRP
aasrp_load_eve
can run without user interaction with the--no-input
or--noinput
argument
- Made request detail modals a bit larger
- User settings are now fetched for the right user
This release includes all changes from v1.16.0 (YANKED) as well as the following:
If you already installed v1.16.0 and successfully ran migrations, please run the following command before updating to this version.
python manage.py migrate aasrp 0006
This will re-set your migrations to the state of v1.15.2, and you can update as you would normally do from here.
If you haven't installed v1.16.0 yet, you can just update as usual.
- Migration error for MySQL8 (
django.db.utils.OperationalError: (1292, "Incorrect datetime value: '0000-00-00 00:00:00' for column 'comment_time' at row 1")
) Thanks to Rhaven (on AA support Discord) for reporting and testing this
- Python 3.11 from tests. AA is not tested yet with it, and it's not even stable at the moment.
This release has been yanked from Pypi due to a migration error on systems with mySQL8
- Comment field for accepting SRP requests. This is optional when pending requests are accepted, but mandatory when formerly rejected requests are accepted to state a reason.
- Request history to the request information window
- RGB notations in CSS files modernized
- Bottom border color for changeable payout value for SRP requests that'd been rejected. Now it's not that prominent anymore and doesn't look like a pending SRP request
- Modal window handling improved
- JS and CSS moved to bundled HTML templates
- Minimum requirements
- allianceauth>=2.15.1
- allianceauth-app-utils>=1.14.0
- django-eveuniverse>=0.16.3
- Unused JavaScript
- Deprecated
type
attribute fromscript
tags - Deprecated
type
attribute fromstyle
tags - Tests for non-stable version of Alliance Auth
-
Tooltip to make it a bit more obvious that SRP payout values can be changed (#72)
- Moved SRP recalculation to its own function
- Highlight color for SRP amount changed
- JS order in template
- Removed a sneaky
'
in a modal template
- Switched to the new notification API
- Using bundled
filterDropDown
JavaScript - Ajax render template moved to a more logical place
x-editable
lib moved to a bundled templatex-editable
lib updated to v1.5.3
- Unnecessary
{% load static %}
statements from templates - Unnecessary
{% load humanize %}
statements from templates - Unused JavaScript and CSS
- Grammar in comments fixed
- Commented and no longer used code removed
- Code cleaned up in general
- Always serve JS and CSS locally (GDPR)
- Functions to check if an additional module is installed have been renamed to something that makes more sense
- Optimized notification helper to send Discord messages
- Minimum requirements
- Python (>= 3.8)
- Notifications to Discord when using
allianceauth-discordbot
- AttributeError exception in
get_main_character_from_user
when the user doesn't have a main character anymore - Possible RelatedObjectDoesNotExist error in
get_main_for_character
- Possible RelatedObjectDoesNotExist error in
get_user_for_character
- Logic for Discord PMs changed/optimized. We now check if the user has a Discord account registered with Alliance Auth first, so we don't have to do all the other checks if the user doesn't
- EveCharacter has no userprofile (#62)
- HTML for an ajax call result moved to its own template
- Reverted JS arrow function back to a normal function, since we need
$(this)
here
- Test suite for AA 3.x and Django 4
- Switched to
setup.cfg
as config file, sincesetup.py
is deprecated now
- Deprecated settings
- [Compatibility] AA 3.x / Django 4 :: ImportError: cannot import name 'ugettext_lazy' from 'django.utils.translation'
- Modal windows
- More logging to the Discord message logic
- Enable editable SRP amount field only for pending and rejected requests (#51)
- CSS classes in templates
- Only count approved SRP requests towards the total SRP costs
- JavaScript modernised
models.TextChoices
refactored for better code readability- Using
path
in URL config instead of soon-to-be removedurl
- Outdated management commands. By now everyone should have updated to a version where they're no longer needed. No one should have a version that's older than a year ...
- Don't try to get a character name from a deleted user account. There is none.
- Try harder with the Discord messages. (
discordproxy
is the prioritized way to send messages to Discord, but if anything fails with it, always try forallianceauth-discordbot
to get the message out)
- Better handling for Discord messages (Prioritise
discordproxy
overallianceauth-discordbot
when both are installed) - Embedded Discord messages to the SRP team channel, when
discordproxy
is installed
- Import from a module that might not even be there at all, which could have resulted in Discord PMs not being delivered
- Access tests
- Some minor code optimisations
- Access for users with
manage_srp_requests
- Discord PMs on SRP accept/reject when
discordproxy
is installed as stand-alone, withoutaa-discordnotify
- JavaScript:
const
instead oflet
where ever appropriate - Minimum requirements
- Alliance Auth v2.9.4
- Workaround for possible bug in AA-Discordbot (#41)
- General code cleanup and modernization
- Switched to Alliance Auth App Utils for some helper functions
- Non-used code
- Minimum requirements
- Python 3.7
- Alliance Auth v2.9.3
- AttributeError ('NoneType' object has no attribute 'id') when, for whatever reason,
the ship type has been removed from the
EveType
table
- Versioned static files to prevent browser cache related errors on app updates
- Minimum requirements for:
- Alliance Auth (>= 2.9.0)
- Django Eveuniverse (>= 0.8.2)
- Python (>= 3.7)
- AttributeError: Resource Killmails not found. Available resources: Alliance, Character, Corporation, Universe. This was caused by using AA's ESI provider, which has changed. We now use our own ESI provider for everything ESI related.
- Get the sentry username when a creator/reviser has been deleted
- Improved performance by reducing the number of SQL queries
- Check for compatibility with Python 3.9 and Django 3.2
- EveTools Killboard as accepted source for SRP request kill mails
- Masked the
@
symbol in additional information text in the Discord message to the SRP team to not accidentally ping in case a Discord ping was copied in there
- Check for valid zKillboard URL is now done completely via regular expressions.
- Insurance information to SRP request details modal (Only for new SRP requests)
- Autocomplete from date/time field removed, so the datepicker works again properly
- Using Django application registry instead of directly accessing
INSTALLED_APPS
- IndexError on invalid kill mail link
- Forms now using form generation via django-bootstrap-form instead of own template construct that was falling apart already
- Permission decorators (#22)
- Using regular expression to determine if we're looking at a kill mail link or not
- Required field hint in forms now has its own template since it is not needed in every form to avoid confusion
- Copy to clipboard should only be available for active SRP links
exception=IndexError('list index out of range')
for Discord notifications on new SRP request
- Copy to clipboard for the SRP link in SRP dashboard view
- Copy to clipboard for pilot name in SRP link view
- Notification functions moved to its own module to avoid code duplications
- SRP cost info bar removed from user settings tab
- Option for users to disable notifications for this module. When enabled, no notifications will be sent at all. Neither in AA itself nor on Discord (if any of the Discord apps is active)
- Check if AA Discord Notify is installed, which picks up on notifications in Auth and relays them to the respective user as Discord PM. This way, we don't send double notifications to the user if AA-Discordbot is installed as well.
- Enabled paging for SRP link table on dashboard in "View All" mode
- Option to notify the SRP team in their Discord channels about new SRP requests. (You need to have AA-Discordbot installed and configured to use this option)
- Discord PM on approval or reject goes to the reviewer instead of the requester (#11)
This has now been tested long enough by my corp, and it's time to fully release the module now, so here we go ...
If you are updating from an earlier beta-version, please make sure to read through this changelog, beginning from the beta-version you were using. You might have to do some manual work, so please update step by step.
- An issue where too many notifications where created on when a request was accepted
- More details to notifications
- Discord notification via PM to the user on SRP request approval or rejection if the AA-Discordbot is installed
- Migrated SRP request comments (Additional request information and reject information) into their own model
IMPORTANT
If you update from v0.1.0-beta.15 or earlier, make sure to read carefully.
In this version, the way the SRP request comments are handled has been changed. It is no longer just a simple string in the database table, it is now a proper model. So you have to an extra steps to migrate your data.
This needs to be done right after you have updated AA SRP from a version prior v0.1.0-beta.16.
To migrate the comments from SRP requests to their own model, run: (Make sure you ran migrations before running this command.)
python manage.py aasrp_migrate_to_comments
- Modal headers
- Form validation has been moved to the form model instead of view, so the person requesting SRP doesn't have to restart the whole process again if form validation fails
- Form error messages formatted
- EVE/UTC tz handling optimized
- Panel title for the overview panel in SRP requests view
- Missing modal for "Delete SRP Request" re-added
- SRP request details modal in "Your SRP Requests" tab on dashboard view
- SRP request status to details modal
- Modals separated into their own templates
- Wrapped datatables in responsive div
- Moved useragent to constants
- JS re-organized
- Fleet name to overview in SRP link view
- Module call in init file
- Mandatory reason on SRP reject
- Type hints to classes and functions
- Filter dropdowns for character again -.-
- Character portrait formatting
- zKillboard link with icon in request detail modal
- Filter dropdowns for character
- Character portraits and ship icons
- Ship is now a proper EveType model instead of just a string
IMPORTANT
If you update from v0.1.0-beta.4 or earlier, make sure to read carefully.
In this version, the way the SRP ship is handled has changed. It is no longer just a simple string in the database, it is now a proper EveType model. So you have to do some extra steps to migrate your data.
This needs to be done right after you have updated AA SRP from a version prior v0.1.0-beta.5.
This should be done automatically with the update, but there is still a bit of
manual work to it. First you need to add the EveUniverse module to your
INSTALLED_APPS
in your loca.py
.
- Add
"eveuniverse",
toINSTALLED_APPS
Now that EveUniverse is installed, you need to run the static collection and migration. Remember to restart your supervisor afterward.
python manage.py collectstatic
python manage.py migrate
Restart your supervisor services for Auth
This is where the magic happens. You're now ready to import the ship information from ESI.
python manage.py aasrp_load_eve
Now that we have all the needed information, your SRP data needs to be updated. This is just another simple command.
python manage.py aasrp_update_db_relations
- Permissions on "Edit AAR Link" view some ajax requests
- First public beta release