Tweak appearance of CorpStats

Start fixing unit tests
This commit is contained in:
Adarnof 2017-03-27 09:37:20 -04:00
parent 6f36a26694
commit 04053c8465
4 changed files with 105 additions and 113 deletions

View File

@ -3,9 +3,8 @@ from __future__ import unicode_literals
from django.db.models.signals import m2m_changed, pre_save from django.db.models.signals import m2m_changed, pre_save
from django.contrib.auth.models import User, Group from django.contrib.auth.models import User, Group
from services.signals import m2m_changed_user_groups, pre_save_user from services.signals import m2m_changed_user_groups, pre_save_user
from services.signals import m2m_changed_group_permissions, m2m_changed_user_permissions from services.signals import m2m_changed_group_permissions, m2m_changed_user_permissions, m2m_changed_state_permissions
from authentication.signals import pre_save_auth_state from authentication.models import UserProfile, State
from authentication.models import UserProfile
from eveonline.models import EveCharacter from eveonline.models import EveCharacter
@ -23,47 +22,33 @@ class AuthUtils:
if disconnect_signals: if disconnect_signals:
cls.disconnect_signals() cls.disconnect_signals()
user = cls._create_user(username) user = cls._create_user(username)
user.authservicesinfo.state = NONE_STATE
user.authservicesinfo.save()
if disconnect_signals: if disconnect_signals:
cls.connect_signals() cls.connect_signals()
return user return user
@classmethod @classmethod
def create_member(cls, username): def create_member(cls, username):
cls.disconnect_signals() return cls.create_user(username, disconnect_signals=True)
user = cls._create_user(username)
user.authservicesinfo.state = MEMBER_STATE
user.authservicesinfo.save()
make_member(user.authservicesinfo)
cls.connect_signals()
return user
@classmethod @classmethod
def create_blue(cls, username): def create_blue(cls, username):
cls.disconnect_signals() return cls.create_user(username, disconnect_signals=True)
user = cls._create_user(username)
user.authservicesinfo.state = BLUE_STATE
user.authservicesinfo.save()
make_blue(user.authservicesinfo)
cls.connect_signals()
return user
@classmethod @classmethod
def disconnect_signals(cls): def disconnect_signals(cls):
m2m_changed.disconnect(m2m_changed_user_groups, sender=User.groups.through) m2m_changed.disconnect(m2m_changed_user_groups, sender=User.groups.through)
m2m_changed.disconnect(m2m_changed_group_permissions, sender=Group.permissions.through) m2m_changed.disconnect(m2m_changed_group_permissions, sender=Group.permissions.through)
m2m_changed.disconnect(m2m_changed_user_permissions, sender=User.user_permissions.through) m2m_changed.disconnect(m2m_changed_user_permissions, sender=User.user_permissions.through)
m2m_changed.disconnect(m2m_changed_state_permissions, sender=State.permissions.through)
pre_save.disconnect(pre_save_user, sender=User) pre_save.disconnect(pre_save_user, sender=User)
pre_save.disconnect(pre_save_auth_state, sender=AuthServicesInfo)
@classmethod @classmethod
def connect_signals(cls): def connect_signals(cls):
m2m_changed.connect(m2m_changed_user_groups, sender=User.groups.through) m2m_changed.connect(m2m_changed_user_groups, sender=User.groups.through)
m2m_changed.connect(m2m_changed_group_permissions, sender=Group.permissions.through) m2m_changed.connect(m2m_changed_group_permissions, sender=Group.permissions.through)
m2m_changed.connect(m2m_changed_user_permissions, sender=User.user_permissions.through) m2m_changed.connect(m2m_changed_user_permissions, sender=User.user_permissions.through)
m2m_changed.connect(m2m_changed_state_permissions, sender=State.permissions.through)
pre_save.connect(pre_save_user, sender=User) pre_save.connect(pre_save_user, sender=User)
pre_save.connect(pre_save_auth_state, sender=AuthServicesInfo)
@classmethod @classmethod
def add_main_character(cls, user, name, character_id, corp_id='', corp_name='', corp_ticker='', alliance_id='', def add_main_character(cls, user, name, character_id, corp_id='', corp_name='', corp_ticker='', alliance_id='',

View File

@ -66,6 +66,9 @@ class CorpStats(models.Model):
# purge old members # purge old members
self.members.exclude(character_id__in=member_ids).delete() self.members.exclude(character_id__in=member_ids).delete()
# update the timer
self.save()
except TokenError as e: except TokenError as e:
logger.warning("%s failed to update: %s" % (self, e)) logger.warning("%s failed to update: %s" % (self, e))
if self.token.user: if self.token.user:

View File

@ -58,104 +58,108 @@
<div class="panel-body"> <div class="panel-body">
<div class="tab-content"> <div class="tab-content">
<div class="tab-pane fade in active" id="mains"> <div class="tab-pane fade in active" id="mains">
<div class="text-center">{% bootstrap_paginate mains range=10 %}</div> {% if mains %}
<div class="table-responsive"> <div class="text-center">{% bootstrap_paginate mains range=10 %}</div>
<table class="table table-hover"> <div class="table-responsive">
<tr> <table class="table table-hover">
<th class="text-center">{% trans "Main" %}</th> {% for main in mains %}
<th class="text-center">{% trans "Characters" %}</th> <tr>
</tr> <td class="text-center" style="vertical-align:middle">
{% for main in mains %} <div class="thumbnail"
<tr> style="border: 0 none; box-shadow: none; background: transparent;">
<td class="text-center" style="vertical-align:middle"> <img src="{{ main.portrait_url_64 }}" class="img-circle">
<div class="thumbnail" <div class="caption text-center">
style="border: 0 none; box-shadow: none; background: transparent;"> {{ main }}
<img src="{{ main.portrait_url_64 }}" class="img-circle"> </div>
<div class="caption text-center">
{{ main }}
</div> </div>
</div> </td>
</td> <td>
<td> <table class="table table-hover">
<table class="table table-hover"> {% for alt in main.alts %}
{% for alt in main.alts %} {% if forloop.first %}
{% if forloop.first %} <tr>
<th class="text-center">{% trans "Character" %}</th>
<th class="text-center">{% trans "Corporation" %}</th>
<th class="text-center">{% trans "Alliance" %}</th>
<th class="text-center"></th>
</tr>
{% endif %}
<tr> <tr>
<th class="text-center">{% trans "Character" %}</th> <td class="text-center">{{ alt.character_name }}</td>
<th class="text-center">{% trans "zKillboard" %}</th> <td class="text-center">{{ alt.corporation_name }}</td>
<th class="text-center">{% trans "Corporation" %}</th> <td class="text-center">{{ alt.alliance_name }}</td>
<th class="text-center">{% trans "Alliance" %}</th> <td class="text-center">
<a href="https://zkillboard.com/character/{{ alt.character_id }}/"
class="label label-danger" target="_blank">
{% trans "Killboard" %}
</a>
</td>
</tr> </tr>
{% endif %} {% endfor %}
<tr> </table>
<td class="text-center">{{ alt.character_name }}</td> </td>
<td class="text-center"><a </tr>
href="https://zkillboard.com/character/{{ alt.character_id }}/" {% endfor %}
class="label label-danger" </table>
target="_blank">{% trans "Killboard" %}</a></td> </div>
<td class="text-center">{{ alt.corporation_name }}</td> {% endif %}
<td class="text-center">{{ alt.alliance_name }}</td>
</tr>
{% endfor %}
</table>
</td>
</tr>
{% endfor %}
</table>
</div>
</div> </div>
<div class="tab-pane fade" id="members"> <div class="tab-pane fade" id="members">
<div class="text-center">{% bootstrap_paginate members range=10 %}</div> {% if members %}
<div class="table-responsive"> <div class="text-center">{% bootstrap_paginate members range=10 %}</div>
<table class="table table-hover"> <div class="table-responsive">
<tr> <table class="table table-hover">
<th></th> <tr>
<th class="text-center">{% trans "Character" %}</th> <th></th>
<th class="text-center">{% trans "zKillboard" %}</th> <th class="text-center">{% trans "Character" %}</th>
<th class="text-center">{% trans "Main Character" %}</th> <th class="text-center"></th>
<th class="text-center">{% trans "Main Corporation" %}</th> <th class="text-center">{% trans "Main Character" %}</th>
<th class="text-center">{% trans "Main Alliance" %}</th> <th class="text-center">{% trans "Main Corporation" %}</th>
</tr> <th class="text-center">{% trans "Main Alliance" %}</th>
{% for member in members %}
<tr {% if not member.registered %}class="danger"{% endif %}>
<td><img src="{{ member.portrait_url }}" class="img-circle"></td>
<td class="text-center">{{ member.character_name }}</td>
<td class="text-center"><a
href="https://zkillboard.com/character/{{ member.character_id }}/"
class="label label-danger"
target="_blank">{% trans "Killboard" %}</a></td>
<td class="text-center">{{ member.main_character.character_name }}</td>
<td class="text-center">{{ member.main_character.corporation_name }}</td>
<td class="text-center">{{ member.main_character.alliance_name }}</td>
</tr> </tr>
{% endfor %} {% for member in members %}
</table> <tr {% if not member.registered %}class="danger"{% endif %}>
</div> <td><img src="{{ member.portrait_url }}" class="img-circle"></td>
<td class="text-center">{{ member.character_name }}</td>
<td class="text-center"><a
href="https://zkillboard.com/character/{{ member.character_id }}/"
class="label label-danger"
target="_blank">{% trans "Killboard" %}</a></td>
<td class="text-center">{{ member.main_character.character_name }}</td>
<td class="text-center">{{ member.main_character.corporation_name }}</td>
<td class="text-center">{{ member.main_character.alliance_name }}</td>
</tr>
{% endfor %}
</table>
</div>
{% endif %}
</div> </div>
<div class="tab-pane fade" id="unregistered"> <div class="tab-pane fade" id="unregistered">
<div class="text-center">{% bootstrap_paginate unregistered range=10 %}</div> {% if unregistered %}
<div class="table-responsive"> <div class="text-center">{% bootstrap_paginate unregistered range=10 %}</div>
<table class="table table-hover"> <div class="table-responsive">
<tr> <table class="table table-hover">
<th></th> <tr>
<th class="text-center">{% trans "Character" %}</th> <th></th>
<th class="text-center">{% trans "zKillboard" %}</th> <th class="text-center">{% trans "Character" %}</th>
</tr> <th class="text-center"></th>
{% for member in unregistered %}
<tr class="danger">
<td><img src="{{ member.portrait_url }}" class="img-circle"></td>
<td class="text-center">{{ member.character_name }}</td>
<td class="text-center">
<a href="https://zkillboard.com/character/{{ member.character_id }}/"
class="label label-danger"
target="_blank">
{% trans "Killboard" %}
</a>
</td>
</tr> </tr>
{% endfor %} {% for member in unregistered %}
</table> <tr class="danger">
</div> <td><img src="{{ member.portrait_url }}" class="img-circle"></td>
<td class="text-center">{{ member.character_name }}</td>
<td class="text-center">
<a href="https://zkillboard.com/character/{{ member.character_id }}/"
class="label label-danger"
target="_blank">
{% trans "Killboard" %}
</a>
</td>
</tr>
{% endfor %}
</table>
</div>
{% endif %}
</div> </div>
</div> </div>
</div> </div>

View File

@ -184,10 +184,10 @@ class Teamspeak3Manager:
logger.debug("Adding user to TS3 server with cleaned username %s" % username_clean) logger.debug("Adding user to TS3 server with cleaned username %s" % username_clean)
server_groups = Teamspeak3Manager._group_list() server_groups = Teamspeak3Manager._group_list()
if settings.DEFAULT_AUTH_GROUP not in server_groups: if 'Member' not in server_groups:
Teamspeak3Manager._create_group(settings.DEFAULT_AUTH_GROUP) Teamspeak3Manager._create_group('Member')
alliance_group_id = Teamspeak3Manager._group_id_by_name(settings.DEFAULT_AUTH_GROUP) alliance_group_id = Teamspeak3Manager._group_id_by_name('Member')
try: try:
ret = server.send_command('tokenadd', {'tokentype': 0, 'tokenid1': alliance_group_id, 'tokenid2': 0, ret = server.send_command('tokenadd', {'tokentype': 0, 'tokenid1': alliance_group_id, 'tokenid2': 0,