Merge branch 'johanko-corputils' into corputils

This commit is contained in:
Ydmir 2016-01-27 22:36:17 +01:00
commit 15af554cae
6 changed files with 192 additions and 175 deletions

View File

@ -5,4 +5,4 @@ from eveonline.models import EveCorporationInfo
from eveonline.models import EveAllianceInfo from eveonline.models import EveAllianceInfo
class CorputilsSearchForm(forms.Form): class CorputilsSearchForm(forms.Form):
search_string = forms.CharField(max_length=254, required=True, label="Search String") search_string = forms.CharField(max_length=254, required=True, label="", widget=forms.TextInput(attrs={'placeholder': 'Search characters...'}))

View File

@ -89,6 +89,9 @@ def corp_member_view(request, corpid = settings.CORP_ID):
@permission_required('auth.corputils') @permission_required('auth.corputils')
def corputils_search(request, corpid=settings.CORP_ID): 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)
corp = EveCorporationInfo.objects.get(corporation_id=corpid)
if request.method == 'POST': if request.method == 'POST':
form = CorputilsSearchForm(request.POST) form = CorputilsSearchForm(request.POST)
logger.debug("Request type POST contains form valid: %s" % form.is_valid()) logger.debug("Request type POST contains form valid: %s" % form.is_valid())
@ -122,13 +125,13 @@ def corputils_search(request, corpid=settings.CORP_ID):
logger.info("Found %s members for user %s matching search string %s" % (len(members), request.user, searchstring)) logger.info("Found %s members for user %s matching search string %s" % (len(members), request.user, searchstring))
context = {'members': members, 'search_form': CorputilsSearchForm()} context = {'corp': corp, 'members': members, 'search_form': CorputilsSearchForm()}
return render_to_response('registered/corputilssearchview.html', return render_to_response('registered/corputilssearchview.html',
context, context_instance=RequestContext(request)) context, context_instance=RequestContext(request))
else: else:
logger.debug("Form invalid - returning for user %s to retry." % request.user) logger.debug("Form invalid - returning for user %s to retry." % request.user)
context = {'applications': None, 'search_form': form} context = {'corp': corp, 'members': None, 'search_form': CorputilsSearchForm()}
return render_to_response('registered/corputilssearchview.html', return render_to_response('registered/corputilssearchview.html',
context, context_instance=RequestContext(request)) context, context_instance=RequestContext(request))

View File

@ -3402,7 +3402,7 @@ tbody.collapse.in {
} }
.dropdown-menu.scrollable { .dropdown-menu.scrollable {
overflow: auto; overflow: scroll;
max-height: 450px; max-height: 450px;
} }
@ -6668,4 +6668,4 @@ button.close {
.hidden-print { .hidden-print {
display: none !important display: none !important
} }
} }

View File

