diff --git a/.idea/allianceauth.iml b/.idea/allianceauth.iml
index 199266bc..a89267e9 100755
--- a/.idea/allianceauth.iml
+++ b/.idea/allianceauth.iml
@@ -6,21 +6,16 @@
+
-
+
-
-
-
+
\ No newline at end of file
diff --git a/alliance_auth/urls.py b/alliance_auth/urls.py
index 5db17229..4d065330 100755
--- a/alliance_auth/urls.py
+++ b/alliance_auth/urls.py
@@ -162,7 +162,10 @@ urlpatterns = patterns('',
url(r'srp_request_reject/(\w+)', 'srp.views.srp_request_reject', name='auth_srp_request_reject'),
url(r'srp_request_amount_update/(\w+)', 'srp.views.srp_request_update_amount_view',
name="auth_srp_request_update_amount_view"),
-
- # FLEET FITTINGS
- url(r'^fits/$', 'services.views.fleet_fits', name='auth_fleet_fits'),
+
+ #corputils
+ url(r'^corp_utils/$', 'corputils.views.corp_member_view', name='auth_corp_member_view'),
+
+ # FLEET FITTINGS
+ url(r'^fits/$', 'services.views.fleet_fits', name='auth_fleet_fits'),
)
diff --git a/corputils/__init__.py b/corputils/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/corputils/admin.py b/corputils/admin.py
new file mode 100644
index 00000000..e69de29b
diff --git a/corputils/models.py b/corputils/models.py
new file mode 100644
index 00000000..e69de29b
diff --git a/corputils/tests.py b/corputils/tests.py
new file mode 100644
index 00000000..e69de29b
diff --git a/corputils/views.py b/corputils/views.py
new file mode 100644
index 00000000..f75bb780
--- /dev/null
+++ b/corputils/views.py
@@ -0,0 +1,52 @@
+from django.conf import settings
+from django.shortcuts import render_to_response
+from django.template import RequestContext
+from django.contrib.auth.decorators import login_required
+from django.contrib.auth.decorators import permission_required
+
+from authentication.managers import AuthServicesInfoManager
+from services.managers.eve_api_manager import EveApiManager
+from eveonline.models import EveCorporationInfo
+from eveonline.models import EveCharacter
+from authentication.models import AuthServicesInfo
+
+import logging
+
+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.corp_stats')
+def corp_member_view(request):
+ logger.debug("corp_member_view called by user %s" % request.user)
+ # Get the corp the member is in
+ auth_info = AuthServicesInfo.objects.get(user=request.user)
+ logger.debug("Got user %s authservicesinfo model %s" % (request.user, auth_info))
+
+ if settings.IS_CORP:
+ corp = EveCorporationInfo.objects.get(corporation_id=settings.CORP_ID)
+
+ member_list = EveApiManager.get_corp_membertracking()
+ characters_with_api = {}
+ characters_without_api = {}
+ for char_id, member_data in member_list.iteritems():
+ try:
+ char = EveCharacter.objects.get(character_id=char_id)
+ user = char.user
+ mainid = int(AuthServicesInfoManager.get_auth_service_info(user=user).main_char_id)
+ characters_with_api.setdefault(mainid,{}).update({char_id:char.character_name})
+ except EveCharacter.DoesNotExist:
+ mainid = char_id
+ characters_without_api.setdefault(mainid,{}).update({char_id:member_data["name"]})
+
+
+ context = {"corp": corp,
+ "characters_with_api": characters_with_api,
+ "characters_without_api": characters_without_api}
+
+ return render_to_response('registered/corputils.html',context, context_instance=RequestContext(request) )
+ else:
+ logger.error("Not running in corporation mode. Cannot provide corp member tracking data." % (request.user, auth_info.main_char_id))
+ return render_to_response('registered/corputils.html', None, context_instance=RequestContext(request))
+
diff --git a/eveonline/views.py b/eveonline/views.py
index fc9ed613..fb04fff9 100755
--- a/eveonline/views.py
+++ b/eveonline/views.py
@@ -25,6 +25,7 @@ import logging
logger = logging.getLogger(__name__)
+
def disable_member(user, char_id):
logger.debug("Disabling user %s with character id %s" % (user, char_id))
remove_member_permission(user, 'member')
diff --git a/hrapplications/views.py b/hrapplications/views.py
index 8398b95c..903121c9 100755
--- a/hrapplications/views.py
+++ b/hrapplications/views.py
@@ -22,236 +22,236 @@ logger = logging.getLogger(__name__)
@login_required
def hr_application_management_view(request):
- logger.debug("hr_application_management_view called by user %s" % request.user)
- personal_app = None
- corp_applications = None
+ logger.debug("hr_application_management_view called by user %s" % request.user)
+ personal_app = None
+ corp_applications = None
- if request.user.is_superuser:
- logger.debug("User %s is superuser: returning all applications." % request.user)
- corp_applications = HRApplication.objects.all()
- else:
- # Get the corp the member is in
- auth_info = AuthServicesInfo.objects.get(user=request.user)
- if auth_info.main_char_id != "":
- try:
- main_corp_id = EveManager.get_charater_corporation_id_by_id(auth_info.main_char_id)
- main_alliance_id = EveManager.get_charater_alliance_id_by_id(auth_info.main_char_id)
- if (settings.IS_CORP and main_corp_id == settings.CORP_ID) or (not settings.IS_CORP and main_alliance_id == settings.ALLIANCE_ID):
- main_char = EveCharacter.objects.get(character_id=auth_info.main_char_id)
- if EveCorporationInfo.objects.filter(corporation_id=main_char.corporation_id).exists():
- corp = EveCorporationInfo.objects.get(corporation_id=main_char.corporation_id)
- corp_applications = HRApplication.objects.filter(corp=corp).filter(approved_denied=None)
- else:
- corp_applications = None
- else:
- corp_applications = None
- except:
- logger.error("Unable to determine user %s main character id %s corp. Returning no corp hrapplications." % (request.user, auth_info.main_char_id))
- corp_applications = None
- context = {'personal_apps': HRApplication.objects.all().filter(user=request.user),
- 'applications': corp_applications,
- 'search_form': HRApplicationSearchForm()}
+ if request.user.is_superuser:
+ logger.debug("User %s is superuser: returning all applications." % request.user)
+ corp_applications = HRApplication.objects.all()
+ else:
+ # Get the corp the member is in
+ auth_info = AuthServicesInfo.objects.get(user=request.user)
+ if auth_info.main_char_id != "":
+ try:
+ main_corp_id = EveManager.get_charater_corporation_id_by_id(auth_info.main_char_id)
+ main_alliance_id = EveManager.get_charater_alliance_id_by_id(auth_info.main_char_id)
+ if (settings.IS_CORP and main_corp_id == settings.CORP_ID) or (not settings.IS_CORP and main_alliance_id == settings.ALLIANCE_ID):
+ main_char = EveCharacter.objects.get(character_id=auth_info.main_char_id)
+ if EveCorporationInfo.objects.filter(corporation_id=main_char.corporation_id).exists():
+ corp = EveCorporationInfo.objects.get(corporation_id=main_char.corporation_id)
+ corp_applications = HRApplication.objects.filter(corp=corp).filter(approved_denied=None)
+ else:
+ corp_applications = None
+ else:
+ corp_applications = None
+ except:
+ logger.error("Unable to determine user %s main character id %s corp. Returning no corp hrapplications." % (request.user, auth_info.main_char_id))
+ corp_applications = None
+ context = {'personal_apps': HRApplication.objects.all().filter(user=request.user),
+ 'applications': corp_applications,
+ 'search_form': HRApplicationSearchForm()}
- return render_to_response('registered/hrapplicationmanagement.html',
- context, context_instance=RequestContext(request))
+ return render_to_response('registered/hrapplicationmanagement.html',
+ context, context_instance=RequestContext(request))
@login_required
def hr_application_create_view(request):
- logger.debug("hr_application_create_view called by user %s" % request.user)
- success = False
+ logger.debug("hr_application_create_view called by user %s" % request.user)
+ success = False
- if request.method == 'POST':
- form = HRApplicationForm(request.POST)
- logger.debug("Request type POST with form valid: %s" % form.is_valid())
- if form.is_valid():
- application = HRApplication()
- application.user = request.user
- application.character_name = form.cleaned_data['character_name']
- application.full_api_id = form.cleaned_data['full_api_id']
- application.full_api_key = form.cleaned_data['full_api_key']
- application.corp = EveCorporationInfo.objects.get(corporation_id=form.cleaned_data['corp'])
- application.is_a_spi = form.cleaned_data['is_a_spi']
- application.about = form.cleaned_data['about']
- application.extra = form.cleaned_data['extra']
- application.save()
- success = True
- logger.info("Created HRApplication for user %s to corp %s" % (request.user, application.corp))
- else:
- logger.debug("Providing empty form.")
- form = HRApplicationForm()
+ if request.method == 'POST':
+ form = HRApplicationForm(request.POST)
+ logger.debug("Request type POST with form valid: %s" % form.is_valid())
+ if form.is_valid():
+ application = HRApplication()
+ application.user = request.user
+ application.character_name = form.cleaned_data['character_name']
+ application.full_api_id = form.cleaned_data['full_api_id']
+ application.full_api_key = form.cleaned_data['full_api_key']
+ application.corp = EveCorporationInfo.objects.get(corporation_id=form.cleaned_data['corp'])
+ application.is_a_spi = form.cleaned_data['is_a_spi']
+ application.about = form.cleaned_data['about']
+ application.extra = form.cleaned_data['extra']
+ application.save()
+ success = True
+ logger.info("Created HRApplication for user %s to corp %s" % (request.user, application.corp))
+ else:
+ logger.debug("Providing empty form.")
+ form = HRApplicationForm()
- context = {'form': form, 'success': success}
- return render_to_response('registered/hrcreateapplication.html',
- context, context_instance=RequestContext(request))
+ context = {'form': form, 'success': success}
+ return render_to_response('registered/hrcreateapplication.html',
+ context, context_instance=RequestContext(request))
@login_required
def hr_application_personal_view(request, app_id):
- logger.debug("hr_application_personal_view called by user %s for app id %s" % (request.user, app_id))
- if HRApplication.objects.filter(id=app_id).exists():
- application = HRApplication.objects.get(id=app_id)
- logger.debug("Got application id %s: %s" % (app_id, application))
- if application.user != request.user:
- logger.warn("HRApplication id %s user %s does not match request user %s - returning blank application." % (app_id, application.user, request.user))
- application = HRApplication()
- else:
- logger.error("Unable to locate HRApplication matching id %s - returning blank application to user %s" % (app_id, request.user))
- application = HRApplication()
- context = {'application': application}
+ logger.debug("hr_application_personal_view called by user %s for app id %s" % (request.user, app_id))
+ if HRApplication.objects.filter(id=app_id).exists():
+ application = HRApplication.objects.get(id=app_id)
+ logger.debug("Got application id %s: %s" % (app_id, application))
+ if application.user != request.user:
+ logger.warn("HRApplication id %s user %s does not match request user %s - returning blank application." % (app_id, application.user, request.user))
+ application = HRApplication()
+ else:
+ logger.error("Unable to locate HRApplication matching id %s - returning blank application to user %s" % (app_id, request.user))
+ application = HRApplication()
+ context = {'application': application}
- return render_to_response('registered/hrapplicationview.html',
- context, context_instance=RequestContext(request))
+ return render_to_response('registered/hrapplicationview.html',
+ context, context_instance=RequestContext(request))
@login_required
def hr_application_personal_removal(request, app_id):
- logger.debug("hr_application_personal_removal called by user %s for app id %s" % (request.user, app_id))
- if HRApplication.objects.filter(id=app_id).exists():
- application = HRApplication.objects.get(id=app_id)
- if application.user == request.user:
- application.delete()
- logger.info("Deleted HRApplication with id %s for user %s to corp %s" % (app_id, request.user, application.corp))
- else:
- logger.error("HRapplication id %s user %s does not match request user %s - refusing to delete." % (app_id, application.user, request.user))
- return HttpResponseRedirect("/hr_application_management/")
+ logger.debug("hr_application_personal_removal called by user %s for app id %s" % (request.user, app_id))
+ if HRApplication.objects.filter(id=app_id).exists():
+ application = HRApplication.objects.get(id=app_id)
+ if application.user == request.user:
+ application.delete()
+ logger.info("Deleted HRApplication with id %s for user %s to corp %s" % (app_id, request.user, application.corp))
+ else:
+ logger.error("HRapplication id %s user %s does not match request user %s - refusing to delete." % (app_id, application.user, request.user))
+ return HttpResponseRedirect("/hr_application_management/")
@login_required
@permission_required('auth.human_resources')
def hr_application_view(request, app_id):
- logger.debug("hr_application_view called by user %s for app id %s" % (request.user, app_id))
- if request.method == 'POST':
- form = HRApplicationCommentForm(request.POST)
- logger.debug("Request type POST contains form valid: %s" % form.is_valid())
- if form.is_valid():
- auth_info = AuthServicesInfo.objects.get(user=request.user)
+ logger.debug("hr_application_view called by user %s for app id %s" % (request.user, app_id))
+ if request.method == 'POST':
+ form = HRApplicationCommentForm(request.POST)
+ logger.debug("Request type POST contains form valid: %s" % form.is_valid())
+ if form.is_valid():
+ auth_info = AuthServicesInfo.objects.get(user=request.user)
- comment = HRApplicationComment()
- comment.application = HRApplication.objects.get(id=int(form.cleaned_data['app_id']))
- comment.commenter_user = request.user
- comment.commenter_character = EveCharacter.objects.get(character_id=auth_info.main_char_id)
- comment.comment = form.cleaned_data['comment']
- comment.save()
- logger.info("Saved comment by user %s to hrapplication %s" % (request.user, comment.application))
+ comment = HRApplicationComment()
+ comment.application = HRApplication.objects.get(id=int(form.cleaned_data['app_id']))
+ comment.commenter_user = request.user
+ comment.commenter_character = EveCharacter.objects.get(character_id=auth_info.main_char_id)
+ comment.comment = form.cleaned_data['comment']
+ comment.save()
+ logger.info("Saved comment by user %s to hrapplication %s" % (request.user, comment.application))
- else:
- logger.debug("Returning blank HRApplication comment form.")
- form = HRApplicationCommentForm()
+ else:
+ logger.debug("Returning blank HRApplication comment form.")
+ form = HRApplicationCommentForm()
- if HRApplication.objects.filter(id=app_id).exists():
- application = HRApplication.objects.get(id=app_id)
- comments = HRApplicationComment.objects.all().filter(application=application)
- logger.debug("Retrieved hrpplication id %s on behalf of user %s with comments %s" % (app_id, request.user, len(comments)))
- else:
- application = HRApplication()
- comments = []
- logger.error("HRAppllication with id %s not found - returning blank applicatin to user %s" % request.user)
+ if HRApplication.objects.filter(id=app_id).exists():
+ application = HRApplication.objects.get(id=app_id)
+ comments = HRApplicationComment.objects.all().filter(application=application)
+ logger.debug("Retrieved hrpplication id %s on behalf of user %s with comments %s" % (app_id, request.user, len(comments)))
+ else:
+ application = HRApplication()
+ comments = []
+ logger.error("HRAppllication with id %s not found - returning blank applicatin to user %s" % request.user)
- context = {'application': application, 'comments': comments, 'comment_form': form}
+ context = {'application': application, 'comments': comments, 'comment_form': form}
- return render_to_response('registered/hrapplicationview.html',
- context, context_instance=RequestContext(request))
+ return render_to_response('registered/hrapplicationview.html',
+ context, context_instance=RequestContext(request))
@login_required
@permission_required('auth.human_resources')
def hr_application_remove(request, app_id):
- logger.debug("hr_application_remove called by user %s for app id %s" % (request.user, app_id))
- if HRApplication.objects.filter(id=app_id).exists():
- application = HRApplication.objects.get(id=app_id)
- if application:
- logger.info("Deleted HRApplication id %s on behalf of user %s" % (app_id, request.user))
- application.delete()
- else:
+ logger.debug("hr_application_remove called by user %s for app id %s" % (request.user, app_id))
+ if HRApplication.objects.filter(id=app_id).exists():
+ application = HRApplication.objects.get(id=app_id)
+ if application:
+ logger.info("Deleted HRApplication id %s on behalf of user %s" % (app_id, request.user))
+ application.delete()
+ else:
logger.error("Unable to delete HRApplication with id %s on behalf of user %s: application is NoneType" % (app_id, request.user))
- else:
- logger.error("Unable to delete HRApplication with id %s on behalf of user %s: application not found." % (app_id, request.user))
+ else:
+ logger.error("Unable to delete HRApplication with id %s on behalf of user %s: application not found." % (app_id, request.user))
- return HttpResponseRedirect("/hr_application_management/")
+ return HttpResponseRedirect("/hr_application_management/")
@login_required
@permission_required('auth.human_resources')
def hr_application_approve(request, app_id):
- logger.debug("hr_application_approve called by user %s for app id %s" % (request.user, app_id))
- if HRApplication.objects.filter(id=app_id).exists():
- auth_info = AuthServicesInfo.objects.get(user=request.user)
- application = HRApplication.objects.get(id=app_id)
- application.approved_denied = True
- application.reviewer_user = request.user
- application.reviewer_character = EveCharacter.objects.get(character_id=auth_info.main_char_id)
- application.save()
- logger.info("HRApplication for user %s to corp %s approved by %s" % (application.user, application.corp, request.user))
- else:
- logger.error("User %s unable to approve HRApplication id %s - hrapplication with that id not found." % (request.user, app_id))
+ logger.debug("hr_application_approve called by user %s for app id %s" % (request.user, app_id))
+ if HRApplication.objects.filter(id=app_id).exists():
+ auth_info = AuthServicesInfo.objects.get(user=request.user)
+ application = HRApplication.objects.get(id=app_id)
+ application.approved_denied = True
+ application.reviewer_user = request.user
+ application.reviewer_character = EveCharacter.objects.get(character_id=auth_info.main_char_id)
+ application.save()
+ logger.info("HRApplication for user %s to corp %s approved by %s" % (application.user, application.corp, request.user))
+ else:
+ logger.error("User %s unable to approve HRApplication id %s - hrapplication with that id not found." % (request.user, app_id))
- return HttpResponseRedirect("/hr_application_management/")
+ return HttpResponseRedirect("/hr_application_management/")
@login_required
@permission_required('auth.human_resources')
def hr_application_reject(request, app_id):
- logger.debug("hr_application_reject called by user %s for app id %s" % (request.user, app_id))
- if HRApplication.objects.filter(id=app_id).exists():
- auth_info = AuthServicesInfo.objects.get(user=request.user)
- application = HRApplication.objects.get(id=app_id)
- application.approved_denied = False
- application.reviewer_user = request.user
- application.reviewer_character = EveCharacter.objects.get(character_id=auth_info.main_char_id)
- application.save()
- logger.info("HRApplication for user %s to corp %s rejected by %s" % (application.user, application.corp, request.user))
- else:
- logger.error("User %s unable to reject HRApplication id %s - hrapplication with that id not found." % (request.user, app_id))
+ logger.debug("hr_application_reject called by user %s for app id %s" % (request.user, app_id))
+ if HRApplication.objects.filter(id=app_id).exists():
+ auth_info = AuthServicesInfo.objects.get(user=request.user)
+ application = HRApplication.objects.get(id=app_id)
+ application.approved_denied = False
+ application.reviewer_user = request.user
+ application.reviewer_character = EveCharacter.objects.get(character_id=auth_info.main_char_id)
+ application.save()
+ logger.info("HRApplication for user %s to corp %s rejected by %s" % (application.user, application.corp, request.user))
+ else:
+ logger.error("User %s unable to reject HRApplication id %s - hrapplication with that id not found." % (request.user, app_id))
- return HttpResponseRedirect("/hr_application_management/")
+ return HttpResponseRedirect("/hr_application_management/")
@login_required
@permission_required('auth.human_resources')
def hr_application_search(request):
- logger.debug("hr_application_search called by user %s" % request.user)
- if request.method == 'POST':
- form = HRApplicationSearchForm(request.POST)
- logger.debug("Request type POST contains form valid: %s" % form.is_valid())
- if form.is_valid():
- # Really dumb search and only checks character name
- # This can be improved but it does the job for now
- searchstring = form.cleaned_data['search_string']
- applications = []
- logger.debug("Searching for application with character name %s for user %s" % (searchstring, request.user))
+ logger.debug("hr_application_search called by user %s" % request.user)
+ if request.method == 'POST':
+ form = HRApplicationSearchForm(request.POST)
+ logger.debug("Request type POST contains form valid: %s" % form.is_valid())
+ if form.is_valid():
+ # Really dumb search and only checks character name
+ # This can be improved but it does the job for now
+ searchstring = form.cleaned_data['search_string']
+ applications = []
+ logger.debug("Searching for application with character name %s for user %s" % (searchstring, request.user))
- for application in HRApplication.objects.all():
- if searchstring in application.character_name:
- applications.append(application)
- logger.info("Found %s HRApplications for user %s matching search string %s" % (len(applications), request.user, searchstring))
+ for application in HRApplication.objects.all():
+ if searchstring in application.character_name:
+ applications.append(application)
+ logger.info("Found %s HRApplications for user %s matching search string %s" % (len(applications), request.user, searchstring))
- context = {'applications': applications, 'search_form': HRApplicationSearchForm()}
+ context = {'applications': applications, 'search_form': HRApplicationSearchForm()}
- return render_to_response('registered/hrapplicationsearchview.html',
- context, context_instance=RequestContext(request))
- else:
- logger.debug("Form invalid - returning for user %s to retry." % request.user)
- context = {'applications': None, 'search_form': form}
- return render_to_response('registered/hrapplicationsearchview.html',
+ return render_to_response('registered/hrapplicationsearchview.html',
+ context, context_instance=RequestContext(request))
+ else:
+ logger.debug("Form invalid - returning for user %s to retry." % request.user)
+ context = {'applications': None, 'search_form': form}
+ return render_to_response('registered/hrapplicationsearchview.html',
context, context_instance=RequestContext(request))
-
- else:
- logger.debug("Returning empty search form for user %s" % request.user)
- return HttpResponseRedirect("/hr_application_management/")
+
+ else:
+ logger.debug("Returning empty search form for user %s" % request.user)
+ return HttpResponseRedirect("/hr_application_management/")
@login_required
@permission_required('auth.human_resources')
def hr_application_mark_in_progress(request, app_id):
- logger.debug("hr_application_mark_in_progress called by user %s for app id %s" % (request.user, app_id))
- if HRApplication.objects.filter(id=app_id).exists():
- auth_info = AuthServicesInfo.objects.get(user=request.user)
- application = HRApplication.objects.get(id=app_id)
- application.reviewer_inprogress_character = EveCharacter.objects.get(character_id=auth_info.main_char_id)
- application.save()
- logger.info("Marked HRApplication for user %s to corp %s in progress by user %s" % (application.user, application.corp, request.user))
- else:
- logger.error("Unable to mark HRApplication id %s in progress by user %s - hrapplication matching id not found." % (app_id, request.user))
+ logger.debug("hr_application_mark_in_progress called by user %s for app id %s" % (request.user, app_id))
+ if HRApplication.objects.filter(id=app_id).exists():
+ auth_info = AuthServicesInfo.objects.get(user=request.user)
+ application = HRApplication.objects.get(id=app_id)
+ application.reviewer_inprogress_character = EveCharacter.objects.get(character_id=auth_info.main_char_id)
+ application.save()
+ logger.info("Marked HRApplication for user %s to corp %s in progress by user %s" % (application.user, application.corp, request.user))
+ else:
+ logger.error("Unable to mark HRApplication id %s in progress by user %s - hrapplication matching id not found." % (app_id, request.user))
- return HttpResponseRedirect("/hr_application_view/" + str(app_id))
+ return HttpResponseRedirect("/hr_application_view/" + str(app_id))
diff --git a/services/managers/eve_api_manager.py b/services/managers/eve_api_manager.py
index 8df6f6f7..e646d19d 100644
--- a/services/managers/eve_api_manager.py
+++ b/services/managers/eve_api_manager.py
@@ -185,7 +185,7 @@ class EveApiManager():
api = evelink.api.API(api_key=(settings.CORP_API_ID, settings.CORP_API_VCODE))
corp = evelink.corp.Corp(api=api)
corpinfo = corp.contacts()
- results = corpinfo[0]
+ results = corpinfo.result
logger.debug("Got corp standings from settings: %s" % results)
return results
except evelink.api.APIError as error:
@@ -194,6 +194,27 @@ class EveApiManager():
logger.error("No corp API key supplied in settings. Unable to get standings.")
return {}
+ @staticmethod
+ def get_corp_membertracking():
+ if settings.IS_CORP:
+ if settings.CORP_API_ID and settings.CORP_API_VCODE:
+ try:
+ logger.debug("Getting corp membertracking with api id %s" % settings.CORP_API_ID)
+ api = evelink.api.API(api_key=(settings.CORP_API_ID, settings.CORP_API_VCODE))
+ corp = evelink.corp.Corp(api=api)
+ membertracking = corp.members()
+ results = membertracking.result
+ logger.debug("Got corp membertracking from settings: %s" % results)
+ return results
+ except evelink.api.APIError as error:
+ logger.exception("Unhandled APIError occured.", exc_info=True)
+ else:
+ logger.error("No corp API key supplied in settings. Unable to get standings.")
+ else:
+ logger.error("Membertracking function only works in corporation mode.")
+ return {}
+
+
@staticmethod
def check_if_id_is_alliance(alliance_id):
logger.debug("Checking if id %s is an alliance." % alliance_id)
@@ -201,7 +222,7 @@ class EveApiManager():
api = evelink.api.API()
eve = evelink.eve.EVE(api=api)
alliance = eve.alliances()
- results = alliance[0][int(alliance_id)]
+ results = alliance.result[int(alliance_id)]
if results:
logger.debug("Confirmed id %s is an alliance." % alliance_id)
return True
diff --git a/stock/templates/public/base.html b/stock/templates/public/base.html
index 279743d0..f0279c7d 100755
--- a/stock/templates/public/base.html
+++ b/stock/templates/public/base.html
@@ -117,10 +117,17 @@
{% if perms.auth.corp_stats %}
- Corporation Stats
+ {% if IS_CORP %}
+
+ Corporation Stats
+
+ {% endif %}
{% endif %}
{% if perms.auth.group_management %}
diff --git a/stock/templates/registered/corputils.html b/stock/templates/registered/corputils.html
new file mode 100644
index 00000000..eea074e6
--- /dev/null
+++ b/stock/templates/registered/corputils.html
@@ -0,0 +1,102 @@
+
+
+
+
+ {% extends "public/base.html" %}
+{% block title %}Alliance Auth{% endblock %}
+{% block page_title %}Corporation Stats{% endblock page_title %}
+{% load corputils_extras %}
+
+{% block content %}
+
+
+
+ {% if perms.auth.member %}
+
+ {% if corp %}
+
+
+
+
Corporation
+
+
+

+
+
+
+
Name: {{ corp.corporation_name }}
+
+
Ticker: {{ corp.corporation_ticker }}
+
+
Member: {{ corp.member_count }}
+
+
+
+
+
+
+
+
+
Registered Characters
+
+
+
+
+ Main character |
+ Character list |
+
+ {% for mainid, alts in characters_with_api.items %}
+
+
+ {{ alts|get_dict_item:mainid }}
+ |
+
+ {% for charid, name in alts.items %}
+ {{ name}}
+ {% endfor %}
+ |
+
+ {% endfor %}
+ {% for mainid, alts in characters_without_api.items %}
+
+
+ {{ alts|get_dict_item:mainid }}
+ |
+
+ No API registered!
+ |
+
+ {% endfor %}
+
+
+
+
+
+ {% else %}
+
+
+
+
No corporation model found. Contact your admin.
+
+
+
+
+ {% endif %}
+
+ {% else %}
+ {% if IS_CORP %}
+
You are not in the corporation.
+ {% else %}
+
You are not in the alliance.
+ {% endif %}
+ {% endif %}
+
+{% endblock content %}
+
+
+
+
+
+
\ No newline at end of file