Handling missing settings.CORP_ID in alliance mode, and api-scope error in corporation mode. Also fixing visual on the corputilsearchview.

This commit is contained in:
Ydmir 2016-01-31 11:29:54 +01:00
parent 185805ecc1
commit 9041f0e7c7
6 changed files with 41 additions and 19 deletions

View File

@ -449,7 +449,7 @@ LOGGING = {
'handlers': ['log_file', 'console'],
'level': 'DEBUG',
},
'corputil': {
'corputils': {
'handlers': ['log_file', 'console'],
'level': 'DEBUG',
},

View File

@ -165,9 +165,9 @@ urlpatterns = patterns('',
#corputils
url(r'^corputils/$', 'corputils.views.corp_member_view', name='auth_corp_member_view'),
url(r'^corputils/(?P<corpid>[0-9]+)/$', 'corputils.views.corp_member_view', name='auth_corp_member_view'),
url(r'^corputils/(?P<corpid>[0-9]+)/$', 'corputils.views.corp_member_view'),
url(r'^corputils/search/$', 'corputils.views.corputils_search', name="auth_corputils_search"),
url(r'^corputils/search/(?P<corpid>[0-9]+)/$', 'corputils.views.corputils_search', name="auth_corputils_search"),
url(r'^corputils/search/(?P<corpid>[0-9]+)/$', 'corputils.views.corputils_search'),
# FLEET FITTINGS
url(r'^fits/$', 'services.views.fleet_fits', name='auth_fleet_fits'),

View File

@ -15,6 +15,7 @@ from eveonline.models import EveAllianceInfo
from eveonline.models import EveCharacter
from authentication.models import AuthServicesInfo
from forms import CorputilsSearchForm
from evelink.api import APIError
import logging
@ -24,14 +25,31 @@ logger = logging.getLogger(__name__)
# Because corp-api only exist for the executor corp, this function will only be available in corporation mode.
@login_required
@permission_required('auth.corputils')
def corp_member_view(request, corpid = settings.CORP_ID):
def corp_member_view(request, corpid = None):
logger.debug("corp_member_view called by user %s" % request.user)
if not settings.IS_CORP:
alliance = EveAllianceInfo.objects.get(alliance_id=settings.ALLIANCE_ID)
alliancecorps = EveCorporationInfo.objects.filter(alliance=alliance)
membercorp_list = [(int(membercorp.corporation_id), str(membercorp.corporation_name)) for membercorp in alliancecorps]
membercorp_list.sort(key=lambda tup: tup[1])
if not corpid:
if(settings.CORP_ID):
corpid = settings.CORP_ID
else:
corpid = membercorp_list[0][0]
corp = EveCorporationInfo.objects.get(corporation_id=corpid)
Player = namedtuple("Player", ["main", "maincorp", "maincorpid", "altlist"])
if settings.IS_CORP:
try:
member_list = EveApiManager.get_corp_membertracking(settings.CORP_API_ID, settings.CORP_API_VCODE)
except APIError:
logger.debug("Corp API does not have membertracking scope, using EveWho data instead.")
member_list = EveWhoManager.get_corporation_members(corpid)
else:
member_list = EveWhoManager.get_corporation_members(corpid)
@ -64,11 +82,6 @@ def corp_member_view(request, corpid = settings.CORP_ID):
if not settings.IS_CORP:
alliance = EveAllianceInfo.objects.get(alliance_id=settings.ALLIANCE_ID)
alliancecorps = EveCorporationInfo.objects.filter(alliance=alliance)
membercorp_list = [(int(membercorp.corporation_id), str(membercorp.corporation_name)) for membercorp in alliancecorps]
membercorp_list.sort(key=lambda tup: tup[1])
context = {"membercorp_list": membercorp_list,
"corp": corp,
"characters_with_api": sorted(characters_with_api.items()),
@ -102,7 +115,11 @@ def corputils_search(request, corpid=settings.CORP_ID):
logger.debug("Searching for player with character name %s for user %s" % (searchstring, request.user))
if settings.IS_CORP:
try:
member_list = EveApiManager.get_corp_membertracking(settings.CORP_API_ID, settings.CORP_API_VCODE)
except APIError:
logger.debug("Corp API does not have membertracking scope, using EveWho data instead.")
member_list = EveWhoManager.get_corporation_members(corpid)
else:
member_list = EveWhoManager.get_corporation_members(corpid)

View File

@ -4240,6 +4240,10 @@ textarea.input-group-sm > .form-control, textarea.input-group-sm > .input-group-
line-height: 20px
}
.navbar-wide {
width: 100%;
}
@media (max-width: 767px) {
.navbar-nav .open .dropdown-menu {
position: static;

View File

@ -45,7 +45,7 @@
</div>
<nav class="navbar navbar-default">
<div class="container-fluid">
<ul class="nav navbar-nav" style="width: 100%">
<ul class="nav navbar-nav navbar-wide">
{% if membercorp_list %}
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Choose corporation <span class="caret"></span></a>

View File

@ -8,18 +8,19 @@
{% block extra_css %}{% endblock extra_css %}
{% block content %}
<div class="col-lg-8">
<div class="col-lg-12">
{% if perms.auth.corputils %}
<h1 class="page-header text-center">Member Search Results
</h1>
<h2 class="text-center"><a href="{% url 'auth_corp_member_view' %}{{ corp.corporation_id }}">{{ corp.corporation_name }}</a></h2>
<div class="container-fluid">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Search Results</h3>
</div>
<nav class="navbar navbar-default">
<div class="container-fluid">
<ul class="nav navbar-nav">
<li>
<form class="navbar-form navbar-left" role="search" action={% url 'auth_corputils_search' %}{{ corp.corporation_id }}/ method="POST">
<ul class="nav navbar-nav navbar-wide">
<li style="float: right">
<form class="navbar-form navbar-right" role="search" action={% url 'auth_corputils_search' %}{{ corp.corporation_id }}/ method="POST">
<div class="form-group">
{% csrf_token %}
{{ search_form.as_table }}