Use alliance ticker stored in character table.

This commit is contained in:
Adarnof 2018-04-17 16:09:50 -04:00
parent 6c7b65edad
commit 20236cab8a
2 changed files with 7 additions and 10 deletions

View File

@ -1,10 +1,8 @@
from django.conf.urls import include, url from django.conf.urls import include, url
from django.template.loader import render_to_string from django.template.loader import render_to_string
from django.utils.functional import cached_property from django.utils.functional import cached_property
from django.core.exceptions import ObjectDoesNotExist
from django.conf import settings from django.conf import settings
from string import Formatter from string import Formatter
import re
from allianceauth.hooks import get_hooks from allianceauth.hooks import get_hooks
@ -161,16 +159,10 @@ class NameFormatter:
'corp_id': getattr(main_char, 'corporation_id', None), 'corp_id': getattr(main_char, 'corporation_id', None),
'alliance_name': getattr(main_char, 'alliance_name', None), 'alliance_name': getattr(main_char, 'alliance_name', None),
'alliance_id': getattr(main_char, 'alliance_id', None), 'alliance_id': getattr(main_char, 'alliance_id', None),
'alliance_ticker': None, 'alliance_ticker': getattr(main_char, 'alliance_ticker', None),
'username': self.user.username, 'username': self.user.username,
} }
if main_char is not None and re.match('.*alliance(?:_or_corp)?_ticker', self.string_formatter):
# Reduces db lookups
try:
format_data['alliance_ticker'] = getattr(getattr(main_char, 'alliance', None), 'alliance_ticker', None)
except ObjectDoesNotExist:
pass
format_data['alliance_or_corp_name'] = format_data['alliance_name'] or format_data['corp_name'] format_data['alliance_or_corp_name'] = format_data['alliance_name'] or format_data['corp_name']
format_data['alliance_or_corp_ticker'] = format_data['alliance_ticker'] or format_data['corp_ticker'] format_data['alliance_or_corp_ticker'] = format_data['alliance_ticker'] or format_data['corp_ticker']
return format_data return format_data

View File

@ -33,6 +33,7 @@ class NameFormatterTestCase(TestCase):
corporation_ticker='TIKK', corporation_ticker='TIKK',
alliance_id='3456', alliance_id='3456',
alliance_name='alliance name', alliance_name='alliance name',
alliance_ticker='TIKR',
) )
self.member.profile.main_character = self.char self.member.profile.main_character = self.char
self.member.profile.save() self.member.profile.save()
@ -83,11 +84,15 @@ class NameFormatterTestCase(TestCase):
self.assertIn('alliance_name', result) self.assertIn('alliance_name', result)
self.assertEqual(result['alliance_name'], self.char.alliance_name) self.assertEqual(result['alliance_name'], self.char.alliance_name)
self.assertIn('alliance_ticker', result) self.assertIn('alliance_ticker', result)
self.assertEqual(result['alliance_ticker'], self.char.alliance.alliance_ticker) self.assertEqual(result['alliance_ticker'], self.char.alliance_ticker)
self.assertIn('alliance_id', result) self.assertIn('alliance_id', result)
self.assertEqual(result['alliance_id'], self.char.alliance_id) self.assertEqual(result['alliance_id'], self.char.alliance_id)
self.assertIn('username', result) self.assertIn('username', result)
self.assertEqual(result['username'], self.member.username) self.assertEqual(result['username'], self.member.username)
self.assertIn('alliance_or_corp_name', result)
self.assertEqual(result['alliance_or_corp_name'], self.char.alliance_name)
self.assertIn('alliance_or_corp_ticker', result)
self.assertEqual(result['alliance_or_corp_ticker'], self.char.alliance_ticker)
def test_format_name(self): def test_format_name(self):
config = NameFormatConfig.objects.create( config = NameFormatConfig.objects.create(