@ -27,7 +27,7 @@ body {
margin: 0 0 0 250px; margin: 0 0 0 250px;
padding: 0 30px; padding: 0 30px;
border-left: 1px solid #e7e7e7; border-left: 1px solid #e7e7e7;
overflow: hidden; overflow: visible;
} }
} }
@ -346,4 +346,4 @@ table.dataTable thead .sorting:after {
.panel-yellow a:hover { .panel-yellow a:hover {
color: #df8a13; color: #df8a13;
} }

View File

@ -12,118 +12,172 @@
{% if perms.auth.corputils %} {% if perms.auth.corputils %}
<div class="col-lg-12 container" id="example"> <div class="col-lg-12 container" id="example">
{% if corp %} {% if corp %}
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading">Corporation</div> <div class="panel-heading">Corporation</div>
<div class="panel-body"> <div class="panel-body">
<div class="col-lg-5 col-sm-2"><img class= <div class="col-lg-5 col-sm-2">
"ra-avatar img-responsive" src= <img class="ra-avatar img-responsive" src="https://image.eveonline.com/Corporation/{{ corp.corporation_id }}_128.png">
"https://image.eveonline.com/Corporation/{{ corp.corporation_id }}_128.png"> </div>
</div> <div class="col-lg-7 col-sm-2">
<h4 class="">{{ corp.corporation_name }}</h4>
<div class="col-lg-7 col-sm-2"> <p>Ticker: {{ corp.corporation_ticker }}</p>
<h4 class="">Name: {{ corp.corporation_name }}</h4>
<p>Ticker: {{ corp.corporation_ticker }}</p> <p>Member count: {{ corp.member_count }}</p>
<p>Member count: {{ corp.member_count }}</p> <p>Player count: {{characters_with_api|length}}</p>
<p>Player count: {{characters_with_api|length}}</p> <p>Unregistered characters: {{characters_without_api|length}}</p>
</div>
<p>Unregistered characters: {{characters_without_api|length}}</p> <div class="col-lg-12 col-sm-5">
</div> <b>API Index:</b>
<div class="text-right"> <div class="progress">
<div class="progress-bar progress-bar-striped" role="progressbar" aria-valuenow="{{characters_with_api|length}}" aria-valuemin="0" aria-valuemax="{{ corp.member_count }}" style="width: {% widthratio characters_with_api|length corp.member_count 100 %}%;">
{% if membercorp_list %} {{characters_with_api|length}}/{{ corp.member_count }}
<ul class="nav navbar-nav"> </div>
<li class="dropdown"> </div>
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Choose corporation <span class="caret"></span></a> </div>
<ul class="dropdown-menu scrollable">
{% for membercorp_id, membercorp_name in membercorp_list %}
<li>
<a href="/corputils/{{ membercorp_id }}">{{ membercorp_name }}</a>
</li>
{% endfor %}
</ul>
</li>
</ul>
{% endif %}
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#myModal">
Search Members
</button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="col-lg-12"> <ul class="nav navbar-nav" style="width: 100%">
<div class="panel panel-default"> {% if membercorp_list %}
<div class="panel-heading">Registered Characters</div> <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>
<ul class="dropdown-menu scrollable">
{% for membercorp_id, membercorp_name in membercorp_list %}
<li>
<a href="/corputils/{{ membercorp_id }}">{{ membercorp_name }}</a>
</li>
{% endfor %}
</ul>
</li>
{% endif %}
<li style="float: right">
<p class="navbar-btn">
<a href="https://zkillboard.com/corporation/{{ corp.corporation_id }}/" class="btn btn-default" target="_blank">{{ corp.corporation_name }} Killboard</a>
</p>
</li>
<li style="float: right">
<form class="navbar-form navbar-left" role="search" action={% url 'auth_corputils_search' %}{{ corp.corporation_id }}/ method="POST">
<div class="form-group">
{% csrf_token %}
{{ search_form.as_table }}
</div>
<button class="btn btn-default" type="submit">Search</button>
</form>
</li>
</ul>
</div>
</nav>
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#gotapi">Registered Main Characters <b>({{characters_with_api|length}})</b></a></li>
<li><a data-toggle="tab" href="#noapi">Characters without API <b>({{characters_without_api|length}})</b></a></li>
</ul>
<div class="tab-content">
<div id="gotapi" class="tab-pane fade in active">
{% if characters_with_api %}
<div class="panel-body"> <div class="panel-body">
<div style="overflow:auto;overflow-y:auto;"> <div class="table-responsive">
<table class="table table-condensed"> <table class="table table-condensed table-hover table-striped">
<tr> <tr>
<th class="""></th> <th class="col-md-1"></th>
<th class="text-center">Main character</th> <th class="col-md-2">Main character</th>
<th class="text-center">Main corporation</th> <th class="col-md-2">Killboard</th>
<th class="text-center">Character list</th> <th class="col-md-2">Main corporation</th>
<th class="col-md-5">Character list</th>
</tr> </tr>
{% for maincharname, player in characters_with_api %} {% for maincharname, player in characters_with_api %}
<tr > <tr >
<td> <td>
<img class="ra-avatar img-responsive" <img src="http://image.eveonline.com/Character/{{ player.main.character_id }}_32.jpg" class="img-circle">
src="https://image.eveonline.com/Character/{{ player.main.character_id }}_64.jpg"> </td>
</td> <td>
<td class="text-center"> <p>{{ maincharname }}</p>
<p class="">{{ maincharname }}</p> </td>
</td> <td>
<td class="text-center" {% if not corp.corporation_name == player.maincorp%} bgcolor="#FF99AA" {% endif %} > <a href="https://zkillboard.com/character/{{ player.main.character_id }}/" class="label label-danger" target="_blank">Killboard</a>
<p class="">{{ player.maincorp }}</p> </td>
</td> <td>
<td class="text-center"> {% if not corp.corporation_name == player.maincorp%}
{% for char in player.altlist %} <span class="label label-danger">
<p class="">{{ char.character_name }}</p> {{ player.maincorp }}
{% endfor %} </span>
</td> {% else %}
</tr> <span class="label label-success">
{% endfor %} {{ player.maincorp }}
{% for character_name, character_id in characters_without_api %} </span>
<tr bgcolor="#DD8822"> {% endif %}
<td> </td>
<img class="ra-avatar img-responsive" <td>
src="https://image.eveonline.com/Character/{{ character_id }}_64.jpg"> {% for char in player.altlist %}
</td> <p>{{ char.character_name }}</p>
<td class="text-center"> {% endfor %}
<p class="">{{ character_name }}</p> </td>
</td> </tr>
<td class="text-center">
<p class=""></p>
</td>
<td class="text-center">
<p class="">No API registered!</p>
</td>
</tr>
{% endfor %} {% endfor %}
</table> </table>
</div> </div>
</div> </div>
{% else %}
<div class="alert alert-danger" role="alert">
<h3>Seems there are no characters in {{ corp.corporation_name }} tied to a registered API!</h3>
</div>
{% endif %}
</div>
<div id="noapi" class="tab-pane fade">
{% if characters_without_api %}
<div class="panel-body">
<div class="table-responsive">
<table class="table table-condensed table-hover table-striped">
<tr>
<th class="col-md-1"></th>
<th class="col-md-2">Character</th>
<th class="col-md-2">Killboard</th>
<th class="col-md-3">API</th>
</tr>
{% for character_name, character_id in characters_without_api %}
<tr>
<td>
<img src="http://image.eveonline.com/Character/{{ character_id }}_32.jpg" class="img-circle">
</td>
<td>
<p>{{ character_name }}</p>
</td>
<td>
<a href="https://zkillboard.com/character/{{ character_id }}/" class="label label-danger" target="_blank">Killboard</a>
</td>
<td>
<span class="label label-danger">No API registered!</span>
</td>
</tr>
{% endfor %}
</table>
</div>
</div>
{% else %}
<div class="alert alert-success" role="alert">
<h3>Good job! Every character in {{ corp.corporation_name }} seem to be tied to an API!</h3>
</div>
{% endif %}
</div> </div>
</div> </div>
{% else %} {% else %}
<div class="container-fluid"> <div class="container-fluid">
<div class="col-md-4 col-md-offset-4"> <div class="col-md-4 col-md-offset-4">
<div class="row"> <div class="row">
<div class="alert alert-danger text-center" role="alert">No corporation model found. Contact your admin.</div> <div class="alert alert-danger text-center" role="alert">No corporation model found. Contact your admin.</div>
</div>
</div> </div>
</div> </div>
</div> </div>
{% endif %}
</div> </div>
{% endif %}
</div>
{% else %} {% else %}
{% if IS_CORP %} {% if IS_CORP %}
<div class="alert alert-danger" role="alert">You are not in the corporation.</div> <div class="alert alert-danger" role="alert">You are not in the corporation.</div>
@ -132,31 +186,4 @@
{% endif %} {% endif %}
{% endif %} {% endif %}
</div> </div>
{% endblock content %}
{% if perms.auth.corputils %}
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span
class="sr-only">Close</span></button>
<h4 class="modal-title" id="myModalLabel">Member Search</h4>
</div>
<div class="modal-body">
<form class="form-signin" role="form"
action={% url 'auth_corputils_search' %}{{ corp.corporation_id }}/ method="POST">
{% csrf_token %}
{{ search_form|bootstrap }}
<br/>
<button class="btn btn-lg btn-primary btn-block" type="submit">Search</button>
</form>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
{% endif %}
{% endblock content %}

View File

@ -8,63 +8,50 @@
{% block extra_css %}{% endblock extra_css %} {% block extra_css %}{% endblock extra_css %}
{% block content %} {% block content %}
<div class="col-lg-12"> <div class="col-lg-8">
{% if perms.auth.corputils %} {% if perms.auth.corputils %}
<h1 class="page-header text-center">Member Search Results
<div class="text-right"> <div class="panel panel-default">
<!-- Button trigger modal --> <div class="panel-heading">
<button type="button" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#myModal"> <h3 class="panel-title">Search Results</h3>
Search Members
</button>
</div>
</h1>
<div class="container-fluid">
<table class="table table-bordered">
<tr>
<th class="text-center">Character</th>
<th class="text-center">Main Character</th>
</tr>
{% for member in members %}
<tr {% if not member.api_registered%} bgcolor="#DD5500" {% endif %} >
<td class="text-center">{{ member.name }}</td>
<td class="text-center">
{% if member.api_registered%}
{{ member.main }}
{% else %}
No API registered!
{% endif %}
</td>
</tr>
{% endfor %}
</table>
</div> </div>
{% endif %} <nav class="navbar navbar-default">
</div> <div class="container-fluid">
<ul class="nav navbar-nav">
{% if perms.auth.corputils %} <li>
<!-- Modal --> <form class="navbar-form navbar-left" role="search" action={% url 'auth_corputils_search' %}{{ corp.corporation_id }}/ method="POST">
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" <div class="form-group">
aria-hidden="true"> {% csrf_token %}
<div class="modal-dialog"> {{ search_form.as_table }}
<div class="modal-content"> </div>
<div class="modal-header"> <button class="btn btn-default" type="submit">Search</button>
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span </form>
class="sr-only">Close</span></button> </li>
<h4 class="modal-title" id="myModalLabel">Member Search</h4> </ul>
</div> </div>
<div class="modal-body"> </nav>
<form class="form-signin" role="form" <div class="panel-body">
action={% url 'auth_corputils_search' %} method="POST"> <table class="table table-condensed table-hover table-striped">
{% csrf_token %} <tr>
{{ search_form|bootstrap }} <th>Character</th>
<br/> <th>Main Character</th>
<button class="btn btn-lg btn-primary btn-block" type="submit">Search</button> </tr>
</form> {% for member in members %}
</div> <tr {% if not member.api_registered%} {% endif %} >
<div class="modal-footer"> <td>{{ member.name }}{{ member.id }}</td>
</div> <td>
{% if member.api_registered%}
{{ member.main }}
{% else %}
<span class="label label-danger">No API registered!</span>
{% endif %}
</td>
</tr>
{% endfor %}
</table>
</div> </div>
</div> </div>
</div> </div>
{% endif %} {% endif %}
</div>
{% endblock content %} {% endblock content %}