Now the search function works in alliance mode as well, searching the corp that is currently active. Also, the select corporation is nicer now.

This commit is contained in:
Ydmir 2016-01-25 23:19:28 +01:00
parent bd7bbc9339
commit 29e5790ec7
4 changed files with 35 additions and 29 deletions

View File

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

View File

@ -28,13 +28,6 @@ logger = logging.getLogger(__name__)
def corp_member_view(request, corpid = settings.CORP_ID): def corp_member_view(request, corpid = settings.CORP_ID):
logger.debug("corp_member_view called by user %s" % request.user) logger.debug("corp_member_view called by user %s" % request.user)
if request.method == 'POST':
form = SelectCorpForm(request.POST)
if form.is_valid():
return HttpResponseRedirect("/corputils/"+form.cleaned_data["corpid"])
else:
return HttpResponseRedirect("/corputils/")
corp = EveCorporationInfo.objects.get(corporation_id=corpid) corp = EveCorporationInfo.objects.get(corporation_id=corpid)
Player = namedtuple("Player", ["main", "maincorp", "maincorpid", "altlist"]) Player = namedtuple("Player", ["main", "maincorp", "maincorpid", "altlist"])
@ -59,8 +52,8 @@ def corp_member_view(request, corpid = settings.CORP_ID):
except (ValueError, EveCharacter.DoesNotExist): except (ValueError, EveCharacter.DoesNotExist):
mainname = "User: " + user.username mainname = "User: " + user.username
mainchar = char mainchar = char
maincorp = mainchar.corporation_name maincorp = "Not set."
maincorpid = mainchar.corporation_id maincorpid = None
characters_with_api.setdefault(mainname, Player(main=mainchar, characters_with_api.setdefault(mainname, Player(main=mainchar,
maincorp=maincorp, maincorp=maincorp,
maincorpid=maincorpid, maincorpid=maincorpid,
@ -72,8 +65,12 @@ def corp_member_view(request, corpid = settings.CORP_ID):
if not settings.IS_CORP: if not settings.IS_CORP:
form = SelectCorpForm() alliance = EveAllianceInfo.objects.get(alliance_id=settings.ALLIANCE_ID)
context = {"form": form, 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, "corp": corp,
"characters_with_api": sorted(characters_with_api.items()), "characters_with_api": sorted(characters_with_api.items()),
"characters_without_api": sorted(characters_without_api.items()), "characters_without_api": sorted(characters_without_api.items()),
@ -91,7 +88,7 @@ def corp_member_view(request, corpid = settings.CORP_ID):
@login_required @login_required
@permission_required('auth.corputils') @permission_required('auth.corputils')
def corputils_search(request): def corputils_search(request, corpid=settings.CORP_ID):
logger.debug("corputils_search called by user %s" % request.user) logger.debug("corputils_search called by user %s" % request.user)
if request.method == 'POST': if request.method == 'POST':
form = CorputilsSearchForm(request.POST) form = CorputilsSearchForm(request.POST)
@ -102,7 +99,10 @@ def corputils_search(request):
searchstring = form.cleaned_data['search_string'] searchstring = form.cleaned_data['search_string']
logger.debug("Searching for player with character name %s for user %s" % (searchstring, request.user)) logger.debug("Searching for player with character name %s for user %s" % (searchstring, request.user))
member_list = EveApiManager.get_corp_membertracking(settings.CORP_API_ID, settings.CORP_API_VCODE) if settings.IS_CORP:
member_list = EveApiManager.get_corp_membertracking(settings.CORP_API_ID, settings.CORP_API_VCODE)
else:
member_list = EveWhoManager.get_corporation_members(corpid)
Member = namedtuple('Member', ['name', 'main', 'api_registered']) Member = namedtuple('Member', ['name', 'main', 'api_registered'])

View File

@ -3401,6 +3401,11 @@ tbody.collapse.in {
box-shadow: 0 6px 12px rgba(0, 0, 0, .175) box-shadow: 0 6px 12px rgba(0, 0, 0, .175)
} }
.dropdown-menu.scrollable {
overflow: auto;
max-height: 450px;
}
.dropdown-menu.pull-right { .dropdown-menu.pull-right {
right: 0; right: 0;
left: auto left: auto

View File

@ -35,19 +35,20 @@
<p>Unregistered characters: {{characters_without_api|length}}</p> <p>Unregistered characters: {{characters_without_api|length}}</p>
</div> </div>
<div class="text-right"> <div class="text-right">
{% if form %}
<div class="container-fluid"> {% if membercorp_list %}
<div class="col-md-4 col-md-offset-4"> <ul class="nav navbar-nav">
<div class="row"> <li class="dropdown">
<form class="form-signin" role="form" action="" method="POST"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Choose corporation <span class="caret"></span></a>
{% csrf_token %} <ul class="dropdown-menu scrollable">
{{ form|bootstrap }} {% for membercorp_id, membercorp_name in membercorp_list %}
<br/> <li>
<button class="btn btn-lg btn-primary btn-block" type="submit">Select corp</button> <a href="/corputils/{{ membercorp_id }}">{{ membercorp_name }}</a>
</form> </li>
</div> {% endfor %}
</div> </ul>
</div> </li>
</ul>
{% endif %} {% endif %}
<!-- Button trigger modal --> <!-- Button trigger modal -->
<button type="button" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#myModal"> <button type="button" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#myModal">
@ -145,7 +146,7 @@
</div> </div>
<div class="modal-body"> <div class="modal-body">
<form class="form-signin" role="form" <form class="form-signin" role="form"
action={% url 'auth_corputils_search' %} method="POST"> action={% url 'auth_corputils_search' %}{{ corp.corporation_id }}/ method="POST">
{% csrf_token %} {% csrf_token %}
{{ search_form|bootstrap }} {{ search_form|bootstrap }}
<br/> <br/>